public inbox for linux-rt-users@vger.kernel.org
 help / color / mirror / Atom feed
From: Wander Lairson Costa <wander@redhat.com>
To: williams@redhat.com
Cc: linux-rt-users@vger.kernel.org,
	Wander Lairson Costa <wander@redhat.com>,
	Derek Barbosa <debarbos@redhat.com>,
	John Kacur <jkacur@redhat.com>,
	Juri Lelli <juri.lelli@redhat.com>,
	Chunsheng Luo <luochunsheng@ustc.edu>
Subject: [stalld v2 2/6] Makefile: Improve compiler flag detection for -fcf-protection
Date: Mon, 10 Nov 2025 10:22:37 -0300	[thread overview]
Message-ID: <20251110132241.43685-3-wander@redhat.com> (raw)
In-Reply-To: <20251110132241.43685-1-wander@redhat.com>

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


  parent reply	other threads:[~2025-11-10 13:23 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 ` Wander Lairson Costa [this message]
2025-11-10 17:51   ` [stalld v2 2/6] Makefile: Improve compiler flag detection for -fcf-protection Clark Williams
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=20251110132241.43685-3-wander@redhat.com \
    --to=wander@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=williams@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