Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Signed-off-by: Hajime Tazaki <thehajime@gmail.com>
  • Loading branch information
thehajime committed Mar 21, 2017
1 parent f91181a commit 8fe4e79
Show file tree
Hide file tree
Showing 6 changed files with 62 additions and 46 deletions.
16 changes: 11 additions & 5 deletions buildrump/.travis.yml
Expand Up @@ -15,20 +15,26 @@ compiler:
sudo: false

before_script:
- ./buildrump.sh checkout
- ./buildrump.sh ${LINUX} checkout
- ./buildrump.sh ${RUMPKERNEL} checkout

env:
- NAME='static' LIBTYPE='MKPIC=no' BUILDTYPE='' TESTS='tests'
- NAME='dynamic' LIBTYPE='MKSTATICLIB=no' BUILDTYPE='' TESTS='tests'
- NAME='debug' LIBTYPE='MKSTATICLIB=no' BUILDTYPE='-DDD' TESTS='tests'
- NAME='release' LIBTYPE='MKSTATICLIB=no' BUILDTYPE='-r' TESTS='tests'
- NAME='fibers' LIBTYPE='MKSTATICLIB=no' BUILDTYPE='-V RUMPUSER_THREADS=fiber -V RUMP_CURLWP=hypercall' TESTS=''
- NAME='dynamic' LIBTYPE='MKSTATICLIB=no' BUILDTYPE='' TESTS='tests' LINUX='-l ./lkl-linux'
- NAME='fibers' LIBTYPE='MKSTATICLIB=no' BUILDTYPE='-V RUMPUSER_THREADS=fiber -V RUMP_CURLWP=hypercall' TESTS='' LINUX='-l ./lkl-linux'
- NAME='dynamic' LIBTYPE='MKSTATICLIB=no' BUILDTYPE='' TESTS='' RUMPKERNEL='-l linux'
- NAME='fibers' LIBTYPE='MKSTATICLIB=no' BUILDTYPE='-V RUMPUSER_THREADS=fiber -V RUMP_CURLWP=hypercall' TESTS='' RUMPKERNEL='-l linux'

matrix:
allow_failures:
- compiler: clang
env: NAME='dynamic' LIBTYPE='MKSTATICLIB=no' BUILDTYPE='' TESTS='' RUMPKERNEL='-l linux'
- compiler: clang
env: NAME='fibers' LIBTYPE='MKSTATICLIB=no' BUILDTYPE='-V RUMPUSER_THREADS=fiber -V RUMP_CURLWP=hypercall' TESTS='' RUMPKERNEL='-l linux'

script:
- ./buildrump.sh ${LINUX} -o obj.${NAME} -d rump.${NAME} -qq -j16 -V ${LIBTYPE} ${BUILDTYPE} fullbuild ${TESTS}
- ./buildrump.sh ${RUMPKERNEL} -o obj.${NAME} -d rump.${NAME} -qq -j16 -V ${LIBTYPE} ${BUILDTYPE} fullbuild ${TESTS}

notifications:
irc:
Expand Down
1 change: 1 addition & 0 deletions buildrump/AUTHORS
Expand Up @@ -8,3 +8,4 @@ Alexander Guy <alexander.guy@andern.org>
Robert Millan <rmh@gnu.org>
Viktor Pocedulic <viktor.pocedulic@gmail.com>
David Michael <fedora.dm0@gmail.com>
Mahdi Mokhtari <mmokhi@FreeBSD.org>
9 changes: 6 additions & 3 deletions buildrump/buildrump.sh
Expand Up @@ -519,6 +519,7 @@ maketools ()
# very confused if you start the build, it bombs, you add zlib,
# and retry.
doesitbuild_host '#include <zlib.h>
#include <stdlib.h>
int main() {gzopen(NULL, NULL); return 0;}' -lz \
|| die 'Host zlib (libz, -lz) required, please install one!'

Expand Down Expand Up @@ -562,7 +563,7 @@ int main() {gzopen(NULL, NULL); return 0;}' -lz \
cat >> "${MKCONF}" << EOF
BUILDRUMP_IMACROS=${BRIMACROS}
.if \${BUILDRUMP_SYSROOT:Uno} == "yes"
BUILDRUMP_CPPFLAGS=--sysroot=\${BUILDRUMP_STAGE}
BUILDRUMP_CPPFLAGS=--sysroot=\${BUILDRUMP_STAGE} -isystem =/usr/include
.else
BUILDRUMP_CPPFLAGS=-I\${BUILDRUMP_STAGE}/usr/include
.endif
Expand Down Expand Up @@ -1233,6 +1234,7 @@ parseargs ()
OBJDIR=./obj
DESTDIR=./rump
SRCDIR=./src
LKL_SRCDIR=./linux
JNUM=4

