Skip to content

Commit 0139558

Browse files
author
Daniel Kroening
authored
Merge pull request #570 from zemanlx/feature/compile-on-musl
Support for non-glibc linux which use musl-libc
2 parents eb93231 + 50c28c3 commit 0139558

File tree

4 files changed

+53
-14
lines changed

4 files changed

+53
-14
lines changed

.travis.yml

Lines changed: 39 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,35 @@
11
language: cpp
22

3-
sudo: false
4-
53
matrix:
64
include:
5+
6+
# Alpine Linux with musl-libc using g++
7+
- os: linux
8+
sudo: required
9+
compiler: gcc
10+
services:
11+
- docker
12+
before_install:
13+
- docker pull diffblue/cbmc-builder:alpine
14+
env:
15+
- PRE_COMMAND="docker run -v ${TRAVIS_BUILD_DIR}:/cbmc diffblue/cbmc-builder:alpine"
16+
- COMPILER=g++
17+
18+
# OS X using g++
19+
- os: osx
20+
sudo: false
21+
compiler: gcc
22+
env: COMPILER=g++
23+
24+
# OS X using clang++
25+
- os: osx
26+
sudo: false
27+
compiler: clang
28+
env: COMPILER=clang++
29+
30+
# Ubuntu Linux with glibc using g++-5
731
- os: linux
32+
sudo: false
833
compiler: gcc
934
addons:
1035
apt:
@@ -18,7 +43,10 @@ matrix:
1843
- mkdir bin ; ln -s /usr/bin/gcc-5 bin/gcc
1944
# env: COMPILER=g++-5 SAN_FLAGS="-fsanitize=undefined -fno-sanitize-recover -fno-omit-frame-pointer"
2045
env: COMPILER=g++-5
46+
47+
# Ubuntu Linux with glibc using clang++-3.7
2148
- os: linux
49+
sudo: false
2250
compiler: clang
2351
addons:
2452
apt:
@@ -34,18 +62,17 @@ matrix:
3462
- mkdir bin ; ln -s /usr/bin/clang-3.7 bin/gcc
3563
# env: COMPILER=clang++-3.7 SAN_FLAGS="-fsanitize=undefined -fno-sanitize-recover=undefined,integer -fno-omit-frame-pointer"
3664
env: COMPILER=clang++-3.7
37-
- os: osx
38-
compiler: gcc
39-
env: COMPILER=g++
40-
- os: osx
41-
compiler: clang
42-
env: COMPILER=clang++
65+
4366
- env: NAME="CPP-LINT"
4467
script: scripts/travis_lint.sh || true
4568

4669
script:
4770
- if [ -L bin/gcc ] ; then export PATH=$PWD/bin:$PATH ; fi ;
48-
make -C src minisat2-download &&
49-
make -C src CXX=$COMPILER CXXFLAGS="-Wall -O2 -g -Werror -Wno-deprecated-register -pedantic -Wno-sign-compare" -j2 &&
50-
env UBSAN_OPTIONS=print_stacktrace=1 make -C regression test &&
51-
make -C src CXX=$COMPILER CXXFLAGS=$FLAGS -j2 cegis.dir clobber.dir memory-models.dir musketeer.dir
71+
COMMAND="make -C src minisat2-download" &&
72+
eval ${PRE_COMMAND} ${COMMAND} &&
73+
COMMAND="make -C src CXX=$COMPILER CXXFLAGS=\"-Wall -O2 -g -Werror -Wno-deprecated-register -pedantic -Wno-sign-compare\" -j2" &&
74+
eval ${PRE_COMMAND} ${COMMAND} &&
75+
COMMAND="env UBSAN_OPTIONS=print_stacktrace=1 make -C regression test" &&
76+
eval ${PRE_COMMAND} ${COMMAND} &&
77+
COMMAND="make -C src CXX=$COMPILER CXXFLAGS=$FLAGS -j2 cegis.dir clobber.dir memory-models.dir musketeer.dir" &&
78+
eval ${PRE_COMMAND} ${COMMAND}

regression/cpp/enum8/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
CORE
22
main.cpp
3-
3+
--std=c++11
44
^EXIT=0$
55
^SIGNAL=0$
66
--

scripts/minisat-2.2.1-patch

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,3 +196,15 @@ diff -urN minisat-2.2.1/minisat/utils/ParseUtils.h minisat-2.2.1.patched/minisat
196196

197197
int operator * () const { return (pos >= size) ? EOF : buf[pos]; }
198198
void operator ++ () { pos++; assureLookahead(); }
199+
diff -urN minisat-2.2.1/minisat/utils/System.h minisat-2.2.1.patched/minisat/utils/System.h
200+
--- minisat-2.2.1/minisat/utils/System.h 2017-02-21 18:23:22.727464369 +0000
201+
+++ minisat-2.2.1.patched/minisat/utils/System.h 2017-02-21 18:23:14.451343361 +0000
202+
@@ -21,7 +21,7 @@
203+
#ifndef Minisat_System_h
204+
#define Minisat_System_h
205+
206+
-#if defined(__linux__)
207+
+#if defined(__linux__) && defined(__GLIBC__)
208+
#include <fpu_control.h>
209+
#endif
210+

src/util/memory_info.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ Function: memory_info
3939

4040
void memory_info(std::ostream &out)
4141
{
42-
#ifdef __linux__
42+
#if defined(__linux__) && defined(__GLIBC__)
4343
// NOLINTNEXTLINE(readability/identifiers)
4444
struct mallinfo m = mallinfo();
4545
out << " non-mmapped space allocated from system: " << m.arena << "\n";

0 commit comments

Comments
 (0)