هذه نسخة معدلة من uClibc لـ KLEE. الرجاء مراجعة الملف التمهيدي للحصول على معلومات حول 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 إلى دليل جذر uClibc بواسطة البرنامج النصي للتكوين. يتم ذلك لتسهيل عملية التجميع على المستخدمين. ومع ذلك، يمكن استخدام علامة --disable-prebuilt-config لمنع إضافة ملف .config
. إذا كنت ترغب في إنشاء .config
الخاص بك، فيمكنك القيام بذلك عن طريق تشغيل make menuconfig
أو make config
بعد تشغيل البرنامج النصي للتكوين.
تجميع
$ make
يمكنك أيضًا إضافة علامات اختيارية عن طريق تشغيل إضافة KLEE_CFLAGS=...
إلى نهاية سطر الإنشاء أعلاه. على وجه الخصوص، لتجميع printf، والذي يتم استبعاده افتراضيًا، استخدم:
make KLEE_CFLAGS="-DKLEE_SYM_PRINTF"
للتجميع في الوضع الأمثل، استخدم علامة --enable-release
. قد تنكسر الأشياء التحذيرية إذا قمت بذلك.