1. 概要
2026年6月22日の「FreeBSD 15.0 RELEASE-p2」でのことなのであります。
2. 状況
下記の状況にありまして。
portversion -v | grep '<'
gcc12-12.4.0_3 < needs updating (port has 12.4.0_5)
gcc13-13.3.0_3 < needs updating (port has 13.3.0_5)
gcc14-14.2.0_4 < needs updating (port has 14.2.0_6)
「gcc14」をアップグレードするのでありますが・・・。
もし、「gcc12」「gcc13」が不要なのでしたら、この際、「gcc12」「gcc13」をアンインストールしてしまいたいな・・・と。
3. 調査
それぞれに、依存しているものを確認します。
pkg info -r gcc12
gcc12-12.4.0_3:
hdf5-1.12.2_2,1 (libgfortran.so.5)
openblas-0.3.33,2 (libgfortran.so.5)
hdf5-1.12.2_2,1 (libquadmath.so.0)
pkg info -r gcc13
gcc13-13.3.0_3:
hdf5-1.12.2_2,1
hdf5-1.12.2_2,1 (libgfortran.so.5)
openblas-0.3.33,2 (libgfortran.so.5)
hdf5-1.12.2_2,1 (libquadmath.so.0)
pkg info -r gcc14
gcc14-14.2.0_4:
openblas-0.3.33,2
hdf5-1.12.2_2,1 (libgfortran.so.5)
openblas-0.3.33,2 (libgfortran.so.5)
hdf5-1.12.2_2,1 (libquadmath.so.0)
どれも似たようなものに依存しております。
「libgfortran.so.5」「libquadmath.so.0」をそれぞれ確認すると。
locate libgfortran.so.5
/usr/local/lib/gcc12/libgfortran.so.5
/usr/local/lib/gcc12/libgfortran.so.5.0.0
/usr/local/lib/gcc13/libgfortran.so.5
/usr/local/lib/gcc13/libgfortran.so.5.0.0
/usr/local/lib/gcc14/libgfortran.so.5
/usr/local/lib/gcc14/libgfortran.so.5.0.0
/usr/local/lib32/gcc13/libgfortran.so.5
/usr/local/lib32/gcc13/libgfortran.so.5.0.0
/usr/local/lib32/gcc14/libgfortran.so.5
/usr/local/lib32/gcc14/libgfortran.so.5.0.0
locate libquadmath.so.0
/usr/local/lib/gcc12/libquadmath.so.0
/usr/local/lib/gcc12/libquadmath.so.0.0.0
/usr/local/lib/gcc13/libquadmath.so.0
/usr/local/lib/gcc13/libquadmath.so.0.0.0
/usr/local/lib/gcc14/libquadmath.so.0
/usr/local/lib/gcc14/libquadmath.so.0.0.0
/usr/local/lib32/gcc13/libquadmath.so.0
/usr/local/lib32/gcc13/libquadmath.so.0.0.0
/usr/local/lib32/gcc14/libquadmath.so.0
/usr/local/lib32/gcc14/libquadmath.so.0.0.0
それぞれのバージョンのものが存在します。
実際に、依存しているものが何かを調べます。
pkg info -l hdf5 | grep '\.so' | xargs ldd 2>/dev/null | grep gcc
libgcc_s.so.1 => /usr/local/lib/gcc13/libgcc_s.so.1 (0x340fb74c9000)
libgcc_s.so.1 => /usr/local/lib/gcc13/libgcc_s.so.1 (0x340fb7b53000)
libgcc_s.so.1 => /usr/local/lib/gcc13/libgcc_s.so.1 (0x340fb8ed5000)
libgfortran.so.5 => /usr/local/lib/gcc13/libgfortran.so.5 (0x340fb5a00000)
libquadmath.so.0 => /usr/local/lib/gcc13/libquadmath.so.0 (0x340fb8ef9000)
libgcc_s.so.1 => /usr/local/lib/gcc13/libgcc_s.so.1 (0x340fba5d2000)
libgfortran.so.5 => /usr/local/lib/gcc13/libgfortran.so.5 (0x340fb7800000)
libquadmath.so.0 => /usr/local/lib/gcc13/libquadmath.so.0 (0x340fb8857000)
libgcc_s.so.1 => /usr/local/lib/gcc13/libgcc_s.so.1 (0x340fb6736000)
libgfortran.so.5 => /usr/local/lib/gcc13/libgfortran.so.5 (0x340fb7e00000)
libquadmath.so.0 => /usr/local/lib/gcc13/libquadmath.so.0 (0x340fb88e1000)
libgcc_s.so.1 => /usr/local/lib/gcc13/libgcc_s.so.1 (0x340fb8cc3000)
libgcc_s.so.1 => /usr/local/lib/gcc13/libgcc_s.so.1 (0x340fb8d73000)
libgcc_s.so.1 => /usr/local/lib/gcc13/libgcc_s.so.1 (0x340fb9021000)
libgcc_s.so.1 => /usr/local/lib/gcc13/libgcc_s.so.1 (0x340fb9637000)
libgfortran.so.5 => /usr/local/lib/gcc13/libgfortran.so.5 (0x340fb7600000)
libquadmath.so.0 => /usr/local/lib/gcc13/libquadmath.so.0 (0x340fb9465000)
libgcc_s.so.1 => /usr/local/lib/gcc13/libgcc_s.so.1 (0x340fbab61000)
libgfortran.so.5 => /usr/local/lib/gcc13/libgfortran.so.5 (0x340fb7800000)
libquadmath.so.0 => /usr/local/lib/gcc13/libquadmath.so.0 (0x340fb9870000)
libgcc_s.so.1 => /usr/local/lib/gcc13/libgcc_s.so.1 (0x340fba62c000)
libgfortran.so.5 => /usr/local/lib/gcc13/libgfortran.so.5 (0x340fb6c00000)
libquadmath.so.0 => /usr/local/lib/gcc13/libquadmath.so.0 (0x340fba802000)
libgcc_s.so.1 => /usr/local/lib/gcc13/libgcc_s.so.1 (0x340fbc3e5000)
pkg info -l openblas | grep '\.so' | xargs ldd 2>/dev/null | grep gcc
libgfortran.so.5 => /usr/local/lib/gcc14/libgfortran.so.5 (0x1e922c400000)
libquadmath.so.0 => /usr/local/lib/gcc14/libquadmath.so.0 (0x1e922dbd2000)
libgcc_s.so.1 => /usr/local/lib/gcc14/libgcc_s.so.1 (0x1e922deaf000)
libgfortran.so.5 => /usr/local/lib/gcc14/libgfortran.so.5 (0x1e922b800000)
libquadmath.so.0 => /usr/local/lib/gcc14/libquadmath.so.0 (0x1e922cee0000)
libgcc_s.so.1 => /usr/local/lib/gcc14/libgcc_s.so.1 (0x1e922dcc1000)
libgfortran.so.5 => /usr/local/lib/gcc14/libgfortran.so.5 (0x1e922c600000)
libquadmath.so.0 => /usr/local/lib/gcc14/libquadmath.so.0 (0x1e922d29a000)
libgcc_s.so.1 => /usr/local/lib/gcc14/libgcc_s.so.1 (0x1e922ef9c000)
4. gcc12 削除
前項の結果、「gcc12」に依存するものは、ないようですので、「gcc12」はアンインストールします。
cd /usr/ports/lang/gcc12
make deinstall clean
その後。
portversion -v | grep '<'
[Reading data from pkg(8) ... - 610 packages found - done]
aom-3.14.0 < needs updating (port has 3.14.1)
ffmpeg-8.1.1,1 < needs updating (port has 8.1.2,1)
gcc13-13.3.0_3 < needs updating (port has 13.3.0_5)
gcc14-14.2.0_4 < needs updating (port has 14.2.0_6)
少なくとも、「gcc12」は、なくなりました。
「gcc13」「gcc14」をアップグレードします。
env BATCH=yes portupgrade -rR gcc13
env BATCH=yes portupgrade -rR gcc14
これで、いったん、落ち着きました。