A nemrég megjelent GNU Coreutils 9.10 után a GNU Project újabb kulcselemét frissítette: elérhetővé vált a GNU Binutils 2.46. A Binutils olyan alacsony szintű parancssori eszközök gyűjteménye, mint az ld, as, objdump, objcopy vagy a readelf, amelyek objektumfájlok, statikus könyvtárak és futtatható állományok létrehozására, elemzésére és módosítására szolgálnak.
A csomag a GNU eszközlánc (toolchain) alapvető része a gcc, a glibc és a gdb mellett.
Jelentősen bővülő processzortámogatás
A Binutils 2.46 egyik legfontosabb újítása a frissített architektúra-felismerés és utasításkészlet-támogatás.
- A kiadás már felismeri az AMD Zen 6 processzorokat, ami a jövőbeli CPU-generációkra való felkészülés fontos lépése.
- RISC-V oldalon új kiterjesztések jelentek meg, köztük az sdtrig v1.0 és az ssstrict v1.0.
- Arm architektúrán lezárult az Arm v9.6 utasításkészlet támogatása, valamint megjelent az Arm v9.7 kezdeti támogatása a -march=armv9.7-a kapcsolón keresztül.
- Emellett előzetes (preliminary) támogatás került be a készülő Arm technológiákhoz, például a POE2 és a vMTE megoldásokhoz.
SFrame Version 3 alapértelmezett használata
Fontos változás, hogy az assembler mostantól alapértelmezetten SFrame Version 3 formátumot állít elő. Az SFrame egy modern stack frame leíró mechanizmus, amely alternatívát kínál a klasszikus DWARF-alapú visszafejtési információk mellett.
Az SFrame 3-as verzió főbb előnyei:
- 2 GiB-nál nagyobb binárisok támogatása,
- rugalmasabb frame-elrendezések kezelése,
- a legkülső stack frame-ek explicit megjelölése,
- jobb jelkezelési (signal trampoline) támogatás.
Pontosabb visszatérési címek kezelése
A Binutils 2.46 finomítja az ismeretlen (undefined) visszatérési címek ábrázolását az SFrame adatokban. Ezek mostantól olyan frame sorbejegyzésekként jelennek meg, amelyekhez nem tartozik eltolás.
A frissített libsframe könyvtár ehhez egy külön API-t biztosít, amely lehetővé teszi ennek az állapotnak a felismerését. Ezzel összhangban az objdump és a readelf is frissült, és már helyesen jeleníti meg az SFrame 3-as verzió információit, beleértve az explicit módon jelzett, nem definiált visszatérési címeket.
Új megosztott könyvtár: libsframe.so.3
A kiadás egy új, verziózott megosztott könyvtárat is bevezet: libsframe.so.3. Ez a könyvtár a LIBSFRAME_3.0 névtér alatt kapott szimbólumverziózást, ami fontos a bináris kompatibilitás és a hosszú távú karbantarthatóság szempontjából.
Szigorúbb ellenőrzések és plugin-kezelés
A Binutils 2.46 több belső ellenőrzést is szigorít. Ennek részeként egyes eszközök – például az objcopy – mostantól szigorúbban ellenőrzik a célformátumokat, és hibát jeleznek olyan helyzetekben, ahol a korábbi verziók csendben elfogadták a hibás használatot.
A régi viselkedés továbbra is elérhető marad, ha a felhasználó explicit módon megadja a kimeneti célformátumot.
Elavult platformok támogatásának megszüntetése
A folyamatos karbantartás részeként a Binutils 2.46 eltávolítja több elavult vagy ritkán használt célplatform támogatását, köztük:
- a NaCl környezetet,
- valamint a Solaris PowerPC architektúrát.
Ez a lépés csökkenti a karbantartási terheket, és lehetővé teszi, hogy a fejlesztés az aktívan használt platformokra összpontosítson.
Letöltés és további információk
A GNU Binutils 2.46 letölthető a SourceWare.org oldaláról, míg a hivatalos kiadási bejelentése az info-gnu levelezőlistán található.

