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 <jaruga@redhat.com>
This commit is contained in:
Alan Wu 2023-01-16 15:30:18 -05:00
parent c6b90e5e9c
commit e50f102489
Notes: git 2023-02-03 18:27:06 +00:00

View File

@ -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 } }