From: Clark Williams <williams@redhat.com>
To: Wander Lairson Costa <wander@redhat.com>
Cc: linux-rt-users@vger.kernel.org,
Derek Barbosa <debarbos@redhat.com>,
John Kacur <jkacur@redhat.com>,
Juri Lelli <juri.lelli@redhat.com>,
Chunsheng Luo <luochunsheng@ustc.edu>
Subject: Re: [stalld v2 2/6] Makefile: Improve compiler flag detection for -fcf-protection
Date: Mon, 10 Nov 2025 11:51:58 -0600 [thread overview]
Message-ID: <aRImPhGtA7X_9yPg@lysander> (raw)
In-Reply-To: <20251110132241.43685-3-wander@redhat.com>
On Mon, Nov 10, 2025 at 10:22:37AM -0300, Wander Lairson Costa wrote:
> The previous method of detecting support for -fcf-protection relied on
> a minimum GCC version check, which was not always accurate and could
> fail on different architectures or compiler toolchains.
>
> This commit replaces the version check with a more robust method that
> directly tests if the compiler supports the -fcf-protection flag. This
> ensures better portability and avoids compilation errors on systems
> where the flag is not available.
>
> This change mirrors the recently added detection logic for the
> -mno-omit-leaf-frame-pointer flag.
>
> Signed-off-by: Wander Lairson Costa <wander@redhat.com>
> Cc: Derek Barbosa <debarbos@redhat.com>
> Cc: John Kacur <jkacur@redhat.com>
> Cc: Juri Lelli <juri.lelli@redhat.com>
> Cc: Chunsheng Luo <luochunsheng@ustc.edu>
> ---
> Makefile | 23 ++++++++++++-----------
> 1 file changed, 12 insertions(+), 11 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index d605e60..23e786d 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -20,17 +20,14 @@ IS_MINVER := $(intcmp $(GCC_VER), $(MIN_GCC_VER), false, true, true)
> $(info IS_MINVER=$(IS_MINVER))
>
> USE_BPF := 1
> -FCF_PROTECTION := -fcf-protection
> MTUNE := -mtune=generic
> M64 := -m64
>
> ifeq ($(ARCH),aarch64)
> -FCF_PROTECTION := "-fcf-protection=none"
> M64 :=
> endif
> ifeq ($(ARCH),i686)
> USE_BPF := 0
> -FCF_PROTECTION := "-fcf-protection=branch"
> endif
> ifeq ($(ARCH),s390x)
> MTUNE := -mtune=z13
> @@ -43,23 +40,23 @@ ifeq ($(ARCH),powerpc)
> USE_BPF := 0
> MTUNE := -mtune=powerpc
> endif
> -ifeq ($(strip $(IS_MINVER)), false)
> -FCF_PROTECTION :=
> -endif
> -
> -
> -$(info USE_BPF=$(USE_BPF))
> -$(info FCF_PROTECTION=$(FCF_PROTECTION))
> -$(info MTUNE=$(MTUNE))
>
> DEBUG ?= 0
>
> INSTALL = install
> CC := gcc
> +
> +# Test if compiler supports -fcf-protection
> +FCF_PROTECTION := $(shell echo 'int main(void){return 0;}' | \
> + $(CC) -x c -fcf-protection - \
> + -o /dev/null 2>/dev/null && \
> + echo '-fcf-protection')
> +
> FOPTS := -flto=auto -ffat-lto-objects -fexceptions -fstack-protector-strong \
> -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer \
> $(strip $(FCF_PROTECTION)) -fpie
>
> +
> # Test if compiler supports -mno-omit-leaf-frame-pointer
> OMIT_LEAF_FP := $(shell echo 'int main(void){return 0;}' | \
> $(CC) -x c -mno-omit-leaf-frame-pointer - \
> @@ -74,6 +71,10 @@ DEFS := -DUSE_BPF=$(USE_BPF) -D_FORTIFY_SOURCE=3 -D_GLIBCXX_ASSERTIONS -DDEBUG_S
>
> CFLAGS := -DVERSION=\"$(VERSION)\" $(FOPTS) $(MOPTS) $(WOPTS) $(DEFS)
>
> +$(info USE_BPF=$(USE_BPF))
> +$(info FCF_PROTECTION=$(FCF_PROTECTION))
> +$(info MTUNE=$(MTUNE))
> +
> ifeq ($(DEBUG),0)
> CFLAGS += -g -O2
> else
> --
> 2.51.1
>
Signed-off-by: Clark Williams <williams@redhat.com>
--
The United States Coast Guard
Ruining Natural Selection since 1790
next prev parent reply other threads:[~2025-11-10 17:52 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-10 13:22 [stalld v2 0/6] Improve Makefile portability and debugging Wander Lairson Costa
2025-11-10 13:22 ` [stalld v2 1/6] Makefile: Conditionally add -mno-omit-leaf-frame-pointer Wander Lairson Costa
2025-11-10 17:51 ` Clark Williams
2025-11-10 13:22 ` [stalld v2 2/6] Makefile: Improve compiler flag detection for -fcf-protection Wander Lairson Costa
2025-11-10 17:51 ` Clark Williams [this message]
2025-11-10 13:22 ` [stalld v2 3/6] Makefile: Explicitly run the 'test' target in the tests directory Wander Lairson Costa
2025-11-10 17:48 ` Clark Williams
2025-11-10 13:22 ` [stalld v2 4/6] Makefile: Remove redundant GCC version check Wander Lairson Costa
2025-11-10 17:52 ` Clark Williams
2025-11-11 0:30 ` Derek Barbosa
2025-11-10 13:22 ` [stalld v2 5/6] Makefile: Print BPF tool versions for debugging Wander Lairson Costa
2025-11-10 17:50 ` Clark Williams
2025-11-10 13:22 ` [stalld v2 6/6] gitignore: Exclude Serena and Claude Code metadata Wander Lairson Costa
2025-11-10 17:50 ` Clark Williams
2025-11-25 19:58 ` [stalld v2 0/6] Improve Makefile portability and debugging Clark Williams
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aRImPhGtA7X_9yPg@lysander \
--to=williams@redhat.com \
--cc=debarbos@redhat.com \
--cc=jkacur@redhat.com \
--cc=juri.lelli@redhat.com \
--cc=linux-rt-users@vger.kernel.org \
--cc=luochunsheng@ustc.edu \
--cc=wander@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox