1

It seems starting in ubuntu 22.04 the execute bit is no longer set on /lib/x86_64-linux-gnu/libc.so.6. This throws off some scripts and methods to find out the glibc version being used. Could that bit please be added?

rei
  • 11

1 Answers1

1
$ file /lib/x86_64-linux-gnu/libc.so.6
/lib/x86_64-linux-gnu/libc.so.6: ELF 64-bit LSB shared object, x86-64, 
version 1 (GNU/Linux), dynamically linked, 
interpreter /lib64/ld-linux-x86-64.so.2, 
BuildID[sha1]=69389d485a9793dbe873f0ea2c93e02efaa9aa3d, 
for GNU/Linux 3.2.0, stripped

find out the glibc version being used

These both show the version:

ldd --version
ldd `which ls` | grep libc

but if you really want it exectable:

sudo chmod 744 /lib/x86_64-linux-gnu/libc.so.6

and it will show:

GNU C Library (Ubuntu GLIBC 2.35-0ubuntu3.1) stable release version 2.35.
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 11.2.0.
libc ABIs: UNIQUE IFUNC ABSOLUTE
For bug reporting instructions, please see:
<https://bugs.launchpad.net/ubuntu/+source/glibc/+bugs>.

I would suggest to search bugreports or file a bugreport to find out why this is done (I did not find a reason yet but assume it does not need to be executable and as such was deemed wrong as there are better methods than to assume /lib/x86_64-linux-gnu/libc.so.6 exists (like ldd is independent of a version)).

Rinzwind
  • 299,756
  • Good idea, will file a bug report. There are alternatives as you describe but LSF for instance determines glibc version via this execute bit ... – rei Sep 08 '22 at 08:18