เป็นไปได้ไหมที่จะรวบรวมระบบลีนุกซ์เต็มรูปแบบกับคอมไพเลอร์ของ Intel แทนที่จะเป็น GCC?


26

อาจมีปัญหาความเข้ากันได้บ้าง?

ฉันมีความประทับใจว่าสำหรับระบบที่ใช้ Intel ตัวแปลภาษาของ Intel อาจทำงานได้ดีกว่า GCC บางทีอาจมี distro ที่พยายามทำสิ่งนี้อยู่แล้ว?

ฉันคิดว่ามันอาจจะตรงไปตรงมาเมื่อใช้ Gentoo


4
ข้อมูลที่ดีบางอย่างที่นี่ที่ฉันควรจะพบมาก่อน! gentoo-wiki.info/HOWTO_ICC_and_Portage
barrymac

5
ฉันต้องสงสัยเกี่ยวกับหลักฐานของคุณ: คุณจะวัดได้อย่างไรว่าคอมไพเลอร์ใดที่ "ทำงานได้ดีกว่า"? เรียกใช้รหัสได้เร็วขึ้น? ไบนารีขนาดเล็ก? เวลารวบรวมเร็วขึ้น?
Eli Heady

1
ฉันจะวัดมันด้วยรหัสที่เร็วกว่าก่อนไบนารีที่สองเล็กลง แต่จะไม่สนใจขนาดฐานไบนารีมากนักเว้นแต่ว่ามันจะค่อนข้างน่าทึ่ง บางทีความกังวลอื่นอาจเป็นประสิทธิภาพการใช้พลังงาน
barrymac

คำตอบ:


29

คุณจะไม่สามารถรวบรวมทุกอย่างด้วย icc หลายโปรแกรมที่นั่นใช้ส่วนขยาย GCC กับภาษา C อย่างไรก็ตาม Intel พยายามอย่างหนักเพื่อสนับสนุนส่วนขยายเหล่านี้ส่วนใหญ่ ตัวอย่างเช่น icc เวอร์ชันล่าสุดสามารถคอมไพล์เคอร์เนล Linux

Gentoo เป็นทางออกที่ดีที่สุดของคุณหากคุณต้องการคอมไพล์ซอฟต์แวร์ซ้ำด้วยวิธีที่ผิดปกติ หน้า ICC ในวิกิพีเดีย Gentooอธิบายอุปสรรคหลัก

ก่อนให้การติดตั้ง Gentoo emerge iccพื้นฐานและ อย่าลบ icc ในภายหลังตราบใดที่คุณมีไบนารี่ที่คอมไพล์ด้วย icc ในระบบของคุณ โปรดทราบว่าติดตั้ง icc /optแล้ว หากไม่ได้อยู่ในรูทพาร์ติชันของคุณคุณจะต้องคัดลอกไลบรารี่ icc ไปยังพาร์ติชั่นรูทของคุณหากโปรแกรมใด ๆ

ตั้งค่า/etc/portage/bashrcและประกาศตัวเลือกการรวบรวมที่คุณชื่นชอบ ดูGentoo wikiสำหรับสคริปต์ที่ละเอียดยิ่งขึ้นซึ่งรองรับการสร้างแพ็คเกจที่แตกต่างกันด้วยคอมไพเลอร์ที่แตกต่างกัน (นี่เป็นสิ่งที่จำเป็นเพราะ ICC แบ่งแพคเกจบางส่วน)

export OCC="icc" CFLAGS="-O2 -gcc"
export OCXX="icpc" CXXFLAGS="$CFLAGS"
export CC_FOR_BUILD="${OCC}"

13

มันจะเป็นประสบการณ์ที่น่าสนใจอย่างแน่นอน การคอมไพล์ใหม่ของ distro Linux ทั้งหมดโดยใช้ตัวรวบรวมทางเลือกอื่นอาจไม่ตรงไปตรงมา แพ็คเกจจำเป็นมากมายขึ้นอยู่กับ GCC และยูทิลิตี้ทูลเชนอื่นของ GNU

มันจะเป็นไปได้ที่จะใช้คอมไพเลอร์ทางเลือกสำหรับแพ็คเกจเหล่านั้นที่ไม่ต้องการ GCC เพื่อสร้างไฮบริด อาจเป็นไปได้ที่จะแทนที่แพ็คเกจที่ขึ้นอยู่กับ GCC ด้วยแพ็คเกจอื่นที่จะสร้างด้วยคอมไพเลอร์ของคุณ แต่ในกรณีส่วนใหญ่มีทางเลือกไม่มากนัก คุณจะต้องพิจารณาว่าทางเลือกเหล่านั้นจะสามารถใช้งานได้ตามที่คุณต้องการหรือไม่

แม้ว่าคำถามจริงคือ: มันจะคุ้มค่าหรือไม่ หากคุณพยายามสร้างระบบฝังตัวคอมไพเลอร์ทางเลือกอาจสร้างไบนารีที่เล็กลง หากคุณกำลังสร้างคลัสเตอร์การคำนวณคุณอาจได้รับรหัสที่เร็วขึ้น หากคุณกำลังสร้างเดสก์ท็อปคุณจะได้รับประสบการณ์การเรียนรู้ที่ยอดเยี่ยม

ฉันคิดว่าในท้ายที่สุด (สมมติว่าคุณกำลังสร้างเดสก์ท็อป) คุณจะพบว่าสิ่งที่ผู้ใช้ distro ในที่สุดตัดสินใจ: จำนวนเวลาที่ใช้ในการปรับให้เหมาะสมและการสร้างและสร้างใหม่อีกครั้ง ไม่ได้บอกว่าไม่ควรทำ - มันค่อนข้างสนุก หากคุณทำเช่นนี้เว็บไซต์นี้จะเป็นสถานที่ที่ดีในการค้นหาคำตอบและบันทึกความพยายามของคุณ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.