mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 12:11:40 +00:00
67a5a68013
Fedora Rawhide has started including gcc 11,and the g++ compiler throws a wobbly when it hits scripts/gcc-plugins: HOSTCXX scripts/gcc-plugins/latent_entropy_plugin.so In file included from /usr/include/c++/11/type_traits:35, from /usr/lib/gcc/x86_64-redhat-linux/11/plugin/include/system.h:244, from /usr/lib/gcc/x86_64-redhat-linux/11/plugin/include/gcc-plugin.h:28, from scripts/gcc-plugins/gcc-common.h:7, from scripts/gcc-plugins/latent_entropy_plugin.c:78: /usr/include/c++/11/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options. 32 | #error This file requires compiler and library support \ In fact, it works just fine with c++11, which has been in gcc since 4.8, and we now require 4.9 as a minimum. Signed-off-by: Valdis Kletnieks <valdis.kletnieks@vt.edu> Acked-by: Josh Poimboeuf <jpoimboe@redhat.com> Signed-off-by: Kees Cook <keescook@chromium.org> Link: https://lore.kernel.org/r/82487.1609006918@turing-police
62 lines
2.2 KiB
Makefile
62 lines
2.2 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
|
|
$(obj)/randomize_layout_plugin.so: $(objtree)/$(obj)/randomize_layout_seed.h
|
|
quiet_cmd_create_randomize_layout_seed = GENSEED $@
|
|
cmd_create_randomize_layout_seed = \
|
|
$(CONFIG_SHELL) $(srctree)/$(src)/gen-random-seed.sh $@ $(objtree)/include/generated/randomize_layout_hash.h
|
|
$(objtree)/$(obj)/randomize_layout_seed.h: FORCE
|
|
$(call if_changed,create_randomize_layout_seed)
|
|
targets += randomize_layout_seed.h randomize_layout_hash.h
|
|
|
|
# Build rules for plugins
|
|
#
|
|
# No extra code is needed for single-file plugins.
|
|
# For multi-file plugins, use *-objs syntax to list the objects.
|
|
#
|
|
# If the plugin foo.so is compiled from foo.c and foo2.c, you can do:
|
|
#
|
|
# foo-objs := foo.o foo2.o
|
|
|
|
always-y += $(GCC_PLUGIN)
|
|
|
|
GCC_PLUGINS_DIR = $(shell $(CC) -print-file-name=plugin)
|
|
|
|
plugin_cxxflags = -Wp,-MMD,$(depfile) $(KBUILD_HOSTCXXFLAGS) -fPIC \
|
|
-I $(GCC_PLUGINS_DIR)/include -I $(obj) -std=gnu++11 \
|
|
-fno-rtti -fno-exceptions -fasynchronous-unwind-tables \
|
|
-ggdb -Wno-narrowing -Wno-unused-variable \
|
|
-Wno-format-diag
|
|
|
|
plugin_ldflags = -shared
|
|
|
|
plugin-single := $(foreach m, $(GCC_PLUGIN), $(if $($(m:%.so=%-objs)),,$(m)))
|
|
plugin-multi := $(filter-out $(plugin-single), $(GCC_PLUGIN))
|
|
plugin-objs := $(sort $(foreach m, $(plugin-multi), $($(m:%.so=%-objs))))
|
|
|
|
targets += $(plugin-single) $(plugin-multi) $(plugin-objs)
|
|
clean-files += *.so
|
|
|
|
plugin-single := $(addprefix $(obj)/, $(plugin-single))
|
|
plugin-multi := $(addprefix $(obj)/, $(plugin-multi))
|
|
plugin-objs := $(addprefix $(obj)/, $(plugin-objs))
|
|
|
|
quiet_cmd_plugin_cxx_so_c = HOSTCXX $@
|
|
cmd_plugin_cxx_so_c = $(HOSTCXX) $(plugin_cxxflags) $(plugin_ldflags) -o $@ $<
|
|
|
|
$(plugin-single): $(obj)/%.so: $(src)/%.c FORCE
|
|
$(call if_changed_dep,plugin_cxx_so_c)
|
|
|
|
quiet_cmd_plugin_ld_so_o = HOSTLD $@
|
|
cmd_plugin_ld_so_o = $(HOSTCXX) $(plugin_ldflags) -o $@ \
|
|
$(addprefix $(obj)/, $($(target-stem)-objs))
|
|
|
|
$(plugin-multi): FORCE
|
|
$(call if_changed,plugin_ld_so_o)
|
|
$(foreach m, $(notdir $(plugin-multi)), $(eval $(obj)/$m: $(addprefix $(obj)/, $($(m:%.so=%-objs)))))
|
|
|
|
quiet_cmd_plugin_cxx_o_c = HOSTCXX $@
|
|
cmd_plugin_cxx_o_c = $(HOSTCXX) $(plugin_cxxflags) -c -o $@ $<
|
|
|
|
$(plugin-objs): $(obj)/%.o: $(src)/%.c FORCE
|
|
$(call if_changed_dep,plugin_cxx_o_c)
|