Re: all_subdir_lib/libclang_rt build failure (libc++ ld error)
- In reply to: Mark Millard : "RE: all_subdir_lib/libclang_rt build failure (libc++ ld error) "
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 21 Dec 2022 13:41:07 UTC
Hello,
On 21.12.22 01:24, Mark Millard wrote:
> 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:
>
> • 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 .
>
> 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 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.
thanks for the explanation.
> Looks to me like whatever vintage/variant of 13.1 it was did
"vintage" I upgraded to the latest stable/13 commit before
attempting the jump to main.
> 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.
To somewhat fix it I ran: `make cleanworld`,
then reran `make -j4 buildworld`, while that was in progress
I created a symlink from .../tmp/usr/lib/libc++.so.1 to
`../../lib/libc++.so.` which resulted in a successfully finishing
build.
Regards,
Alain Zscheile