In July 2025 we upgraded a couple of systems from AIX 7.2 (7200-05-05) to AIX 7.3 (7300-02-02) using nimadm. After nimadm completed succesfully, we installed all HIPER- and security fixes available at that time. We installed dnf fresh from the toolbox and ran "dnf update" to update the RPMS as well. Everything worked well, including dnf and sudo etc.
Last weekend maintenance was performed on the server. We have installed a script that performs an AIX fix-installation at reboot, which was about to install rpm.rte 4.18.1.2007 (instead of 4.18.1.2006). On AIX 7.2 we found out (the hard way) that "dnf update" (or "dnf update dnf") is required to prevent problems. So this was executed on this AIX 7300-02-02 system as well, it first did "dnf update dnf -y" (which completes succesfully), followed by installation of rpm.rte 4.18.1.2007.
Unfortunately DNF and SUDO (probably amongst others) were no longer working, giving a message like:
exec(): 0509-036 Cannot load program /opt/freeware/bin/python3.12 because of the following errors:
0509-022 Cannot load module /opt/freeware/lib64/libintl.a(libintl.so.8).
0509-150 Dependent module libgcc_s.a(shr.o) could not be loaded.
0509-022 Cannot load module libgcc_s.a(shr.o).
0509-026 System error: A file or directory in the path name does not exist.
This does not happen on a system freshly installed with AIX 7300-02-02. Installing rpm.rte 4.18.1.2007 is also not to blame, but dnf updating itself causes the issue.
Turns out the directory /opt/freeware/lib contains a few libraries that point to a subdirectory in /opt/freeware/lib/gcc, that is dependent on the AIX level.
lrwxrwxrwx 1 root system 41 Nov 30 07:33 libatomic.a -> gcc/powerpc-ibm-aix7.2.0.0/13/libatomic.a
lrwxrwxrwx 1 root system 40 Nov 30 07:33 libgcc_s.a -> gcc/powerpc-ibm-aix7.2.0.0/13/libgcc_s.a
lrwxrwxrwx 1 root system 39 Nov 30 07:33 libgomp.a -> gcc/powerpc-ibm-aix7.2.0.0/13/libgomp.a
lrwxrwxrwx 1 root system 41 Nov 30 07:33 libstdc++.a -> gcc/powerpc-ibm-aix7.2.0.0/13/libstdc++.a
When "dnf update dnf" is run, it installs several new packages including libgcc-1:13-2.ppc. This deletes the symbolic links in /opt/freeware/lib and makes them point to a different subdirectory:
lrwxrwxrwx 1 root system 41 Aug 01 11:44 libatomic.a -> gcc/powerpc-ibm-aix7.3.0.0/13/libatomic.a
lrwxrwxrwx 1 root system 40 Aug 01 11:44 libgcc_s.a -> gcc/powerpc-ibm-aix7.3.0.0/13/libgcc_s.a
lrwxrwxrwx 1 root system 39 Aug 01 11:44 libgomp.a -> gcc/powerpc-ibm-aix7.3.0.0/13/libgomp.a
lrwxrwxrwx 1 root system 41 Aug 01 11:44 libstdc++.a -> gcc/powerpc-ibm-aix7.3.0.0/13/libstdc++.a
However, nothing in the underlying directory structure has changed, the actual library files are still in /opt/freeware/lib/gcc/powerpc-ibm-aix7.2.0.0.0 and subdirectories. So utilities needing this libraries fail.
A simple trick to get dnf/sudo etc. working again is to create another symbolic link:
# cd /opt/freeware/lib/gcc
# ln -s powerpc-ibm-aix7.2.0.0 powerpc-ibm-aix7.3.0.0
Now, AIX will be able to find the libraries. But I wonder if this "hack" procedures more difficulties in the future and what the official way there would have been to "fix" this before installing the newest libgcc etc.
BTW. To update rpm.rte 4.18.1.2006 on AIX 7300-02-02 to 4.18.1.2007 you do not need to update dnf first, so we now skip this step. But still curious how we could have prevented this.
------------------------------
Richard Westerik
Principal specialist
Simac IT NL bv
Ede
+31651575123
------------------------------