นี่คือ uClibc เวอร์ชันแก้ไขสำหรับ KLEE โปรดดู README สำหรับข้อมูลเกี่ยวกับ uClibc
วิธีสร้าง uClibc สำหรับ KLEE:
ตรวจสอบให้แน่ใจว่า llvm-config
อยู่ใน PATH ของคุณ (หรือตั้งค่าโดยใช้ --with-llvm-config
) เวอร์ชัน LLVM ที่ใช้โดย llvm-config
ควรตรงกับเวอร์ชัน LLVM ที่ใช้โดยคอมไพเลอร์ C LLVM Bitcode ที่คุณต้องการใช้ในขั้นตอนที่ 2
ตรวจสอบให้แน่ใจว่าคุณมีคอมไพเลอร์ C LLVM อย่างใดอย่างหนึ่งต่อไปนี้
clang
สร้างขึ้นในไดเร็กทอรีเครื่องมือ LLVM ( llvm-config --bindir
)clang
ใน PATH
ของคุณคอมไพเลอร์ C ที่จะใช้จะถูกค้นหาตามลำดับข้างต้นโดยคอมไพเลอร์ทำงานตัวแรกที่จะใช้
โปรดทราบว่าคุณยังสามารถบังคับคอมไพเลอร์ C เฉพาะได้โดยใช้ตัวแปรสภาพแวดล้อม CC หรือโดยใช้ --with-cc
กับสคริปต์กำหนดค่า
เรียกใช้สคริปต์กำหนดค่า
$ ./configure --make-llvm-lib
หากต้องการดูตัวเลือกทั้งหมดให้รัน
$ ./configure --help
ตามค่าเริ่มต้น ไฟล์ .config
ที่สร้างไว้ล่วงหน้าจะถูกเพิ่มลงในไดเรกทอรีรากของ uClibc โดยสคริปต์กำหนดค่า สิ่งนี้ทำเพื่อให้การคอมไพล์ง่ายขึ้นสำหรับผู้ใช้ อย่างไรก็ตาม สามารถใช้แฟล็ก --disable-prebuilt-config เพื่อป้องกันไม่ให้มีการเพิ่มไฟล์ .config
หากคุณต้องการสร้าง .config
ของคุณเอง คุณสามารถทำได้โดยการเรียกใช้ make menuconfig
หรือ make config
หลังจากรันสคริปต์กำหนดค่า
รวบรวม
$ make
คุณยังสามารถเพิ่มแฟล็กเพิ่มเติมได้ด้วยการรันการเพิ่ม KLEE_CFLAGS=...
ต่อท้ายบรรทัด make ด้านบน โดยเฉพาะอย่างยิ่งในการคอมไพล์ printf ซึ่งถูกแยกออกตามค่าเริ่มต้น ให้ใช้:
make KLEE_CFLAGS="-DKLEE_SYM_PRINTF"
หากต้องการคอมไพล์ในโหมดปรับให้เหมาะสมให้ใช้แฟล็ก --enable-release
คำเตือนอาจเสียหายหากคุณทำเช่นนี้