إطلاق رابط Mould 1.1، الذي تم تطويره بواسطة LLVM lld

تم نشر إصدار رابط Mould، والذي يمكن استخدامه كبديل أسرع وشفاف لرابط GNU على أنظمة Linux. تم تطوير المشروع من قبل مؤلف رابط LLVM lld. الميزة الرئيسية لـ Mould هي السرعة العالية جدًا لربط ملفات الكائنات، بشكل ملحوظ قبل روابط GNU gold وLLVM lld (يتم تنفيذ الارتباط في Mould بسرعة نصف سرعة نسخ الملفات باستخدام الأداة المساعدة cp). الكود مكتوب بلغة C++ (C++20) ويتم توزيعه بموجب ترخيص AGPLv3.

новой версии:

  • تمت إضافة دعم للتحسين في مرحلة الربط (LTO، تحسين وقت الارتباط). تختلف تحسينات LTO من خلال مراعاة حالة جميع الملفات المشاركة في عملية الإنشاء، بينما تعمل أوضاع التحسين التقليدية على تحسين كل ملف على حدة ولا تأخذ في الاعتبار شروط استدعاء الوظائف المحددة في الملفات الأخرى. في حين أنه في السابق، عند العثور على ملفات التعليمات البرمجية المتوسطة (IR) لـGC أو LLVM، كان يتم استدعاء روابط ld.bfd أو ld.lld المقابلة، يقوم Mould الآن بمعالجة ملفات IR بشكل مستقل ويستخدم Linker Plugin API، المستخدم أيضًا في GNU ld وGNU روابط الذهب. عند تمكينه، يكون LTO أسرع بشكل هامشي فقط من الروابط الأخرى لأنه يتم قضاء معظم الوقت في إجراء تحسينات على التعليمات البرمجية بدلاً من الارتباط.
  • تمت إضافة دعم لبنية RISC-V (RV64) على الأنظمة الأساسية المضيفة والهدف.
  • تمت إضافة خيار "--emit-relocs" لتمكين نسخ أقسام النقل من ملفات الإدخال إلى ملفات الإخراج للتطبيق اللاحق للتحسينات في مرحلة ما بعد الربط.
  • تمت إضافة خيار "--shuffle-sections" لترتيب الأقسام بشكل عشوائي قبل تثبيت عناوينها في مساحة العنوان الافتراضية.
  • تمت إضافة الخيارين "--print-dependeency" و"--print-dependeency=full" لإخراج معلومات بتنسيق CSV حول التبعيات بين ملفات الإدخال، والتي، على سبيل المثال، يمكن استخدامها لتحليل أسباب الاتصال عند ربط ملفات كائنات معينة أو عند تنفيذ تبعيات العمل التصغير بين الملفات.
  • تمت إضافة خيارات "--warn-once" و"--warn-textrel".
  • تمت إزالة التبعية على libxxhash.

المصدر: opennet.ru

إضافة تعليق