Blame SOURCES/0071-Make-scan-build-and-CC-clang-work-again.patch

b15ea1
From 2bec15e310de37398cf5bb8135f15d15ab2bb54b Mon Sep 17 00:00:00 2001
b15ea1
From: Peter Jones <pjones@redhat.com>
b15ea1
Date: Wed, 29 Jan 2020 15:35:17 -0500
b15ea1
Subject: [PATCH 71/86] Make scan-build and CC=clang work again.
b15ea1
b15ea1
Signed-off-by: Peter Jones <pjones@redhat.com>
b15ea1
---
b15ea1
 src/Makefile            |  3 +++
b15ea1
 src/include/defaults.mk | 58 ++++++++++++++++++++++++++++++++---------
b15ea1
 src/include/deps.mk     |  4 +--
b15ea1
 src/include/rules.mk    |  2 --
b15ea1
 4 files changed, 50 insertions(+), 17 deletions(-)
b15ea1
b15ea1
diff --git a/src/Makefile b/src/Makefile
b15ea1
index 1d0e217c89b..144289d4709 100644
b15ea1
--- a/src/Makefile
b15ea1
+++ b/src/Makefile
b15ea1
@@ -53,8 +53,11 @@ include/efivar/efivar-guids.h : makeguids guids.txt
b15ea1
 
b15ea1
 makeguids : CPPFLAGS=$(HOST_CPPFLAGS)
b15ea1
 makeguids : LIBS=dl
b15ea1
+makeguids : CC=$(HOSTCC)
b15ea1
 makeguids : CCLD=$(HOSTCCLD)
b15ea1
 makeguids : CFLAGS=$(HOST_CFLAGS)
b15ea1
+makeguids : LDFLAGS=$(HOST_LDFLAGS)
b15ea1
+makeguids : CCLDFLAGS=$(HOST_CCLDFLAGS)
b15ea1
 makeguids : $(MAKEGUIDS_SOURCES)
b15ea1
 
b15ea1
 guids.o : guids.S | guids.bin names.bin
b15ea1
diff --git a/src/include/defaults.mk b/src/include/defaults.mk
b15ea1
index 781587b4215..bc515e36305 100644
b15ea1
--- a/src/include/defaults.mk
b15ea1
+++ b/src/include/defaults.mk
b15ea1
@@ -9,13 +9,18 @@ PCDIR	?= $(LIBDIR)/pkgconfig
b15ea1
 DESTDIR	?=
b15ea1
 
b15ea1
 CROSS_COMPILE	?=
b15ea1
-COMPILER ?= gcc
b15ea1
+COMPILER 	?= gcc
b15ea1
+ifeq ($(origin CC),command line)
b15ea1
+override COMPILER := $(CC)
b15ea1
+override CC := $(CROSS_COMPILE)$(COMPILER)
b15ea1
+endif
b15ea1
 $(call set-if-undefined,CC,$(CROSS_COMPILE)$(COMPILER))
b15ea1
 $(call set-if-undefined,CCLD,$(CC))
b15ea1
 $(call set-if-undefined,HOSTCC,$(COMPILER))
b15ea1
 $(call set-if-undefined,HOSTCCLD,$(HOSTCC))
b15ea1
 
b15ea1
-OPTIMIZE ?= -O2 -flto
b15ea1
+OPTIMIZE_GCC = -flto
b15ea1
+OPTIMIZE ?= -O2 $(call family,OPTIMIZE)
b15ea1
 DEBUGINFO ?= -g3
b15ea1
 WARNINGS_GCC ?= -Wmaybe-uninitialized \
b15ea1
 		-Wno-nonnull-compare
b15ea1
@@ -30,7 +35,7 @@ override _CPPFLAGS := $(CPPFLAGS)
b15ea1
 override CPPFLAGS = $(_CPPFLAGS) -DLIBEFIVAR_VERSION=$(VERSION) \
b15ea1
 	    -D_GNU_SOURCE \
b15ea1
 	    -I$(TOPDIR)/src/include/
b15ea1
-CFLAGS ?= $(OPTIMIZE) $(DEBUGINFO) $(WARNINGS) $(ERRORS)
b15ea1
+CFLAGS ?= $(FULL_OPTIMIZE) $(DEBUGINFO) $(WARNINGS) $(ERRORS)
b15ea1
 CFLAGS_GCC ?= -specs=$(TOPDIR)/src/include/gcc.specs \
b15ea1
 	      -fno-merge-constants
b15ea1
 override _CFLAGS := $(CFLAGS)
b15ea1
@@ -40,22 +45,32 @@ override CFLAGS = $(_CFLAGS) \
b15ea1
 		  -fvisibility=hidden \
b15ea1
 		  $(call family,CFLAGS) \
b15ea1
 		  $(call pkg-config-cflags)
b15ea1
-LDFLAGS_CLANG ?= -Wl,--fatal-warnings,-pie,-z,relro
b15ea1
+LDFLAGS_CLANG ?= -rtlib=compiler-rt
b15ea1
+CCLDFLAGS ?=
b15ea1
 LDFLAGS ?=
b15ea1
+override _CCLDFLAGS := $(CCLDFLAGS)
b15ea1
 override _LDFLAGS := $(LDFLAGS)
b15ea1
-override LDFLAGS = $(_LDFLAGS) \
b15ea1
+override LDFLAGS = $(CFLAGS) -L. $(_LDFLAGS) $(_CCLDFLAGS) \
b15ea1
 		   -Wl,--add-needed \
b15ea1
 		   -Wl,--build-id \
b15ea1
 		   -Wl,--no-allow-shlib-undefined \
b15ea1
 		   -Wl,--no-undefined-version \
b15ea1
 		   -Wl,-z,now \
b15ea1
 		   -Wl,-z,muldefs \
b15ea1
-		   $(call family,LDFLAGS)
b15ea1
-CCLDFLAGS ?=
b15ea1
-override _CCLDFLAGS := $(CCLDFLAGS)
b15ea1
-override CCLDFLAGS = $(CFLAGS) -L. $(_CCLDFLAGS) \
b15ea1
-		     $(LDFLAGS) \
b15ea1
-		     $(call pkg-config-ccldflags)
b15ea1
+		   -Wl,-z,relro \
b15ea1
+		   -Wl,--fatal-warnings \
b15ea1
+		   $(call family,LDFLAGS) $(call family,CCLDFLAGS) \
b15ea1
+		   $(call pkg-config-ccldflags)
b15ea1
+override CCLDFLAGS = $(LDFLAGS)
b15ea1
+SOFLAGS_GCC =
b15ea1
+SOFLAGS_CLANG =
b15ea1
+SOFLAGS ?=
b15ea1
+override _SOFLAGS := $(SOFLAGS)
b15ea1
+override SOFLAGS = $(_SOFLAGS) \
b15ea1
+		   -shared -Wl,-soname,$@.1 \
b15ea1
+		   -Wl,--version-script=$(MAP) \
b15ea1
+		   $(call family,SOFLAGS)
b15ea1
+
b15ea1
 HOST_ARCH=$(shell uname -m)
b15ea1
 ifneq ($(HOST_ARCH),ia64)
b15ea1
 	HOST_MARCH=-march=native
b15ea1
@@ -66,9 +81,27 @@ HOST_CPPFLAGS ?= $(CPPFLAGS)
b15ea1
 override _HOST_CPPFLAGS := $(HOST_CPPFLAGS)
b15ea1
 override HOST_CPPFLAGS = $(_HOST_CPPFLAGS) \
b15ea1
 			 -DEFIVAR_BUILD_ENVIRONMENT $(HOST_MARCH)
b15ea1
-HOST_CFLAGS ?= $(CFLAGS)
b15ea1
+HOST_CFLAGS_CLANG ?=
b15ea1
+HOST_CFLAGS ?= $(CFLAGS) $(call family,HOST_CFLAGS)
b15ea1
 override _HOST_CFLAGS := $(HOST_CFLAGS)
b15ea1
 override HOST_CFLAGS = $(_HOST_CFLAGS)
