Wild 0.10


Promócie sa konali 4. augusta Wild 0.10 — bezplatný linker napísaný v Ruste a určený predovšetkým na rýchle vytváranie programov v LinuxLinker vykonáva záverečnú fázu zostavovania: kombinuje objektové súbory a knižnice do finálneho spustiteľného súboru alebo zdieľanej knižnice. Wild sa dá použiť ako náhrada za GNU ld, LLD a Mold, hoci vývojári uviedli, že konečným cieľom je inkrementálne linkovanie. ešte neimplementované.

 

Jednou z hlavných inovácií bola podpora parametrov --gdb-index a --no-gdb-indexKeď je táto funkcia povolená, Wild vytvorí vo výstupnom súbore sekciu .gdb_index s indexom ladiacích informácií. To umožňuje GDB rýchlejšie nájsť potrebné symboly vo veľkých programoch bez toho, aby bolo nutné index generovať samostatne po zostavení. Implementácia podporuje verziu 9 formátu GDB Index; operácie skenovania, zlúčenia a zápisu indexu boli paralelizované.

 

Skriptovanie v editore bolo výrazne rozšírené. Bola pridaná podpora pre:

  • Sekcie /DISCARD/ na vylúčenie nepotrebných vstupných sekcií;
  • Názvy vlastných programov PHDRS;
  • funkcie SIZEOF_HEADERS, DEFINED a SEGMENT_START;
  • kľúčové slovo AT a funkcia LOADADDR;
  • podmienené výrazy s ternárnym operátorom;
  • Príkazy SORT, SORT_BY_NAME a SORT_BY_ALIGNMENT;
  • symbol __bss_start;
  • šablóny na vyplnenie výstupných sekcií;
  • Príkazy OUTPUT_FORMAT a OUTPUT_ARCH;
  • niekoľko relatívnych počítadiel aktuálnej adresy.

 

Úplná kompatibilita s GNU ld ešte nebola dosiahnutá. Napríklad niektoré funkcie príkazu MEMORY, sekcie OVERLAY a niektoré metódy umiestňovania sekcií zostávajú nedokončené. Vývojári na tom pracujú samostatne. tabuľka funkcií potrebných pre linkovanie jadra Linux.

 

Výkon sa zlepšil pri ukladaní výsledkov zostavenia na Btrfs a VFAT. Wild teraz automaticky používa režim --no-mmap-output-file a nemapuje výstupný súbor do pamäte. V teste linkovania Zed na Btrfs, ktorý vykonali vývojári, sa čas skrátil z približne 2,6–2,8 na 1,5–1,8 sekundy. Autor zmeny však varuje, že aj po optimalizácii zostáva Btrfs v tomto scenári výrazne pomalší ako tmpfs; pre Ext4 a XFS sa naopak použitie mmap ukázalo ako výhodnejšie.

Wild sa naďalej portuje do iných formátov a platforiem. Experimentálna verzia pre WebAssembly už dokáže prepojiť celý rad programov, zatiaľ čo port pre Mach-O dokáže prepojiť základné spustiteľné súbory. Začali sa práce na 32-bitových cieľových platformách, čo by malo ďalej zjednodušiť používanie Wildu pri vývoji vstavaných systémov. Bolo tiež pridané počiatočné spracovanie objektových súborov PowerPC64 ELFv2 a podpora Mach-O sa naďalej vyvíja, vrátane univerzálnych objektových súborov a priameho prepojenia s dynamickými knižnicami. Tieto porty by sa ešte nemali považovať za pripravené na každodenné použitie.

Linker knižnice libwild teraz môže prijímať vstupné súbory a ukladať výstup priamo do pamäte. To umožňuje iným programom vkladať súbor Wild bez nutnosti vytvárať medzisúbory na disku. Okrem toho knižnica už neprepisuje globálny fond vlákien Rayon a podporu pre kompresiu Zstandard je možné vypnúť počas zostavovania.

Toto vydanie obsahuje množstvo opráv pre platformy x86-64, AArch64, RISC-V a LoongArch64. Medzi tieto opravy patria chyby pri spracovaní TLS, PLT, LTO, komprimovaných ladiacích informácií, veľkých zarovnaní a premiestnení v PIE a zdieľaných objektoch. Opravené sú aj potenciálne zlyhania počas parsovania skriptov linkera a chyby generujúce sekcie .tbss, .strtab a .eh_frame.

 

Divoké podpory Linux Na architektúrach x86-64, AArch64 a RISC-V je podpora pre LoongArch64 a PowerPC64LE momentálne uvedená ako počiatočná. Linker je možné nainštalovať z predpripravených archívov, pomocou cargo-binstall, Homebrew, Nix alebo pomocou príkazu cargo install --locked wild-linker. Zdrojový kód je distribuovaný podľa uváženia používateľa. Licencie Apache 2.0 alebo MIT.

 

Zdroj: linux.org.ru

Kúpte si spoľahlivý hosting pre stránky s DDoS ochranou, VPS VDS servery 🔥 Kúpte si spoľahlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster