From 3aee127a614fa4be8cac353e06cec3e668a94c8c Mon Sep 17 00:00:00 2001 From: jc_gargma Date: Thu, 28 May 2020 11:43:37 -0700 Subject: Updated to 5.6.15 Updated gcc patch to 20200527 --- 0002-gcc-plugins-drop-support-for-GCC-47.patch | 277 ------------------------- 1 file changed, 277 deletions(-) delete mode 100644 0002-gcc-plugins-drop-support-for-GCC-47.patch (limited to '0002-gcc-plugins-drop-support-for-GCC-47.patch') diff --git a/0002-gcc-plugins-drop-support-for-GCC-47.patch b/0002-gcc-plugins-drop-support-for-GCC-47.patch deleted file mode 100644 index 81698a8..0000000 --- a/0002-gcc-plugins-drop-support-for-GCC-47.patch +++ /dev/null @@ -1,277 +0,0 @@ -From dba68a9d4df76d49d32245e4236713a43fb321da Mon Sep 17 00:00:00 2001 -From: Masahiro Yamada -Date: Sun, 29 Mar 2020 20:08:32 +0900 -Subject: gcc-plugins: drop support for GCC <= 4.7 - -Nobody was opposed to raising minimum GCC version to 4.8 [1] -So, we will drop GCC <= 4.7 support sooner or later. - -We always use C++ compiler for building plugins for GCC >= 4.8. - -This commit drops the plugin support for GCC <= 4.7 a bit earlier, -which allows us to dump lots of code. - -[1] https://lkml.org/lkml/2020/1/23/545 - -Signed-off-by: Masahiro Yamada -Acked-by: Kees Cook ---- - scripts/Kconfig.include | 3 --- - scripts/Makefile.build | 2 +- - scripts/Makefile.clean | 1 - - scripts/Makefile.host | 23 +----------------- - scripts/gcc-plugin.sh | 55 ++++---------------------------------------- - scripts/gcc-plugins/Kconfig | 12 ++-------- - scripts/gcc-plugins/Makefile | 21 +++++------------ - 7 files changed, 14 insertions(+), 103 deletions(-) - -diff --git a/scripts/Kconfig.include b/scripts/Kconfig.include -index 496d11c92c97..033f6efd92d3 100644 ---- a/scripts/Kconfig.include -+++ b/scripts/Kconfig.include -@@ -42,9 +42,6 @@ $(error-if,$(failure,command -v $(LD)),linker '$(LD)' not found) - # Fail if the linker is gold as it's not capable of linking the kernel proper - $(error-if,$(success, $(LD) -v | grep -q gold), gold linker '$(LD)' not supported) - --# gcc version including patch level --gcc-version := $(shell,$(srctree)/scripts/gcc-version.sh $(CC)) -- - # machine bit flags - # $(m32-flag): -m32 if the compiler supports it, or an empty string otherwise. - # $(m64-flag): -m64 if the compiler supports it, or an empty string otherwise. -diff --git a/scripts/Makefile.build b/scripts/Makefile.build -index a1730d42e5f3..eec789d7a63a 100644 ---- a/scripts/Makefile.build -+++ b/scripts/Makefile.build -@@ -46,7 +46,7 @@ include $(kbuild-file) - include scripts/Makefile.lib - - # Do not include host rules unless needed --ifneq ($(hostprogs)$(hostlibs-y)$(hostlibs-m)$(hostcxxlibs-y)$(hostcxxlibs-m),) -+ifneq ($(hostprogs)$(hostcxxlibs-y)$(hostcxxlibs-m),) - include scripts/Makefile.host - endif - -diff --git a/scripts/Makefile.clean b/scripts/Makefile.clean -index 1e4206566a82..075f0cc2d8d7 100644 ---- a/scripts/Makefile.clean -+++ b/scripts/Makefile.clean -@@ -30,7 +30,6 @@ subdir-ymn := $(addprefix $(obj)/,$(subdir-ymn)) - __clean-files := $(extra-y) $(extra-m) $(extra-) \ - $(always) $(always-y) $(always-m) $(always-) $(targets) $(clean-files) \ - $(hostprogs) $(hostprogs-y) $(hostprogs-m) $(hostprogs-) \ -- $(hostlibs-y) $(hostlibs-m) $(hostlibs-) \ - $(hostcxxlibs-y) $(hostcxxlibs-m) - - __clean-files := $(filter-out $(no-clean-files), $(__clean-files)) -diff --git a/scripts/Makefile.host b/scripts/Makefile.host -index 3b7121d43324..2045855d0b75 100644 ---- a/scripts/Makefile.host -+++ b/scripts/Makefile.host -@@ -39,7 +39,6 @@ $(obj)/%.tab.c $(obj)/%.tab.h: $(src)/%.y FORCE - # They are linked as C++ code to the executable qconf - - __hostprogs := $(sort $(hostprogs)) --host-cshlib := $(sort $(hostlibs-y) $(hostlibs-m)) - host-cxxshlib := $(sort $(hostcxxlibs-y) $(hostcxxlibs-m)) - - # C code -@@ -63,7 +62,6 @@ host-cxxmulti := $(foreach m,$(__hostprogs),$(if $($(m)-cxxobjs),$(m))) - host-cxxobjs := $(sort $(foreach m,$(host-cxxmulti),$($(m)-cxxobjs))) - - # Object (.o) files used by the shared libaries --host-cshobjs := $(sort $(foreach m,$(host-cshlib),$($(m:.so=-objs)))) - host-cxxshobjs := $(sort $(foreach m,$(host-cxxshlib),$($(m:.so=-objs)))) - - host-csingle := $(addprefix $(obj)/,$(host-csingle)) -@@ -71,9 +69,7 @@ host-cmulti := $(addprefix $(obj)/,$(host-cmulti)) - host-cobjs := $(addprefix $(obj)/,$(host-cobjs)) - host-cxxmulti := $(addprefix $(obj)/,$(host-cxxmulti)) - host-cxxobjs := $(addprefix $(obj)/,$(host-cxxobjs)) --host-cshlib := $(addprefix $(obj)/,$(host-cshlib)) - host-cxxshlib := $(addprefix $(obj)/,$(host-cxxshlib)) --host-cshobjs := $(addprefix $(obj)/,$(host-cshobjs)) - host-cxxshobjs := $(addprefix $(obj)/,$(host-cxxshobjs)) - - ##### -@@ -140,13 +136,6 @@ quiet_cmd_host-cxxobjs = HOSTCXX $@ - $(host-cxxobjs): $(obj)/%.o: $(src)/%.cc FORCE - $(call if_changed_dep,host-cxxobjs) - --# Compile .c file, create position independent .o file --# host-cshobjs -> .o --quiet_cmd_host-cshobjs = HOSTCC -fPIC $@ -- cmd_host-cshobjs = $(HOSTCC) $(hostc_flags) -fPIC -c -o $@ $< --$(host-cshobjs): $(obj)/%.o: $(src)/%.c FORCE -- $(call if_changed_dep,host-cshobjs) -- - # Compile .c file, create position independent .o file - # Note that plugin capable gcc versions can be either C or C++ based - # therefore plugin source files have to be compilable in both C and C++ mode. -@@ -157,16 +146,6 @@ quiet_cmd_host-cxxshobjs = HOSTCXX -fPIC $@ - $(host-cxxshobjs): $(obj)/%.o: $(src)/%.c FORCE - $(call if_changed_dep,host-cxxshobjs) - --# Link a shared library, based on position independent .o files --# *.o -> .so shared library (host-cshlib) --quiet_cmd_host-cshlib = HOSTLLD -shared $@ -- cmd_host-cshlib = $(HOSTCC) $(KBUILD_HOSTLDFLAGS) -shared -o $@ \ -- $(addprefix $(obj)/, $($(target-stem)-objs)) \ -- $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(target-stem).so) --$(host-cshlib): FORCE -- $(call if_changed,host-cshlib) --$(call multi_depend, $(host-cshlib), .so, -objs) -- - # Link a shared library, based on position independent .o files - # *.o -> .so shared library (host-cxxshlib) - quiet_cmd_host-cxxshlib = HOSTLLD -shared $@ -@@ -178,4 +157,4 @@ $(host-cxxshlib): FORCE - $(call multi_depend, $(host-cxxshlib), .so, -objs) - - targets += $(host-csingle) $(host-cmulti) $(host-cobjs)\ -- $(host-cxxmulti) $(host-cxxobjs) $(host-cshlib) $(host-cshobjs) $(host-cxxshlib) $(host-cxxshobjs) -+ $(host-cxxmulti) $(host-cxxobjs) $(host-cxxshlib) $(host-cxxshobjs) -diff --git a/scripts/gcc-plugin.sh b/scripts/gcc-plugin.sh -index d3caefe53eab..b79fd0bea838 100755 ---- a/scripts/gcc-plugin.sh -+++ b/scripts/gcc-plugin.sh -@@ -1,49 +1,14 @@ - #!/bin/sh - # SPDX-License-Identifier: GPL-2.0 --srctree=$(dirname "$0") -- --SHOW_ERROR= --if [ "$1" = "--show-error" ] ; then -- SHOW_ERROR=1 -- shift || true --fi -- --gccplugins_dir=$($3 -print-file-name=plugin) --plugincc=$($1 -E -x c++ - -o /dev/null -I"${srctree}"/gcc-plugins -I"${gccplugins_dir}"/include 2>&1 <= 4008 || defined(ENABLE_BUILD_WITH_CXX) --#warning $2 CXX --#else --#warning $1 CC --#endif --EOF --) - --if [ $? -ne 0 ] --then -- if [ -n "$SHOW_ERROR" ] ; then -- echo "${plugincc}" >&2 -- fi -- exit 1 --fi -+set -e - --case "$plugincc" in -- *"$1 CC"*) -- echo "$1" -- exit 0 -- ;; -- -- *"$2 CXX"*) -- # the c++ compiler needs another test, see below -- ;; -+srctree=$(dirname "$0") - -- *) -- exit 1 -- ;; --esac -+gccplugins_dir=$($* -print-file-name=plugin) - - # we need a c++ compiler that supports the designated initializer GNU extension --plugincc=$($2 -c -x c++ -std=gnu++98 - -fsyntax-only -I"${srctree}"/gcc-plugins -I"${gccplugins_dir}"/include 2>&1 </dev/null <&2 --fi --exit 1 -diff --git a/scripts/gcc-plugins/Kconfig b/scripts/gcc-plugins/Kconfig -index e3569543bdac..fd31ed5b435f 100644 ---- a/scripts/gcc-plugins/Kconfig -+++ b/scripts/gcc-plugins/Kconfig -@@ -1,13 +1,4 @@ - # SPDX-License-Identifier: GPL-2.0-only --preferred-plugin-hostcc := $(if-success,[ $(gcc-version) -ge 40800 ],$(HOSTCXX),$(HOSTCC)) -- --config PLUGIN_HOSTCC -- string -- default "$(shell,$(srctree)/scripts/gcc-plugin.sh "$(preferred-plugin-hostcc)" "$(HOSTCXX)" "$(CC)")" if CC_IS_GCC -- help -- Host compiler used to build GCC plugins. This can be $(HOSTCXX), -- $(HOSTCC), or a null string if GCC plugin is unsupported. -- - config HAVE_GCC_PLUGINS - bool - help -@@ -17,7 +8,8 @@ config HAVE_GCC_PLUGINS - menuconfig GCC_PLUGINS - bool "GCC plugins" - depends on HAVE_GCC_PLUGINS -- depends on PLUGIN_HOSTCC != "" -+ depends on CC_IS_GCC && GCC_VERSION >= 40800 -+ depends on $(success,$(srctree)/scripts/gcc-plugin.sh $(CC)) - default y - help - GCC plugins are loadable modules that provide extra features to the -diff --git a/scripts/gcc-plugins/Makefile b/scripts/gcc-plugins/Makefile -index f2ee8bd7abc6..f22858b2c3d6 100644 ---- a/scripts/gcc-plugins/Makefile -+++ b/scripts/gcc-plugins/Makefile -@@ -1,18 +1,9 @@ - # SPDX-License-Identifier: GPL-2.0 --PLUGINCC := $(CONFIG_PLUGIN_HOSTCC:"%"=%) - GCC_PLUGINS_DIR := $(shell $(CC) -print-file-name=plugin) - --ifeq ($(PLUGINCC),$(HOSTCC)) -- HOSTLIBS := hostlibs -- HOST_EXTRACFLAGS += -I$(GCC_PLUGINS_DIR)/include -I$(src) -std=gnu99 -ggdb -- export HOST_EXTRACFLAGS --else -- HOSTLIBS := hostcxxlibs -- HOST_EXTRACXXFLAGS += -I$(GCC_PLUGINS_DIR)/include -I$(src) -std=gnu++98 -fno-rtti -- HOST_EXTRACXXFLAGS += -fno-exceptions -fasynchronous-unwind-tables -ggdb -- HOST_EXTRACXXFLAGS += -Wno-narrowing -Wno-unused-variable -- export HOST_EXTRACXXFLAGS --endif -+HOST_EXTRACXXFLAGS += -I$(GCC_PLUGINS_DIR)/include -I$(src) -std=gnu++98 -fno-rtti -+HOST_EXTRACXXFLAGS += -fno-exceptions -fasynchronous-unwind-tables -ggdb -+HOST_EXTRACXXFLAGS += -Wno-narrowing -Wno-unused-variable -Wno-c++11-compat - - $(obj)/randomize_layout_plugin.o: $(objtree)/$(obj)/randomize_layout_seed.h - quiet_cmd_create_randomize_layout_seed = GENSEED $@ -@@ -22,9 +13,9 @@ $(objtree)/$(obj)/randomize_layout_seed.h: FORCE - $(call if_changed,create_randomize_layout_seed) - targets = randomize_layout_seed.h randomize_layout_hash.h - --$(HOSTLIBS)-y := $(foreach p,$(GCC_PLUGIN),$(if $(findstring /,$(p)),,$(p))) --always-y := $($(HOSTLIBS)-y) -+hostcxxlibs-y := $(foreach p,$(GCC_PLUGIN),$(if $(findstring /,$(p)),,$(p))) -+always-y := $(hostcxxlibs-y) - --$(foreach p,$($(HOSTLIBS)-y:%.so=%),$(eval $(p)-objs := $(p).o)) -+$(foreach p,$(hostcxxlibs-y:%.so=%),$(eval $(p)-objs := $(p).o)) - - clean-files += *.so --- -cgit v1.2.3-1-gf6bb5 - -- cgit v1.2.1