aboutsummaryrefslogtreecommitdiffstats
path: root/arch/um
diff options
authorJohannes Berg <johannes.berg@intel.com>2024-10-25 10:27:01 +0200
committerJohannes Berg <johannes.berg@intel.com>2024-10-26 16:06:10 +0200
commitd3b08e5f3f2829943342b88d3e2b44fb0ccdccab (patch)
treebd6a270b82bf306125f30c43765ba3d2f2c2e064 /arch/um
parent42b8b00c8ab1ac18fccde3f29ee589626a561ea7 (diff)
downloadath-d3b08e5f3f2829943342b88d3e2b44fb0ccdccab.tar.gz
um: fix stub exe build with CONFIG_GCOV
CONFIG_GCOV is special and only in UML since it builds the kernel with a "userspace" option. This is fine, but the stub is even more special and not really a full userspace process, so it then fails to link as reported. Remove the GCOV options from the stub build. For good measure, also remove the GPROF options, even though they don't seem to cause build failures now. To be able to do this, export the specific options (GCOV_OPT and GPROF_OPT) but rename them so there's less chance of any conflicts. Reported-by: kernel test robot <lkp@intel.com> Closes: https://lore.kernel.org/oe-kbuild-all/202410242238.SXhs2kQ4-lkp@intel.com/ Fixes: 32e8eaf263d9 ("um: use execveat to create userspace MMs") Link: https://patch.msgid.link/20241025102700.9fbb9c34473f.I7f1537fe075638f8da64beb52ef6c9e5adc51bc3@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'arch/um')
-rw-r--r--arch/um/Makefile-skas14
-rw-r--r--arch/um/kernel/skas/Makefile2
2 files changed, 8 insertions, 8 deletions
diff --git a/arch/um/Makefile-skas b/arch/um/Makefile-skas
index 67323b0289999..1a27e65bcb9c1 100644
--- a/arch/um/Makefile-skas
+++ b/arch/um/Makefile-skas
@@ -3,15 +3,15 @@
# Licensed under the GPL
#
-GPROF_OPT += -pg
+export UM_GPROF_OPT += -pg
ifdef CONFIG_CC_IS_CLANG
-GCOV_OPT += -fprofile-instr-generate -fcoverage-mapping
+export UM_GCOV_OPT += -fprofile-instr-generate -fcoverage-mapping
else
-GCOV_OPT += -fprofile-arcs -ftest-coverage
+export UM_GCOV_OPT += -fprofile-arcs -ftest-coverage
endif
-CFLAGS-$(CONFIG_GCOV) += $(GCOV_OPT)
-CFLAGS-$(CONFIG_GPROF) += $(GPROF_OPT)
-LINK-$(CONFIG_GCOV) += $(GCOV_OPT)
-LINK-$(CONFIG_GPROF) += $(GPROF_OPT)
+CFLAGS-$(CONFIG_GCOV) += $(UM_GCOV_OPT)
+CFLAGS-$(CONFIG_GPROF) += $(UM_GPROF_OPT)
+LINK-$(CONFIG_GCOV) += $(UM_GCOV_OPT)
+LINK-$(CONFIG_GPROF) += $(UM_GPROF_OPT)
diff --git a/arch/um/kernel/skas/Makefile b/arch/um/kernel/skas/Makefile
index f6a2190747722..3384be42691f8 100644
--- a/arch/um/kernel/skas/Makefile
+++ b/arch/um/kernel/skas/Makefile
@@ -24,7 +24,7 @@ $(obj)/stub_exe: $(obj)/stub_exe.dbg FORCE
quiet_cmd_stub_exe = STUB_EXE $@
cmd_stub_exe = $(CC) -nostdlib -o $@ \
- $(KBUILD_CFLAGS) $(STUB_EXE_LDFLAGS) \
+ $(filter-out $(UM_GPROF_OPT) $(UM_GCOV_OPT),$(KBUILD_CFLAGS)) $(STUB_EXE_LDFLAGS) \
$(filter %.o,$^)
STUB_EXE_LDFLAGS = -Wl,-n -static