From cc38276a5d3926fd96e58366e15ba887d7d02ed0 Mon Sep 17 00:00:00 2001
From: Changqing Li <changqing.li@windriver.com>
Date: Mon, 26 Nov 2018 09:19:17 +0800
Subject: [PATCH] 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>

Upstream-Status: Pending

update this patch to new version

Signed-off-by: Changqing Li <changqing.li@windriver.com>
[OP: Rebase to 0.9.3]
Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
---
 Makefile.inc | 28 ++++++++++++++++++----------
 1 file changed, 18 insertions(+), 10 deletions(-)

diff --git a/Makefile.inc b/Makefile.inc
index 57779fd8..34f2cc6d 100644
--- a/Makefile.inc
+++ b/Makefile.inc
@@ -140,20 +140,28 @@ FORTIFY_OPT := $(shell \
 		echo "-D_FORTIFY_SOURCE=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 \
-		  -Werror=implicit-function-declaration -Werror=format-security \
-		  $(WNOCLOBBERED) -Werror=cast-qual $(ERROR_DISCARDED_QUALIFIERS)
+ifndef RPM_OPT_FLAGS
+       STACKPROT := $(call TEST_CC_OPTION,-fstack-protector-strong,-fstack-protector)
+       OPTFLAGS        = -O2 -g -pipe -Wall -Werror=format-security \
+                         -Wp,-D_FORTIFY_SOURCE=2 -fexceptions \
+                         $(STACKPROT) --param=ssp-buffer-size=4 \
+                         -grecord-gcc-switches
+       ifeq ($(shell test -f /usr/lib/rpm/redhat/redhat-hardened-cc1 && echo 1),1)
+               OPTFLAGS += -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
+       endif
+else
+       OPTFLAGS = $(RPM_OPT_FLAGS)
+endif
+OPTFLAGS       += -Wextra -Wstrict-prototypes -Wformat=2 -Werror=implicit-int \
+                  -Werror=implicit-function-declaration -Wno-sign-compare \
+                  -Wno-unused-parameter -Werror=cast-qual \
+                  -Werror=discarded-qualifiers
+
 CPPFLAGS	:= $(FORTIFY_OPT) \
 		   -DBIN_DIR=\"$(bindir)\" -DMULTIPATH_DIR=\"$(plugindir)\" -DRUN_DIR=\"${RUN}\" \
 		   -DRUNTIME_DIR=\"$(runtimedir)\" \
 		   -DCONFIG_DIR=\"$(configdir)\" -DEXTRAVERSION=\"$(EXTRAVERSION)\" -MMD -MP
-CFLAGS		:= --std=gnu99 $(CFLAGS) $(OPTFLAGS) $(WARNFLAGS) -pipe
+CFLAGS		:= --std=gnu99 $(CFLAGS) $(OPTFLAGS) -pipe
 BIN_CFLAGS	= -fPIE -DPIE
 LIB_CFLAGS	= -fPIC
 SHARED_FLAGS	= -shared
-- 
2.38.1

