<ก่อนหน้านี้ | Contents | ถัดไป>
5.4.1. การติดตั้ง Cross Binutils
หมายเหตุ
กลับไปอ่านบันทึกย่อในส่วนก่อนหน้าอีกครั้ง การทำความเข้าใจบันทึกย่อที่ระบุว่าสำคัญจะช่วยคุณแก้ปัญหาได้มากในภายหลัง
หมายเหตุ
กลับไปอ่านบันทึกย่อในส่วนก่อนหน้าอีกครั้ง การทำความเข้าใจบันทึกย่อที่ระบุว่าสำคัญจะช่วยคุณแก้ปัญหาได้มากในภายหลัง
เป็นสิ่งสำคัญที่ Binutils จะต้องเป็นแพ็คเกจแรกที่คอมไพล์เพราะทั้ง Glibc และ GCC ทำการทดสอบต่างๆ บนตัวเชื่อมโยงและแอสเซมเบลอร์ที่มีอยู่ เพื่อกำหนดคุณสมบัติที่จะเปิดใช้งาน
เอกสารประกอบของ Binutils แนะนำให้สร้าง Binutils ในไดเร็กทอรีบิลด์เฉพาะ:
mkdir -v บิลด์ซีดี
mkdir -v บิลด์ซีดี
หมายเหตุ
เพื่อให้ค่า SBU ที่ระบุไว้ในส่วนที่เหลือของหนังสือมีประโยชน์ ให้วัดเวลาที่ใช้ในการสร้างแพ็คเกจนี้จากการกำหนดค่า สูงสุดและรวมถึงการติดตั้งครั้งแรก เพื่อให้บรรลุสิ่งนี้อย่างง่ายดาย ให้ห่อคำสั่งใน a เวลา คำสั่งเช่นนี้: เวลา { ./configure ... && ... && ทำการติดตั้ง; }.
หมายเหตุ
เพื่อให้ค่า SBU ที่ระบุไว้ในส่วนที่เหลือของหนังสือมีประโยชน์ ให้วัดเวลาที่ใช้ในการสร้างแพ็คเกจนี้จากการกำหนดค่า สูงสุดและรวมถึงการติดตั้งครั้งแรก เพื่อให้บรรลุสิ่งนี้อย่างง่ายดาย ให้ห่อคำสั่งใน a เวลา คำสั่งเช่นนี้: เวลา { ./configure ... && ... && ทำการติดตั้ง; }.
หมายเหตุ
ค่า SBU ของบิลด์โดยประมาณและพื้นที่ดิสก์ที่ต้องการในบทที่ 5 ไม่รวมข้อมูลชุดทดสอบ
หมายเหตุ
ค่า SBU ของบิลด์โดยประมาณและพื้นที่ดิสก์ที่ต้องการในบทที่ 5 ไม่รวมข้อมูลชุดทดสอบ
ตอนนี้เตรียม Binutils สำหรับการรวบรวม:
../configure --prefix=/tools \
--with-sysroot=$LFS \
--with-lib-path=/tools/lib \
--เป้าหมาย=$LFS_TGT \
--disable-nls \
--disable-ข้อผิดพลาด
../configure --prefix=/tools \
--with-sysroot=$LFS \
--with-lib-path=/tools/lib \
--เป้าหมาย=$LFS_TGT \
--disable-nls \
--disable-ข้อผิดพลาด
ความหมายของตัวเลือกการกำหนดค่า:
--คำนำหน้า=/เครื่องมือ
สิ่งนี้จะบอกสคริปต์กำหนดค่าเพื่อเตรียมติดตั้งโปรแกรม Binutils ใน /เครื่องมือ ไดเรกทอรี
--with-sysroot=$LFS
สำหรับการคอมไพล์ข้าม สิ่งนี้บอกให้ระบบบิลด์ค้นหาไลบรารีระบบเป้าหมายใน $LFS ตามความจำเป็น
--with-lib-path=/tools/lib
ระบุพาธของไลบรารีที่ตัวเชื่อมโยงควรได้รับการกำหนดค่าให้ใช้
--เป้าหมาย=$LFS_TGT
เนื่องจากคำอธิบายเครื่องใน LFS_TGT ตัวแปรจะแตกต่างจากค่าที่ส่งกลับโดย .เล็กน้อย config.เดา สคริปต์สวิตช์นี้จะบอก กำหนดค่า สคริปต์เพื่อปรับระบบบิลด์ของ Binutil สำหรับการสร้างตัวเชื่อมโยงข้าม
--disable-nls
การดำเนินการนี้จะปิดใช้งานการทำให้เป็นสากลเนื่องจากไม่จำเป็นต้องใช้ i18n สำหรับเครื่องมือชั่วคราว
--disable-ข้อผิดพลาด
สิ่งนี้จะป้องกันไม่ให้บิลด์หยุดในกรณีที่มีคำเตือนจากคอมไพเลอร์ของโฮสต์
ดำเนินการรวบรวมแพ็คเกจต่อไป:
ทำ
ทำ
การรวบรวมเสร็จสมบูรณ์แล้ว โดยปกติเราจะเรียกใช้ชุดทดสอบ แต่ในช่วงเริ่มต้นนี้ เฟรมเวิร์กชุดทดสอบ (Tcl, Expect และ DejaGNU) ยังไม่สามารถใช้งานได้ ประโยชน์ของการทำการทดสอบ ณ จุดนี้มีน้อยมาก เนื่องจากโปรแกรมจากรอบแรกนี้จะถูกแทนที่ด้วยโปรแกรมจากรอบที่สองในไม่ช้า
หากสร้างบน x86_64 ให้สร้าง symlink เพื่อรับรองความถูกต้องของ toolchain:
กรณี $(uname -m) ใน
x86_64) mkdir -v /tools/lib && ln -sv lib /tools/lib64 ;; esac
กรณี $(uname -m) ใน
x86_64) mkdir -v /tools/lib && ln -sv lib /tools/lib64 ;; esac
ติดตั้งแพ็คเกจ:
ให้ติดตั้ง
ให้ติดตั้ง