Зэрлэг 0.10


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

 

Гол шинэлэг зүйлсийн нэг нь параметрүүдийг дэмжих явдал байв --gdb-индекс болон --no-gdb-индексЭнэ функцийг идэвхжүүлсэн үед Wild нь гаралтын файлд алдааг олж засварлах мэдээллийн индекс бүхий .gdb_index хэсгийг үүсгэдэг. Энэ нь GDB-д бүтээсний дараа индексийг тусад нь үүсгэх шаардлагагүйгээр том програмуудад шаардлагатай тэмдэгтүүдийг илүү хурдан олох боломжийг олгодог. Хэрэгжилт нь GDB индексийн форматын 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 лицензүүд.

 

Эх сурвалж: linux.org.ru

DDoS хамгаалалт, VPS VDS сервер бүхий сайтуудад найдвартай хостинг худалдаж аваарай 🔥 DDoS хамгаалалттай, VPS VDS сервертэй найдвартай вэбсайт хостинг худалдаж аваарай | ProHoster