while getopts 'd:DhHj:kl:o:qrs:T:V:F:' opt; do
Expand Down Expand Up @@ -1396,7 +1398,7 @@ parseargs ()
docheckout=true
checkoutstyle=cvs
fi
if ${docheckout} && ${RUMPKERNEL} = "linux" ; then
if ${docheckout} && [ ${RUMPKERNEL} = "linux" ] ; then
docheckout=true
checkoutstyle=linux-git
fi
Expand Down Expand Up @@ -1434,6 +1436,7 @@ resolvepaths ()

abspath BRTOOLDIR
abspath SRCDIR
[ "${RUMPKERNEL}" = "linux" ] && abspath LKL_SRCDIR

RUMPMAKE="${BRTOOLDIR}/bin/brrumpmake"
BRIMACROS="${BRTOOLDIR}/include/opt_buildrump.h"
Expand Down Expand Up @@ -1483,7 +1486,7 @@ done

parseargs "$@"

${docheckout} && { ${BRDIR}/checkout.sh ${checkoutstyle} ${SRCDIR} || exit 1; }
${docheckout} && { ${BRDIR}/checkout.sh ${checkoutstyle} ${SRCDIR} ${LKL_SRCDIR} || exit 1; }

if ${doprobe} || ${dotools} || ${dobuild} || ${dokernelheaders} \
|| ${doinstall} || ${dotests}; then
Expand Down
33 changes: 18 additions & 15 deletions buildrump/checkout.sh
Expand Up @@ -64,7 +64,7 @@ NBSRC_EXTRA_usr=''

GITREPO='https://github.com/rumpkernel/src-netbsd'
GITREPOPUSH='git@github.com:rumpkernel/src-netbsd'
GITREPO_LINUX='https://github.com/thehajime/lkl-linux'
GITREPO_LKL='https://github.com/libos-nuse/lkl-linux'
GITREVFILE='.srcgitrev'

checkoutcvs ()
Expand Down Expand Up @@ -200,30 +200,30 @@ checkoutgit ()
}

# Check out Linux (LKL) sources.
LIBOS_REV=rump-hypcall
LKL_REV=rump-hypcall-upstream
checkoutgitlinux ()
{

echo ">> Fetching Linux sources to ${LINUX_SRCDIR} using git"
echo ">> Fetching Linux/LKL sources to ${LKL_SRCDIR} using git"

if [ -e "${LINUX_SRCDIR}" -a ! -e "${LINUX_SRCDIR}/.git" ]; then
if [ -e "${LKL_SRCDIR}" -a ! -e "${LKL_SRCDIR}/.git" ]; then
echo '>>'
echo ">> NOTICE: Not a buildrump.sh-based git repo in ${LINUX_SRCDIR}"
echo ">> NOTICE: Not a buildrump.sh-based git repo in ${LKL_SRCDIR}"
echo '>> Cannot verify repository version. Proceeding ...'
echo '>>'
return 0
fi

gitrev=${LIBOS_REV}
gitrev=${LKL_REV}
[ $? -eq 0 ] || die Cannot determine relevant git revision
if [ -e ${LINUX_SRCDIR}/.git ] ; then
cd ${LINUX_SRCDIR}
if [ -e ${LKL_SRCDIR}/.git ] ; then
cd ${LKL_SRCDIR}
# [ -z "$(${GIT} status --porcelain)" ] \
# || die "Cloned repo in ${LINUX_SRCDIR} is not clean, aborting."
${GIT} fetch origin rump-hypcall || die Failed to fetch repo
# || die "Cloned repo in ${LKL_SRCDIR} is not clean, aborting."
${GIT} fetch origin ${LKL_REV} || die Failed to fetch repo
else
${GIT} clone -n ${GITREPO_LINUX} ${LINUX_SRCDIR} || die Clone failed
cd ${LINUX_SRCDIR}
${GIT} clone -n ${GITREPO_LKL} ${LKL_SRCDIR} || die Clone failed
cd ${LKL_SRCDIR}
fi

${GIT} checkout -q ${gitrev} || \
Expand Down Expand Up @@ -386,7 +386,7 @@ BRDIR=$(dirname $0)

[ $# -lt 2 ] && die Invalid usage. Run this script via buildrump.sh
SRCDIR=${2}
LINUX_SRCDIR=${3}
LKL_SRCDIR=${3}

# default to the most secure source for githubdate
if [ -z "${BUILDRUMP_CVSROOT}" ]; then
Expand Down Expand Up @@ -433,9 +433,12 @@ git)
;;
linux-git)
setgit || die "require working git"
cd $(dirname $0)
curdir="$(pwd)"
# XXX: currently linux build requires src-netbsd
checkoutgit
cd "${curdir}"
checkoutgitlinux
cd $(dirname $0)
cd "${curdir}"
echo '>> checkout done'
;;
githubdate)
Expand Down
47 changes: 25 additions & 22 deletions buildrump/linux.sh
@@ -1,23 +1,23 @@
RUMPKERN_CPPFLAGS="-D__linux__"
RUMPKERN_CPPFLAGS="-D__linux__ -DCONFIG_LKL"

