Rilis linker Mold 1.1, dikembangkan oleh LLVM lld

Rilis linker Mold telah diterbitkan, yang dapat digunakan sebagai pengganti linker GNU yang lebih cepat dan transparan pada sistem Linux. Proyek ini dikembangkan oleh penulis linker LLVM lld. Fitur utama dari Mold adalah kecepatan yang sangat tinggi dalam menghubungkan file objek, jauh lebih cepat daripada linker GNU gold dan LLVM lld (menautkan dalam Mold dilakukan dengan kecepatan hanya setengah dari kecepatan menyalin file dengan utilitas cp). Kode ini ditulis dalam C++ (C++20) dan didistribusikan di bawah lisensi AGPLv3.

овой ерсии:

  • Menambahkan dukungan untuk optimasi pada tahap penautan (LTO, Link Time Optimization). Pengoptimalan LTO berbeda dengan mempertimbangkan status semua file yang terlibat dalam proses pembuatan, sedangkan mode pengoptimalan tradisional mengoptimalkan setiap file secara terpisah dan tidak memperhitungkan kondisi untuk memanggil fungsi yang ditentukan dalam file lain. Padahal sebelumnya, ketika file kode perantara (IR) GCC atau LLVM ditemukan, linker ld.bfd atau ld.lld yang sesuai dipanggil, sekarang Mold memproses file IR secara independen dan menggunakan API Plugin Linker, juga digunakan di GNU ld dan GNU penghubung emas. Ketika diaktifkan, LTO hanya sedikit lebih cepat dibandingkan linker lainnya karena sebagian besar waktu dihabiskan untuk melakukan optimasi kode dibandingkan melakukan linking.
  • Menambahkan dukungan untuk arsitektur RISC-V (RV64) pada platform host dan target.
  • Menambahkan opsi “--emit-relocs” untuk mengaktifkan penyalinan bagian relokasi dari file input ke file output untuk penerapan pengoptimalan selanjutnya pada tahap pasca-tautan.
  • Menambahkan opsi “--shuffle-sections” untuk mengacak urutan bagian sebelum menetapkan alamatnya di ruang alamat virtual.
  • Menambahkan opsi “--print-dependencies” dan “--print-dependencies=full” untuk menghasilkan informasi dalam format CSV tentang ketergantungan antar file masukan, yang, misalnya, dapat digunakan untuk menganalisis alasan koneksi saat menautkan file objek tertentu atau saat melakukan pekerjaan minifikasi ketergantungan antar file.
  • Menambahkan opsi "--warn-once" dan "--warn-textrel".
  • Menghapus ketergantungan pada libxxhash.

Sumber: opennet.ru

Tambah komentar