From e50f102489fcd7ccb5bfca683bbdd430ed2fa20c Mon Sep 17 00:00:00 2001 From: Alan Wu Date: Mon, 16 Jan 2023 15:30:18 -0500 Subject: [PATCH] CI: Pass -O2 for annocheck Because `optflags` is pasted into the invocation line after `CC`, we were building with -O1 unintentionally. You can see this in the configuration summary: https://github.com/ruby/ruby/actions/runs/3933391169/jobs/6727044423#step:9:753 The check actually fails with -O2. To make it pass, upstream suggest that we use the annocheck GCC plugin. Since it requires building from source as the debian package for it isn't ready yet, punt on it for now and use `--skip-gaps`. Co-authored-by: Jun Aruga --- .github/workflows/compilers.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/compilers.yml b/.github/workflows/compilers.yml index 61985505e9..992ba831cf 100644 --- a/.github/workflows/compilers.yml +++ b/.github/workflows/compilers.yml @@ -83,12 +83,13 @@ jobs: container: gcc-11 env: # Minimal flags to pass the check. - default_cc: 'gcc-11 -O2 -fcf-protection -Wa,--generate-missing-build-notes=yes' + default_cc: 'gcc-11 -fcf-protection -Wa,--generate-missing-build-notes=yes' + optflags: '-O2' LDFLAGS: '-Wl,-z,now' # FIXME: Drop skipping options # https://bugs.ruby-lang.org/issues/18061 # https://sourceware.org/annobin/annobin.html/Test-pie.html - TEST_ANNOCHECK_OPTS: "--skip-pie" + TEST_ANNOCHECK_OPTS: "--skip-pie --skip-gaps" check: true - { name: clang-16, env: { default_cc: clang-16 } } - { name: clang-15, env: { default_cc: clang-15 } }