Date: Tue, 20 Dec 2022 16:24:21 -0800 From: Mark Millard <marklmi@yahoo.com> To: zseri.devel+fbsd@ytrizja.de, freebsd-current <freebsd-current@freebsd.org> Cc: FreeBSD Toolchain <freebsd-toolchain@freebsd.org> Subject: RE: all_subdir_lib/libclang_rt build failure (libc++ ld error) Message-ID: <EB16D73A-3B10-4F5D-846C-D6EFC75FF85F@yahoo.com> References: <EB16D73A-3B10-4F5D-846C-D6EFC75FF85F.ref@yahoo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Alain Zscheile <zseri.devel+fbsd_at_ytrizja.de> wrote on Date: Tue, 20 Dec 2022 23:12:40 UTC : > I encountered a build failure while trying to build fbsd' > src.git commit ae521fda895ff0b5076904f08ec92e3c60d53701 That commit is from main: =E2=80=A2 git: ae521fda895f - main - stress2: Added link to problem = found Peter Holm > with `make -j4 buildworld` on an FreeBSD 13.1 system. So this was some 13.1 variant building at ae521fda895f of main [so: 14]. That was not obvious on a first read of the report. Sort of a self-hosted version upgrade cross-build. For reference (example local installs): # find /usr/obj/DESTDIRs/*/ -name libc++.so.1 -exec ls -C1 {} \; | grep = -v lib32 /usr/obj/DESTDIRs/13S-amd64-poud-bulk_a/usr/lib/libc++.so.1 /usr/obj/DESTDIRs/13_1R-amd64-poud-bulk_a/usr/lib/libc++.so.1 /usr/obj/DESTDIRs/main-amd64-poud-bulk_a/lib/libc++.so.1 Note that only main has main-amd64-poud-bulk_a/lib/libc++.so.1 and it does not have a main-amd64-poud-bulk_a/usr/lib/libc++.so.1 . As for lib32: # find /usr/obj/DESTDIRs/*/ -name libc++.so.1 -exec ls -C1 {} \; | grep = lib32 /usr/obj/DESTDIRs/13S-amd64-poud-bulk_a/usr/lib32/libc++.so.1 /usr/obj/DESTDIRs/13_1R-amd64-poud-bulk_a/usr/lib32/libc++.so.1 /usr/obj/DESTDIRs/main-amd64-poud-bulk_a/usr/lib32/libc++.so.1 So all 3 have *-amd64-poud-bulk_a/usr/lib32/libc++.so.1 and none have a *-amd64-poud-bulk_a/lib32/libc++.so.1 . > <snip> > --- all_subdir_lib/libclang_rt --- > ld: error: /usr/obj/usr/src/amd64.amd64/tmp/usr/lib/libc++.so:2: > cannot find /usr/lib/libc++.so.1 inside > /usr/obj/usr/src/amd64.amd64/tmp > >>> GROUP ( /usr/lib/libc++.so.1 /usr/lib/libcxxrt.so ) > >>> ^ > c++: error: linker command failed with exit code 1 > (use -v to see invocation) >=20 > make[2]: stopped in /usr/src > </snip> >=20 > The stated file is indeed not present, and resides in .../tmp/lib > instead of .../tmp/usr/lib. tmp/lib/libc++.so.1 would be a main [so: 14] style path. tmp/usr/lib/libc++.so.1 would be a 13.1 style path. The build appears to have which type of context applies confused. > It appears that the .so linker script > should either be patched (to point to /lib instead of /usr/lib) or > a symlink for the .so.1 file should be created. > (at least the corresponding c++ command line doesn't indicate > anything to the contrary of that afaik) >=20 > I don't know when this problem was introduced and it might be the > case that this bootstrapping problem only occurs when the "outside > system" (in this case FreeBSD 13.1) has an older version of clang. It is not clang that is the issue, it is that FreeBSD changed the path used for libc++.so.1 . (main avoids needing more mounts already being actie place when libc++.so.1 is used in some common configurations, usr/lib/ not being available yet. > (as I'm not really sure when the bootstrapping process actually > kicks in, as it appears to have omitted building a linker when it > detected that the current one is recent enough/matches) > It might also be that case that this is just the result of a > missing dependency, which messes with parallel building, idk... Looks to me like whatever vintage/variant of 13.1 it was did not yet(?) have logic for making sure that it provides for builds of main [so: 14] that have the new libc++.so.1 style path. Nor did the main materials have logic to make it work when built from an older context, such as a 13.1 context. At least one of the two must happen to allow 13.1 to build a 14. Having main [so: 14] deal with it, if possible, could possibly also deal with 13.0 vintages/variants without adjusting 13.0 materials. =3D=3D=3D Mark Millard marklmi at yahoo.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?EB16D73A-3B10-4F5D-846C-D6EFC75FF85F>