Re: git: 5e6a2d6eb220 - main - Reapply: move libc++ from /usr/lib to /lib

From: Mark Millard via freebsd-current <freebsd-current_at_freebsd.org>
Date: Thu, 30 Dec 2021 19:52:53 UTC
> This commit results in a different error.
> 
> ld: error: /export/obj/opt/src/git-src/amd64.amd64/tmp/usr/lib/libc++.so:2: 
> cannot find /usr/lib/libc++.so.1 inside /export/obj/opt/src/git-src/amd64.am
> d64/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)
> *** [libclang_rt.asan-x86_64.so.full] Error code 1
> 
> make[6]: stopped in /opt/src/git-src/lib/libclang_rt/asan_dynamic

Working in a system that had the file removed and then
manually put back after the upgrade, what I see after this
new rebuild (not installed) is:

# grep -r 'GROUP.*/lib.*/libc++.so' /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/
/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/lib/libc++/libc++.ld:GROUP ( /lib/libc++.so.1 /usr/lib/libcxxrt.so )
/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/obj-lib32/tmp/usr/lib32/libc++.so:GROUP ( /usr/lib32/libc++.so.1 /usr/lib32/libcxxrt.so )
/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/obj-lib32/lib/libc++/libc++.ld:GROUP ( /usr/lib32/libc++.so.1 /usr/lib32/libcxxrt.so )
grep: /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERIC-NODBG/modules/usr/main-src/sys/modules/twa/opt_twa.h: No such file or directory
grep: /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/include/dev/ic/esp.h: No such file or directory
/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/lib/libc++.so:GROUP ( /lib/libc++.so.1 /usr/lib/libcxxrt.so

That has /lib/libc++.so.1 (outside lib32 materials).

But it also has: /tmp/usr/lib/libc++.so and is that a problem?

And, checking on when the files were modified:

# ls -Tld `grep -rl 'GROUP.*/lib.*/libc++.so' /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/`
grep: /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERIC-NODBG/modules/usr/main-src/sys/modules/twa/opt_twa.h: No such file or directory
grep: /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/include/dev/ic/esp.h: No such file or directory
-rw-r--r--  1 root  wheel  64 Dec 30 08:30:43 2021 /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/lib/libc++/libc++.ld
-rw-r--r--  1 root  wheel  72 Dec 30 08:22:11 2021 /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/obj-lib32/lib/libc++/libc++.ld
-r--r--r--  1 root  wheel  72 Aug 19 03:09:03 2021 /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/obj-lib32/tmp/usr/lib32/libc++.so
-r--r--r--  1 root  wheel  64 Dec 30 08:30:43 2021 /usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/tmp/usr/lib/libc++.so

So lib/libc++/libc++.ld and tmp/usr/lib/libc++.so both had been
updated.

I used META_MODE.

So I do not get a full match to what is reported but the use of
the tmp/usr/lib/libc++.so path does seem odd.

I've not looked at what a system from before the first move of
libc++.so.1 does. I may be able to check that in a while.


===
Mark Millard
marklmi at yahoo.com