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.
|
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
|
KBUILD_VMLINUX_OBJS
|
||||||
|
|
||||||
All object files for vmlinux. They are linked to vmlinux in the same
|
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_CFLAGS_KERNEL :=
|
||||||
KBUILD_AFLAGS_MODULE := -DMODULE
|
KBUILD_AFLAGS_MODULE := -DMODULE
|
||||||
KBUILD_CFLAGS_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 :=
|
KBUILD_LDFLAGS :=
|
||||||
GCC_PLUGINS_CFLAGS :=
|
GCC_PLUGINS_CFLAGS :=
|
||||||
CLANG_FLAGS :=
|
CLANG_FLAGS :=
|
||||||
|
|
|
@ -17,7 +17,7 @@ KBUILD_LDFLAGS_MODULE += --be8
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(CONFIG_ARM_MODULE_PLTS),y)
|
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
|
endif
|
||||||
|
|
||||||
GZFLAGS :=-9
|
GZFLAGS :=-9
|
||||||
|
|
|
@ -101,7 +101,7 @@ endif
|
||||||
CHECKFLAGS += -D__aarch64__
|
CHECKFLAGS += -D__aarch64__
|
||||||
|
|
||||||
ifeq ($(CONFIG_ARM64_MODULE_PLTS),y)
|
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
|
endif
|
||||||
|
|
||||||
# Default value
|
# Default value
|
||||||
|
|
|
@ -20,7 +20,7 @@ CHECKFLAGS += -D__ia64=1 -D__ia64__=1 -D_LP64 -D__LP64__
|
||||||
|
|
||||||
OBJCOPYFLAGS := --strip-all
|
OBJCOPYFLAGS := --strip-all
|
||||||
LDFLAGS_vmlinux := -static
|
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
|
KBUILD_AFLAGS_KERNEL := -mconstant-gp
|
||||||
EXTRA :=
|
EXTRA :=
|
||||||
|
|
||||||
|
|
|
@ -73,7 +73,7 @@ KBUILD_AFLAGS += -D__uClinux__
|
||||||
endif
|
endif
|
||||||
|
|
||||||
KBUILD_LDFLAGS := -m m68kelf
|
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
|
ifdef CONFIG_SUN3
|
||||||
LDFLAGS_vmlinux = -N
|
LDFLAGS_vmlinux = -N
|
||||||
|
|
|
@ -60,7 +60,7 @@ KBUILD_CFLAGS += -DCC_USING_PATCHABLE_FUNCTION_ENTRY=1 \
|
||||||
-DFTRACE_PATCHABLE_FUNCTION_SIZE=$(NOP_COUNT)
|
-DFTRACE_PATCHABLE_FUNCTION_SIZE=$(NOP_COUNT)
|
||||||
|
|
||||||
CC_FLAGS_FTRACE := -fpatchable-function-entry=$(NOP_COUNT),$(shell echo $$(($(NOP_COUNT)-1)))
|
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
|
endif
|
||||||
|
|
||||||
OBJCOPY_FLAGS =-O binary -R .note -R .comment -S
|
OBJCOPY_FLAGS =-O binary -R .note -R .comment -S
|
||||||
|
|
|
@ -67,7 +67,7 @@ UTS_MACHINE := $(subst $(space),,$(machine-y))
|
||||||
ifdef CONFIG_PPC32
|
ifdef CONFIG_PPC32
|
||||||
KBUILD_LDFLAGS_MODULE += arch/powerpc/lib/crtsavres.o
|
KBUILD_LDFLAGS_MODULE += arch/powerpc/lib/crtsavres.o
|
||||||
else
|
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)
|
ifeq ($(call ld-ifversion, -ge, 225000000, y),y)
|
||||||
# Have the linker provide sfpr if possible.
|
# Have the linker provide sfpr if possible.
|
||||||
# There is a corresponding test in arch/powerpc/lib/Makefile
|
# There is a corresponding test in arch/powerpc/lib/Makefile
|
||||||
|
|
|
@ -52,7 +52,7 @@ ifeq ($(CONFIG_CMODEL_MEDANY),y)
|
||||||
KBUILD_CFLAGS += -mcmodel=medany
|
KBUILD_CFLAGS += -mcmodel=medany
|
||||||
endif
|
endif
|
||||||
ifeq ($(CONFIG_MODULE_SECTIONS),y)
|
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
|
endif
|
||||||
|
|
||||||
KBUILD_CFLAGS_MODULE += $(call cc-option,-mno-relax)
|
KBUILD_CFLAGS_MODULE += $(call cc-option,-mno-relax)
|
||||||
|
|
|
@ -126,10 +126,11 @@ quiet_cmd_ld_ko_o = LD [M] $@
|
||||||
cmd_ld_ko_o = \
|
cmd_ld_ko_o = \
|
||||||
$(LD) -r $(KBUILD_LDFLAGS) \
|
$(LD) -r $(KBUILD_LDFLAGS) \
|
||||||
$(KBUILD_LDFLAGS_MODULE) $(LDFLAGS_MODULE) \
|
$(KBUILD_LDFLAGS_MODULE) $(LDFLAGS_MODULE) \
|
||||||
-o $@ $(real-prereqs) ; \
|
$(addprefix -T , $(KBUILD_LDS_MODULE)) \
|
||||||
|
-o $@ $(filter %.o, $^); \
|
||||||
$(if $(ARCH_POSTLINK), $(MAKE) -f $(ARCH_POSTLINK) $@, true)
|
$(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)
|
+$(call if_changed,ld_ko_o)
|
||||||
|
|
||||||
targets += $(modules)
|
targets += $(modules)
|
||||||
|
|
Loading…
Reference in New Issue