Hello community, here is the log from the commit of package klee-uclibc for openSUSE:Factory checked in at 2018-09-03 10:36:24 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/klee-uclibc (Old) and /work/SRC/openSUSE:Factory/.klee-uclibc.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "klee-uclibc" Mon Sep 3 10:36:24 2018 rev:8 rq:632734 version:1.0.0+git.20171011 Changes: -------- --- /work/SRC/openSUSE:Factory/klee-uclibc/klee-uclibc.changes 2018-07-06 10:45:26.283008865 +0200 +++ /work/SRC/openSUSE:Factory/.klee-uclibc.new/klee-uclibc.changes 2018-09-03 10:36:26.000875700 +0200 @@ -1,0 +2,11 @@ +Sun Sep 02 09:35:18 UTC 2018 - jsl...@suse.com + +- Update to version 1.0.0+git.20171011: + * Updated Travis-CI to compile KLEE with CMake only + * Sort list of ar input files + * Removed support for LLVM 2.9 + * configure: read kernel header location from environment variable + * features: support glibc 2.25 +- remove 0001-features-support-glibc-2.25.patch (in upstream) + +------------------------------------------------------------------- Old: ---- 0001-features-support-glibc-2.25.patch klee-uclibc-1.0.0+git.20170324.tar.xz New: ---- klee-uclibc-1.0.0+git.20171011.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ klee-uclibc.spec ++++++ --- /var/tmp/diff_new_pack.zIRivU/_old 2018-09-03 10:36:26.492876972 +0200 +++ /var/tmp/diff_new_pack.zIRivU/_new 2018-09-03 10:36:26.496876982 +0200 @@ -18,18 +18,17 @@ %define llvm_version 6 -%define version_unconverted 1.0.0+git.20170324 +%define version_unconverted 1.0.0+git.20171011 Name: klee-uclibc Summary: Libc library for Klee License: LGPL-2.1+ Group: Development/Languages/Other -Version: 1.0.0+git.20170324 +Version: 1.0.0+git.20171011 Release: 0 Url: https://github.com/klee/klee-uclibc Source0: %{name}-%{version}.tar.xz Source1: %{name}-rpmlintrc -Patch0: 0001-features-support-glibc-2.25.patch Patch1: proper-compiler-flags-check.patch BuildRequires: clang%{llvm_version} BuildRequires: llvm%{llvm_version}-devel @@ -57,7 +56,6 @@ %prep %setup -q -%patch0 -p1 %patch1 -p1 %build ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.zIRivU/_old 2018-09-03 10:36:26.536877086 +0200 +++ /var/tmp/diff_new_pack.zIRivU/_new 2018-09-03 10:36:26.536877086 +0200 @@ -1,4 +1,4 @@ <servicedata> <service name="tar_scm"> <param name="url">git://github.com/klee/klee-uclibc.git</param> - <param name="changesrevision">7850ecb322da932922a9d85fc8d171ca6e0768f3</param></service></servicedata> \ No newline at end of file + <param name="changesrevision">71f0d25e41fd1d6147275c83a23bd79045ce8d12</param></service></servicedata> \ No newline at end of file ++++++ klee-uclibc-1.0.0+git.20170324.tar.xz -> klee-uclibc-1.0.0+git.20171011.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klee-uclibc-1.0.0+git.20170324/.travis/install-llvm-and-runtime-compiler.sh new/klee-uclibc-1.0.0+git.20171011/.travis/install-llvm-and-runtime-compiler.sh --- old/klee-uclibc-1.0.0+git.20170324/.travis/install-llvm-and-runtime-compiler.sh 2017-03-24 12:07:22.000000000 +0100 +++ new/klee-uclibc-1.0.0+git.20171011/.travis/install-llvm-and-runtime-compiler.sh 2017-10-11 23:56:26.000000000 +0200 @@ -3,28 +3,11 @@ sudo apt-get install -y llvm-${LLVM_VERSION} llvm-${LLVM_VERSION}-dev -if [ "${LLVM_VERSION}" != "2.9" ]; then +if [ "${LLVM_VERSION}" == "3.4" ]; then sudo apt-get install -y llvm-${LLVM_VERSION}-tools clang-${LLVM_VERSION} sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-${LLVM_VERSION} 20 sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-${LLVM_VERSION} 20 else - # Get llvm-gcc. We don't bother installing it - wget http://llvm.org/releases/2.9/llvm-gcc4.2-2.9-x86_64-linux.tar.bz2 - tar -xjf llvm-gcc4.2-2.9-x86_64-linux.tar.bz2 - mv llvm-gcc4.2-2.9-x86_64-linux llvm-gcc - - # Hack to make llvm-gcc capable of building a native executable - OLD_DIR=$(pwd) - cd llvm-gcc/lib/gcc/x86_64-unknown-linux-gnu/4.2.1 - ln -s /usr/lib/x86_64-linux-gnu/crt1.o - ln -s /usr/lib/x86_64-linux-gnu/crti.o - ln -s /usr/lib/x86_64-linux-gnu/crtn.o - cd "$OLD_DIR" - - # Check it can compile hello world - echo -e "#include <stdio.h> \n int main(int argc, char** argv) { printf(\"Hello World\"); return 0;}" > test.c - export C_INCLUDE_PATH=/usr/include/x86_64-linux-gnu - export CPLUS_INCLUDE_PATH=/usr/include/x86_64-linux-gnu - llvm-gcc/bin/llvm-gcc test.c -o hello_world - ./hello_world + echo "Unknown LLVM version ${LLVM_VERSION}" + exit 1 fi diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klee-uclibc-1.0.0+git.20170324/.travis/klee.sh new/klee-uclibc-1.0.0+git.20171011/.travis/klee.sh --- old/klee-uclibc-1.0.0+git.20170324/.travis/klee.sh 2017-03-24 12:07:22.000000000 +0100 +++ new/klee-uclibc-1.0.0+git.20171011/.travis/klee.sh 2017-10-11 23:56:26.000000000 +0200 @@ -25,34 +25,19 @@ KLEE_Z3_CONFIGURE_OPTION="" SOLVER_LIST=$(echo "${SOLVERS}" | sed 's/:/ /') -if [ "X${USE_CMAKE}" == "X1" ]; then - # Set CMake configure options - for solver in ${SOLVER_LIST}; do - echo "Setting CMake configuration option for ${solver}" - case ${solver} in - Z3) - echo "Z3" - KLEE_Z3_CONFIGURE_OPTION="-DENABLE_SOLVER_Z3=TRUE" - ;; - *) - echo "Unknown solver ${solver}" - exit 1 - esac - done -else - for solver in ${SOLVER_LIST}; do - echo "Setting configuration option for ${solver}" - case ${solver} in - Z3) - echo "Z3" - KLEE_Z3_CONFIGURE_OPTION="--with-z3=/usr" - ;; - *) - echo "Unknown solver ${solver}" - exit 1 - esac - done -fi +# Set CMake configure options +for solver in ${SOLVER_LIST}; do + echo "Setting CMake configuration option for ${solver}" + case ${solver} in + Z3) + echo "Z3" + KLEE_Z3_CONFIGURE_OPTION="-DENABLE_SOLVER_Z3=TRUE" + ;; + *) + echo "Unknown solver ${solver}" + exit 1 + esac +done ############################################################################### # Compile KLEE and run tests @@ -60,88 +45,43 @@ mkdir klee-build cd klee-build -if [ "X${USE_CMAKE}" == "X1" ]; then - KLEE_UCLIBC_CONFIGURE_OPTION="-DENABLE_KLEE_UCLIBC=TRUE -DKLEE_UCLIBC_PATH=${SRC_DIR} -DENABLE_POSIX_RUNTIME=TRUE" +KLEE_UCLIBC_CONFIGURE_OPTION="-DENABLE_KLEE_UCLIBC=TRUE -DKLEE_UCLIBC_PATH=${SRC_DIR} -DENABLE_POSIX_RUNTIME=TRUE" + +GTEST_SRC_DIR="${BUILD_DIR}/test-utils/googletest-release-1.7.0/" +if [ "X${DISABLE_ASSERTIONS}" == "X1" ]; then + KLEE_ASSERTS_OPTION="-DENABLE_KLEE_ASSERTS=FALSE" else - KLEE_UCLIBC_CONFIGURE_OPTION="--with-uclibc=${SRC_DIR} --enable-posix-runtime" + KLEE_ASSERTS_OPTION="-DENABLE_KLEE_ASSERTS=TRUE" fi -if [ "X${USE_CMAKE}" == "X1" ]; then - GTEST_SRC_DIR="${BUILD_DIR}/test-utils/googletest-release-1.7.0/" - if [ "X${DISABLE_ASSERTIONS}" == "X1" ]; then - KLEE_ASSERTS_OPTION="-DENABLE_KLEE_ASSERTS=FALSE" - else - KLEE_ASSERTS_OPTION="-DENABLE_KLEE_ASSERTS=TRUE" - fi - - if [ "X${ENABLE_OPTIMIZED}" == "X1" ]; then - CMAKE_BUILD_TYPE="RelWithDebInfo" - else - CMAKE_BUILD_TYPE="Debug" - fi - - # Compute CMake build type - cmake \ - -DLLVM_CONFIG_BINARY="/usr/lib/llvm-${LLVM_VERSION}/bin/llvm-config" \ - -DLLVMCC="${KLEE_CC}" \ - -DLLVMCXX="${KLEE_CXX}" \ - ${KLEE_Z3_CONFIGURE_OPTION} \ - ${KLEE_UCLIBC_CONFIGURE_OPTION} \ - -DGTEST_SRC_DIR=${GTEST_SRC_DIR} \ - -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \ - ${KLEE_ASSERTS_OPTION} \ - -DENABLE_UNIT_TESTS=TRUE \ - -DENABLE_SYSTEM_TESTS=TRUE \ - -DLIT_ARGS="-v" \ - ${SRC_DIR}/klee - make +if [ "X${ENABLE_OPTIMIZED}" == "X1" ]; then + CMAKE_BUILD_TYPE="RelWithDebInfo" else - # Build KLEE - # Note: ENABLE_SHARED=0 is required because llvm-2.9 is incorectly packaged - # and is missing the shared library that was supposed to be built that the build - # system will try to use by default. - ${SRC_DIR}/klee/configure --with-llvmsrc=/usr/lib/llvm-${LLVM_VERSION}/build \ - --with-llvmobj=/usr/lib/llvm-${LLVM_VERSION}/build \ - --with-llvmcc=${KLEE_CC} \ - --with-llvmcxx=${KLEE_CXX} \ - ${KLEE_Z3_CONFIGURE_OPTION} \ - ${KLEE_UCLIBC_CONFIGURE_OPTION} - make DISABLE_ASSERTIONS=${DISABLE_ASSERTIONS} \ - ENABLE_OPTIMIZED=${ENABLE_OPTIMIZED} \ - ENABLE_SHARED=0 + CMAKE_BUILD_TYPE="Debug" fi +# Compute CMake build type +cmake \ + -DLLVM_CONFIG_BINARY="/usr/lib/llvm-${LLVM_VERSION}/bin/llvm-config" \ + -DLLVMCC="${KLEE_CC}" \ + -DLLVMCXX="${KLEE_CXX}" \ + ${KLEE_Z3_CONFIGURE_OPTION} \ + ${KLEE_UCLIBC_CONFIGURE_OPTION} \ + -DGTEST_SRC_DIR=${GTEST_SRC_DIR} \ + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \ + ${KLEE_ASSERTS_OPTION} \ + -DENABLE_UNIT_TESTS=TRUE \ + -DENABLE_SYSTEM_TESTS=TRUE \ + -DLIT_ARGS="-v" \ + ${SRC_DIR}/klee +make + ############################################################################### # Unit tests ############################################################################### -if [ "X${USE_CMAKE}" == "X1" ]; then - make unittests -else - # The unittests makefile doesn't seem to have been packaged so get it from SVN - sudo mkdir -p /usr/lib/llvm-${LLVM_VERSION}/build/unittests/ - svn export http://llvm.org/svn/llvm-project/llvm/branches/${SVN_BRANCH}/unittests/Makefile.unittest \ - ../Makefile.unittest - sudo mv ../Makefile.unittest /usr/lib/llvm-${LLVM_VERSION}/build/unittests/ - - make unittests \ - DISABLE_ASSERTIONS=${DISABLE_ASSERTIONS} \ - ENABLE_OPTIMIZED=${ENABLE_OPTIMIZED} \ - ENABLE_SHARED=0 -fi +make unittests ############################################################################### # lit tests ############################################################################### -if [ "X${USE_CMAKE}" == "X1" ]; then - make systemtests -else - # Note can't use ``make check`` because llvm-lit is not available - cd test - # The build system needs to generate this file before we can run lit - make lit.site.cfg \ - DISABLE_ASSERTIONS=${DISABLE_ASSERTIONS} \ - ENABLE_OPTIMIZED=${ENABLE_OPTIMIZED} \ - ENABLE_SHARED=0 - cd ../ - lit -v test/ -fi +make systemtests diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klee-uclibc-1.0.0+git.20170324/.travis/llvm_compiler.sh new/klee-uclibc-1.0.0+git.20171011/.travis/llvm_compiler.sh --- old/klee-uclibc-1.0.0+git.20170324/.travis/llvm_compiler.sh 2017-03-24 12:07:22.000000000 +0100 +++ new/klee-uclibc-1.0.0+git.20171011/.travis/llvm_compiler.sh 2017-10-11 23:56:26.000000000 +0200 @@ -11,15 +11,6 @@ KLEE_CC=/usr/bin/clang-${LLVM_VERSION} KLEE_CXX=/usr/bin/clang++-${LLVM_VERSION} else - # Just use pre-built llvm-gcc downloaded earlier - KLEE_CC=${BUILD_DIR}/llvm-gcc/bin/llvm-gcc - KLEE_CXX=${BUILD_DIR}/llvm-gcc/bin/llvm-g++ - export C_INCLUDE_PATH=/usr/include/x86_64-linux-gnu - export CPLUS_INCLUDE_PATH=/usr/include/x86_64-linux-gnu - - # Add symlinks to fix llvm-2.9-dev package so KLEE can configure properly - # Because of the way KLEE's configure script works this must be a relative - # symlink, **not** absolute! - test -L '/usr/lib/llvm-2.9/build/Release' || sudo sh -c 'cd /usr/lib/llvm-2.9/build/ && ln -s ../ Release' - test -L '/usr/lib/llvm-2.9/build/include' || sudo sh -c 'cd /usr/lib/llvm-2.9/build/ && ln -s ../include include' + echo "Unknown LLVM version ${LLVM_VERSION}" + exit 1 fi diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klee-uclibc-1.0.0+git.20170324/.travis/testing-utils.sh new/klee-uclibc-1.0.0+git.20171011/.travis/testing-utils.sh --- old/klee-uclibc-1.0.0+git.20170324/.travis/testing-utils.sh 2017-03-24 12:07:22.000000000 +0100 +++ new/klee-uclibc-1.0.0+git.20171011/.travis/testing-utils.sh 2017-10-11 23:56:26.000000000 +0200 @@ -5,44 +5,7 @@ mkdir ${BUILD_DIR}/test-utils/ cd ${BUILD_DIR}/test-utils/ -if [ "X${USE_CMAKE}" == "X1" ]; then - # The New CMake build system just needs the GTest sources regardless - # of LLVM version. - wget https://github.com/google/googletest/archive/release-1.7.0.zip - unzip release-1.7.0.zip -else - if [ "${LLVM_VERSION}" != "2.9" ]; then - # Using LLVM3.4 all we need is vanilla GoogleTest :) - wget https://github.com/google/googletest/archive/release-1.7.0.zip - unzip release-1.7.0.zip - cd googletest-release-1.7.0/ - cmake . - make - # Normally I wouldn't do something like this but hey we're running on a temporary virtual machine, so who cares? - sudo cp lib* /usr/lib/ - sudo cp -r include/gtest /usr/include - else - # LLVM2.9 on the other hand is a pain - - # We need the version of GoogleTest used in LLVM2.9 - # This is a hack - old=`pwd` - cd ${SRC_DIR}/klee/tools/ - svn export http://llvm.org/svn/llvm-project/llvm/branches/release_29/utils/unittest unittest - - # Now put the header files in the search path so building will succeed - sudo cp -r unittest/googletest/include/gtest /usr/include/ - - # We need the FileCheck and not utilites as well because they aren't in the llvm-2.9-dev package - for tool in FileCheck not; do - svn export http://llvm.org/svn/llvm-project/llvm/branches/release_29/utils/${tool} ${tool} - # Patch the Makefile so it will work in KLEE's build system - sed -i 's/^USEDLIBS.*$/LINK_COMPONENTS = support/' ${tool}/Makefile - done - - # Now hack the make file to build the unittest library and the FileCheck and not tools - sed -i '0,/^PARALLEL_DIRS/a PARALLEL_DIRS += unittest FileCheck not' Makefile - - cd "${old}" - fi -fi +# The New CMake build system just needs the GTest sources regardless +# of LLVM version. +wget https://github.com/google/googletest/archive/release-1.7.0.zip +unzip release-1.7.0.zip diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klee-uclibc-1.0.0+git.20170324/.travis.yml new/klee-uclibc-1.0.0+git.20171011/.travis.yml --- old/klee-uclibc-1.0.0+git.20170324/.travis.yml 2017-03-24 12:07:22.000000000 +0100 +++ new/klee-uclibc-1.0.0+git.20171011/.travis.yml 2017-10-11 23:56:26.000000000 +0200 @@ -20,19 +20,13 @@ ########################################################################### # Check a subset of the matrix of: - # LLVM : {2.9, 3.4} + # LLVM : {3.4} # SOLVERS : {Z3} # DISABLE_ASSERTIONS: {0} # ENABLE_OPTIMIZED: {1} - # USE_CMAKE: {0, 1} - # Check KLEE CMake build in a few configurations - - LLVM_VERSION=3.4 SOLVERS=Z3 DISABLE_ASSERTIONS=0 ENABLE_OPTIMIZED=1 USE_CMAKE=1 - - LLVM_VERSION=2.9 SOLVERS=Z3 DISABLE_ASSERTIONS=0 ENABLE_OPTIMIZED=1 USE_CMAKE=1 - - # Check KLEE Autoconf build in a few configurations - - LLVM_VERSION=3.4 SOLVERS=Z3 DISABLE_ASSERTIONS=0 ENABLE_OPTIMIZED=1 USE_CMAKE=0 - - LLVM_VERSION=2.9 SOLVERS=Z3 DISABLE_ASSERTIONS=0 ENABLE_OPTIMIZED=1 USE_CMAKE=0 + # Check KLEE CMake build + - LLVM_VERSION=3.4 SOLVERS=Z3 DISABLE_ASSERTIONS=0 ENABLE_OPTIMIZED=1 addons: apt: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klee-uclibc-1.0.0+git.20170324/Makerules new/klee-uclibc-1.0.0+git.20171011/Makerules --- old/klee-uclibc-1.0.0+git.20170324/Makerules 2017-03-24 12:07:22.000000000 +0100 +++ new/klee-uclibc-1.0.0+git.20171011/Makerules 2017-10-11 23:56:26.000000000 +0200 @@ -101,7 +101,7 @@ cmd_compile-m = $(CC) $^ -c -o $@ $(CFLAGS) $(ARCH_CFLAGS) $(CFLAGS-$(suffix $@)) $(CFLAGS-$(notdir $(@D))) $(CFLAGS-$(notdir $@)) cmd_strip = $(STRIPTOOL) $(STRIP_FLAGS) $^ cmd_t_strip = $(STRIPTOOL) $(STRIP_FLAGS) $@ -cmd_ar = $(AR) $(ARFLAGS) $@ $^ +cmd_ar = $(AR) $(ARFLAGS) $@ $(sort $^) compile.c = @$(disp_compile.c) ; $(cmd_compile.c) compile.i = $(cmd_compile.c:-c=-E -dD) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klee-uclibc-1.0.0+git.20170324/configure new/klee-uclibc-1.0.0+git.20171011/configure --- old/klee-uclibc-1.0.0+git.20170324/configure 2017-03-24 12:07:22.000000000 +0100 +++ new/klee-uclibc-1.0.0+git.20171011/configure 2017-10-11 23:56:26.000000000 +0200 @@ -181,7 +181,7 @@ which are needed to build uclibc """ - std_include = "/usr/include" + std_include = os.environ.get("UCLIBC_KERNEL_HEADERS", "/usr/include") test_file = "asm/unistd.h" p = platform.machine() @@ -193,8 +193,12 @@ if os.path.exists( os.path.join(std_include, "i386-linux-gnu", test_file) ): return os.path.join(std_include, "i386-linux-gnu") - if not os.path.exists( os.path.join(std_include, test_file) ): - logging.error('Directory with kernel header files not found - using default. You will need to run `make menuconfig` manually') + test_path = os.path.join(std_include, test_file) + if not os.path.exists( test_path ): + msg = ("Kernel header files not found at '%s': '%s' is absent." + "Export the UCLIBC_KERNEL_HEADERS environment variable to change the" + "default path ('/usr/include')") + logging.error(msg % (std_include, test_path)) return std_include def getAbsPathForToolInPathEnv(tool): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/klee-uclibc-1.0.0+git.20170324/include/features.h new/klee-uclibc-1.0.0+git.20171011/include/features.h --- old/klee-uclibc-1.0.0+git.20170324/include/features.h 2017-03-24 12:07:22.000000000 +0100 +++ new/klee-uclibc-1.0.0+git.20171011/include/features.h 2017-10-11 23:56:26.000000000 +0200 @@ -155,6 +155,8 @@ # define __GNUC_PREREQ(maj, min) 0 #endif +/* Whether to use feature set F. */ +#define __GLIBC_USE(F) __GLIBC_USE_ ## F /* If _BSD_SOURCE was defined by the user, favor BSD over POSIX. */ #if defined _BSD_SOURCE && \