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

From: John Baldwin <jhb_at_FreeBSD.org>
Date: Thu, 30 Dec 2021 19:59:18 UTC
On 12/30/21 11:52 AM, John Baldwin wrote:
> On 12/30/21 8:58 AM, Cy Schubert wrote:
>> 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
> 
> I suspect that NO_CLEAN builds are broken.  You can try removing
> /usr/obj/<mumble>/amd64.amd64/usr/lib/libc++/libc++.ld and building again to see
> if that fixes it?  If so, we might need another NO_CLEAN fixup rule to delete
> that file it has has the wrong path.

This patch might fix this automatically:

diff --git a/tools/build/depend-cleanup.sh b/tools/build/depend-cleanup.sh
index b6ad7701c32b..d2e31dab31be 100755
--- a/tools/build/depend-cleanup.sh
+++ b/tools/build/depend-cleanup.sh
@@ -78,3 +78,10 @@ fi
  clean_dep   cddl/lib/libspl atomic S
  # 20211207  cbdec8db18b5    switch to libthr-friendly pdfork
  clean_dep   lib/libc        pdfork S
+
+# 20211230  5e6a2d6eb220    libc++.so.1 path changed in ldscript
+if [ -e "$OBJTOP"/lib/libc++/libc++.ld ] && \
+    fgrep -q "/usr/lib/libc++.so" "$OBJTOP"/lib/libc++/libc++.ld; then
+       echo "Removing old libc++ linker script"
+       rm -f "$OBJTOP"/lib/libc++/libc++.ld
+fi


-- 
John Baldwin