Header search order problem

David Aldrich david.aldrich.ntml@gmail.com
Wed Sep 18 12:06:00 GMT 2019


Hi
One of our Ubuntu 16.04 systems has started failing a compilation today.
This compilation has succeeded previously.  The failure is:

$ g++ -c -std=c++14 -Wall -pedantic -m64 -march=native -I../Kernel
-I/net/simdata/Hudson_OpenSourceLibs/Boost/ -fpic -O3
../StarLibs/StdStars/ArithmeticCoding.cpp -o _gnuRelease/ArithmeticCoding.o
cc1plus: fatal error:
/net/simdata/Hudson_OpenSourceLibs/Boost/stdc-predef.h: Input/output error
compilation terminated.

If I exclude the  -I/net/simdata ... (which is a mounted drive) the
compilation succeeds without failure.

For the failure case, the search order is:

ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/5"
ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory
"/usr/lib/gcc/x86_64-linux-gnu/5/../../../../x86_64-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 ../Kernel
 /net/simdata/Hudson_OpenSourceLibs/Boost/
 /usr/include/c++/5
 /usr/include/x86_64-linux-gnu/c++/5
 /usr/include/c++/5/backward
 /usr/lib/gcc/x86_64-linux-gnu/5/include
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed
 /usr/include/x86_64-linux-gnu
 /usr/include
End of search list.

And the file in question is indeed found at:

$ ls /usr/include/stdc-predef.h
/usr/include/stdc-predef.h

The mount seems to be working ok:

$ ls /net/simdata/Hudson_OpenSourceLibs/Boost/rel-1.69.0/boost/
accumulators             dll.hpp                       make_unique.hpp
           random.hpp
align                    dynamic_bitset                math
          range
etc.

I don't understand why gcc is complaining that  stdc-predef.h is not found
on the mounted drive and is failing to find it in /usr/include.

Can you help please?

Best regards

David



More information about the Gcc-help mailing list