checkcheckout ()
{

[ -f "${LKLSRC}/arch/lkl/Makefile" ] || \
die "Cannot find ${LKLSRC}/arch/lkl/Makefile!"
[ -f "${LKL_SRCDIR}/arch/lkl/Makefile" ] || \
die "Cannot find ${LKL_SRCDIR}/arch/lkl/Makefile!"

[ ! -z "${TARBALLMODE}" ] && return

if ! ${BRDIR}/checkout.sh checkcheckout ${LKLSRC} \
if ! ${BRDIR}/checkout.sh checkcheckout ${LKL_SRCDIR} \
&& ! ${TITANMODE}; then
die 'revision mismatch, run checkout (or -H to override)'
fi
}

makebuild ()
{
echo "=== Linux build LKLSRC=${LKLSRC} ==="
cd ${LKLSRC}
echo "=== Linux build LKLSRC=${LKL_SRCDIR} ==="
cd ${LKL_SRCDIR}
VERBOSE="V=0"
if [ ${NOISE} -gt 1 ] ; then
VERBOSE="V=1"
Expand All @@ -33,16 +33,16 @@ makebuild ()

set -e
set -x

export RUMP_PREFIX=${OBJDIR}/../librumpuser/
mkdir -p ${OBJDIR}/lkl-linux
export RUMP_PREFIX=${SRCDIR}/sys/rump
export RUMP_INCLUDE=${SRCDIR}/sys/rump/include
mkdir -p ${OBJDIR}/linux

cd tools/lkl
rm -f ${OBJDIR}/lkl-linux/tools/lkl/lib/lkl.o
make CROSS_COMPILE=${CROSS} rumprun=no -j ${JNUM} ${VERBOSE} O=${OBJDIR}/lkl-linux/
rm -f ${OBJDIR}/linux/tools/lkl/lib/lkl.o
make CROSS_COMPILE=${CROSS} rumprun=yes -j ${JNUM} ${VERBOSE} O=${OBJDIR}/linux

cd ../../
make CROSS_COMPILE=${CROSS} headers_install ARCH=lkl O=${OBJDIR}/rump/
make CROSS_COMPILE=${CROSS} headers_install ARCH=lkl O=${DESTDIR}/ PREFIX=/ INSTALL_HDR_PATH=${DESTDIR}/

set +x
}
Expand All @@ -52,13 +52,15 @@ makeinstall ()

# XXX for app-tools
mkdir -p ${DESTDIR}/bin/
mkdir -p ${OBJDIR}/rumptools/dest/usr/include/rumprun

export RUMP_PREFIX=${OBJDIR}/../librumpuser/
make rumprun=no headers_install libraries_install CROSS_COMPILE=${CROSS} \
DESTDIR=${DESTDIR} \
-C ${LKLSRC}/tools/lkl/ O=${OBJDIR}/lkl-linux/

mkdir -p ${DESTDIR}/include/rumprun

export RUMP_PREFIX=${SRCDIR}/sys/rump
export RUMP_INCLUDE=${SRCDIR}/sys/rump/include
make rumprun=yes headers_install libraries_install DESTDIR=${DESTDIR}\
-C ./tools/lkl/ O=${OBJDIR}/linux PREFIX=/
# XXX: for netconfig.h
mkdir -p ${DESTDIR}/include/rump/
cp -pf ${BRDIR}/brlib/libnetconfig/rump/netconfig.h ${DESTDIR}/include/rump/
}

#
Expand All @@ -73,7 +75,8 @@ makekernelheaders ()

maketests ()
{
printf 'Linux libos test ... '
make -C ${LKLSRC}/tools/lkl test || die Linux libos failed
printf 'SKIP: Linux test currently not implemented yet ... \n'
return
printf 'Linux test ... \n'
make -C ${LKL_SRCDIR}/tools/lkl test O=${OBJDIR}/linux || die LKL test failed
}

2 changes: 1 addition & 1 deletion buildrump/netbsd.sh
Expand Up @@ -142,7 +142,7 @@ makeinstall ()
# install kernel headers.
# Note: Do _NOT_ do this unless you want to install a
# full rump kernel application stack
#
#
makekernelheaders ()
{

Expand Down

0 comments on commit 8fe4e79

Please sign in to comment.