klee / klee-uclibc Goto Github PK
View Code? Open in Web Editor NEWKLEE's version of uClibc
License: GNU Lesser General Public License v2.1
KLEE's version of uClibc
License: GNU Lesser General Public License v2.1
I propose to simply copy the KLEE scripts and set up a couple of targets involving klee-uclibc
Hi, I'm trying to compile klee on macOS 10.12.6 (kernel version Darwin 16.7.0). llvm, stp and minisat are success compiled. Now I'm stuck in compile uclibc.
./configure -l
INFO:Disabling assertions
INFO:Configuring for Debug build
INFO:Configuring for LLVM bitcode archive
INFO:Using llvm-config at.../usr/local/opt/llvm/bin/llvm-config
INFO:Using llvm tool dir.../usr/local/Cellar/llvm/5.0.0/bin
INFO:Found "/usr/local/Cellar/llvm/5.0.0/bin/llvm-objdump".
INFO:Found "/usr/local/Cellar/llvm/5.0.0/bin/llvm-link".
INFO:Found "/usr/local/Cellar/llvm/5.0.0/bin/llvm-ar".
INFO:Found "/usr/local/Cellar/llvm/5.0.0/bin/llvm-nm".
INFO:Searching for LLVM Bitcode compiler...
INFO:Found clang in LLVM Build dir.../usr/local/Cellar/llvm/5.0.0/bin/clang
INFO:Testing LLVM Bitcode compiler.../usr/local/Cellar/llvm/5.0.0/bin/clang
INFO:Compiler /usr/local/Cellar/llvm/5.0.0/bin/clang works
INFO:Using LLVM Bitcode Compiler.../usr/local/Cellar/llvm/5.0.0/bin/clang
INFO:Checking for ncurses...
INFO:Writing templated file to "/Users/apple/Documents/Dev/klee-uclibc/Makefile.klee"
INFO:Setting up pre-made configure for...x86_64
INFO:Installing .config file
INFO:Looking for kernel include path...
ERROR:Kernel header files not found at '/usr/include': '/usr/include/asm/unistd.h' is absent.Export the UCLIBC_KERNEL_HEADERS environment variable to change thedefault path ('/usr/include')
I am using an aarch64 machine to make klee-uclibc, and I found no supported pre-made config files in klee-premade-configs,
README said I can run make menuconfig to generate config file, but I cannot find the aarch64 option in architecture.
I wonder if I can install this plugin in aarch64 env?
Hi, I am new to the klee-uclibc. When I run the command "make config", I got this error message:
Rules.mak:52: Makefile.klee: No such file or directory
make: *** No rule to make target 'Makefile.klee'. Stop.
So, can someone please help me to solve it?
There is an inconsistency between klee_legagcy_i686 and klee_legacy_x86_64.
extra/locale/uClibc-locale-030818.tgz
)Should we build klee_0_9_29 build with locale?
We should simply copy those TravisCI targets from KLEE that enable uclibc.
The wget http://www.uclibc.org
call in extra/locale/Makefile.in
fails for me currently. It seems that switching to https is now necessary. Also, I needed to switch from wget to curl, but am not sure if that is only a local issue.
While compiling on Ubuntu 12.04-03 LTS having gcc 4.6.3, having llvm-2.9 and clang 2.9:
$ clang --version
clang version 2.9 (tags/RELEASE_29/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
I get the error during make
:
*
* uClibc development/debugging options
*
Cross-compiling toolchain prefix (CROSS_COMPILER_PREFIX) []
Enter any extra CFLAGS to use to build uClibc (UCLIBC_EXTRA_CFLAGS) []
Build uClibc with debugging symbols (DODEBUG) [N/y/?] n
Strip libraries and executables (DOSTRIP) [N/y/?] n
Build uClibc with run-time assertion testing (DOASSERTS) [N/y/?] n
Build malloc with debugging support (UCLIBC_MALLOC_DEBUGGING) [N/y/?] n
Compiler Warnings (WARNINGS) [-Wall] -Wall
Enable extra annoying warnings (EXTRA_WARNINGS) [N/y/?] n
Compile all sources at once into an object (DOMULTI) [N/y/?] n
Manuel's hidden warnings (UCLIBC_MJN3_ONLY) [N/y/?] n
#
# configuration written to .config
#
./extra/scripts/conf-header.sh .config > include/bits/uClibc_config.h
CC libcrypt/des.os
clang: warning: argument unused during compilation: '-fgnu89-inline'
In file included from libcrypt/des.c:62:
In file included from ./include/sys/param.h:22:
In file included from ./include/limits.h:124:
/usr/include/limits.h:125:16: fatal error: 'limits.h' file not found
# include_next <limits.h>
^
1 error generated.
make: *** [libcrypt/des.os] Error 1
I configured as per http://ccadar.github.io/klee/GetStarted.html :
./configure --make-llvm-lib
And guess why I'm getting this error?
configure
uses platform.machine(), but it needs to use platform.architecture() because the kernel might not match userspace.
Example:
>>> platform.architecture()
('32bit', 'ELF')
>>> platform.machine()
'x86_64'
This is needed to build klee-uclibc inside a i386 Docker image container.
Currently, uclibc-ng, which is a descendant of uclibc, supports more variety of targets including aarch64 with active maintenance.
I think that if klee-uclibc is rebuilt on top of uclibc-ng instead of the deprecated uclibc, it will become more useful. Or, some of the uclibc-ng's existing code could be ported here.
I do not have root access so I cannot install ncurses. However, I have built it and want to pass the path info of ncurses. How can I do that?
Hi, all
Beacase "llvm-ld" is removed upper on LLVM 3.2, I cannot build "klee-uClibc".
Please refer to LLVM 3.2 release notes
llvm-ld and llvm-stub have been removed, llvm-ld functionality can be partially replaced by llvm-link | opt | {llc | as, llc -filetype=obj} | ld, or fully replaced by Clang.
Thanks,
Hello, secured service of Quad9 DNS can't resolve www.uclibc.org link used in this makefile.
# secured : Malware Blocking, DNSSEC Validation
>> nslookup www.uclibc.org 9.9.9.9
Server: 9.9.9.9
Address: 9.9.9.9#53
** server cant find www.uclibc.org: NXDOMAIN
# Unsecured: No Malware blocking, no DNSSEC validation
>> nslookup www.uclibc.org 9.9.9.10
Server: 9.9.9.10
Address: 9.9.9.10#53
Non-authoritative answer:
Name: www.uclibc.org
Address: 140.211.167.122
To make sure we download a trusted version of locale data, could you maybe add the uClibc-locale-030818.tgz
file to this repo ? Thanks !
I have pushed three new branches
klee_0_9_29 : Is the built on top of the 0_9_29 branch (not the same as the 0_9_29 tag). I have selectively applied changes from the original klee-uclibc as several commits and have I tried my best to provide good commit messages. I found this quite challenging and it's lead me to conclude that we really need to rethink how KLEE and uclibc should interact because some of this code is horrible.
Building klee-uclibc on this branch succeeds for
This branch on 64-bit currently passes the KLEE tests when built with llvm-gcc, on 32-bit it doesn't quite pass but I need to look into this further. I don't believe this is related to uclibc because KLEE's test seem to be broken on 32-bit if I use the old klee-uclibc as well.
What I would like to do is (with permission from all contributors @ccadar @MartinNowack )
➜ build git:(klee_0_9_29) ../configure
--make-llvm-lib
--with-llvm-config="../../../llvm-project/build/bin/llvm-config"
--with-cc="../../../llvm-project/build/bin/clang"
--enable-assertions
INFO:Forcing C compiler to be...../../../llvm-project/build/bin/clang
INFO:Absolute path to compiler.../home/alien/git/llvm_all/llvm-project/build/bin/clang
INFO:Enabling assertions
INFO:Configuring for Debug build
INFO:Configuring for LLVM bitcode archive
INFO:Using llvm-config at.../home/alien/git/llvm_all/llvm-project/build/bin/llvm-config
INFO:Using llvm tool dir.../home/alien/git/llvm_all/llvm-project/build/bin
INFO:Found "/home/alien/git/llvm_all/llvm-project/build/bin/llvm-objdump".
INFO:Found "/home/alien/git/llvm_all/llvm-project/build/bin/llvm-link".
INFO:Found "/home/alien/git/llvm_all/llvm-project/build/bin/llvm-ar".
INFO:Found "/home/alien/git/llvm_all/llvm-project/build/bin/llvm-nm".
INFO:Testing LLVM Bitcode compiler.../home/alien/git/llvm_all/llvm-project/build/bin/clang
INFO:Compiler /home/alien/git/llvm_all/llvm-project/build/bin/clang works
INFO:Using LLVM Bitcode Compiler.../home/alien/git/llvm_all/llvm-project/build/bin/clang
INFO:Checking for ncurses...
INFO:Removing template destination "/home/alien/git/llvm_all/klee_all/klee-uclibc/Makefile.klee"
INFO:Writing templated file to "/home/alien/git/llvm_all/klee_all/klee-uclibc/Makefile.klee"
WARNING:Removing existing config file.../home/alien/git/llvm_all/klee_all/klee-uclibc/.config
INFO:Setting up pre-made configure for...x86_64
INFO:Installing .config file
INFO:Looking for kernel include path...
INFO:Found "/usr/include/x86_64-linux-gnu"
➜ build git:(klee_0_9_29) la
total 0
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.