Wild 0.10


4 avqustda buraxılış oldu Wild 0.10 — Rust proqramlaşdırma dilində yazılmış sərbəst bir əlaqələndirici, əsasən Linux-da proqramların sürətlə toplanması üçün nəzərdə tutulmuşdur. Əlaqələndirici toplama prosesinin son mərhələsini yerinə yetirir: obyekt fayllarını və kitabxanaları tam icra edilə bilən fayla və ya bölüşdürülən kitabxanaya birləşdirir. Wild, GNU ld, LLD və Mold-un əvəzi kimi istifadə oluna bilər, lakin inkişaf etdiricilərin bildirdiyi son məqsəd — inkremental əlaqələndirmə — hələlik həyata keçirilməyib.

 

Ən önəmli yeniliklərdən biri parametrlərin dəstəklənməsidir —gdb-index və —no-gdb-index. Bu funksiyanı aktivləşdirərkən, Wild çıxış faylında .gdb_index bölməsi ilə debuq məlumatının indeksini yaradır. Bu sayədə GDB, böyük proqramlarda lazım olan simvolları daha tez tapa bilir, indeksi ayrıca yığımdan sonra formalaşdırmadan. İcra, GDB İndeksi formatının doqquzuncu versiyasını dəstəkləyir; skan etmə, birləşdirmə və indeks yazma əməliyyatları paralelləşdirilmişdir.

 

Əlaqələndirici skriptlərlə işləmək genişləndirilmişdir. Dəstəklənir:

  • lazımsız giriş bölmələrini istisna etmək üçün /DISCARD/ bölməsi;
  • PHDRS proqramları üçün istifadəçi başlıqları;
  • SIZEOF_HEADERS, DEFINED və SEGMENT_START funksiyaları;
  • AT açar sözü və LOADADDR funksiyası;
  • üçüncü operatorla şərti ifadələr;
  • SORT, SORT_BY_NAME və SORT_BY_ALIGNMENT komandaları;
  • __bss_start simvolu;
  • çıxış bölmələrinin doldurma şablonları;
  • OUTPUT_FORMAT və OUTPUT_ARCH komandaları;
  • hazırki ünvanın bir neçə nisbət sayğacı.

 

GNU ld ilə tam uyğunluq hələ əldə edilməyib. Məsələn, MEMORY komandasının bəzi imkanları, OVERLAY bölməsi və bəzi bölmələrin yerləşdirilməsi yolları tamamlanmamışdır. İnkişaf etdiricilər ayrıca Linux nüvəsini əlaqələndirmək üçün tələb olunan imkanların cədvəlini aparırlar.

 

Btrfs və VFAT-da yığma nəticələrinin yerləşdirilməsində performans artırılmışdır. Wild artıq —no-mmap-output-file rejimini avtomatik istifadə edir və çıxış faylını yaddaşa mmap ilə göstərmir. İnkişaf etdirici tərəfindən aparılan Zed-in Btrfs-da əlaqələndirilməsi sınağında, vaxt təxminən 2.6-2.8-dən 1.5-1.8ə endirilib. Eyni zamanda, dəyişiklik müəllifi xəbərdarlıq edir ki, optimizasiya olunsa da, Btrfs bu ssenaridə tmpfs-dən əhəmiyyətli dərəcədə daha yavaşdır; Ext4 və XFS üçün isə mmap istifadə etmək, əksinə, daha faydalı oldu.

Wild-ın digər formatlara və platformalara keçirilməsi davam edir. WebAssembly üçün eksperimental versiya artıq bir sıra proqramları birləşdirmək qabiliyyətinə malikdir, Mach-O portu isə sadə icra fayllarını dəstəkləyir. 32-bit hədəf platformaları üzərində işə başlanmışdır ki, bu da Wild-ın embedded sistemlərin inkişafında istifadəsini asanlaşdırmalıdır. Həmçinin, PowerPC64 ELFv2 obyekt fayllarının ilkin emalı əlavə olunub və Mach-O dəstəyi inkişaf etdirilməyə davam edir, universalları obyekt faylları və dinamik kitabxanalarla birbaşa birləşdirmə dəstəklənir. Bu portlar hələ də gündəlik istifadə üçün hazır sayılmamalıdır.

Libwild kitabxanası artıq giriş fayllarını qəbul edə və nəticəni birbaşa yaddaşda saxlaya bilir. Bu, digər proqramların Wild-ı mütləq müvəqqəti fayllar yaratmadan inteqrasiya etməsinə imkan tanıyır. Həmçinin, kitabxana global Rayon iplik hovuzunu artıq yenidən müəyyən etmir, Zstandard sıxılma dəstəyi isə yükləmə zamanı deaktiv edilə bilər.

Buraxılışa x86-64, AArch64, RISC-V və LoongArch64 üçün bir çox düzəlişlər daxil edilib. TLS, PLT, LTO, sıxılmış debuq məlumatlarının, böyük düzülmələrin və PIE- və paylaşılan obyektlərdəki hərəkətlərin emalı ilə bağlı xətalar aradan qaldırılıb. Birləşdirici ssenarilərin sökülməsi zamanı baş verə biləcək tıxanmalara və .tbss, .strtab və .eh_frame bölmələrinin yaradılması ilə bağlı xətalara düzəlişlər edilib.

 

Wild, x86-64, AArch64 və RISC-V arxitekturalı Linux-u dəstəkləyir; LoongArch64 və PowerPC64LE üçün dəstək hələ başlanğıc mərhələsindədir. Birləşdiricini hazır arxivlərdən, cargo-binstall, Homebrew, Nix vasitəsilə və ya cargo install --locked wild-linker əmri ilə qura bilərsiniz. Mənbə kodu istifadəçinin seçimi ilə Apache 2.0 və ya MIT lisensiyaları altında yayımlanır..

 

Mənbə: linux.org.ru

DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər 🔥 DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər | ProHoster