boostorg / boostorg/python

`type_id.cpp` incorrectly includes `cxxabi.h` even when compiling under libc++abi

Aberta
#188 0 comentários 0 reações 0 responsáveis Ver no GitHub
Linguagem predominante
C++
Estrelas
537
Forks
223
Merge médio
11h 22min
PRs com merge (30d)
2

Descrição

Clang itself defines `__GNUC__` and in case of Clang 5, `__GNUC__` is defined to 4. So when compiling `src/converter/type_id.cpp` using clang 5 and its corresponding libc++ and libc++abi, the src file is processed to included `cxxabi.h` after some detections using macro. However, libc++abi itself [does not install its headers](https://github.com/llvm-mirror/libcxxabi/commit/c20d83676d5f48624bd57c5bd70201455ddc30c8) so there is no `cxxabi.h` in system header include directories. Therefore a compile error occurs:

```shell
clang-linux.compile.c++.without-pth bin.v2/libs/python/build/clang-gnu-linux-5.0.1/release/threadapi-pthread/threading-multi/converter/type_id.o
libs/python/src/converter/type_id.cpp:35:14: fatal error: 'cxxabi.h' file not found
# include
^~~~~~~~~~
1 error generated.

"clang++" -c -x c++ -std=c++14 -stdlib=libc++ -O3 -Wno-inline -Wall -pthread -fPIC -m64 -std=c++14 -stdlib=libc++ -DBOOST_ALL_NO_LIB=1 -DBOOST_PYTHON_SOURCE -DNDEBUG -I"." -I"/usr/include/python3.6m" -o "bin.v2/libs/python/build/clang-gnu-linux-5.0.1/release/threadapi-pthread/threading-multi/converter/type_id.o" "libs/python/src/converter/type_id.cpp"

...failed clang-linux.compile.c++.without-pth bin.v2/libs/python/build/clang-gnu-linux-5.0.1/release/threadapi-pthread/threading-multi/converter/type_id.o...
```

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Direção de pesquisa

O ponto de entrada afetado é src/converter/type_id.cpp; inspecione as verificações das macros do compilador e da ABI ao redor da inclusão de cxxabi.h. Reproduza, se disponível, o build mostrado do Clang 5/libc++ e, em seguida, verifique se essa configuração compila sem exigir o header indisponível.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
cpp
Domínio
compilers
Tipo de issue
Bug
Dificuldade
2/5
Tempo estimado
1-3 horas
Status de atividade
Estagnada
Clareza
Razoavelmente clara
Facilidade para iniciantes
45/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.