5.9.1. تثبيت Binutils
قم بإنشاء دليل بناء منفصل مرة أخرى:
mkdir -v بناء قرص مضغوط
mkdir -v بناء قرص مضغوط
تحضير Binutils للتجميع:
CC = $ LFS_TGT-gcc \
AR = $ LFS_TGT-ar \
RANLIB = $ LFS_TGT- ranlib \
../تهيئة \
- البريفكس = / أدوات \
--تعطيل- nls \
--disable-werror \
--with-lib-path=/tools/lib \
- مع سيسروت
CC = $ LFS_TGT-gcc \
AR = $ LFS_TGT-ar \
RANLIB = $ LFS_TGT- ranlib \
../تهيئة \
- البريفكس = / أدوات \
--تعطيل- nls \
--disable-werror \
--with-lib-path=/tools/lib \
- مع سيسروت
معنى خيارات التكوين الجديدة:
CC=$LFS_TGT-gcc AR=$LFS_TGT-ar RANLIB=$LFS_TGT-ranlib
نظرًا لأن هذا في الواقع بناء أصلي لـ Binutils، فإن تعيين هذه المتغيرات يضمن أن نظام البناء يستخدم المترجم المتقاطع والأدوات المرتبطة به بدلاً من تلك الموجودة على نظام المضيف.
- مع مسار ليب = / أدوات / ليب
يخبر هذا البرنامج النصي للتكوين بتحديد مسار البحث في المكتبة أثناء تجميع Binutils، مما يؤدي إلى /أدوات/مكتبة يتم تمريرها إلى الرابط. هذا يمنع الرابط من البحث في أدلة المكتبة على المضيف.
- مع سيسروت
تُمكّن ميزة sysroot المُربط من العثور على الكائنات المشتركة المطلوبة من قِبل كائنات مشتركة أخرى مُضمنة صراحةً في سطر أوامر المُربط. بدون هذه الميزة، قد لا يتم بناء بعض الحزم بنجاح على بعض المُضيفات.
تجميع الحزمة:
جعل
جعل
قم بتثبيت الحزمة:
جعل تثبيت
جعل تثبيت
الآن قم بإعداد الرابط لمرحلة "إعادة التعديل" في الفصل التالي:
جعل -C ld نظيفًا
جعل -C ld LIB_PATH=/usr/lib:/lib cp -v ld/ld-new /tools/bin
جعل -C ld نظيفًا
جعل -C ld LIB_PATH=/usr/lib:/lib cp -v ld/ld-new /tools/bin
معنى معلمات الصنع:
-تنظيف جيد
يخبر هذا برنامج الإنشاء بإزالة جميع الملفات المترجمة في ld دليل فرعي.
-C ld LIB_PATH=/usr/lib:/lib
هذا الخيار يعيد بناء كل شيء في ld الدليل الفرعي. تحديد مسار المكتبة يتيح لنا متغير Makefile في سطر الأوامر تجاوز القيمة الافتراضية للأدوات المؤقتة وتوجيهها إلى المسار النهائي الصحيح. تحدد قيمة هذا المتغير مسار البحث الافتراضي للمكتبة في أداة الربط. سيتم استخدام هذا الإعداد في الفصل التالي.
توثيق