You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
2.7 KiB
66 lines
2.7 KiB
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 |
|
From: Benjamin Marzinski <bmarzins@redhat.com> |
|
Date: Wed, 19 Apr 2017 06:10:01 -0500 |
|
Subject: [PATCH] RH: use rpm optflags if present |
|
|
|
Use the passed in optflags when compiling as an RPM, and keep the |
|
default flags as close as possible to the current fedora flags, while |
|
still being generic. |
|
|
|
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> |
|
--- |
|
Makefile.inc | 26 +++++++++++++++++++------- |
|
1 file changed, 19 insertions(+), 7 deletions(-) |
|
|
|
diff --git a/Makefile.inc b/Makefile.inc |
|
index 2a75dc9c..5ac660de 100644 |
|
--- a/Makefile.inc |
|
+++ b/Makefile.inc |
|
@@ -92,23 +92,35 @@ TEST_CC_OPTION = $(shell \ |
|
echo "$(2)"; \ |
|
fi) |
|
|
|
-STACKPROT := $(call TEST_CC_OPTION,-fstack-protector-strong,-fstack-protector) |
|
ERROR_DISCARDED_QUALIFIERS := $(call TEST_CC_OPTION,-Werror=discarded-qualifiers,) |
|
WNOCLOBBERED := $(call TEST_CC_OPTION,-Wno-clobbered -Wno-error=clobbered,) |
|
WFORMATOVERFLOW := $(call TEST_CC_OPTION,-Wformat-overflow=2,) |
|
|
|
-OPTFLAGS := -O2 -g $(STACKPROT) --param=ssp-buffer-size=4 |
|
-WARNFLAGS := -Werror -Wall -Wextra -Wformat=2 $(WFORMATOVERFLOW) -Werror=implicit-int \ |
|
+ifndef RPM_OPT_FLAGS |
|
+ STACKPROT := $(call TEST_CC_OPTION,-fstack-protector-strong,-fstack-protector) |
|
+ OPTFLAGS := -O2 -g -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions \ |
|
+ $(STACKPROT) -grecord-gcc-switches \ |
|
+ -fasynchronous-unwind-tables --param=ssp-buffer-size=4 |
|
+ ifeq ($(shell test -f /usr/lib/rpm/redhat/redhat-hardened-cc1 && echo 1),1) |
|
+ OPTFLAGS += -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 |
|
+ endif |
|
+ ifeq ($(shell test -f /usr/lib/rpm/redhat/redhat-annobin-cc1 && echo 1),1) |
|
+ OPTFLAGS += -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 |
|
+ endif |
|
+else |
|
+ OPTFLAGS := $(RPM_OPT_FLAGS) --param=ssp-buffer-size=4 |
|
+endif |
|
+WARNFLAGS := -Werror -Wextra -Wformat=2 $(WFORMATOVERFLOW) -Werror=implicit-int \ |
|
-Werror=implicit-function-declaration -Werror=format-security \ |
|
- $(WNOCLOBBERED) -Werror=cast-qual $(ERROR_DISCARDED_QUALIFIERS) |
|
-CPPFLAGS := -Wp,-D_FORTIFY_SOURCE=2 |
|
+ $(WNOCLOBBERED) -Werror=cast-qual $(ERROR_DISCARDED_QUALIFIERS) \ |
|
+ -Wstrict-prototypes |
|
CFLAGS := --std=gnu99 $(CFLAGS) $(OPTFLAGS) $(WARNFLAGS) -pipe \ |
|
-DBIN_DIR=\"$(bindir)\" -DLIB_STRING=\"${LIB}\" -DRUN_DIR=\"${RUN}\" \ |
|
-MMD -MP |
|
BIN_CFLAGS = -fPIE -DPIE |
|
LIB_CFLAGS = -fPIC |
|
SHARED_FLAGS = -shared |
|
-LDFLAGS := $(LDFLAGS) -Wl,-z,relro -Wl,-z,now -Wl,-z,defs |
|
+LDFLAGS := $(LDFLAGS) $(RPM_LD_FLAGS) -Wl,-z,relro -Wl,-z,now -Wl,-z,defs |
|
BIN_LDFLAGS = -pie |
|
|
|
# Check whether a function with name $1 has been declared in header file $2. |
|
@@ -139,4 +151,4 @@ check_file = $(shell \ |
|
|
|
%.o: %.c |
|
@echo building $@ because of $? |
|
- $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< |
|
+ $(CC) $(CFLAGS) -c -o $@ $<
|
|
|