From d77249b5cccd9caab5f7f9f7c8435418b3417448 Mon Sep 17 00:00:00 2001 From: dragonmux Date: Fri, 29 Sep 2023 01:44:35 +0100 Subject: [PATCH 1/2] gha/macos: Switched LTO off for the Homebrew builds to avoid GCC bug #111635 --- .github/workflows/build-macos.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 98e3088..d083cbd 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -94,7 +94,6 @@ jobs: # rdar://FB11369327 name: '${{ matrix.os }} (homebrew, ${{ matrix.compiler }})' runs-on: ${{ matrix.os }} - if: false defaults: run: shell: bash @@ -144,7 +143,8 @@ jobs: meson --version ninja --version - name: Configure - run: meson setup build --prefix=$HOME/.local $BUILD_OPTS + # GCC on macOS cannot do LTO for now due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111635 + run: meson setup build --prefix=$HOME/.local -Db_lto=false $BUILD_OPTS - name: Build run: meson compile -C build - name: Test @@ -156,7 +156,7 @@ jobs: # Codecov no longer parses gcov files automatically run: | rm -rf build - meson setup build --prefix=$HOME/.local -Db_coverage=true --buildtype=debug + meson setup build --prefix=$HOME/.local -Db_lto=false -Db_coverage=true --buildtype=debug $BUILD_OPTS meson compile -C build meson test -C build ninja -C build coverage-xml From ff8ce598d5e420d8758416a76727b45c26cd93cf Mon Sep 17 00:00:00 2001 From: dragonmux Date: Fri, 29 Sep 2023 01:54:26 +0100 Subject: [PATCH 2/2] meson: Implemented a guard for LTO on macOS w/ GCC as this is broken --- src/meson.build | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/meson.build b/src/meson.build index 0c8de63..9222516 100644 --- a/src/meson.build +++ b/src/meson.build @@ -3,6 +3,13 @@ # SPDX-FileContributor: Written by Rachel Mant cxx = meson.get_compiler('cpp') +if get_option('b_lto') and host_machine.system() == 'darwin' and cxx.get_id() == 'gcc' + error( + 'GCC on macOS does not correctly implement support for LTO, please pass `-Db_lto=false` to Meson\n', + '-> See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111635 for details' + ) +endif + if cxx.get_id() == 'msvc' and cxx.version().version_compare('<19.37') error('Your compiler is broken, please upgrade to at least MSVC 2022 release 17.7 to build bmpflash with MSVC.') endif