Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Bug#1060233: libc6: Missing libdl.so

1 view
Skip to first unread message

Paul Szabo

unread,
Jan 7, 2024, 7:00:05 PMJan 7
to
Package: libc6
Version: 2.36-9+deb12u3
Severity: normal

At bookworm, libdl.so is missing. The file
/usr/lib/x86_64-linux-gnu/libdl.so.2
is provided, but there is no symlink
.../libdl.so -> .../libdl.so.2

Easily corrected with command:
ln -s libdl.so.2 /usr/lib/x86_64-linux-gnu/libdl.so

At bullseye, libdl.so.2 was in package libc6, while the symlink libdl.so
was in libc6-dev (which seems somewhat wrong already).

Cheers, Paul

Paul Szabo p...@maths.usyd.edu.au www.maths.usyd.edu.au/u/psz
School of Mathematics and Statistics University of Sydney Australia


-- System Information:
Debian Release: 12.4
APT prefers stable-security
APT policy: (500, 'stable-security'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 6.5+pk12.50 (SMP w/64 CPU threads; PREEMPT)
Locale: LANG=C.UTF-8, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages libc6 depends on:
ii libgcc-s1 12.2.0-14

Versions of packages libc6 recommends:
ii libidn2-0 2.3.3-1+b1

Versions of packages libc6 suggests:
ii debconf [debconf-2.0] 1.5.82
ii glibc-doc 2.36-9+deb12u3
ii libc-l10n 2.36-9+deb12u3
ii libnss-nis 3.1-4
ii libnss-nisplus 1.3-4
ii locales 2.36-9+deb12u3

-- debconf information:
* libraries/restart-without-asking: true
glibc/kernel-not-supported:
glibc/disable-screensaver:
* glibc/restart-failed:
* glibc/upgrade: true
glibc/kernel-too-old:
glibc/restart-services:

Aurelien Jarno

unread,
Jan 7, 2024, 7:20:03 PMJan 7
to
Hi,

On 2024-01-08 10:39, Paul Szabo wrote:
> Package: libc6
> Version: 2.36-9+deb12u3
> Severity: normal
>
> At bookworm, libdl.so is missing. The file
> /usr/lib/x86_64-linux-gnu/libdl.so.2
> is provided, but there is no symlink
> .../libdl.so -> .../libdl.so.2
>
> Easily corrected with command:
> ln -s libdl.so.2 /usr/lib/x86_64-linux-gnu/libdl.so
>
> At bullseye, libdl.so.2 was in package libc6, while the symlink libdl.so
> was in libc6-dev

Starting with glibc 2.34, libdl is an empty library. Therefore only a
libdl.a is provided to support linking with -ldl.

> (which seems somewhat wrong already).

No, the .so symlink has to be in the -dev package, according to Debian
Policy 8.4.

Regards
Aurelien

--
Aurelien Jarno GPG: 4096R/1DDD8C9B
aure...@aurel32.net http://aurel32.net

Aurelien Jarno

unread,
Jan 8, 2024, 3:30:04 PMJan 8
to
On 2024-01-08 12:24, Paul Szabo wrote:
> Dear Aurelien,
>
> > Starting with glibc 2.34, libdl is an empty library. Therefore only a
> > libdl.a is provided to support linking with -ldl.
>
> At bullseye, I explicitly needed to use libdl e.g. with constructs like
>
> export LD_LIBRARY_PATH=/somewhere
> export LD_PRELOAD='libdl.so gconf_client_get_string.so'
>
> with code using dlopen() to then replace (modify?) library calls.
> You suggest that there is no longer a need to explicitly preload libdl:
> great, will simplify all my instances. (Until then, the useless symlink
> allows the scripts to work as before.)

It's not clear to me what is this gconf_client_get_string.so and why
libdl.so need to be preloaded before. It could be because
gconf_client_get_string.so is not properly linked.

In any case, that should not be needed anymore, and I guess a try should
confirm that.

> Also: why provide the "empty" libdl.so.2 object, still?

It's empty in the sense it doesn't provide any function, given they have
all been moved to libc.so.6. But some binaries still reference it
because they haven't been rebuilt since the change, and we need to
ensure they still work.
0 new messages