Unable to launch GDB in Fedora 37 after upgrade from Fedora 36

,

I have just upgraded my system from Fedora 36 to Fedora 37.

But currently it seems the GDB installation is broken on Fedora 37.
Unable to launch gdb, getting following error when trying to execute gdb from terminal.

gdb: error while loading shared libraries: libicudata.so.69: cannot open shared object file: No such file or directory

Can anyone help me fix this on my system?

Welcome to ask :fedora:

Have you updated your system since doing the upgrade? sudo dnf upgrade --refresh

I just checked and F37 uses libicu-71.1-2.fc37.x86_64 so the libicudata.so.69 does not exist. The updated file similar is /usr/lib64/libicudata.so.71.1 You may be able to solve the issue with doing an update, which may update gdb to use the newer library file. If that does not work then possibly creating a link such as
sudo ln -s /usr/lib64/libicudata.so.71.1 /usr/lib64/libicudata.so.69 would work.

Thank you for your response.
I did update my system after upgrade.

I will probably try creating this symlink, for now.
But will probably want the package to be fixed.

Regards,
Ameya

That seems like you may need to file a bug against gdb since it requires a library file that does not exist with an updated F37 system…

Perhaps you some old version installed. libicudata is directly required by

libicu-71.1-2.fc37.x86_64
source-highlight-3.1.9-15.fc37.x86_64
boost-regex-1.78.0-9.fc37.x86_64
libicu-71.1-2.fc37.x86_64

which are directly or indirectly used by gdb.

Also check the version of gdb-12.1-6.fc37.x86_64.

It seems the gdb still requires the old libicu* libs:
Here the output of the following command:

$ ldd `which gdb` | grep icu
	libicudata.so.69 => /lib64/libicudata.so.69 (0x00007f1431200000)
	libicui18n.so.69 => /lib64/libicui18n.so.69 (0x00007f1430e00000)
	libicuuc.so.69 => /lib64/libicuuc.so.69 (0x00007f1430c03000)

But on the system the libicu* libraries have the following versions: 71
Here is the listing for /usr/lib64
I have created symlinked version .69 to satisfy the dependency for gdb as per the first comment.

$ ls -al /lib64/libicu* | grep 69
lrwxrwxrwx. 1 root root       27 Dec 18 10:19 /lib64/libicudata.so.69 -> /usr/lib64/libicudata.so.71
lrwxrwxrwx. 1 root root       27 Dec 18 10:19 /lib64/libicui18n.so.69 -> /usr/lib64/libicui18n.so.71
lrwxrwxrwx. 1 root root       25 Dec 18 10:20 /lib64/libicuuc.so.69 -> /usr/lib64/libicuuc.so.71

-Ameya

To me that suggests that you should file a bug against gdb on F37 since its dependency does not match the available libicu libraries.

Bug reported:
https://bugzilla.redhat.com/show_bug.cgi?id=2155304

It seems the system had a custom built boot regex library which was built for Fedora 36.
When the system upgraded it broke the dependencies on that installation.
After the system update the gdb executable was not picking up the libraries from the system paths but from the custom boost installation.
I have removed the custom boost installation and I can confirm gdb is now working.

Any time a package is custom built the user runs a risk of conflict with standard packages and has to be prepared for problems that may result.