Date: Wed, 9 Nov 2016 07:58:28 -0800 From: Mark Millard <markmi@dsl-only.net> To: FreeBSD Toolchain <freebsd-toolchain@freebsd.org>, FreeBSD PowerPC ML <freebsd-ppc@freebsd.org> Subject: c++ (g++) from base/gcc (via cross build) does not find C++ standard headers, such as cstdlib Message-ID: <5D62C0E6-E6B7-42F5-B74B-8F555C154449@dsl-only.net>
next in thread | raw e-mail | index | archive | help
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 >=20 > 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 = = =20 > /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) =3D 1309 = (0x51d) > 95852: = lstat("/usr/lib/gcc/powerpc64-portbld-freebsd12.0/5.4.0/include/cstdlib",0= xffffffffffffba20) 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/cstd= lib",0xffffffffffffba20) ERR#2 'No such file or directory' > 95852: = stat("/usr/lib/gcc/powerpc64-portbld-freebsd12.0/5.4.0/include-fixed/cstdl= ib.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/../../../../powerpc= 64-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) =3D 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). =3D=3D=3D Mark Millard markmi at dsl-only.net
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5D62C0E6-E6B7-42F5-B74B-8F555C154449>