Libraries seem to be missing/broken: libgnat & libgnarl (libgcc)

A recent update seems to have broken libgnat and libgnarl, as I had them at some point in the past. They appear to be part of libgcc, which I have installed and reinstalled to see if that fixed the issue. However they aren’t present in /lib64/. I also noticed broken links to the /lib64/ locations in /lib/gcc/x86_64-redhat-linux/11/adalib/.

I’m on an updated version of 9.5.

You can ask from dnf, where those things could come from:

dnf provides */libgnat\*
dnf provides */libgnarl\*

dnf finds a libgnat package, but then seems to think libgnat is satisfied by libgcc:

[]> sudo dnf provides */libgnat\*
Last metadata expiration check: 0:28:12 ago on Fri 21 Feb 2025 11:51:37 AM EST.
libgnat-11.5.0-3.el9.x86_64 : GNU Ada 83, 95, 2005 and 2012 runtime shared libraries
Repo        : epel
Matched from:
Filename    : /usr/lib64/libgnat-11.so
[]> sudo dnf install libgnat
Last metadata expiration check: 0:28:34 ago on Fri 21 Feb 2025 11:51:37 AM EST.
Package libgcc-11.5.0-5.el9_5.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!

Maybe an issue with EPEL?

As root:

If it’s already installed you can try
rpm --verify libgnat

if it’s not installed, you can see it provides the lib files here
dnf --enablerepo “epel” repoquery --list libgnat-11.5.0-3.el9.x86_64

/usr/lib64/libgnarl-11.so
/usr/lib64/libgnat-11.so

rpm at least reports that it is not installed:

[]> sudo rpm --verify libgnat
package libgnat is not installed
[]> sudo dnf --enablerepo "epel" repoquery --list libgnat-11.5.0-3.el9.x86_64
usr/lib/.build-id
/usr/lib/.build-id/c3
/usr/lib/.build-id/c3/5530ad1607c7ef4f8ab158f8a2fa872fcc8403
/usr/lib/.build-id/f6
/usr/lib/.build-id/f6/a45624a683980382ecfdbc822cfb5a34eced28
/usr/lib64/libgnarl-11.so
/usr/lib64/libgnat-11.so

Those libs don’t exist in /usr/lib64/. I tried installing the libgnat package specifically:

[]> sudo dnf install libgnat-11.5.0-3.el9.x86_64
Error: 
 Problem: package libgnat-11.5.0-3.el9.x86_64 from epel requires libgcc_s.so.1()(64bit), but none of the providers can be installed
  - package libgnat-11.5.0-3.el9.x86_64 from epel requires libgcc_s.so.1(GCC_3.0)(64bit), but none of the providers can be installed
  - package libgnat-11.5.0-3.el9.x86_64 from epel requires libgcc_s.so.1(GCC_3.3)(64bit), but none of the providers can be installed
  - package libgnat-11.5.0-3.el9.x86_64 from epel requires libgcc_s.so.1(GCC_4.2.0)(64bit), but none of the providers can be installed
  - installed package libgcc-11.5.0-5.el9_5.x86_64 obsoletes libgnat < 11.5.0-5.el9_5 provided by libgnat-11.5.0-3.el9.x86_64 from epel
  - package libgcc-11.5.0-5.el9_5.x86_64 from baseos obsoletes libgnat < 11.5.0-5.el9_5 provided by libgnat-11.5.0-3.el9.x86_64 from epel
  - conflicting requests
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

I think it’s saying your installed version of libgcc is “too new”.

Looks like Rocky 9.5 originally had 11.5.0-2.el9, but then it got updated.

I’d rather say that EPEL has not yet build a new libgnat and what it has is “too old”.
Report to EPEL.

I was looking into how to go about reporting this to EPEL, and it seems an issue has already been created:
https://bugzilla.redhat.com/show_bug.cgi?id=2346251

1 Like