From f0f8dde07d6e6e9a5da51ba4c59289a4cd96392e Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Tue, 25 Apr 2023 14:38:31 -0400 Subject: [PATCH] jjb: binutils-gdb: add macos build Add a macos job that only builds, but does not run tests. Change-Id: Ie64a97a173153189ebe20b507a46f38c46d55139 --- jobs/binutils-gdb.yaml | 14 ++++++++++ scripts/binutils-gdb/build.sh | 52 +++++++++++++++++++++++++++++++---- 2 files changed, 61 insertions(+), 5 deletions(-) diff --git a/jobs/binutils-gdb.yaml b/jobs/binutils-gdb.yaml index 22a9f03..36e52f7 100644 --- a/jobs/binutils-gdb.yaml +++ b/jobs/binutils-gdb.yaml @@ -86,6 +86,17 @@ - email: recipients: 'simon.marchi@efficios.com' +- job-template: + name: binutils-gdb_{version}_macosbuild + defaults: binutils-gdb + + <<: *binutils-gdb_matrix_axes_defaults + <<: *binutils-gdb_builders_defaults + + publishers: + - email: + recipients: 'simon.marchi@efficios.com' + - job-template: name: dev_gerrit_binutils-gdb_linuxbuild defaults: binutils-gdb @@ -147,6 +158,9 @@ - 'binutils-gdb_{version}_linuxbuild': platforms: !!python/tuple [jammy-amd64] target_boards: !!python/tuple ["unix", "native-gdbserver", "native-extended-gdbserver"] + - 'binutils-gdb_{version}_macosbuild': + platforms: !!python/tuple [macos-amd64, macos-arm64] + target_boards: !!python/tuple ["unix"] - project: name: gerrit-gdb diff --git a/scripts/binutils-gdb/build.sh b/scripts/binutils-gdb/build.sh index 61fe515..765888c 100755 --- a/scripts/binutils-gdb/build.sh +++ b/scripts/binutils-gdb/build.sh @@ -150,6 +150,18 @@ SRCDIR="$WORKSPACE/src/binutils-gdb" TMPDIR="$WORKSPACE/tmp" PREFIX="/build" +function use_ccache() +{ + case "$platform" in + macos-*) + return 1 + ;; + *) + return 0 + ;; + esac +} + # Create tmp directory rm -rf "$TMPDIR" mkdir -p "$TMPDIR" @@ -158,14 +170,31 @@ export TMPDIR export CFLAGS="-O2 -g -fsanitize=address" export CXXFLAGS="-O2 -g -fsanitize=address -D_GLIBCXX_DEBUG=1" export LDFLAGS="-fsanitize=address" -export CC="ccache cc" -export CXX="ccache c++" +export CC="cc" +export CXX="c++" + +if use_ccache; then + CC="ccache $CC" + CXX="ccache $CXX" +fi + +# To make GDB find libcc1.so +export LD_LIBRARY_PATH="/usr/lib/gcc/x86_64-linux-gnu/11:${LD_LIBRARY_PATH:-}" # Set platform variables +export TAR=tar +export MAKE=make + case "$platform" in +macos-*) + export NPROC="getconf _NPROCESSORS_ONLN" + export PATH="/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" + export CPPFLAGS="-I/opt/local/include" + export LDFLAGS="-L/opt/local/lib" + export PYTHON="python3.9" + export PYTHON_CONFIG="python3.9-config" + ;; *) - export MAKE=make - export TAR=tar export NPROC=nproc ;; esac @@ -210,6 +239,12 @@ case "$conf" in ;; esac +case "$platform" in +macos-*) + CONF_OPTS+=("--disable-werror") + ;; +esac + # Build type # oot : out-of-tree build # dist : build via make dist @@ -233,11 +268,18 @@ esac # We are now inside a configured build directory # BUILD! -$MAKE -j "$($NPROC)" V=1 MAKEINFO=/bin/true +$MAKE -j "$($NPROC)" V=1 MAKEINFO=true # Install in the workspace $MAKE install DESTDIR="$WORKSPACE" +case "$platform" in +macos-*) + # Stop there, don't run tests on macOS. + exit 0 + ;; +esac + case "$target_board" in unix | native-gdbserver | native-extended-gdbserver) RUNTESTFLAGS="--target_board=$target_board" -- 2.34.1