This was noticed via trying to build benchmarks/bonnie++ (via portmaster):

> --- bon_csv2html.o ---
> c++ -pipe -g -fno-strict-aliasing  -DNDEBUG -Wall -W -Wshadow -Wpointer-arith 
> -Wwrite-strings -pedantic -ffor-scope -Wcast-align -Wsign-compare 
> -Wpointer-arith -Wwrite-strings -Wformat-security -Wswit
> ch-enum -Winit-self    -pipe -g -fno-strict-aliasing  -c bon_csv2html.cpp -o 
> bon_csv2html.o
. . .
> --- bon_csv2html.o ---
> bon_csv2html.cpp:2:19: fatal error: cstdlib: No such file or directory
> compilation terminated.
> *** [bon_csv2html.o] Error code 1
> 
> make[2]: stopped in 
> /usr/obj/portswork/usr/ports/benchmarks/bonnie++/work/bonnie++-1.97.2
> --- bonnie++.o ---
> bonnie++.cpp:31:18: fatal error: algo.h: No such file or directory
> compilation terminated.

In the file system there are:

> # find / -name "cstdlib" -print | more                                        
>                                                                               
>                                            
> /usr/include/c++/v1/tr1/cstdlib
> /usr/include/c++/v1/cstdlib
> /usr/src/contrib/libc++/include/cstdlib
> /usr/src/contrib/libstdc++/include/tr1/cstdlib

Using a simpler program:

> # c++ main.cc
> main.cc:1:19: fatal error: cstdlib: No such file or directory
> compilation terminated.

"truss -f c++ main.cc" reports for cstdlib references:

> # truss -f c++ main.cc 2>&1 | grep cstdlib
> 95852: read(3,"#include <cstdlib>\n\n// Avoid n"...,1309) = 1309 (0x51d)
> 95852: 
> lstat("/usr/lib/gcc/powerpc64-portbld-freebsd12.0/5.4.0/include/cstdlib",0xffffffffffffba20)
>  ERR#2 'No such file or directory'
> 95852: 
> stat("/usr/lib/gcc/powerpc64-portbld-freebsd12.0/5.4.0/include/cstdlib.gch",0xffffffffffffcbd8)
>  ERR#2 'No such file or directory'
> 95852: 
> openat(AT_FDCWD,"/usr/lib/gcc/powerpc64-portbld-freebsd12.0/5.4.0/include/cstdlib",O_RDONLY|O_NOCTTY,00)
>  ERR#2 'No such file or directory'
> 95852: 
> lstat("/usr/lib/gcc/powerpc64-portbld-freebsd12.0/5.4.0/include-fixed/cstdlib",0xffffffffffffba20)
>  ERR#2 'No such file or directory'
> 95852: 
> stat("/usr/lib/gcc/powerpc64-portbld-freebsd12.0/5.4.0/include-fixed/cstdlib.gch",0xffffffffffffcbd8)
>  ERR#2 'No such file or directory'
> 95852: 
> openat(AT_FDCWD,"/usr/lib/gcc/powerpc64-portbld-freebsd12.0/5.4.0/include-fixed/cstdlib",O_RDONLY|O_NOCTTY,00)
>  ERR#2 'No such file or directory'
> 95852: lstat("/usr/include/cstdlib",0xffffffffffffba20) ERR#2 'No such file 
> or directory'
> 95852: 
> stat("/usr/lib/gcc/powerpc64-portbld-freebsd12.0/5.4.0/../../../../powerpc64-portbld-freebsd12.0/include/cstdlib.gch",0xffffffffffffcbd8)
>  ERR#2 'No such file or directory'
> 95852: 
> openat(AT_FDCWD,"/usr/lib/gcc/powerpc64-portbld-freebsd12.0/5.4.0/../../../../powerpc64-portbld-freebsd12.0/include/cstdlib",O_RDONLY|O_NOCTTY,00)
>  ERR#2 'No such file or directory'
> 95852: read(4,"#include <cstdlib>\n\n// Avoid n"...,32768) = 1309 (0x51d)
> main.cc:1:19: fatal error: cstdlib: No such file or directory

So in finding no cstdlib c++ (g++) looks for each of:

> /usr/lib/gcc/powerpc64-portbld-freebsd12.0/5.4.0/include/cstdlib
> /usr/lib/gcc/powerpc64-portbld-freebsd12.0/5.4.0/include/cstdlib.gch
> /usr/lib/gcc/powerpc64-portbld-freebsd12.0/5.4.0/include-fixed/cstdlib
> /usr/lib/gcc/powerpc64-portbld-freebsd12.0/5.4.0/include-fixed/cstdlib.gch
> /usr/include/cstdlib
> /usr/powerpc64-portbld-freebsd12.0/include/cstdlib.gch
> /usr/powerpc64-portbld-freebsd12.0/include/cstdlib

none of which match the file system. No trivially small number of symbolic 
links in the file system can cover making all the involved paths for various 
headers work (each "include" already exists and has files).

===
Mark Millard
markmi at dsl-only.net

_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
To unsubscribe, send any mail to "[email protected]"

Reply via email to