b15ea1
+HOST_LDFLAGS_CLANG ?= -Wl,--fatal-warnings,-z,relro -rtlib=compiler-rt
b15ea1
+HOST_LDFLAGS_GCC ?= -Wl,--no-undefined-version
b15ea1
+HOST_LDFLAGS ?=
b15ea1
+HOST_CCLDFLAGS ?=
b15ea1
+override _HOST_LDFLAGS := $(HOST_LDFLAGS)
b15ea1
+override _HOST_CCLDFLAGS := $(HOST_CCLDFLAGS)
b15ea1
+override HOST_LDFLAGS = $(HOST_CFLAGS) -L. \
b15ea1
+			$(_HOST_LDFLAGS) $(_HOST_CCLDFLAGS) \
b15ea1
+			-Wl,--add-needed \
b15ea1
+			-Wl,--build-id \
b15ea1
+			-Wl,--no-allow-shlib-undefined \
b15ea1
+			-Wl,-z,now \
b15ea1
+			-Wl,-z,muldefs \
b15ea1
+			$(call family,HOST_LDFLAGS) \
b15ea1
+			$(call family,HOST_CCLDFLAGS) \
b15ea1
+			$(call pkg-config-ccldflags)
b15ea1
+override HOST_CCLDFLAGS = $(HOST_LDFLAGS)
b15ea1
 
b15ea1
 PKG_CONFIG = $(shell if [ -e "$$(env $(CROSS_COMPILE)pkg-config 2>&1)" ]; then echo $(CROSS_COMPILE)pkg-config ; else echo pkg-config ; fi)
b15ea1
 INSTALL ?= install
b15ea1
@@ -80,7 +113,6 @@ ABIDIFF := abidiff
b15ea1
 
b15ea1
 PKGS	=
b15ea1
 
b15ea1
-SOFLAGS=-shared $(call family,SOFLAGS)
b15ea1
 LDLIBS=$(foreach lib,$(LIBS),-l$(lib)) $(call pkg-config-ldlibs)
b15ea1
 
b15ea1
 COMMIT_ID=$(shell git log -1 --pretty=%H 2>/dev/null || echo master)
b15ea1
diff --git a/src/include/deps.mk b/src/include/deps.mk
b15ea1
index a797d1bdbf5..3c8243144dc 100644
b15ea1
--- a/src/include/deps.mk
b15ea1
+++ b/src/include/deps.mk
b15ea1
@@ -7,10 +7,10 @@ include $(TOPDIR)/src/include/rules.mk
b15ea1
 include $(TOPDIR)/src/include/defaults.mk
b15ea1
 
b15ea1
 .%.d : %.c
b15ea1
-	$(CC) $(cflags) $(CPPFLAGS) -MM -MG -MF $@ $^
b15ea1
+	$(CC) $(CFLAGS) $(CPPFLAGS) -MM -MG -MF $@ $^
b15ea1
 
b15ea1
 .%.d : %.S
b15ea1
-	$(CC) $(cflags) $(CPPFLAGS) -MM -MG -MF $@ $^
b15ea1
+	$(CC) $(CFLAGS) $(CPPFLAGS) -MM -MG -MF $@ $^
b15ea1
 
b15ea1
 SOURCES ?=
b15ea1
 
b15ea1
diff --git a/src/include/rules.mk b/src/include/rules.mk
b15ea1
index ff0ff4ef61b..99a6329e3fe 100644
b15ea1
--- a/src/include/rules.mk
b15ea1
+++ b/src/include/rules.mk
b15ea1
@@ -30,8 +30,6 @@ family = $(foreach FAMILY_SUFFIX,$(FAMILY_SUFFIXES),$($(1)_$(FAMILY_SUFFIX)))
b15ea1
 
b15ea1
 %.so :
b15ea1
 	$(CCLD) $(CCLDFLAGS) $(CPPFLAGS) $(SOFLAGS) \
b15ea1
-	  -Wl,-soname,$@.1 \
b15ea1
-	  -Wl,--version-script=$(MAP) \
b15ea1
 	  -o $@ $^ $(LDLIBS)
b15ea1
 	ln -vfs $@ $@.1
b15ea1
 
b15ea1
-- 
b15ea1
2.24.1
b15ea1