Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 10 Mar 2025 08:49:55 +0100
From:      Matthias Apitz <guru@unixarea.de>
To:        Robert Clausecker <fuz@fuz.su>
Cc:        freebsd-current@freebsd.org
Subject:   Re: Creating poudriere jail fails with libmd.so.6 not found
Message-ID:  <Z86Zo7RL6Z2LgJt0@c720-1400094>
In-Reply-To: <Z8WNQR53omjSwDXe@fuz.su>
References:  <Z8VUoEgcSaQVpGNb@c720-1400094> <Z8WNQR53omjSwDXe@fuz.su>

next in thread | previous in thread | raw e-mail | index | archive | help
El día lunes, marzo 03, 2025 a las 12:06:41p. m. +0100, Robert Clausecker escribió:

> The simplest solution is to clear the object directory and do a fresh world build.
> libmd.so.6 was turned into libmd.so.7 as part of a recent API change.  It should
> also work to link libmd.so.7 to libmd.so.6.
> 
> Yours,
> Robert Clausecker

I did so and investigated the problem with an installation into DESTDIR.
Here are my findings:

# make installworld  DESTDIR=/home/guru/150.root
make[1]: "/usr/obj/usr/src/amd64.amd64/toolchain-metadata.mk" line 1: Using cached toolchain metadata from build at jet on Mon Mar  3 09:03:29 CET 2025
--------------------------------------------------------------
>>> Install check world started on Mon Mar 10 08:16:20 CET 2025
--------------------------------------------------------------
mkdir -p /tmp/install.H59PpUrQ1d
...
Required library libmd.so.7 not found.
*** Error code 1

Stop.

I investigated the problem (that's why I used DESTDIR to not
damage the system to be installed to).

The problem is that two tools, 'sort' and 'mtree'
require a shared lib libmd.so.7 which is not there in
the moment of make installworld:

/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/sbin/sort
	libmd.so.7 => not found (0)
	libc.so.7 => /lib/libc.so.7 (0xe6e08064000)
	[vdso] (0xe6e06c75000)

/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/sbin/mtree
	libmd.so.7 => not found (0)
	libutil.so.9 => /lib/libutil.so.9 (0x10621f601000)
	libc.so.7 => /lib/libc.so.7 (0x106220ca7000)
	[vdso] (0x10621d82c000)

# find /lib /usr/lib -name libmd.so.7
(nothing)

This shared libmd.so.7 lib will perhaps be istalled later by
the 'make installworld', at least it is in the tree /usr/obj/...

# find /usr/obj -name libmd.so.7
/usr/obj/usr/src/amd64.amd64/tmp/usr/lib32/libmd.so.7
/usr/obj/usr/src/amd64.amd64/tmp/lib/libmd.so.7
/usr/obj/usr/src/amd64.amd64/lib/libmd/libmd.so.7
/usr/obj/usr/src/amd64.amd64/obj-lib32/lib/libmd/libmd.so.7


a workaround is before 'make installworld' to run::

# cp -p /usr/obj/usr/src/amd64.amd64/tmp/lib/libmd.so.7 /lib

With this the

# make installworld  DESTDIR=/home/guru/150.root
...
>>> Installing everything completed on Mon Mar 10 08:34:13 CET 2025
>>> Install world completed in 398 seconds, ncpu: 2
--------------------------------------------------------------
      397,72 real       219,14 user       162,06 sys


runs fine.

	matthias

-- 
Matthias Apitz, ✉ guru@unixarea.de, http://www.unixarea.de/ +49-176-38902045
Public GnuPG key: http://www.unixarea.de/key.pub



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