Hello, Thanks for the report.
Ontje Lünsdorf <oluensd...@mailbox.org> writes: > Hi all, > > > I've problems compiling LLVM manually with the gcc-toolchain. > sanitizer_posix_libcdep.cpp is build with -nostdinc++ and fails to find > bits/c++config.h. > > I think the issue can be reproduced with this example test.cpp: > > #include <stdlib.h> > int main() { return 0; } I am able to repro with this test case on Guix System, both in and outside of a guix environment --pure. > > c++ from archlinux compiles that file, while c++ from gcc-toolchain doesn't: > > $ c++ -nostdinc++ test.cpp > $ guix environment --ad-hoc gcc-toolchain -- c++ -nostdinc++ test.cpp > In file included from > /gnu/store/nh9r04xhzmbk3hjsj92yhlhmjsp521g4-profile/include/c++/stdlib.h:36, > from test.cpp:1: > /gnu/store/nh9r04xhzmbk3hjsj92yhlhmjsp521g4-profile/include/c++/cstdlib:41:10: > fatal error: bits/c++config.h: No such file or directory > 41 | #include <bits/c++config.h> > | ^~~~~~~~~~~~~~~~~~ > compilation terminated. > > Is this expected and I'm doing something wrong? The issue seems to be with the (automatically set by Guix) CPLUS_INCLUDE_PATH environment variable. The following works as expected: guix environment --pure --ad-hoc gcc-toolchain -- CPLUS_INCLUDE_PATH= c++ -nostdinc++ test.cpp It seems that -nostdinc++ controls whether GCC decides to add the C++ std include paths internally, but it still looks in the paths indicated by CPLUS_INCLUDE_PATH. Guix sets CPLUS_INCLUDE_PATH and friends because there is no system-wide /include. I'm not sure how expected this specific behavior is, though... > > Thanks & best regards, > Ontje Hope that helps, Sarah