BobBuildTool/basement

build issues for gcc-canadian-cross

Closed this issue · 1 comments

Happy New Year!

Unfortunately the last changes make some trouble - again the problem is, that /usr/include is used.
No idea why the sysroot is ignored there. https://gcc.gnu.org/onlinedocs/gcc/Directory-Options.html
But i don't understand this part:

Add the directory dir to the list of directories to be searched for header files during preprocessing. If dir begins with ‘=’ or $SYSROOT, then the ‘=’ or $SYSROOT is replaced by the sysroot prefix; see --sysroot and -isysroot.

includes are never prefixed with ‘=’ or $SYSROOT, at least i never saw this so far?! btw: it works if i add the ‘=’ manually in the build-shell. 🤷‍♂️

errorlog:

Making all in include
make[4]: Entering directory '/home/mhaase/fdt.bobrecipes/dev/build/devel/compat/gcc-canadian-cross/x86_64-bob_isolation-linux-gnu/1/workspace/build/x86_64-bob_compat-linux-gnu/libstdc++-v3/include'
mkdir -p ./x86_64-bob_compat-linux-gnu/bits/stdc++.h.gch
mkdir -p ./x86_64-bob_compat-linux-gnu/bits/stdc++.h.gch
x86_64-bob_compat-linux-gnu-c++  --sysroot=/home/mhaase/fdt.bobrecipes/dev/dist/devel/compat/cross-toolchain/1/workspace/usr/bin/../sysroots/x86_64-bob_isolation-linux-gnu   -x c++-header -nostdinc++ -g -O2 -D_GNU_SOURCE  -I/home/mhaase/fdt.bobrecipes/dev/build/devel/compat/gcc-canadian-cross/x86_64-bob_isolation-linux-gnu/1/workspace/build/x86_64-bob_compat-linux-gnu/libstdc++-v3/include/x86_64-bob_compat-linux-gnu -I/home/mhaase/fdt.bobrecipes/dev/build/devel/compat/gcc-canadian-cross/x86_64-bob_isolation-linux-gnu/1/workspace/build/x86_64-bob_compat-linux-gnu/libstdc++-v3/include -I/home/mhaase/fdt.bobrecipes/dev/src/devel/compat/gcc/1/workspace/libstdc++-v3/libsupc++ -I/usr/include  -O2 -g -std=gnu++0x /home/mhaase/fdt.bobrecipes/dev/src/devel/compat/gcc/1/workspace/libstdc++-v3/include/precompiled/stdc++.h \
-o x86_64-bob_compat-linux-gnu/bits/stdc++.h.gch/O2ggnu++0x.gch
x86_64-bob_compat-linux-gnu-c++  --sysroot=/home/mhaase/fdt.bobrecipes/dev/dist/devel/compat/cross-toolchain/1/workspace/usr/bin/../sysroots/x86_64-bob_isolation-linux-gnu   -x c++-header -nostdinc++ -g -O2 -D_GNU_SOURCE  -I/home/mhaase/fdt.bobrecipes/dev/build/devel/compat/gcc-canadian-cross/x86_64-bob_isolation-linux-gnu/1/workspace/build/x86_64-bob_compat-linux-gnu/libstdc++-v3/include/x86_64-bob_compat-linux-gnu -I/home/mhaase/fdt.bobrecipes/dev/build/devel/compat/gcc-canadian-cross/x86_64-bob_isolation-linux-gnu/1/workspace/build/x86_64-bob_compat-linux-gnu/libstdc++-v3/include -I/home/mhaase/fdt.bobrecipes/dev/src/devel/compat/gcc/1/workspace/libstdc++-v3/libsupc++ -I/usr/include  -O2 -g /home/mhaase/fdt.bobrecipes/dev/src/devel/compat/gcc/1/workspace/libstdc++-v3/include/precompiled/stdc++.h -o x86_64-bob_compat-linux-gnu/bits/stdc++.h.gch/O2g.gch
In file included from /usr/include/features.h:392:0,
                 from /home/mhaase/fdt.bobrecipes/dev/build/devel/compat/gcc-canadian-cross/x86_64-bob_isolation-linux-gnu/1/workspace/build/x86_64-bob_compat-linux-gnu/libstdc++-v3/include/x86_64-bob_compat-linux-gnu/bits/os_defines.h:39,
                 from /home/mhaase/fdt.bobrecipes/dev/build/devel/compat/gcc-canadian-cross/x86_64-bob_isolation-linux-gnu/1/workspace/build/x86_64-bob_compat-linux-gnu/libstdc++-v3/include/x86_64-bob_compat-linux-gnu/bits/c++config.h:533,
                 from /home/mhaase/fdt.bobrecipes/dev/build/devel/compat/gcc-canadian-cross/x86_64-bob_isolation-linux-gnu/1/workspace/build/x86_64-bob_compat-linux-gnu/libstdc++-v3/include/cassert:43,
                 from /home/mhaase/fdt.bobrecipes/dev/src/devel/compat/gcc/1/workspace/libstdc++-v3/include/precompiled/stdc++.h:33:
/usr/include/features-time64.h:21:10: fatal error: bits/timesize.h: No such file or directory
 #include <bits/timesize.h>
          ^~~~~~~~~~~~~~~~~

btw: on our jenkins it works, maybe because of a more matching (older) system (toolchain).

UPDATE:
the canadian cross thing seems to be an official special case.

no idea what this means, but maybe we could patch the sources of libstdc++-v3's configure files:

- GLIBCXX_INCLUDES="$GLIBCXX_INCLUDES -I\${includedir}
+ GLIBCXX_INCLUDES="$GLIBCXX_INCLUDES -I=\${includedir}

Thanks for the hints. Turns out to be a known problem: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71212

With the fix in #187 applied, I cannot reproduce the issue. Can you double check on your side as well?