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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.