Skip to content

Commit 70a0fde

Browse files
committed
Docker file to compile Xen
To create docker file, run ./make_xen_docker_container.sh from the cbmc top dir. Docker file will build CBMC, download Xen upstream version, and one-line-scan, and then attempt to build Xen using goto-cc
1 parent 6fd77f4 commit 70a0fde

File tree

3 files changed

+41
-0
lines changed

3 files changed

+41
-0
lines changed

Dockerfile

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
FROM ubuntu:16.04
2+
3+
4+
RUN apt-get update && apt-get --no-install-recommends -y install \
5+
build-essential gcc git make flex bison \
6+
software-properties-common libwww-perl python \
7+
bin86 gdb bcc liblzma-dev python-dev gettext iasl \
8+
uuid-dev libncurses5-dev libncursesw5-dev pkg-config \
9+
libgtk2.0-dev libyajl-dev sudo time
10+
11+
12+
ADD scripts/docker_compile_xen.sh docker_compile_xen.sh
13+
ADD . /tmp/cbmc
14+
RUN sudo ./docker_compile_xen.sh
15+
VOLUME /tmp/cbmc
16+
VOLUME /tmp/xen_compilation

make_xen_docker_container.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#!/bin/bash
2+
docker rm xen_build_container
3+
docker build -t "xen_image" .
4+
docker run -i -t --name "xen_build_container" xen_image /bin/bash

scripts/docker_compile_xen.sh

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#/bin/bash
2+
cd /tmp/cbmc/src
3+
make minisat2-download
4+
make -j$(nproc)
5+
mkdir /tmp/xen_compilation
6+
cd /tmp/xen_compilation
7+
ln -s /tmp/cbmc/src/goto-cc/goto-cc goto-ld
8+
ln -s /tmp/cbmc/src/goto-cc/goto-cc goto-gcc
9+
ln -s /tmp/cbmc/src/goto-cc/goto-cc goto-diff
10+
git clone https://github.com/awslabs/one-line-scan.git
11+
git clone git://xenbits.xen.org/xen.git
12+
export PATH=$(pwd)/one-line-scan/configuration:$PATH
13+
export PATH=$(pwd):$PATH
14+
15+
cd xen
16+
if one-line-scan --no-analysis --trunc-existing --extra-cflags -Wno-error -o CPROVER -j$(($(nproc)/4)) -- make xen -j$(nproc) ; then
17+
echo "SUCCESS: Compilation of Xen succeeded"
18+
else
19+
echo "FAILED: Compilation of Xen failed. The build log can be found in /tmp/xen_compilation/xen/CPROVER/build.log"
20+
fi
21+

0 commit comments

Comments
 (0)