ใช้ความสามารถในการสร้าง Glibc โดยใช้ชุดเครื่องมือ LLVM

วิศวกรจาก Collabora ได้เผยแพร่รายงานเกี่ยวกับการดำเนินโครงการเพื่อให้แน่ใจว่าการประกอบไลบรารีระบบ GNU C Library (glibc) โดยใช้ชุดเครื่องมือ LLVM (Clang, LLD, Compiler-rt) แทน GCC จนกระทั่งเมื่อไม่นานมานี้ Glibc ยังคงเป็นหนึ่งในองค์ประกอบสำคัญของการกระจายที่รองรับการสร้างอาคารโดยใช้ GCC เท่านั้น

ความยากในการปรับ Glibc สำหรับแอสเซมบลีโดยใช้ LLVM เกิดจากความแตกต่างในลักษณะการทำงานของ GCC และ Clang เมื่อประมวลผลโครงสร้างบางอย่าง (ตัวอย่างเช่น นิพจน์ที่มีสัญลักษณ์ $ ฟังก์ชันที่ซ้อนกัน ป้ายกำกับในบล็อก asm ประเภท long double และ float128) และจำเป็นต้องแทนที่รันไทม์ด้วย libgcc บนคอมไพเลอร์-rt

เพื่อให้แน่ใจว่าการประกอบ Glibc โดยใช้ LLVM ได้มีการเตรียมแพตช์ประมาณ 150 รายการสำหรับสภาพแวดล้อม Gentoo และ 160 รายการสำหรับสภาพแวดล้อมที่ใช้ ChromiumOS ในรูปแบบปัจจุบัน บิลด์ใน ChromiumOS ผ่านการทดสอบชุดทดสอบเรียบร้อยแล้ว แต่ยังไม่ได้เปิดใช้งานตามค่าเริ่มต้น ขั้นตอนต่อไปคือการถ่ายโอนการเปลี่ยนแปลงที่เตรียมไว้ไปยังโครงสร้างหลักของ Glibc และ LLVM ดำเนินการทดสอบและแก้ไขปัญหาผิดปกติที่ปรากฏขึ้นต่อไป แพตช์บางส่วนได้รับการยอมรับในสาขา Glibc 2.37 แล้ว

ที่มา: opennet.ru

เพิ่มความคิดเห็น