diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d3d1ef031..38dc9f8c0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -58,10 +58,9 @@ jobs: strategy: fail-fast: false matrix: - os: [ macos-14, macos-15, macos-15-intel, macos-26, macos-26-intel, ubuntu-24.04 ] + os: [ macos-14, macos-15, macos-15-intel, macos-26, macos-26-intel, ubuntu-24.04, ubuntu-26.04-arm ] compiler: [ gcc ] version: [ 12, 13, 14, 15, 16 ] - extra_flags: [ -g ] include: - os: ubuntu-24.04 @@ -91,6 +90,11 @@ jobs: version: 22 # https://hub.docker.com/r/phhargrove/llvm-flang/tags + - os: ubuntu-24.04 + compiler: clang + version: 23 + conduits: *ubuntu_conduits + container: phhargrove/llvm-flang:23.1.0_rc2-latest - os: ubuntu-24.04 compiler: clang version: 22 @@ -146,8 +150,10 @@ jobs: env: COMPILER_VERSION: ${{ matrix.version }} CC: ${{ matrix.compiler }} - CFLAGS: ${{ matrix.extra_flags }} - CONFIGURE_ARGS: --disable-mpi-compat --enable-rpath --enable-debug ${{ inputs.configure_args }} + CFLAGS: ${{ matrix.cflags }} + CXXFLAGS: ${{ matrix.cxxflags }} + LDFLAGS: ${{ matrix.ldflags }} + CONFIGURE_ARGS: --disable-mpi-compat --enable-rpath --enable-debug --enable-smp --enable-udp ${{ inputs.configure_args }} GASNET_BACKTRACE: 1 GASNET_SPAWN_VERBOSE: 1 GASNET_VERBOSEENV: 1 @@ -174,8 +180,8 @@ jobs: sudo apt update #sudo apt list -a 'gcc-*' sudo apt install -y build-essential autoconf2.69 automake - if [[ ${COMPILER_VERSION} -lt 15 ]] ; then - sudo apt install -y gcc-${COMPILER_VERSION} + if [[ ${COMPILER_VERSION} -lt 15 ]] || type -p gcc-${COMPILER_VERSION} ; then + sudo apt install -y gcc-${COMPILER_VERSION} g++-${COMPILER_VERSION} else curl -L https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh -o install-homebrew.sh chmod +x install-homebrew.sh diff --git a/other/amudp/amudp_spmd.cpp b/other/amudp/amudp_spmd.cpp index 5810eb69f..241d27295 100644 --- a/other/amudp/amudp_spmd.cpp +++ b/other/amudp/amudp_spmd.cpp @@ -924,6 +924,7 @@ extern int AMUDP_SPMDStartup(int *argc, char ***argv, int result; do { int status = 0; + errno = 0; // ensure success doesn't output garbage in verbose mode result = waitpid(-1, &status, 0); if (result == -1 && errno == ECHILD) break; if (!AMX_SilentMode) AMX_Info("result=%i status=%i errno=%s",result,status,strerror(errno));