When CONFIG_EXPOLINE_EXTERN is used expoline thunks are generated from arch/s390/lib/expoline.S and postlinked into every module. This is also true for external modules. Add expoline.o build to the modules_prepare target.
Unified · Split
| @@ -82,7 +82,7 @@ endif · 81 unmodified lines | ||
| 82 | 82 | |
| 83 | 83 | ifdef CONFIG_EXPOLINE |
| 84 | 84 | ifdef CONFIG_EXPOLINE_EXTERN |
| 85 | − KBUILD_LDFLAGS_MODULE += arch/s390/lib/expoline.o | |
| 85 | + KBUILD_LDFLAGS_MODULE += arch/s390/lib/expoline/expoline.o | |
| 86 | 86 | CC_FLAGS_EXPOLINE := -mindirect-branch=thunk-extern |
| 87 | 87 | CC_FLAGS_EXPOLINE += -mfunction-return=thunk-extern |
| 88 | 88 | else |
| @@ -163,6 +163,12 @@ vdso_prepare: prepare0 · 74 unmodified lines | ||
| 163 | 163 | $(Q)$(MAKE) $(build)=arch/s390/kernel/vdso64 include/generated/vdso64-offsets.h |
| 164 | 164 | $(if $(CONFIG_COMPAT),$(Q)$(MAKE) \ |
| 165 | 165 | $(build)=arch/s390/kernel/vdso32 include/generated/vdso32-offsets.h) |
| 166 | + | |
| 167 | +ifdef CONFIG_EXPOLINE_EXTERN | |
| 168 | +modules_prepare: expoline_prepare | |
| 169 | +expoline_prepare: prepare0 | |
| 170 | + $(Q)$(MAKE) $(build)=arch/s390/lib/expoline arch/s390/lib/expoline/expoline.o | |
| 171 | +endif | |
| 166 | 172 | endif |
| 167 | 173 | |
| 168 | 174 | # Don't use tabs in echo arguments |
| @@ -7,7 +7,6 @@ lib-y += delay.o string.o uaccess.o find.o spinlock.o · 6 unmodified lines | ||
| 7 | 7 | obj-y += mem.o xor.o |
| 8 | 8 | lib-$(CONFIG_KPROBES) += probes.o |
| 9 | 9 | lib-$(CONFIG_UPROBES) += probes.o |
| 10 | −obj-$(CONFIG_EXPOLINE_EXTERN) += expoline.o | |
| 11 | 10 | obj-$(CONFIG_S390_KPROBES_SANITY_TEST) += test_kprobes_s390.o |
| 12 | 11 | test_kprobes_s390-objs += test_kprobes_asm.o test_kprobes.o |
| 13 | 12 | |
| @@ -22,3 +21,5 @@ obj-$(CONFIG_S390_MODULES_SANITY_TEST) += test_modules.o · 8 unmodified lines | ||
| 22 | 21 | obj-$(CONFIG_S390_MODULES_SANITY_TEST_HELPERS) += test_modules_helpers.o |
| 23 | 22 | |
| 24 | 23 | lib-$(CONFIG_FUNCTION_ERROR_INJECTION) += error-inject.o |
| 24 | + | |
| 25 | +obj-$(CONFIG_EXPOLINE_EXTERN) += expoline/ | |
| @@ -0,0 +1,3 @@ | ||
| 1 | +# SPDX-License-Identifier: GPL-2.0 | |
| 2 | + | |
| 3 | +obj-y += expoline.o | |
File renamed without changes.