- job: name: leg-tianocore-edk2-build-test project-type: freestyle defaults: global logrotate: daysToKeep: 30 numToKeep: 30 properties: - authorization: anonymous: - job-read - job-extended-read - job-workspace linaro: - job-read - job-extended-read - job-build - job-cancel parameters: - string: name: GIT_REPO default: 'https://git.linaro.org/people/ard.biesheuvel/uefi-next.git' - string: name: GIT_BRANCH default: 'unify-gcc-v2' disabled: false node: docker-utopic-amd64 display-name: 'Linaro EDK II - multiarch build test' scm: - git: url: ${GIT_REPO} refspec: +refs/heads/${GIT_BRANCH}:refs/remotes/origin/${GIT_BRANCH} name: origin branches: - refs/heads/${GIT_BRANCH} basedir: edk2 skip-tag: true shallow-clone: true clean: true wipe-workspace: true wrappers: - timestamps - build-name: name: '#${BUILD_NUMBER}-${GIT_REVISION,length=8}' builders: - linaro-publish-token - shell: | #!/bin/bash set -ex trap cleanup_exit INT TERM EXIT cleanup_exit() { cd ${WORKSPACE} rm -rf out edk2/Build } # use the GCC 4.[89] toolchains that are already available on the build host export GCC48_AARCH64_PREFIX=${HOME}/srv/toolchain/arm64-tc-14.04/bin/aarch64-linux-gnu- export GCC48_ARM_PREFIX=${HOME}/srv/toolchain/arm-tc-14.04/bin/arm-linux-gnueabihf- export GCC49_AARCH64_PREFIX=${HOME}/srv/toolchain/arm64-tc-14.09/bin/aarch64-linux-gnu- export GCC49_ARM_PREFIX=${HOME}/srv/toolchain/arm-tc-14.09/bin/arm-linux-gnueabihf- # reuse the binutils that ship with GCC 4.9 for the CLANG35 builds export CLANG35_AARCH64_PREFIX=${HOME}/srv/toolchain/arm64-tc-14.09/bin/aarch64-linux-gnu- sudo sed -i -e 's/archive.ubuntu.com\|security.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list sudo apt-get update sudo apt-get install -y --no-install-recommends clang gcc-4.4 gcc-4.6 gcc-4.7 gcc-4.8 gcc-4.9 gcc-mingw-w64 nasm # set up the paths for the various GCC versions for i in 4 6 7 8 9 do export GCC4${i}_BIN=${WORKSPACE}/GCC4${i}/ mkdir ${WORKSPACE}/GCC4${i} for t in objcopy ld ar make do ln -s /usr/bin/$t ${WORKSPACE}/GCC4${i}/ done ln -s /usr/bin/gcc-4.${i} ${WORKSPACE}/GCC4${i}/gcc done export OUTDIR=${WORKSPACE}/out ( unset WORKSPACE NUM_THREADS=$((`getconf _NPROCESSORS_ONLN` + 1)) # Initialise the build environment cd edk2 git clean -dxf BaseTools/ make -C BaseTools source edksetup.sh # override the mingw prefixes sed 's/^\(DEFINE.\+UNIXGCC_IA32_PETOOLS_PREFIX.\+=\).\+/\1 i686-w64-mingw32-/' -i Conf/tools_def.txt sed 's/^\(DEFINE.\+UNIXGCC_X64_PETOOLS_PREFIX.\+=\).\+/\1 x86_64-w64-mingw32-/' -i Conf/tools_def.txt # download and unpack the OpenSSL tarball cd ${WORKSPACE}/CryptoPkg/Library/OpensslLib # capture OpenSSL version number from the HOWTO VERSION=$(grep 'Current supported OpenSSL version' Patch-HOWTO.txt |sed 's/^[^0-9]\+\([0-9]\(\.[0-9]\)\+[a-z]*\).*\r\?$/\1/') wget -O - -q "http://www.openssl.org/source/openssl-${VERSION}.tar.gz" | tar xzf - ( cd openssl-${VERSION}; patch -p0 -i ../EDKII_openssl-${VERSION}.patch ) ./Install.sh cd ${WORKSPACE} build -n $NUM_THREADS -b DEBUG -b RELEASE -a AARCH64 -t GCC48 -t GCC49 -t CLANG35 -p ArmVirtPkg/ArmVirtQemu.dsc -D SECURE_BOOT_ENABLE build -n $NUM_THREADS -b DEBUG -b RELEASE -a AARCH64 -t GCC48 -t GCC49 -t CLANG35 -p ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.dsc build -n $NUM_THREADS -b DEBUG -b RELEASE -a AARCH64 -t GCC48 -t GCC49 -t CLANG35 -p ArmVirtPkg/ArmVirtXen.dsc build -n $NUM_THREADS -b DEBUG -b RELEASE -a AARCH64 -t GCC48 -t GCC49 -t CLANG35 -p ArmPlatformPkg/ArmJunoPkg/ArmJuno.dsc build -n $NUM_THREADS -b DEBUG -b RELEASE -a ARM -t GCC48 -t GCC49 -p ArmVirtPkg/ArmVirtQemu.dsc build -n $NUM_THREADS -b DEBUG -a IA32 -t GCC44 -t GCC46 -t GCC47 -t GCC48 -t GCC49 -t UNIXGCC -p OvmfPkg/OvmfPkgIa32.dsc -D SECURE_BOOT_ENABLE build -n $NUM_THREADS -b DEBUG -a X64 -t GCC44 -t GCC46 -t GCC47 -t GCC48 -t GCC49 -t UNIXGCC -p OvmfPkg/OvmfPkgX64.dsc -D SECURE_BOOT_ENABLE build -n $NUM_THREADS -b RELEASE -a IA32 -t GCC44 -t GCC46 -t GCC47 -t GCC48 -t GCC49 -p OvmfPkg/OvmfPkgIa32.dsc build -n $NUM_THREADS -b RELEASE -a X64 -t GCC44 -t GCC46 -t GCC47 -t GCC48 -t GCC49 -p OvmfPkg/OvmfPkgX64.dsc ) publishers: - email: recipients: 'ard.biesheuvel@linaro.org'