dockerfile: update base ubuntu image to 16.04 + replace ccmake with explicit cmake options
This commit is contained in:
@ -1,39 +1,46 @@
|
|||||||
# Set the base image to Ubuntu Utopic (14.10)
|
# Set the base image to Ubuntu Xenial (16.04)
|
||||||
FROM ubuntu:utopic
|
FROM ubuntu:xenial
|
||||||
|
|
||||||
MAINTAINER Christian Dietrich <stettberger@dokucode.de>
|
MAINTAINER Christian Dietrich <stettberger@dokucode.de>
|
||||||
|
|
||||||
# Install Packages required to build FAIL*
|
# Install Packages required to build FAIL*
|
||||||
RUN sed -i -e 's/archive.ubuntu.com\|security.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list
|
|
||||||
RUN apt-get update
|
RUN apt-get update
|
||||||
RUN apt-get install -y \
|
RUN apt-get install -y \
|
||||||
binutils-dev \
|
|
||||||
build-essential \
|
build-essential \
|
||||||
cmake \
|
libmysqlclient-dev \
|
||||||
git \
|
protobuf-compiler \
|
||||||
libboost-regex-dev \
|
libprotobuf-dev \
|
||||||
libboost-system-dev \
|
libpcl1-dev \
|
||||||
libboost-thread-dev \
|
libboost-thread-dev \
|
||||||
|
libboost-system-dev \
|
||||||
|
libboost-regex-dev \
|
||||||
libboost-coroutine-dev \
|
libboost-coroutine-dev \
|
||||||
libboost-context-dev \
|
libboost-context-dev \
|
||||||
libdwarf-dev \
|
libdwarf-dev \
|
||||||
libelf-dev \
|
libelf-dev \
|
||||||
libfontconfig1-dev \
|
libfontconfig1-dev \
|
||||||
|
zlib1g-dev \
|
||||||
|
binutils-dev \
|
||||||
libiberty-dev \
|
libiberty-dev \
|
||||||
libmysqlclient-dev \
|
llvm-3.9-dev \
|
||||||
libpcl1-dev \
|
clang-3.9 \
|
||||||
libprotobuf-dev \
|
libsdl1.2-dev \
|
||||||
libsvga1-dev \
|
libgtk2.0-dev \
|
||||||
llvm-3.4-dev \
|
libwxgtk3.0-dev \
|
||||||
|
libncurses5-dev \
|
||||||
|
|
||||||
|
cmake \
|
||||||
|
cmake-curses-gui \
|
||||||
|
doxygen \
|
||||||
|
git \
|
||||||
screen \
|
screen \
|
||||||
protobuf-compiler \
|
|
||||||
wget \
|
wget \
|
||||||
openssh-server \
|
openssh-server \
|
||||||
vim \
|
vim \
|
||||||
zlib1g-dev
|
ranger
|
||||||
|
|
||||||
# Symlink llvm-config-3.4 so FindLLVM.cmake can find it
|
# Symlink clang++ to match docs
|
||||||
RUN ln -s /usr/bin/llvm-config-3.4 /usr/local/bin/llvm-config
|
RUN ln -sf /usr/bin/clang++-3.9 /usr/bin/clang++
|
||||||
|
|
||||||
# Add a user for compiling FAIL*
|
# Add a user for compiling FAIL*
|
||||||
RUN useradd fail; mkdir /home/fail; chown fail /home/fail
|
RUN useradd fail; mkdir /home/fail; chown fail /home/fail
|
||||||
@ -51,13 +58,14 @@ USER fail
|
|||||||
ENV HOME /home/fail
|
ENV HOME /home/fail
|
||||||
WORKDIR /home/fail
|
WORKDIR /home/fail
|
||||||
|
|
||||||
# Get AspectC++ v1.2 for 64 Bit
|
# Get AspectC++ (originally v1.2) for 64 Bit
|
||||||
RUN wget --no-check-certificate http://www.aspectc.org/releases/1.2/ac-bin-linux-x86-64bit-1.2.tar.gz
|
ARG acversion="2.0"
|
||||||
RUN tar xvzf ac-bin-linux-x86-64bit-1.2.tar.gz; mkdir bin; mv aspectc++/ac++ aspectc++/ag++ bin/; rm -rf aspectc++
|
RUN wget http://www.aspectc.org/releases/"$acversion"/ac-bin-linux-x86-64bit-"$acversion".tar.gz
|
||||||
|
RUN tar xvzf ac-bin-linux-x86-64bit-"$acversion".tar.gz; mkdir bin; mv aspectc++/ac++ aspectc++/ag++ bin/; rm -rf aspectc++
|
||||||
ENV PATH /home/fail/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
ENV PATH /home/fail/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||||
|
|
||||||
# Clone FAIL*
|
# Clone FAIL*
|
||||||
RUN git clone -c http.sslVerify=false https://github.com/danceos/fail.git
|
RUN git clone https://github.com/danceos/fail.git
|
||||||
WORKDIR fail
|
WORKDIR fail
|
||||||
|
|
||||||
USER root
|
USER root
|
||||||
|
|||||||
@ -7,7 +7,6 @@ FROM danceos/fail-generic-tracing
|
|||||||
MAINTAINER Christian Dietrich <stettberger@dokucode.de>
|
MAINTAINER Christian Dietrich <stettberger@dokucode.de>
|
||||||
|
|
||||||
# Install Additional Packages
|
# Install Additional Packages
|
||||||
RUN sed -i -e 's/archive.ubuntu.com\|security.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list
|
|
||||||
RUN apt-get install -y \
|
RUN apt-get install -y \
|
||||||
python-minimal \
|
python-minimal \
|
||||||
grub-common \
|
grub-common \
|
||||||
@ -28,14 +27,108 @@ WORKDIR /home/fail
|
|||||||
RUN echo 'export PATH=$HOME/bin:$PATH' >> ~/.profile;\
|
RUN echo 'export PATH=$HOME/bin:$PATH' >> ~/.profile;\
|
||||||
echo 'cd $HOME/fail-targets' >> ~/.profile
|
echo 'cd $HOME/fail-targets' >> ~/.profile
|
||||||
|
|
||||||
RUN git clone -c http.sslVerify=false https://github.com/danceos/fail-targets.git
|
RUN git clone https://github.com/danceos/fail-targets.git
|
||||||
|
|
||||||
WORKDIR fail
|
WORKDIR fail
|
||||||
RUN mkdir build; cd build; ../configurations/x86_pruning.sh generic-experiment
|
RUN mkdir build; cd build
|
||||||
WORKDIR build
|
WORKDIR build
|
||||||
|
|
||||||
|
RUN cmake \
|
||||||
|
-DAGXX=/home/fail/bin/ag++ \
|
||||||
|
-DBOOST_THREAD_LIBRARY=/usr/lib/x86_64-linux-gnu/libpthread.so \
|
||||||
|
|
||||||
|
-DBUILD_ARM=OFF \
|
||||||
|
-DBUILD_BOCHS=ON \
|
||||||
|
-DBUILD_CAPSTONE_DISASSEMBLER=OFF \
|
||||||
|
-DBUILD_COMPUTE_HOPS=OFF \
|
||||||
|
-DBUILD_CONVERT_TRACE=OFF \
|
||||||
|
-DBUILD_DATA_AGGREGATOR=OFF \
|
||||||
|
-DBUILD_DUMP_HOPS=OFF \
|
||||||
|
-DBUILD_DUMP_TRACE=OFF \
|
||||||
|
-DBUILD_FAULTSPACEPLOT=OFF \
|
||||||
|
-DBUILD_GEM5=OFF \
|
||||||
|
-DBUILD_IMPORT_TRACE=OFF \
|
||||||
|
-DBUILD_LLVM_DISASSEMBLER=ON \
|
||||||
|
-DBUILD_PANDA=OFF \
|
||||||
|
-DBUILD_PRUNE_TRACE=OFF \
|
||||||
|
-DBUILD_QEMU=OFF \
|
||||||
|
-DBUILD_T32=OFF \
|
||||||
|
-DBUILD_X86=ON \
|
||||||
|
|
||||||
|
-DCLIENT_JOB_INITIAL=1 \
|
||||||
|
-DCLIENT_JOB_LIMIT=1000 \
|
||||||
|
-DCLIENT_JOB_REQUEST_SEC=30 \
|
||||||
|
-DCLIENT_RAND_BACKOFF_TEND=8 \
|
||||||
|
-DCLIENT_RAND_BACKOFF_TSTART=3 \
|
||||||
|
-DCLIENT_RETRY_COUNT=3 \
|
||||||
|
|
||||||
|
# ;-separated list
|
||||||
|
-DCMAKE_AGPP_FLAGS="-D__NO_MATH_INLINES" \
|
||||||
|
|
||||||
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
|
-DCMAKE_INSTALL_PREFIX=/usr/local \
|
||||||
|
-DCONFIG_BOCHS_COMPRESS_STATE=ON \
|
||||||
|
-DCONFIG_BOCHS_NON_VERBOSE=OFF \
|
||||||
|
-DCONFIG_BOCHS_NO_ABORT=ON \
|
||||||
|
-DCONFIG_DISABLE_KEYB_INTERRUPTS=OFF \
|
||||||
|
-DCONFIG_EVENT_BREAKPOINTS=ON \
|
||||||
|
-DCONFIG_EVENT_BREAKPOINTS_RANGE=ON \
|
||||||
|
-DCONFIG_EVENT_GUESTSYS=ON \
|
||||||
|
-DCONFIG_EVENT_INTERRUPT=ON \
|
||||||
|
-DCONFIG_EVENT_IOPORT=ON \
|
||||||
|
-DCONFIG_EVENT_JUMP=OFF \
|
||||||
|
-DCONFIG_EVENT_MEMREAD=ON \
|
||||||
|
-DCONFIG_EVENT_MEMWRITE=ON \
|
||||||
|
-DCONFIG_EVENT_TRAP=ON \
|
||||||
|
-DCONFIG_FAST_BREAKPOINTS=ON \
|
||||||
|
-DCONFIG_FAST_WATCHPOINTS=ON \
|
||||||
|
-DCONFIG_FIRE_INTERRUPTS=ON \
|
||||||
|
-DCONFIG_INJECTIONPOINT_HOPS=OFF \
|
||||||
|
-DCONFIG_SR_REBOOT=ON \
|
||||||
|
-DCONFIG_SR_RESTORE=ON \
|
||||||
|
-DCONFIG_SR_SAVE=ON \
|
||||||
|
-DCONFIG_SUPPRESS_INTERRUPTS=ON \
|
||||||
|
-DENABLE_DATABASE_TESTS=OFF \
|
||||||
|
|
||||||
|
# ;-separated list
|
||||||
|
-DEXPERIMENTS_ACTIVATED="generic-experiment" \
|
||||||
|
|
||||||
|
-DLibIberty_INCLUDE_DIRS=/usr/include/libiberty \
|
||||||
|
-DLibIberty_LIBRARIES=/usr/lib/x86_64-linux-gnu/libiberty.a \
|
||||||
|
-DMYSQL_CONFIG=/usr/bin/mysql_config \
|
||||||
|
-DMYSQL_CONFIG_PREFER_PATH=/bin \
|
||||||
|
|
||||||
|
# ;-separated list
|
||||||
|
-DPLUGINS_ACTIVATED="serialoutput" \
|
||||||
|
|
||||||
|
-DSERVER_COMM_HOSTNAME=localhost \
|
||||||
|
-DSERVER_COMM_TCP_PORT=1111 \
|
||||||
|
-DSERVER_OUT_QUEUE_SIZE=0 \
|
||||||
|
-DSERVER_PERFORMANCE_MEASURE=OFF \
|
||||||
|
-DSERVER_PERF_LOG_PATH=perf.log \
|
||||||
|
-DSERVER_PERF_STEPPING_SEC=1 \
|
||||||
|
-DTEST_MYSQL_DATABASE=fail_test \
|
||||||
|
-DTEST_MYSQL_HOST=localhost \
|
||||||
|
-DTEST_MYSQL_PASSWORD=fail_test \
|
||||||
|
-DTEST_MYSQL_PORT=3306 \
|
||||||
|
-DTEST_MYSQL_USER=fail_test \
|
||||||
|
-DVERBOSE_MAKE=OFF \
|
||||||
|
-D_filename=/usr/include/wx-3.0/wx/version.h \
|
||||||
|
|
||||||
|
# ;-separated list
|
||||||
|
-Dbochs_configure_params="--enable-a20-pin;--enable-x86-64;--enable-cpu-level=6;--enable-ne2000;--enable-acpi;--enable-pci;--enable-usb;--enable-trace-cache;--enable-fast-function-calls;--enable-host-specific-asms;--enable-disasm;--enable-readline;--enable-clgd54xx;--enable-fpu;--enable-vmx=2;--enable-monitor-mwait;--enable-cdrom;--enable-sb16=linux;--enable-gdb-stub;--disable-docbook;--with-nogui;--with-x11;--with-wx;--with-sdl" \
|
||||||
|
|
||||||
|
-Dbochs_install_prefix=/home/fail/fail/simulators/bochs/install \
|
||||||
|
..
|
||||||
|
|
||||||
|
# We need to manually build Bochs first to generate the bochs/config.h - the external_project configure step
|
||||||
|
# (where this file is generated) is run at build time (not configure time), but the build order is not defined correctly.
|
||||||
|
RUN cmake --build . --target libfailbochs_external-configure -- -j$(nproc)
|
||||||
|
|
||||||
|
# Make FAIL*
|
||||||
|
RUN cmake --build . -- -j$(nproc)
|
||||||
|
|
||||||
# Make FAIL*
|
# Make FAIL*
|
||||||
RUN make -j$(getconf _NPROCESSORS_ONLN) || make -j$(getconf _NPROCESSORS_ONLN)
|
|
||||||
RUN ln -s /home/fail/fail/build/bin/fail-client /home/fail/bin/generic-experiment-client; \
|
RUN ln -s /home/fail/fail/build/bin/fail-client /home/fail/bin/generic-experiment-client; \
|
||||||
ln -s /home/fail/fail/build/bin/generic-experiment-server /home/fail/bin/; \
|
ln -s /home/fail/fail/build/bin/generic-experiment-server /home/fail/bin/; \
|
||||||
ln -s /home/fail/fail/tools/analysis/resultbrowser/run.py /home/fail/bin/resultbrowser
|
ln -s /home/fail/fail/tools/analysis/resultbrowser/run.py /home/fail/bin/resultbrowser
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
[client]
|
[client]
|
||||||
host=mysql
|
host=127.0.0.1
|
||||||
user=fail
|
user=fail
|
||||||
password=fail
|
password=fail
|
||||||
database=fail
|
database=fail
|
||||||
|
|||||||
@ -8,11 +8,103 @@ USER fail
|
|||||||
# Configure the Weather Monitor Experiment
|
# Configure the Weather Monitor Experiment
|
||||||
ENV PATH /home/fail/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
ENV PATH /home/fail/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||||
WORKDIR /home/fail/fail
|
WORKDIR /home/fail/fail
|
||||||
RUN mkdir build-tracer; cd build-tracer; ../configurations/x86_pruning.sh generic-tracing
|
RUN mkdir build-tracer; cd build-tracer
|
||||||
WORKDIR build-tracer
|
WORKDIR build-tracer
|
||||||
|
|
||||||
|
RUN cmake \
|
||||||
|
-DAGXX=/home/fail/bin/ag++ \
|
||||||
|
-DBOOST_THREAD_LIBRARY=/usr/lib/x86_64-linux-gnu/libpthread.so \
|
||||||
|
|
||||||
|
-DBUILD_ARM=OFF \
|
||||||
|
-DBUILD_BOCHS=ON \
|
||||||
|
-DBUILD_CAPSTONE_DISASSEMBLER=OFF \
|
||||||
|
-DBUILD_COMPUTE_HOPS=OFF \
|
||||||
|
-DBUILD_CONVERT_TRACE=OFF \
|
||||||
|
-DBUILD_DATA_AGGREGATOR=OFF \
|
||||||
|
-DBUILD_DUMP_HOPS=OFF \
|
||||||
|
-DBUILD_DUMP_TRACE=OFF \
|
||||||
|
-DBUILD_FAULTSPACEPLOT=OFF \
|
||||||
|
-DBUILD_GEM5=OFF \
|
||||||
|
-DBUILD_IMPORT_TRACE=OFF \
|
||||||
|
-DBUILD_LLVM_DISASSEMBLER=ON \
|
||||||
|
-DBUILD_PANDA=OFF \
|
||||||
|
-DBUILD_PRUNE_TRACE=OFF \
|
||||||
|
-DBUILD_QEMU=OFF \
|
||||||
|
-DBUILD_T32=OFF \
|
||||||
|
-DBUILD_X86=ON \
|
||||||
|
|
||||||
|
-DCLIENT_JOB_INITIAL=1 \
|
||||||
|
-DCLIENT_JOB_LIMIT=1000 \
|
||||||
|
-DCLIENT_JOB_REQUEST_SEC=30 \
|
||||||
|
-DCLIENT_RAND_BACKOFF_TEND=8 \
|
||||||
|
-DCLIENT_RAND_BACKOFF_TSTART=3 \
|
||||||
|
-DCLIENT_RETRY_COUNT=3 \
|
||||||
|
|
||||||
|
# ;-separated list
|
||||||
|
-DCMAKE_AGPP_FLAGS="-D__NO_MATH_INLINES" \
|
||||||
|
|
||||||
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
|
-DCMAKE_INSTALL_PREFIX=/usr/local \
|
||||||
|
-DCONFIG_BOCHS_COMPRESS_STATE=ON \
|
||||||
|
-DCONFIG_BOCHS_NON_VERBOSE=OFF \
|
||||||
|
-DCONFIG_BOCHS_NO_ABORT=ON \
|
||||||
|
-DCONFIG_DISABLE_KEYB_INTERRUPTS=OFF \
|
||||||
|
-DCONFIG_EVENT_BREAKPOINTS=ON \
|
||||||
|
-DCONFIG_EVENT_BREAKPOINTS_RANGE=ON \
|
||||||
|
-DCONFIG_EVENT_GUESTSYS=ON \
|
||||||
|
-DCONFIG_EVENT_INTERRUPT=ON \
|
||||||
|
-DCONFIG_EVENT_IOPORT=ON \
|
||||||
|
-DCONFIG_EVENT_JUMP=OFF \
|
||||||
|
-DCONFIG_EVENT_MEMREAD=ON \
|
||||||
|
-DCONFIG_EVENT_MEMWRITE=ON \
|
||||||
|
-DCONFIG_EVENT_TRAP=ON \
|
||||||
|
-DCONFIG_FAST_BREAKPOINTS=ON \
|
||||||
|
-DCONFIG_FAST_WATCHPOINTS=ON \
|
||||||
|
-DCONFIG_FIRE_INTERRUPTS=ON \
|
||||||
|
-DCONFIG_INJECTIONPOINT_HOPS=OFF \
|
||||||
|
-DCONFIG_SR_REBOOT=ON \
|
||||||
|
-DCONFIG_SR_RESTORE=ON \
|
||||||
|
-DCONFIG_SR_SAVE=ON \
|
||||||
|
-DCONFIG_SUPPRESS_INTERRUPTS=ON \
|
||||||
|
-DENABLE_DATABASE_TESTS=OFF \
|
||||||
|
|
||||||
|
# ;-separated list
|
||||||
|
-DEXPERIMENTS_ACTIVATED="generic-tracing" \
|
||||||
|
|
||||||
|
-DLibIberty_INCLUDE_DIRS=/usr/include/libiberty \
|
||||||
|
-DLibIberty_LIBRARIES=/usr/lib/x86_64-linux-gnu/libiberty.a \
|
||||||
|
-DMYSQL_CONFIG=/usr/bin/mysql_config \
|
||||||
|
-DMYSQL_CONFIG_PREFER_PATH=/bin \
|
||||||
|
|
||||||
|
# ;-separated list
|
||||||
|
-DPLUGINS_ACTIVATED="tracing;serialoutput" \
|
||||||
|
|
||||||
|
-DSERVER_COMM_HOSTNAME=localhost \
|
||||||
|
-DSERVER_COMM_TCP_PORT=1111 \
|
||||||
|
-DSERVER_OUT_QUEUE_SIZE=0 \
|
||||||
|
-DSERVER_PERFORMANCE_MEASURE=OFF \
|
||||||
|
-DSERVER_PERF_LOG_PATH=perf.log \
|
||||||
|
-DSERVER_PERF_STEPPING_SEC=1 \
|
||||||
|
-DTEST_MYSQL_DATABASE=fail_test \
|
||||||
|
-DTEST_MYSQL_HOST=localhost \
|
||||||
|
-DTEST_MYSQL_PASSWORD=fail_test \
|
||||||
|
-DTEST_MYSQL_PORT=3306 \
|
||||||
|
-DTEST_MYSQL_USER=fail_test \
|
||||||
|
-DVERBOSE_MAKE=OFF \
|
||||||
|
-D_filename=/usr/include/wx-3.0/wx/version.h \
|
||||||
|
|
||||||
|
# ;-separated list
|
||||||
|
-Dbochs_configure_params="--enable-a20-pin;--enable-x86-64;--enable-cpu-level=6;--enable-ne2000;--enable-acpi;--enable-pci;--enable-usb;--enable-trace-cache;--enable-fast-function-calls;--enable-host-specific-asms;--enable-disasm;--enable-readline;--enable-clgd54xx;--enable-fpu;--enable-vmx=2;--enable-monitor-mwait;--enable-cdrom;--enable-sb16=linux;--enable-gdb-stub;--disable-docbook;--with-nogui;--with-x11;--with-wx;--with-sdl" \
|
||||||
|
|
||||||
|
-Dbochs_install_prefix=/home/fail/fail/simulators/bochs/install \
|
||||||
|
..
|
||||||
|
|
||||||
|
# We need to manually build Bochs first to generate the bochs/config.h - the external_project configure step
|
||||||
|
# (where this file is generated) is run at build time (not configure time), but the build order is not defined correctly.
|
||||||
|
RUN cmake --build . --target libfailbochs_external-configure -- -j$(nproc)
|
||||||
|
|
||||||
# Make FAIL*
|
# Make FAIL*
|
||||||
RUN make -j$(getconf _NPROCESSORS_ONLN) || make -j$(getconf _NPROCESSORS_ONLN)
|
RUN cmake --build . -- -j$(nproc)
|
||||||
|
|
||||||
RUN ln -s /home/fail/fail/build-tracer/bin/fail-client /home/fail/bin/fail-x86-tracing; \
|
RUN ln -s /home/fail/fail/build-tracer/bin/fail-client /home/fail/bin/fail-x86-tracing; \
|
||||||
ln -s /home/fail/fail/build-tracer/bin/import-trace /home/fail/bin/; \
|
ln -s /home/fail/fail/build-tracer/bin/import-trace /home/fail/bin/; \
|
||||||
|
|||||||
Reference in New Issue
Block a user