FailBochs build process reversed
The FailBochs client is not linked by the Bochs build system anymore, but
by our cmake scripts (make fail-client):
- All Bochs libraries are merged into libfailbochs.a (a new target
within the Bochs Autotools scripts).
- The previous libfail.a is *not* a merge of all Fail* libraries anymore,
but pulls these in via library dependencies.
Additionally I did a lot of build system cleanup, e.g. additional external
libraries may now be pulled in where they're needed.
git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1390 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
This commit is contained in:
@ -20,7 +20,7 @@ while [ ! -e stop ]
|
||||
do
|
||||
#nice -n 19 ./bochs -q 2>&1 | tee log.$$.txt | fgrep Result
|
||||
#nice -n 18 ./bochs -q 2>&1 | fgrep Result
|
||||
nice -n 18 ./bochs -q >/dev/null 2>&1
|
||||
nice -n 18 ./fail-client -q >/dev/null 2>&1
|
||||
if [ $? -eq 1 ]
|
||||
then
|
||||
break
|
||||
|
||||
@ -26,13 +26,13 @@ if [ -n "$1" ]; then cd "$1"; fi
|
||||
[ ! -e client.sh ] && cp -v $SCRIPTDIR/client.sh .
|
||||
[ ! -e multiple-clients.sh ] && cp -v $SCRIPTDIR/multiple-clients.sh .
|
||||
|
||||
# add bochs binary if it doesn't exist
|
||||
if [ -e bochs ]
|
||||
# add fail-client binary if it doesn't exist
|
||||
if [ -e fail-client ]
|
||||
then
|
||||
echo 'Info: Using local "bochs" binary.' >&2
|
||||
echo 'Info: Using local "fail-client" binary.' >&2
|
||||
else
|
||||
cp -v $(which bochs) .
|
||||
strip bochs
|
||||
cp -v $(which fail-client) .
|
||||
strip fail-client
|
||||
fi
|
||||
|
||||
# sync everything to experiment hosts
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# killall-bochs.sh
|
||||
# killall-fail.sh
|
||||
# Kills all remaining FailBochs instances on $FAIL_EXPERIMENT_HOSTS.
|
||||
#
|
||||
# Prerequisites:
|
||||
|
||||
@ -5,12 +5,12 @@
|
||||
# clients defaults to #CPUs+1.
|
||||
#
|
||||
# Prerequisites:
|
||||
# - client.sh and all necessary FailBochs ingredients (bochs binary, bochsrc,
|
||||
# BIOS/VGA-BIOS, boot image, possibly a saved state) in the current
|
||||
# - client.sh and all necessary FailBochs ingredients (fail-client binary,
|
||||
# bochsrc, BIOS/VGA-BIOS, boot image, possibly a saved state) in the current
|
||||
# directory
|
||||
# - tmux installed somewhere in $PATH
|
||||
# - possibly missing dynamic libraries in ~/bochslibs (e.g., for running a
|
||||
# i386 bochs binary in an x86_64 environment)
|
||||
# i386 fail-client/bochs binary in an x86_64 environment)
|
||||
#
|
||||
|
||||
set -e
|
||||
@ -20,9 +20,9 @@ LIBDIR=~/bochslibs
|
||||
# cleanup earlier failures
|
||||
# (FIXME: you probably don't want this on your local machine!)
|
||||
killall -q client.sh || true
|
||||
killall -q bochs || true
|
||||
killall -q fail-client || true
|
||||
sleep .5
|
||||
killall -q -9 bochs || true
|
||||
killall -q -9 fail-client || true
|
||||
|
||||
# On many machines, ~ is mounted via NFS. To avoid the (severe) performance
|
||||
# penalty, copy all experiment-related stuff to /tmp.
|
||||
@ -38,7 +38,7 @@ cd $TMP
|
||||
# tmux, please shut up.
|
||||
TMUX='tmux -q'
|
||||
COMMAND=./client.sh
|
||||
SESSION=failbochs.$$
|
||||
SESSION=fail-client.$$
|
||||
|
||||
# Calculate number of clients from #processors.
|
||||
PROCESSORS=$(fgrep processor /proc/cpuinfo|wc -l)
|
||||
|
||||
@ -1,17 +1,16 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# - needs to be called from within your build directory
|
||||
# - "rebuild-bochs.sh": rebuild all of both Fail and Bochs
|
||||
# - "rebuild-bochs.sh": rebuild all of both Fail* and Bochs
|
||||
# (e.g., possibly necessary if you don't understand what was changed by others)
|
||||
# - "rebuild-bochs.sh fail": rebuild all of Fail and re-link Bochs
|
||||
# - "rebuild-bochs.sh fail": rebuild all of Fail* and link fail-client
|
||||
# (e.g., possibly necessary if you changed Fail-affecting aspects or the
|
||||
# build system)
|
||||
# - "rebuild-bochs.sh bochs": rebuild all of Bochs
|
||||
# - "rebuild-bochs.sh bochs": rebuild all of Bochs and link fail-client
|
||||
# (e.g., necessary if you changed Bochs-affecting aspects/code that must be
|
||||
# inlined in Bochs)
|
||||
# - "rebuild-bochs.sh -": rebuild only changed parts of Fail and Bochs
|
||||
# - "rebuild-bochs.sh -": rebuild only changed parts of Fail* and Bochs
|
||||
# (e.g., sufficient if you only changed experiment code)
|
||||
# - all of the previous options finally install Bochs
|
||||
#
|
||||
set -e
|
||||
# determine absolute path of this script
|
||||
@ -30,6 +29,6 @@ fi
|
||||
|
||||
#export PATH=/fs/staff/hsc/bin/ccache:$PATH
|
||||
|
||||
# even if we only rebuilt fail, we need to link and install bochs again
|
||||
nice make -j$FAIL_BUILD_PARALLEL bochs 2>&1 | $(dirname $0)/colorize.pl 2>&1
|
||||
make bochsinstall
|
||||
nice make -j$FAIL_BUILD_PARALLEL fail-client 2>&1 | $(dirname $0)/colorize.pl 2>&1
|
||||
# no need to use Bochs' own installation mechanism
|
||||
#nice make -j$FAIL_BUILD_PARALLEL bochsinstall
|
||||
|
||||
Reference in New Issue
Block a user