1:BUILD_BY[name] student0 1:BUILD_ENVIRONMENT[operating system 32 vs 64] Ubuntu 64bit 14.04 1:END_BUILD_ENVIRONMENT 1:DEPENDENCIES[list of dependencies with where to get them] Using: http://cloud9.epfl.ch/setting-up using setup automation script: build_install_cloud9.sh 1:END_DEPENDENCIES 1:NOTES[notes on attempted build] LLVM fails to set up (error meesage at the end): /home/student/Desktop/KuznetsovKBC12/src/cloud9-state-merging-pldi12/llvm/lib/ExecutionEngine/JIT/Intercept.cpp: In constructor ‘{anonymous}::StatSymbols::StatSymbols()’: /home/student/Desktop/KuznetsovKBC12/src/cloud9-state-merging-pldi12/llvm/lib/ExecutionEngine/JIT/Intercept.cpp:69:67: error: ‘lseek64’ was not declared in this scope sys::DynamicLibrary::AddSymbol("\x1lseek64", (void*)(intptr_t)lseek64); ^ /bin/rm: cannot remove ‘/home/student/Desktop/KuznetsovKBC12/src/cloud9-state-merging-pldi12/build/llvm-build/lib/ExecutionEngine/JIT/Release+Asserts/Intercept.d.tmp’: No such file or directory make[4]: *** [/home/student/Desktop/KuznetsovKBC12/src/cloud9-state-merging-pldi12/build/llvm-build/lib/ExecutionEngine/JIT/Release+Asserts/Intercept.o] Error 1 make[4]: Leaving directory `/home/student/Desktop/KuznetsovKBC12/src/cloud9-state-merging-pldi12/build/llvm-build/lib/ExecutionEngine/JIT' make[3]: *** [JIT/.makeall] Error 2 make[3]: Leaving directory `/home/student/Desktop/KuznetsovKBC12/src/cloud9-state-merging-pldi12/build/llvm-build/lib/ExecutionEngine' make[2]: *** [ExecutionEngine/.makeall] Error 2 make[2]: Leaving directory `/home/student/Desktop/KuznetsovKBC12/src/cloud9-state-merging-pldi12/build/llvm-build/lib' make[1]: *** [all] Error 1 make[1]: Leaving directory `/home/student/Desktop/KuznetsovKBC12/src/cloud9-state-merging-pldi12/build/llvm-build' make: *** [/home/student/Desktop/KuznetsovKBC12/src/cloud9-state-merging-pldi12/build/stamp/llvm-build] Error 2 1:END_NOTES 2:BUILD_BY[name] student4 2:BUILD_ENVIRONMENT[operating system 32 vs 64] >>>> lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 14.04.1 LTS Release: 14.04 Codename: trusty >>>> uname -a Linux student-VPCSE13FX 3.13.0-39-generic #66-Ubuntu SMP Tue Oct 28 13:30:27 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux >>>> lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 2 Core(s) per socket: 2 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 42 Stepping: 7 CPU MHz: 1400.000 BogoMIPS: 4788.81 Virtualization: VT-x L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 3072K NUMA node0 CPU(s): 0-3 >>>> javac -version javac 1.7.0_65 >>>> gcc --version gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2 2:END_BUILD_ENVIRONMENT 2:DEPENDENCIES[list of dependencies with where to get them] sudo apt-get install bison flex libboost-all-dev Actually newest of version of bison is causing issues. > wget http://ftp.gnu.org/gnu/bison/bison-2.6.1.tar.gz compile and install protoc Protocol Buffers > wget https://protobuf.googlecode.com/files/protobuf-2.4.1.tar.gz Also Boost 1.46 2:END_DEPENDENCIES 2:NOTES[notes on attempted build] > wget https://s3.amazonaws.com/static.cloud9.epfl.ch/cloud9-state-merging-pldi12.tar.bz2 > tar -xzf cloud9-state-merging-pldi12.tar.bz2 > cd cloud9-state-merging-pldi12 README.txt says to just run make > make llvm[4]: Compiling Intercept.cpp for Release+Asserts build In file included from /home/student/temp/repro/kuznetsov/cloud9-state-merging-pldi12/llvm/lib/ExecutionEngine/JIT/JIT.h:17:0, from /home/student/temp/repro/kuznetsov/cloud9-state-merging-pldi12/llvm/lib/ExecutionEngine/JIT/Intercept.cpp:18: /home/student/temp/repro/kuznetsov/cloud9-state-merging-pldi12/llvm/include/llvm/ExecutionEngine/ExecutionEngine.h: In member function ‘virtual void* llvm::ExecutionEngine::getOrEmitGlobalVariable(const llvm::GlobalVariable*)’: /home/student/temp/repro/kuznetsov/cloud9-state-merging-pldi12/llvm/include/llvm/ExecutionEngine/ExecutionEngine.h:343:45: warning: cast from type ‘const llvm::GlobalVariable*’ to type ‘llvm::GlobalValue*’ casts away qualifiers [-Wcast-qual] return getPointerToGlobal((GlobalValue*)GV); ^ /home/student/temp/repro/kuznetsov/cloud9-state-merging-pldi12/llvm/lib/ExecutionEngine/JIT/Intercept.cpp: In constructor ‘{anonymous}::StatSymbols::StatSymbols()’: /home/student/temp/repro/kuznetsov/cloud9-state-merging-pldi12/llvm/lib/ExecutionEngine/JIT/Intercept.cpp:69:67: error: ‘lseek64’ was not declared in this scope sys::DynamicLibrary::AddSymbol("\x1lseek64", (void*)(intptr_t)lseek64); ^ /bin/rm: cannot remove ‘/home/student/temp/repro/kuznetsov/cloud9-state-merging-pldi12/build/llvm-build/lib/ExecutionEngine/JIT/Release+Asserts/Intercept.d.tmp’: No such file or directory make[4]: *** [/home/student/temp/repro/kuznetsov/cloud9-state-merging-pldi12/build/llvm-build/lib/ExecutionEngine/JIT/Release+Asserts/Intercept.o] Error 1 make[4]: Leaving directory `/home/student/temp/repro/kuznetsov/cloud9-state-merging-pldi12/build/llvm-build/lib/ExecutionEngine/JIT' make[3]: *** [JIT/.makeall] Error 2 make[3]: Leaving directory `/home/student/temp/repro/kuznetsov/cloud9-state-merging-pldi12/build/llvm-build/lib/ExecutionEngine' make[2]: *** [ExecutionEngine/.makeall] Error 2 make[2]: Leaving directory `/home/student/temp/repro/kuznetsov/cloud9-state-merging-pldi12/build/llvm-build/lib' make[1]: *** [all] Error 1 make[1]: Leaving directory `/home/student/temp/repro/kuznetsov/cloud9-state-merging-pldi12/build/llvm-build' make: *** [/home/student/temp/repro/kuznetsov/cloud9-state-merging-pldi12/build/stamp/llvm-build] Error 2 Same error as student. Appears to be an issue with gcc 4.7 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=673266 Used patch from: https://bugs.debian.org/cgi-bin/bugreport.cgi\?msg\=10\;filename\=llvm.patch\;att\=1\;bug\=673266 -O lseek_patch.patch >make Making dependencies make[2]: Leaving directory `/home/student/temp/repro/kuznetsov/cloud9-state-merging-pldi12/build/stp/src/main' make[2]: Entering directory `/home/student/temp/repro/kuznetsov/cloud9-state-merging-pldi12/build/stp/src/main' /bin/bash: line 1: [: too many arguments cat: versionString.stamp: No such file or directory Making dependencies make[2]: Leaving directory `/home/student/temp/repro/kuznetsov/cloud9-state-merging-pldi12/build/stp/src/main' make[2]: Entering directory `/home/student/temp/repro/kuznetsov/cloud9-state-merging-pldi12/build/stp/src/main' /bin/bash: line 1: [: too many arguments ^Cmake[2]: *** Deleting file `versionString.cpp' cat: versionString.stamp: No such file or directory Infinite loop problem with versionString.stamp: FORCE @SVNVERSION=`svnversion $(TOP)`; \ if [ x`cat $@ 2> /dev/null` != x$$SVNVERSION ]; then \ echo $$SVNVERSION > $@; \ fi Just to give it something >echo "r100" > build/stp/src/main/versionString.stamp >make ... Making dependencies make[2]: Leaving directory `/home/student/temp/repro/kuznetsov/cloud9-state-merging-pldi12/build/stp/src/c_interface' make[2]: Entering directory `/home/student/temp/repro/kuznetsov/cloud9-state-merging-pldi12/build/stp/src/c_interface' g++ -O3 -g -D __STDC_LIMIT_MACROS -D __STDC_FORMAT_MACROS -I /include -DEXT_HASH_MAP -Wno-deprecated -c -o c_interface.o c_interface.cpp rm -f libcinterface.a ar qcs libcinterface.a c_interface.o make[2]: Leaving directory `/home/student/temp/repro/kuznetsov/cloud9-state-merging-pldi12/build/stp/src/c_interface' make -C src/parser /bin/bash: flex: command not found /bin/bash: flex: command not found make[2]: Entering directory `/home/student/temp/repro/kuznetsov/cloud9-state-merging-pldi12/build/stp/src/parser' bison --debug -v -o parsecvc.cpp -d -p cvc cvc.y /bin/bash: bison: command not found make[2]: Leaving directory `/home/student/temp/repro/kuznetsov/cloud9-state-merging-pldi12/build/stp/src/parser' make[1]: *** [src/parser/libparser.a] Error 2 make[1]: Leaving directory `/home/student/temp/repro/kuznetsov/cloud9-state-merging-pldi12/build/stp' make: *** [/home/student/temp/repro/kuznetsov/cloud9-state-merging-pldi12/build/stamp/stp-build] Error 2 Needed to install dependencies Oristudentlly tried bison 3 But this is not compatible. Instead 2.6.1 worked. Also, to build klee-uclibc > sudo ln -s /usr/include/asm-generic /usr/include/asm >make CC libc/sysdeps/linux/common/access.os libc/sysdeps/linux/common/access.c: In function 'access': libc/sysdeps/linux/common/access.c:12: error: '__NR_access' undeclared (first use in this function) libc/sysdeps/linux/common/access.c:12: error: (Each undeclared identifier is reported only once libc/sysdeps/linux/common/access.c:12: error: for each function it appears in.) make[1]: *** [libc/sysdeps/linux/common/access.os] Error 1 make[1]: Leaving directory `/home/student/temp/repro/kuznetsov/first-cloud9-state-merging-pldi12/build/klee-uclibc' make: *** [/home/student/temp/repro/kuznetsov/first-cloud9-state-merging-pldi12/build/stamp/klee-uclibc-build] Error 2 > grep -e "NR_access" build/klee-uclibc/include/ -R but it does exist in system libraries /usr/include/asm-generic however access.c references local libs and complains if I point it to local includes I manually put in the defines for __NR_xxxx and this fixed it. (hacky) Now issue with not defined because: "When using Boost 1.48 or newer, boost::interprocess::detail has been renamed to boost::interprocess::ipcdetail" Switched to Boost 1.46 Now errors with old boost: patching: http://stackoverflow.com/questions/5389853/doesnt-compile-if-included-boost-thread-in-linux-ubuntu10-10 http://stackoverflow.com/questions/17599377/boost-error-trouble-compiling-xtime-hpp Now: need to install boost libs from source. installed in /usr/local/boost_1_46_0/stage/lib need to fix symbolic links > make ... llvm[3]: Compiling abort.c for Release+Asserts build (bytecode) In file included from /home/student/temp/repro/kuznetsov/first-cloud9-state-merging-pldi12/klee/runtime/Intrinsic/abort.c:1: /usr/include/stdlib.h:67: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘typedef’ /usr/include/stdlib.h:97: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘typedef’ /usr/include/stdlib.h:115: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__BEGIN_NAMESPACE_C99’ /usr/include/stdlib.h:139: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘extern’ /usr/include/stdlib.h:144: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘extern’ /usr/include/stdlib.h: In function ‘atoi’: ... Also an issue with stdint.h > find . -iname stdint.h ./stp_git/lib/Sat/cryptominisat2/msvc/stdint.h ./stp_git/windows/winports/msc99hdr/stdint.h ./stp/src/sat/cryptominisat2/msvc/stdint.h ./stp/windows/winports/msc99hdr/stdint.h ./build/llvm-gcc4.2-2.9-x86_64-linux/include/c++/4.2.1/tr1/stdint.h ./build/stp/src/sat/cryptominisat2/msvc/stdint.h ./build/stp/windows/winports/msc99hdr/stdint.h ./build/klee-uclibc/include/stdint.h ./klee-uclibc/include/stdint.h So I set > export CPLUS_INCLUDE_PATH=/home/student/temp/repro/kuznetsov/first-cloud9-state-merging-pldi12/build/llvm-gcc4.2-2.9-x86_64-linux/include/c++/4.2.1/tr1 > export C_INCLUDE_PATH=/home/student/temp/repro/kuznetsov/first-cloud9-state-merging-pldi12/build/llvm-gcc4.2-2.9-x86_64-linux/include/c++/4.2.1/tr1 But similar error persists > make /usr/include/assert.h:85: error: expected declaration specifiers before ‘__END_DECLS’ In file included from /home/student/temp/repro/kuznetsov/first-cloud9-state-merging-pldi12/klee/include/klee/klee.h:14, from /home/student/temp/repro/kuznetsov/first-cloud9-state-merging-pldi12/klee/runtime/Intrinsic/klee_int.c:11: /home/student/temp/repro/kuznetsov/first-cloud9-state-merging-pldi12/build/llvm-gcc4.2-2.9-x86_64-linux/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.2.1/include/stddef.h:214: error: storage class specified for parameter ‘size_t’ /home/student/temp/repro/kuznetsov/first-cloud9-state-merging-pldi12/build/llvm-gcc4.2-2.9-x86_64-linux/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.2.1/include/stddef.h:326: error: storage class specified for parameter ‘wchar_t’ In file included from /home/student/temp/repro/kuznetsov/first-cloud9-state-merging-pldi12/klee/runtime/Intrinsic/klee_int.c:11: /home/student/temp/repro/kuznetsov/first-cloud9-state-merging-pldi12/klee/include/klee/klee.h:26: error: expected declaration specifiers or ‘...’ before ‘size_t’ Someone with a similar error was told: http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-June/062826.html This would probably work better with an older version of Ubuntu. It appears to be an issue with x86 support. DATA: > wget https://s3.amazonaws.com/static.cloud9.epfl.ch/state-merging-expdata-pldi12.tar.bz2 2:END_NOTES 3:BUILD_BY[name] student4 3:BUILD_ENVIRONMENT[operating system 32 vs 64] >>>> lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 10.04.4 LTS Release: 10.04 Codename: lucid >>>> uname -a Linux student-ubuntu-10 2.6.32-21-generic #32-Ubuntu SMP Fri Apr 16 08:09:38 UTC 2010 x86_64 GNU/Linux >>>> lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit CPU(s): 4 Thread(s) per core: 1 Core(s) per socket: 4 CPU socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 15 Stepping: 11 CPU MHz: 1600.000 Virtualization: VT-x L1d cache: 32K L1i cache: 32K L2 cache: 4096K >>>> gcc --version gcc (Ubuntu 4.4.3-4ubuntu5.1) 4.4.3 3:END_BUILD_ENVIRONMENT 3:DEPENDENCIES[list of dependencies with where to get them] sudo apt-get install flex > wget http://ftp.gnu.org/gnu/bison/bison-2.6.1.tar.gz compile and install protoc Protocol Buffers > wget https://protobuf.googlecode.com/files/protobuf-2.4.1.tar.gz Also Boost 1.46 3:END_DEPENDENCIES 3:NOTES[notes on attempted build] Trying in Ubuntu 10.04 > wget https://s3.amazonaws.com/static.cloud9.epfl.ch/cloud9-state-merging-pldi12.tar.bz2 > tar -xzf cloud9-state-merging-pldi12.tar.bz2 > cd cloud9-state-merging-pldi12 README.txt says to just run make > make issue with finding -lboost_thread-mt > sudo ln -s /usr/local/lib/libboost_system.so /usr/local/lib/libboost_system-mt.so > sudo ln -s /usr/local/lib/libboost_thread.so /usr/local/lib/libboost_thread-mt.so > make llvm[3]: Compiling sockets.c for Release+Asserts build (bytecode) /home/student/cloud9-state-merging-pldi12/klee/runtime/POSIX/sockets.c:1769: error: conflicting types for ‘getnameinfo’ /usr/include/netdb.h:656: error: previous declaration of ‘getnameinfo’ was here make[3]: *** [/home/student/cloud9-state-merging-pldi12/build/klee-build/runtime/POSIX/Release+Asserts/sockets.ll] Error 1 make[3]: Leaving directory `/home/student/cloud9-state-merging-pldi12/build/klee-build/runtime/POSIX' make[2]: *** [POSIX/.makeall] Error 2 make[2]: Leaving directory `/home/student/cloud9-state-merging-pldi12/build/klee-build/runtime' make[1]: *** [all] Error 1 make[1]: Leaving directory `/home/student/cloud9-state-merging-pldi12/build/klee-build' make: *** [/home/student/cloud9-state-merging-pldi12/build/stamp/klee-build] Error 2 Not finding anything specific for klee but https://github.com/rofl0r/proxychains-ng/issues/7 based on that > sudo vim /usr/include/netdb.h and remove unsigned from function signature > make ... done. attempted to run klee with a simple merge sort program. Decided not to spend extra time to determine correct aruments, appears to be working correctly. > klee -max-time 2 -sym-args 1 -max-fail 1 merge.bc 3:END_NOTES