Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Apr 2024 12:28:24 -0400
From:      Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
To:        Warner Losh <imp@bsdimp.com>
Cc:        FreeBSD Hackers <freebsd-hackers@freebsd.org>
Subject:   Re: Upgrading -RELEASE to -CURRENT
Message-ID:  <ZiaQKHw57SDqVxqo@satis>
In-Reply-To: <ZiMi3Zb1jVrPSOQL@satis>
References:  <ZiL0LHM3i2rZGtvr@satis> <ZiMHdH4qu2ovfd1M@int21h> <CANCZdfr%2BAkReL0hGnZODTdovRD%2BFPhWKtirNX4g3nk1GCLuSFQ@mail.gmail.com> <ZiMi3Zb1jVrPSOQL@satis>

next in thread | previous in thread | raw e-mail | index | archive | help
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'



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?ZiaQKHw57SDqVxqo>