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>
