MĂ« 4 gusht u lĂ«shua Wild 0.10 â njĂ« lidhĂ«s i lirĂ«, shkruar nĂ« Rust dhe i destinuar kryesisht pĂ«r ndĂ«rtimin e shpejtĂ« tĂ« programave nĂ« Linux. LidhĂ«si kryen fazĂ«n pĂ«rfundimtare tĂ« ndĂ«rtimit: bashkon skedarĂ«t e objektit dhe bibliotekat nĂ« njĂ« skedar ekzekutiv tĂ« gatshĂ«m ose njĂ« bibliotekĂ« tĂ« ndarĂ«. Wild mund tĂ« pĂ«rdoret si zĂ«vendĂ«sim pĂ«r GNU ld, LLD dhe Mold, ndonĂ«se qĂ«llimi i fundit i deklaruar nga zhvilluesit Ă«shtĂ« lidhja inkrementale â pĂ«r momentin nuk Ă«shtĂ« realizuar.
Â
Një nga risitë kryesore është mbështetje për parametrat --gdb-index dhe --no-gdb-index. Kur aktivizohet kjo mundësi, Wild krijon në skedarin e daljes një seksion .gdb_index me indeksin e informacionit të depurimit. Falë kësaj, GDB mund të gjejë më shpejt simbolet e nevojshme në programe të mëdha, pa formuar një indeks veçmas pas ndërtimit. Implementimi mbështet versionin e nëntë të formatit të Indeksit GDB; operacionet e skanimit, bashkimit dhe regjistrimit të indeksit janë parallelizuar.
Â
Janë zgjeruar ndjeshëm funksionet me skenaret e lidhësit. është shtuar mbështetje për:
- seksionet /DISCARD/ për të përjashtuar seksionet e panevojshme të hyrjes;
- titujt e përdoruesve të programeve PHDRS;
- funksionet SIZEOF_HEADERS, DEFINED dhe SEGMENT_START;
- fjalën kyçe AT dhe funksionin LOADADDR;
- shprehjet kushtore me operatorin ternar;
- komandat SORT, SORT_BY_NAME dhe SORT_BY_ALIGNMENT;
- simbolin __bss_start;
- shabllonet e mbushjes së seksioneve të daljes;
- komandat OUTPUT_FORMAT dhe OUTPUT_ARCH;
- disa numërues relativë të adresës aktuale.
Â
Përputhshmëria e plotë me GNU ld ende nuk është arritur. Për shembull, një pjesë e mundësive të komandës MEMORY, seksioneve OVERLAY dhe disa mënyra vendosjeje të seksioneve mbeten të papërfunduara. Zhvilluesit veçmas mbajnë një tabelë mundësish, të nevojshme për lidhjen e kernelit Linux.
Â
JanĂ« pĂ«rmirĂ«suar performancat gjatĂ« vendosjes sĂ« rezultateve tĂ« ndĂ«rtimit nĂ« Btrfs dhe VFAT. Wild tani automatikisht pĂ«rdor modin --no-mmap-output-file dhe nuk e harton skedarin e daljes nĂ« kujtesĂ« pĂ«rmes mmap. NĂ« njĂ« provĂ« tĂ« kryer nga zhvilluesi pĂ«r lidhjen Zed nĂ« Btrfs, koha u reduktua nga rreth 2.6â2.8 nĂ« 1.5â1.8 sekonda. NĂ« kĂ«tĂ« rast, autori i ndryshimit paralajmĂ«ron se, edhe pas optimizimit, Btrfs nĂ« kĂ«tĂ« skenar mbetet ndjeshĂ«m mĂ« i ngadaltĂ« se tmpfs; pĂ«r Ext4 dhe XFS, pĂ«rdorimi i mmap, pĂ«rkundrazi, rezultoi tĂ« ishte mĂ« i favorshĂ«m.
Përmbledhja e Wild vazhdon në formate dhe platforma të tjera. Versioni eksperimental për WebAssembly tani është në gjendje të kompozicionojë një sërë programesh, ndërsa porti për Mach-O mbështet skedarët e ekzekutueshme më të thjeshtë. Punët janë zhvilluar për platformat 32-bit, gjë që do ta thjeshtojë përdorimin e Wild në zhvillimin e sistemeve të integruara. Gjithashtu, është shtuar përpunimi fillestar i skedarëve të objektit PowerPC64 ELFv2 dhe është vazhduar zhvillimi i mbështetjes për Mach-O, duke përfshirë skedarët universale të objektit dhe kompozimin direkt me bibliotekat dinamike. Këto porta ende nuk duhet të merren si gati për përdorim të përditshëm.
Versioni bibliotekor i kompozitorit libwild tani mund të marrë skedarët hyrës dhe të ruajë rezultatin drejtpërdrejt në memorie. Kjo lejon programe të tjera të integrojnë Wild pa krijimin e skedarëve ndërmjetës në disk. Për më tepër, biblioteka tani nuk e tejkalon grupin global të fijeve Rayon, dhe mbështetje për kompresimin Zstandard mund të çaktivizohet gjatë ndërtimit.
Në versionin e fundit janë përfshirë shumë rregullime për x86-64, AArch64, RISC-V dhe LoongArch64. Janë eliminuar gabimet në trajtimin e TLS, PLT, LTO, informacionit të kompresuar për debug, rregullimeve të mëdha dhe lëvizjeve në objektet PIE dhe të ndara. Janë korrigjuar mundësitë për dështime të mundshme gjatë analizës së skenarëve të kompozitorit dhe gabimet në formimin e seksioneve .tbss, .strtab dhe .eh_frame.
Â
Wild mbështet Linux në arkitekturën x86-64, AArch64 dhe RISC-V; mbështetje për LoongArch64 dhe PowerPC64LE për momentin është e shenjuar si fillestare. Mund të instaloni kompozitorin nga arkivat e gatshme, përmes cargo-binstall, Homebrew, Nix ose komandës cargo install --locked wild-linker. Kodi burimor shpërndahet sipas zgjedhjes së përdoruesit nën licencat Apache 2.0 ose MIT.
Â
Burimi: linux.org.ru
