mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-26 21:54:11 +08:00
kbuild: rebuild modules when module linker scripts are updated
Currently, the timestamp of module linker scripts are not checked. Add them to the dependency of modules so they are correctly rebuilt. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
This commit is contained in:
parent
888f0c346f
commit
10df063855
@ -993,6 +993,11 @@ When kbuild executes, the following steps are followed (roughly):
|
||||
|
||||
The linker script with full path. Assigned by the top-level Makefile.
|
||||
|
||||
KBUILD_LDS_MODULE
|
||||
|
||||
The module linker script with full path. Assigned by the top-level
|
||||
Makefile and additionally by the arch Makefile.
|
||||
|
||||
KBUILD_VMLINUX_OBJS
|
||||
|
||||
All object files for vmlinux. They are linked to vmlinux in the same
|
||||
|
3
Makefile
3
Makefile
@ -482,7 +482,8 @@ KBUILD_AFLAGS_KERNEL :=
|
||||
KBUILD_CFLAGS_KERNEL :=
|
||||
KBUILD_AFLAGS_MODULE := -DMODULE
|
||||
KBUILD_CFLAGS_MODULE := -DMODULE
|
||||
KBUILD_LDFLAGS_MODULE := -T $(srctree)/scripts/module-common.lds
|
||||
KBUILD_LDFLAGS_MODULE :=
|
||||
export KBUILD_LDS_MODULE := $(srctree)/scripts/module-common.lds
|
||||
KBUILD_LDFLAGS :=
|
||||
GCC_PLUGINS_CFLAGS :=
|
||||
CLANG_FLAGS :=
|
||||
|
@ -17,7 +17,7 @@ KBUILD_LDFLAGS_MODULE += --be8
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_ARM_MODULE_PLTS),y)
|
||||
KBUILD_LDFLAGS_MODULE += -T $(srctree)/arch/arm/kernel/module.lds
|
||||
KBUILD_LDS_MODULE += $(srctree)/arch/arm/kernel/module.lds
|
||||
endif
|
||||
|
||||
GZFLAGS :=-9
|
||||
|
@ -101,7 +101,7 @@ endif
|
||||
CHECKFLAGS += -D__aarch64__
|
||||
|
||||
ifeq ($(CONFIG_ARM64_MODULE_PLTS),y)
|
||||
KBUILD_LDFLAGS_MODULE += -T $(srctree)/arch/arm64/kernel/module.lds
|
||||
KBUILD_LDS_MODULE += $(srctree)/arch/arm64/kernel/module.lds
|
||||
endif
|
||||
|
||||
# Default value
|
||||
|
@ -20,7 +20,7 @@ CHECKFLAGS += -D__ia64=1 -D__ia64__=1 -D_LP64 -D__LP64__
|
||||
|
||||
OBJCOPYFLAGS := --strip-all
|
||||
LDFLAGS_vmlinux := -static
|
||||
KBUILD_LDFLAGS_MODULE += -T $(srctree)/arch/ia64/module.lds
|
||||
KBUILD_LDS_MODULE += $(srctree)/arch/ia64/module.lds
|
||||
KBUILD_AFLAGS_KERNEL := -mconstant-gp
|
||||
EXTRA :=
|
||||
|
||||
|
@ -73,7 +73,7 @@ KBUILD_AFLAGS += -D__uClinux__
|
||||
endif
|
||||
|
||||
KBUILD_LDFLAGS := -m m68kelf
|
||||
KBUILD_LDFLAGS_MODULE += -T $(srctree)/arch/m68k/kernel/module.lds
|
||||
KBUILD_LDS_MODULE += $(srctree)/arch/m68k/kernel/module.lds
|
||||
|
||||
ifdef CONFIG_SUN3
|
||||
LDFLAGS_vmlinux = -N
|
||||
|
@ -60,7 +60,7 @@ KBUILD_CFLAGS += -DCC_USING_PATCHABLE_FUNCTION_ENTRY=1 \
|
||||
-DFTRACE_PATCHABLE_FUNCTION_SIZE=$(NOP_COUNT)
|
||||
|
||||
CC_FLAGS_FTRACE := -fpatchable-function-entry=$(NOP_COUNT),$(shell echo $$(($(NOP_COUNT)-1)))
|
||||
KBUILD_LDFLAGS_MODULE += -T $(srctree)/arch/parisc/kernel/module.lds
|
||||
KBUILD_LDS_MODULE += $(srctree)/arch/parisc/kernel/module.lds
|
||||
endif
|
||||
|
||||
OBJCOPY_FLAGS =-O binary -R .note -R .comment -S
|
||||
|
@ -67,7 +67,7 @@ UTS_MACHINE := $(subst $(space),,$(machine-y))
|
||||
ifdef CONFIG_PPC32
|
||||
KBUILD_LDFLAGS_MODULE += arch/powerpc/lib/crtsavres.o
|
||||
else
|
||||
KBUILD_LDFLAGS_MODULE += -T $(srctree)/arch/powerpc/kernel/module.lds
|
||||
KBUILD_LDS_MODULE += $(srctree)/arch/powerpc/kernel/module.lds
|
||||
ifeq ($(call ld-ifversion, -ge, 225000000, y),y)
|
||||
# Have the linker provide sfpr if possible.
|
||||
# There is a corresponding test in arch/powerpc/lib/Makefile
|
||||
|
@ -52,7 +52,7 @@ ifeq ($(CONFIG_CMODEL_MEDANY),y)
|
||||
KBUILD_CFLAGS += -mcmodel=medany
|
||||
endif
|
||||
ifeq ($(CONFIG_MODULE_SECTIONS),y)
|
||||
KBUILD_LDFLAGS_MODULE += -T $(srctree)/arch/riscv/kernel/module.lds
|
||||
KBUILD_LDS_MODULE += $(srctree)/arch/riscv/kernel/module.lds
|
||||
endif
|
||||
|
||||
KBUILD_CFLAGS_MODULE += $(call cc-option,-mno-relax)
|
||||
|
@ -126,10 +126,11 @@ quiet_cmd_ld_ko_o = LD [M] $@
|
||||
cmd_ld_ko_o = \
|
||||
$(LD) -r $(KBUILD_LDFLAGS) \
|
||||
$(KBUILD_LDFLAGS_MODULE) $(LDFLAGS_MODULE) \
|
||||
-o $@ $(real-prereqs) ; \
|
||||
$(addprefix -T , $(KBUILD_LDS_MODULE)) \
|
||||
-o $@ $(filter %.o, $^); \
|
||||
$(if $(ARCH_POSTLINK), $(MAKE) -f $(ARCH_POSTLINK) $@, true)
|
||||
|
||||
$(modules): %.ko :%.o %.mod.o FORCE
|
||||
$(modules): %.ko :%.o %.mod.o $(KBUILD_LDS_MODULE) FORCE
|
||||
+$(call if_changed,ld_ko_o)
|
||||
|
||||
targets += $(modules)
|
||||
|
Loading…
Reference in New Issue
Block a user