Esta es una versión modificada de uClibc para KLEE. Consulte README para obtener información sobre uClibc.
Para construir uClibc para KLEE:
Asegúrese de llvm-config
esté en su RUTA (o configúrelo usando --with-llvm-config
). La versión de LLVM utilizada por llvm-config
debe coincidir con la versión de LLVM utilizada por el compilador C LLVM Bitcode que desea utilizar en el paso 2.
Asegúrese de tener uno de los siguientes compiladores C LLVM
clang
integrado en el directorio de herramientas LLVM ( llvm-config --bindir
)clang
en tu PATH
El compilador de C que se utilizará se buscará en el orden anterior con el primer compilador en funcionamiento que se utilizará.
Tenga en cuenta que también puede forzar un compilador de C particular usando la variable de entorno CC o usando --with-cc
con el script de configuración.
Ejecute el script de configuración.
$ ./configure --make-llvm-lib
Para ver todas las opciones ejecuta
$ ./configure --help
De forma predeterminada, el script de configuración agregará un archivo .config
prediseñado de uClibc al directorio raíz de uClibc. Esto se hace para facilitar la compilación a los usuarios. Sin embargo, el indicador --disable-prebuilt-config se puede utilizar para evitar que se agregue un archivo .config
. Si desea crear su propio .config
puede hacerlo ejecutando make menuconfig
o make config
después de ejecutar el script de configuración.
Compilar
$ make
También puede agregar indicadores opcionales ejecutando add KLEE_CFLAGS=...
al final de la línea de creación anterior. En particular, para compilar printf, que está excluido de forma predeterminada, utilice:
make KLEE_CFLAGS="-DKLEE_SYM_PRINTF"
Para compilar en modo optimizado, utilice el indicador --enable-release
. Advertencia: las cosas podrían romperse si haces esto.