From 3b3282a658108b75233a0dbfcaa0cca0387a92dc Mon Sep 17 00:00:00 2001 From: Michael Jeanson Date: Thu, 12 Nov 2015 11:58:37 -0500 Subject: [PATCH] Add arm64 to lttng-ust and normalize build script --- jobs/lttng-ust.yaml | 2 +- scripts/lttng-ust/build.sh | 126 ++++++++++++++++++++++--------------- 2 files changed, 78 insertions(+), 50 deletions(-) diff --git a/jobs/lttng-ust.yaml b/jobs/lttng-ust.yaml index 09114e9..c17b32e 100644 --- a/jobs/lttng-ust.yaml +++ b/jobs/lttng-ust.yaml @@ -244,7 +244,7 @@ conf: !!python/tuple [std, java-agent, python-agent] - 'lttng-ust_{version}_{buildtype}': buildtype: portbuild - arch: !!python/tuple [armhf, powerpc, ppc64el] + arch: !!python/tuple [armhf, arm64, powerpc, ppc64el] build: !!python/tuple [std] conf: !!python/tuple [std, java-agent, python-agent] - 'lttng-ust_{version}_cppcheck' diff --git a/scripts/lttng-ust/build.sh b/scripts/lttng-ust/build.sh index 4062e3e..a3c958d 100755 --- a/scripts/lttng-ust/build.sh +++ b/scripts/lttng-ust/build.sh @@ -1,4 +1,4 @@ -#!/bin/sh -exu +#!/bin/bash -exu # # Copyright (C) 2015 - Jonathan Rajotte-Julien # @@ -24,37 +24,58 @@ mkdir -p $WORKSPACE/build URCU_INCS="$WORKSPACE/deps/liburcu/build/include/" URCU_LIBS="$WORKSPACE/deps/liburcu/build/lib/" + +PREFIX="$WORKSPACE/build" + +# Set platform variables +case "$arch" in +*) + MAKE=make + TAR=tar + NPROC=nproc + BISON="bison" + YACC="$BISON -y" + CFLAGS="" + ;; +esac + +# Export build flags export CPPFLAGS="-I$URCU_INCS" export LDFLAGS="-L$URCU_LIBS" export LD_LIBRARY_PATH="$URCU_LIBS:${LD_LIBRARY_PATH:-}" -PREFIX="$WORKSPACE/build" - -./bootstrap +# Set configure options for each build configuration CONF_OPTS="" - case "$conf" in -# Unsupported! liblttng-ust can't pull in it's static (.a) dependencies. -#static) -# echo "Static build" -# CONF_OPTS="--enable-static --disable-shared" -# ;; +static) + # Unsupported! liblttng-ust can't pull in it's static (.a) dependencies. + echo "Static build" + CONF_OPTS="--enable-static --disable-shared" + ;; + java-agent) echo "Java agent build" export CLASSPATH="/usr/share/java/log4j-1.2.jar" CONF_OPTS="--enable-java-agent-all" ;; + python-agent) - echo "Python agent build" - CONF_OPTS="--enable-python-agent" - ;; + echo "Python agent build" + CONF_OPTS="--enable-python-agent" + ;; + *) echo "Standard build" CONF_OPTS="" ;; esac + +# Run bootstrap prior to configure +./bootstrap + + # Build type # oot : out-of-tree build # dist: build via make dist @@ -62,42 +83,44 @@ esac # # Make sure to move to the build_path and configure # before continuing - BUILD_PATH=$WORKSPACE case "$build" in - oot) - echo "Out of tree build" - BUILD_PATH=$WORKSPACE/oot - mkdir -p $BUILD_PATH - cd $BUILD_PATH - $WORKSPACE/configure --prefix=$PREFIX $CONF_OPTS - ;; - dist) - echo "Distribution out of tree build" - BUILD_PATH=`mktemp -d` - - # Initial configure and generate tarball - ./configure - make dist - - mkdir -p $BUILD_PATH - cp *.tar.* $BUILD_PATH/ - cd $BUILD_PATH - - # Ignore level 1 of tar - tar xvf *.tar.* --strip 1 - - $BUILD_PATH/configure --prefix=$PREFIX $CONF_OPTS - ;; - *) - BUILD_PATH=$WORKSPACE - echo "Standard tree build" - $WORKSPACE/configure --prefix=$PREFIX $CONF_OPTS - ;; +oot) + echo "Out of tree build" + BUILD_PATH=$WORKSPACE/oot + mkdir -p $BUILD_PATH + cd $BUILD_PATH + $WORKSPACE/configure --prefix=$PREFIX $CONF_OPTS + ;; + +dist) + echo "Distribution out of tree build" + BUILD_PATH=`mktemp -d` + + # Initial configure and generate tarball + ./configure + $MAKE dist + + mkdir -p $BUILD_PATH + cp *.tar.* $BUILD_PATH/ + cd $BUILD_PATH + + # Ignore level 1 of tar + $TAR xvf *.tar.* --strip 1 + + $BUILD_PATH/configure --prefix=$PREFIX $CONF_OPTS + ;; + +*) + BUILD_PATH=$WORKSPACE + echo "Standard tree build" + $WORKSPACE/configure --prefix=$PREFIX $CONF_OPTS + ;; esac -make V=1 -make install +# BUILD! +$MAKE -j `$NPROC` +$MAKE install # Run tests rm -rf $WORKSPACE/tap @@ -114,13 +137,18 @@ rm -f $WORKSPACE/tap/unit/meta.yml find $WORKSPACE/tap/unit/ -type f -exec mv {} {}.tap \; # Cleanup -make clean +$MAKE clean -# Cleanup rpath and libtool .la files +# Cleanup rpath in executables and shared libraries find $WORKSPACE/build/lib -name "*.so" -exec chrpath --delete {} \; + +# Remove libtool .la files find $WORKSPACE/build/lib -name "*.la" -exec rm -f {} \; # Clean temp dir for dist build -if [ $build = "dist" ]; then - rm -rf $BUILD_PATH +if [ "$build" = "dist" ]; then + cd $WORKSPACE + rm -rf $BUILD_PATH fi + +# EOF -- 2.34.1