On 04-05-18 14:43, Ludovic Courtès wrote: > Hi, > > Giel van Schijndel <g...@mortis.eu> skribis: > >> On 09-03-18 13:42, Ludovic Courtès wrote: >>> julien lepiller <jul...@lepiller.eu> skribis: >>> >>>> I'm trying to build a software that requires gcc>=7.2. Unfortunately, >>>> the process crashes and ends with: >>>> >>>> /gnu/store/a4vwdk8r6p6l2mnffz4yaqlr1z6z6w3r-gcc-7.3.0/include/c++/cstdlib:75:15: >>>> fatal error: stdlib.h: No such file or directory. >>> On IRC Marius mentioned this bug report: >>> >>> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70129#c3 >>> >>> Note that we use C_INCLUDE_PATH, which is equivalent to ‘-isystem’. >> This is biting me too for a C++17 project I'm trying to build. > Marius, do you have a link to the exact change in GCC that caused this > regression? > > I find it hard to believe that a fix would necessarily “slow everything > down”, as Jakub put it in the report above. > > Also it seems clear that in Guix we’ll want a solution that’s not > CMake-specific.
Obviously, I wasn't suggesting that. I was just suggesting a similar approach. > Giel, does the patch below work for you? No, just by itself it doesn't. It does add 'CPATH', but doesn't drop 'C_INCLUDE_PATH' and 'CPLUS_INCLUDE_PATH'. With this added to my package preprocessing succeeds: > (add-before 'configure 'fixgcc7 > (lambda _ > (unsetenv "C_INCLUDE_PATH") > (unsetenv "CPLUS_INCLUDE_PATH"))) But I can no longer build with warnings treated as error at that point, because I'm getting a ton of warnings inside headers of dependencies now. With either of '-Wno-error' or '-w' I can build now. Would it be possible to filter the list of directories added to these environment variables to exclude those already present in GCC's default search path? I believe that should solve it in all cases, not just the CMake one. I'm currently trying to produce a minimal test case, I'll post it here when I succeed. -- Met vriendelijke groet, With kind regards, Giel van Schijndel