Introduce build script for arm-none-eabi cross-compilations

This is a necessary step to use libosmocore-arm dep in OsmocomBB.

After this patch is submitted the "./contrib/jenkins.sh" line in
libosmocore jenkins jobs [1][2] needs to be replaced with:

  if [[ "$JOB_NAME" == *"arch=arm-none-eabi,label=linux_amd64_debian8"* ]]
  then
    ./contrib/jenkins-arm.sh
  else
    # (FreeBSD && debian8)_amd64 builds
    ./contrib/jenkins.sh
  fi

Furthermore, the "arch" matrix-build axis has to be created,
holding "arm-none-eabi" and "amd64". Following combination filter 
is necessary to skip cross-compilations on FreeBSD buildslave:

  !(arch=="arm-none-eabi" && label=="FreeBSD_amd64")

[1] https://jenkins.osmocom.org/jenkins/job/libosmocore/
[2] https://jenkins.osmocom.org/jenkins/job/libosmocore-gerrit/

Change-Id: I0db83ad2c94ada65c00fd1bcf867830dec80085d
This commit is contained in:
blobb 2017-05-24 16:09:45 +02:00 committed by Harald Welte
parent 2d899a0157
commit cd8e7a46b6
1 changed files with 33 additions and 0 deletions

33
contrib/jenkins-arm.sh Executable file
View File

@ -0,0 +1,33 @@
#!/bin/sh
set -ex
./contrib/verify_value_string_arrays_are_terminated.py $(find . -name "*.[hc]")
autoreconf --install --force
./configure --enable-static \
--prefix=/usr/local/arm-none-eabi \
--host=arm-none-eabi \
--enable-embedded \
--disable-shared \
CFLAGS="-Os -ffunction-sections -fdata-sections -nostartfiles -nodefaultlibs"
$MAKE $PARALLEL_MAKE \
|| cat-testlogs.sh
# verify build in dir other than source tree
rm -rf *
git checkout .
autoreconf --install --force
mkdir builddir
cd builddir
../configure --enable-static \
--prefix=/usr/local/arm-none-eabi \
--host=arm-none-eabi \
--enable-embedded \
--disable-shared \
CFLAGS="-Os -ffunction-sections -fdata-sections -nostartfiles -nodefaultlibs"
$MAKE $PARALLEL_MAKE \
|| cat-testlogs.sh