Бүтүрүү кечеси 4-августта өттү Wild 0.10 — Rust тилинде жазылган жана негизинен программаларды тез түзүүгө арналган акысыз шилтеме берүүчү LinuxБайланыштыруучу куруунун акыркы этабын аткарат: объект файлдарын жана китепканаларды акыркы аткарылуучу же жалпы китепканага бириктирет. Wild GNU ld, LLD жана Moldдун ордуна колдонулушу мүмкүн, бирок иштеп чыгуучулардын акыркы максаты инкременталдык байланыштыруу болуп саналат. али ишке ашырыла элек.

 

Негизги инновациялардын бири параметрлерди колдоо болду --gdb-индекс жана --no-gdb-индексБул функция иштетилгенде, Wild чыгаруу файлында мүчүлүштүктөрдү оңдоо маалыматынын индекси менен .gdb_index бөлүмүн түзөт. Бул GDBге чоң программаларда керектүү символдорду куруудан кийин индексти өзүнчө түзбөстөн тезирээк табууга мүмкүндүк берет. Ишке ашыруу GDB Index форматынын 9-версиясын колдойт; индексти сканерлөө, бириктирүү жана жазуу операциялары параллелдүү түрдө аткарылган.

 

Композитор скрипти бир кыйла кеңейтилди. Төмөнкүлөр үчүн колдоо кошулду:

  • /ЖОККО ЧЫГАРУУ/ бөлүмдөрү керексиз киргизүү бөлүмдөрүн алып салуу үчүн;
  • PHDRS ылайыкташтырылган программа аталыштары;
  • SIZEOF_HEADERS, DEFINED жана SEGMENT_START функциялары;
  • AT ачкыч сөзү жана LOADADDR функциясы;
  • үчтүк оператор менен шарттуу туюнтмалар;
  • SORT, SORT_BY_NAME жана SORT_BY_ALIGNMENT буйруктары;
  • __bss_баштоо белгиси;
  • чыгаруу бөлүктөрүн толтуруу үчүн шаблондор;
  • OUTPUT_FORMAT жана OUTPUT_ARCH буйруктары;
  • учурдагы даректин бир нече салыштырмалуу эсептегичтери.

 

GNU ld менен толук шайкештикке жетишиле элек. Мисалы, MEMORY буйругунун айрым функциялары, OVERLAY бөлүмдөрү жана бөлүмдөрдү жайгаштыруунун айрым ыкмалары аягына чыга элек. Иштеп чыгуучулар мунун үстүндө өзүнчө иштеп жатышат. ядрону байланыштыруу үчүн талап кылынган мүмкүнчүлүктөрдүн таблицасы Linux.

 

Btrfs жана VFAT файлдарында куруунун жыйынтыктарын сактоодо иштөө жакшырды. Wild эми автоматтык түрдө --no-mmap-output-file режимин колдонот жана чыгуучу файлды эс тутумга mmap кылбайт. Btrfs файлында Zed шилтемесин иштеп чыгуучу тарабынан жүргүзүлгөн сыноодо убакыт болжол менен 2,6–2,8ден 1,5–1,8 секундга чейин кыскарды. Бирок, өзгөртүүнүн автору оптималдаштыруудан кийин да Btrfs бул сценарийде tmpfsке караганда бир топ жайыраак бойдон калаарын эскертет; тескерисинче, Ext4 жана XFS үчүн mmap колдонуу пайдалуураак болуп чыкты.

Wild башка форматтарга жана платформаларга которулууда. WebAssembly үчүн эксперименталдык версия бир катар программаларды байланыштыра алат, ал эми Mach-O үчүн порт негизги аткарылуучу файлдарды байланыштыра алат. 32-биттик максаттуу платформаларда иштер башталды, бул Wildди камтылган системаларды иштеп чыгууда колдонууну андан ары жөнөкөйлөштүрүшү керек. PowerPC64 ELFv2 объект файлдарын баштапкы иштетүү да кошулду жана Mach-O колдоосу, анын ичинде универсалдуу объект файлдары жана динамикалык китепканалар менен түз байланыштыруу өнүгүп жатат. Бул порттор күнүмдүк колдонууга даяр деп эсептелбеши керек.

libwild шилтеме бергичи эми киргизүү файлдарын кабыл алып, чыгарууну түз эле эс тутумга сактай алат. Бул башка программаларга дискте ортоңку файлдарды түзбөстөн Wildди киргизүүгө мүмкүндүк берет. Андан тышкары, китепкана мындан ары глобалдык Rayon thread пулун жокко чыгарбайт жана Zstandard кысуусун колдоо курулуш учурунда өчүрүлүшү мүмкүн.

Бул чыгарылышта x86-64, AArch64, RISC-V жана LoongArch64 үчүн көптөгөн оңдоолор камтылган. Бул оңдоолорго TLS, PLT, LTO менен иштөөдөгү каталар, кысылган мүчүлүштүктөрдү оңдоо маалыматы, чоң тегиздөөлөр жана PIE жана бөлүшүлгөн объектилердеги жылдыруулар кирет. Шилтеме скриптин талдоо учурундагы мүмкүн болгон бузулуулар жана .tbss, .strtab жана .eh_frame бөлүмдөрүн түзүүдөгү каталар да оңдолду.

 

Жапайы колдоолор Linux x86-64, AArch64 жана RISC-V архитектураларында; LoongArch64 жана PowerPC64LE колдоосу учурда баштапкы катары көрсөтүлгөн. Шилтемени алдын ала түзүлгөн архивдерден, cargo-binstall, Homebrew, Nix аркылуу же cargo install --locked wild-linker буйругу менен орнотсо болот. Баштапкы код колдонуучунун каалоосу боюнча бөлүштүрүлөт. Apache 2.0 же MIT лицензиялары.

 

Source: linux.org.ru

DDoS коргоосу, VPS VDS серверлери бар сайттар үчүн ишенимдүү хостинг сатып алыңыз 🔥 DDoS коргоосу, VPS VDS серверлери бар ишенимдүү веб-сайт хостингин сатып алыңыз | ProHoster