Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 16 Nov 2023 13:33:12 +0000
From:      Jessica Clarke <jrtc27@freebsd.org>
To:        Dima Panov <fluffy@FreeBSD.org>
Cc:        Konstantin Belousov <kib@FreeBSD.org>, "src-committers@freebsd.org" <src-committers@FreeBSD.org>, "dev-commits-src-all@freebsd.org" <dev-commits-src-all@FreeBSD.org>, "dev-commits-src-main@freebsd.org" <dev-commits-src-main@FreeBSD.org>
Subject:   Re: git: 99132daf6f70 - main - rc.d/ldconfig: Prepend rtld stdlib paths to ldconfig(32)_paths
Message-ID:  <7E6896FA-85A3-41DC-9ECA-1D12B78BDA2E@freebsd.org>
In-Reply-To: <d69be69b-47d4-45b2-932b-c513a651284d@FreeBSD.org>
References:  <202311132339.3ADNdZKF081019@gitrepo.freebsd.org> <d69be69b-47d4-45b2-932b-c513a651284d@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 16 Nov 2023, at 12:44, Dima Panov <fluffy@FreeBSD.org> wrote:
>=20
> Moin-moin!
>=20
>=20
> This cause some errors while running, at least on aarch64, host and =
poudriere jail
>=20
>=20
> # service ldconfig restart
> ELF ldconfig path: /lib /usr/lib /usr/lib/compat /usr/local/lib =
/usr/local/lib/compat/pkg /usr/local/lib/compat/pkg =
/usr/local/lib/e2fsprogs /usr/local/lib/mysql =
/usr/local/lib/perl5/5.38/mach/CORE /usr/local/llvm16/lib
> ELF binary type "9" not known.
> eval: /libexec/ld-elf32.so.1: Exec format error
> 32-bit compatibility ldconfig path: /usr/lib32

Yeah this breaks if the kernel and/or hardware don=E2=80=99t support =
32-bit
compat (not uncommon on modern Arm hardware).

Also, parsing the human-readable output of ld-elf.so.1 -v to determine
the path seems wrong and fragile. Given the above problem I think this
should just be reverted, but if we instead want to press ahead with
something like this (with suitable handling of this case) then we
should really have ld-elf.so.1 produce machine-readable output (which
could just be the space-separated string) for use the rc script, not go
mangling -v=E2=80=99s output. But I really don=E2=80=99t see the issue =
with putting the
paths in the script...

Jess

> On 14.11.2023 02:39, Konstantin Belousov wrote:
>> The branch main has been updated by kib:
>> URL: =
https://cgit.FreeBSD.org/src/commit/?id=3D99132daf6f70cb0cc969c555d3612547=
fa3cf1db
>> commit 99132daf6f70cb0cc969c555d3612547fa3cf1db
>> Author:     John W. O'Brien <john@saltant.com>
>> AuthorDate: 2023-11-12 22:45:27 +0000
>> Commit:     Konstantin Belousov <kib@FreeBSD.org>
>> CommitDate: 2023-11-13 23:39:17 +0000
>>     rc.d/ldconfig: Prepend rtld stdlib paths to ldconfig(32)_paths
>>          Ensure that ldconfig-managed elf and elf32 hints always =
include
>>     the standard library paths that are known independently to rtld.
>>          PR:                     275031
>>     Reviewed by:            kib
>>     MFC after:              2 weeks
>>     Sponsored by:           Saltant Solutions LLC
>>     Differential Revision:  https://reviews.freebsd.org/D42557
>> ---
>>  libexec/rc/rc.d/ldconfig | 5 ++++-
>>  1 file changed, 4 insertions(+), 1 deletion(-)
>> diff --git a/libexec/rc/rc.d/ldconfig b/libexec/rc/rc.d/ldconfig
>> index 178a8a987be4..ecbbca210ea0 100755
>> --- a/libexec/rc/rc.d/ldconfig
>> +++ b/libexec/rc/rc.d/ldconfig
>> @@ -22,7 +22,7 @@ ldconfig_start()
>>   ldconfig=3D${ldconfig_command}
>>   checkyesno ldconfig_insecure && _ins=3D"-i"
>>   if [ -x "${ldconfig_command}" ]; then
>> - _LDC=3D"/lib /usr/lib"
>> + _LDC=3D$(/libexec/ld-elf.so.1 -v | sed -n -e '/^Default lib path =
/s///p' | tr : ' ')
>>   for i in ${ldconfig_local_dirs}; do
>>   if [ -d "${i}" ]; then
>>   _files=3D`find ${i} -type f`
>> @@ -52,6 +52,9 @@ ldconfig_start()
>>   fi
>>   done
>>   _LDC=3D""
>> + if [ -x /libexec/ld-elf32.so.1 ]; then
>> + _LDC=3D$(/libexec/ld-elf32.so.1 -v | sed -n -e '/^Default lib path =
/s///p' | tr : ' ')
>> + fi
>>   for i in ${ldconfig32_paths}; do
>>   if [ -r "${i}" ]; then
>>   _LDC=3D"${_LDC} ${i}"
>=20
> --=20
> Sincerely,
> Dima (fluffy@FreeBSD.org, https://t.me/FluffyBSD)
> (desktop, kde, x11, office, ports-secteam)@FreeBSD team




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?7E6896FA-85A3-41DC-9ECA-1D12B78BDA2E>