Opened 7 years ago

Closed 7 years ago

#54514 closed defect (fixed)

cxx11 1.1 PortGroup and the macports-libstdc++ changes to clang-3.9+ may not properly handle -stdlib=macports-libstdc++ when building for i386

Reported by: kencu (Ken) Owned by: MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc:
Port:

Description

I'll begin with the recognition that this one is a bit complicated, a corner case, and may not ultimately generate the need to be fixed.

When building ports that are using the cxx11 1.1 PortGroup, on Intel, in 32bit i386 mode, it appears on initial review that the libgcc6 modifications made by Marcus may not find the proper flavour include files.

During a recent buildbot build of Pingus using the cxx11 1.1 PortGroup on i386, the build fails with an error suggesting that when building with clang-4.0 against libstdc++ from libgcc6, in i386 mode, the proper flavour headers aren't found.

I suspect that if we dug into the path settings in Marcus' macports-libstdc++ modifications, we would find that this situation isn't covered. (I had to do some finagling with the paths to make a similar issue work out on clang-3.8 PPC as well.)

[  2%] Building CXX object CMakeFiles/tinygettext.dir/external/tinygettext/src/dictionary.cpp.o
/opt/local/bin/clang++-mp-4.0   -I/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_games_pingus/pingus/work/pingus-06afdabb6b27c1314bb1d90a05d467697b72be58/src -I/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_games_pingus/pingus/work/pingus-06afdabb6b27c1314bb1d90a05d467697b72be58/external/tinygettext/include -I/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_games_pingus/pingus/work/pingus-06afdabb6b27c1314bb1d90a05d467697b72be58/external/sexp-cpp/include -I/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_games_pingus/pingus/work/pingus-06afdabb6b27c1314bb1d90a05d467697b72be58/external/logmich/include  -pipe -Os -D_GLIBCXX_USE_CXX11_ABI=0 -stdlib=macports-libstdc++ -std=c++1y -arch i386 -mmacosx-version-min=10.6   -o CMakeFiles/tinygettext.dir/external/tinygettext/src/dictionary.cpp.o -c /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_games_pingus/pingus/work/pingus-06afdabb6b27c1314bb1d90a05d467697b72be58/external/tinygettext/src/dictionary.cpp
In file included from /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_games_pingus/pingus/work/pingus-06afdabb6b27c1314bb1d90a05d467697b72be58/external/logmich/src/log.cpp:20:
In file included from /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_games_pingus/pingus/work/pingus-06afdabb6b27c1314bb1d90a05d467697b72be58/external/logmich/include/logmich/log.hpp:23:
/opt/local/include/gcc6/c++/string:38:10: fatal error: 'bits/c++config.h' file not found
In file included from /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_games_pingus/pingus/work/pingus-06afdabb6b27c1314bb1d90a05d467697b72be58/external/logmich/src/logger.cpp:20#include <bits/c++config.h>
:
In file included from /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_games_pingus/pingus/work/pingus-06afdabb6b27c1314bb1d90a05d467697b72be58/external/logmich/include/logmich/log.hpp:23:
/opt/local/include/gcc6/c++/string:38:10: fatal error: 'bits/c++config.h' file not found
#include <bits/c++config.h>
        ^~~~~~~~~~~~~~~~~~

full log <https://build.macports.org/builders/ports-10.6_i386_legacy-builder/builds/25036/steps/install-port/logs/stdio>

Change History (2)

comment:1 Changed 7 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Cc: MarcusCalhoun-Lopez removed
Owner: set to MarcusCalhoun-Lopez
Status: newassigned

comment:2 Changed 7 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Resolution: fixed
Status: assignedclosed

In b6482df086b019d3d01a42e1f76115ea0c71aebe/macports-ports:

clang-*: find correct GCC headers on 32-bit systems

Fixes #54514

Note: See TracTickets for help on using tickets.