Re: Upgrading -RELEASE to -CURRENT

From: Josef 'Jeff' Sipek <jeffpc_at_josefsipek.net>
Date: Mon, 22 Apr 2024 16:28:24 UTC
On Fri, Apr 19, 2024 at 22:05:17 -0400, Josef 'Jeff' Sipek wrote:
...
>     ld-elf.so.1: /lib/libcxxrt.so.1: version CXXABI_1.3.11 required by /lib/libc++.so.1 not found

So, the problem is /lib/libcxxrt.so.1 is *not* getting updated by 'make
installworld' because the newly built library ends up in /usr/lib [1].  Therefore,
the broken system has:

	/lib/libcxxrt.so.1 from 14.0-RELEASE
	/usr/lib/libcxxrt.so.1 from -CURRENT

ld-elf.so finds the one in /lib fails to find the required version
(CXXABI_1.3.11) and terminates.

Workaround:

	# cp /usr/lib/libcxx.so.1 /lib

Even on a working system (i.e., RELEASE -> STABLE -> CURRENT), there are two
libs of different vintages:

root@odin:~ # ls -lh /lib/libcxxrt* /usr/lib/libcxxrt*
-r--r--r--  1 root wheel  105K Mar 23 08:48 /lib/libcxxrt.so.1
-r--r--r--  1 root wheel  350K Apr 18 20:31 /usr/lib/libcxxrt.a
lrwxr-xr-x  1 root wheel   13B Apr 18 20:31 /usr/lib/libcxxrt.so -> libcxxrt.so.1
-r--r--r--  1 root wheel  104K Apr 18 20:31 /usr/lib/libcxxrt.so.1

I'm guessing that moving to 14-STABLE first updates the /lib copy to a version
that includes CXXABI_1.3.11 which makes the subsequent -CURRENT happy enough.

For completeness, a 14.0-RELEASE-p6 has:

jeffpc@satis$ ls -lh /lib/libcxxrt.* /usr/lib/libcxxrt.*
-r--r--r--  1 root wheel  105K Jan 18 21:25 /lib/libcxxrt.so.1
-r--r--r--  1 root wheel  354K Jan 18 21:27 /usr/lib/libcxxrt.a
lrwxr-xr-x  1 root wheel   23B Apr  9  2021 /usr/lib/libcxxrt.so -> ../../lib/libcxxrt.so.1 

I haven't looked at the makefiles to see where things go wrong - I'll try to
take a look today after work (if nobody beats me to it).

Jeff.

[1] installworld invokes 'install -s -o root -g wheel -m 444 -C -S libcxxrt.so.1 /usr/lib'