LLVM lld tomonidan ishlab chiqilgan Mold 1.1 bog'lovchining chiqarilishi

Linux tizimlarida GNU bog'lovchisini tezroq, shaffof o'rnini bosuvchi sifatida foydalanish mumkin bo'lgan Mold bog'lovchisining versiyasi chop etildi. Loyiha LLVM lld bog'lovchisi muallifi tomonidan ishlab chiqilgan. Mold-ning asosiy xususiyati - bu GNU gold va LLVM lld bog'lovchilaridan sezilarli darajada oldinda bo'lgan ob'ekt fayllarini bog'lashning juda yuqori tezligi (Mold-da ulanish cp yordam dasturi yordamida fayllarni oddiy nusxalashdan atigi yarmi tez tezlikda amalga oshiriladi). Kod C++ (C++20) tilida yozilgan va AGPLv3 litsenziyasi ostida tarqatiladi.

Yangi versiyada:

  • Bog'lanish bosqichida optimallashtirish uchun qo'shimcha yordam (LTO, Link Time Optimization). LTO optimallashtirishlari qurish jarayonida ishtirok etadigan barcha fayllar holatini hisobga olgan holda farqlanadi, an'anaviy optimallashtirish rejimlari esa har bir faylni alohida optimallashtiradi va boshqa fayllarda belgilangan funksiyalarni chaqirish shartlarini hisobga olmaydi. Agar ilgari GCC yoki LLVM oraliq kod (IR) fayllari topilganda, tegishli ld.bfd yoki ld.lld bog'lovchilari chaqirilgan bo'lsa, endi Mold IR fayllarini mustaqil ravishda qayta ishlaydi va GNU ld va GNU da qo'llaniladigan Linker Plugin API-dan foydalanadi. oltin bog'lovchilar. Yoqilganida, LTO boshqa bog'lovchilarga qaraganda biroz tezroq bo'ladi, chunki ko'p vaqt ulanish o'rniga kodni optimallashtirishga sarflanadi.
  • Xost va maqsadli platformalarda RISC-V (RV64) arxitekturasini qoβ€˜llab-quvvatlash qoβ€˜shildi.
  • Bog'lanishdan keyingi bosqichda optimallashtirishni keyingi qo'llash uchun kirish fayllaridan chiqish fayllariga ko'chirish bo'limlarini nusxalashni yoqish uchun "--emit-relocs" opsiyasi qo'shildi.
  • Virtual manzil maydonida manzillarini belgilashdan oldin bo'limlar tartibini tasodifiy tartibga solish uchun "--aralash-bo'limlar" opsiyasi qo'shildi.
  • Kirish fayllari orasidagi bog'liqliklar haqidagi ma'lumotlarni CSV formatida chiqarish uchun "--print-dependencies" va "--print-dependencies=full" qo'shildi, ular, masalan, muayyan ob'ekt fayllarini ulashda ulanish sabablarini tahlil qilish uchun ishlatilishi mumkin. yoki fayllar orasidagi ish bog'liqliklarini kamaytirishda.
  • β€œ--warn-one” va β€œ--warn-textrel” opsiyalari qoβ€˜shildi.
  • Libxxhashga qaramlik olib tashlandi.

Manba: opennet.ru

a Izoh qo'shish