aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorSam Ravnborg <sam@ravnborg.org>2007-07-17 04:54:06 -0400
committerSam Ravnborg <sam@ravnborg.org>2007-07-17 04:54:06 -0400
commit741f98fe298a73c9d47ed53703c1279a29718581 (patch)
tree2019e9c571c89e3101be86777d28f3ddeba67b79 /scripts
parent1e29a706eef664f2c5014462d435f54a1952cc7b (diff)
kbuild: do section mismatch check on full vmlinux
Previously we did do the check on the .o files used to link vmlinux but that failed to find questionable references across the .o files. Create a dedicated vmlinux.o file used only for section mismatch checks that uses the defualt linker script so section does not get renamed. The vmlinux.o may later be used as part of the the final link of vmlinux but for now it is used fo section mismatch only. For a defconfig build this is instant but for an allyesconfig this add two minutes to a full build (that anyways takes ~2 hours). Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/Makefile.modpost4
-rw-r--r--scripts/mod/modpost.c3
2 files changed, 4 insertions, 3 deletions
diff --git a/scripts/Makefile.modpost b/scripts/Makefile.modpost
index d5bbbcce31ef..c6fcc597b3be 100644
--- a/scripts/Makefile.modpost
+++ b/scripts/Makefile.modpost
@@ -70,10 +70,10 @@ __modpost: $(modules:.ko=.o) FORCE
70 $(call cmd,modpost) $(wildcard vmlinux) $(filter-out FORCE,$^) 70 $(call cmd,modpost) $(wildcard vmlinux) $(filter-out FORCE,$^)
71 71
72quiet_cmd_kernel-mod = MODPOST $@ 72quiet_cmd_kernel-mod = MODPOST $@
73 cmd_kernel-mod = $(cmd_modpost) $(KBUILD_VMLINUX_OBJS) 73 cmd_kernel-mod = $(cmd_modpost) $@
74 74
75PHONY += vmlinux 75PHONY += vmlinux
76vmlinux: FORCE 76vmlinux.o: FORCE
77 $(call cmd,kernel-mod) 77 $(call cmd,kernel-mod)
78 78
79# Declare generated files as targets for modpost 79# Declare generated files as targets for modpost
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index bb895b13c170..ec036c261fb1 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -75,7 +75,8 @@ static int is_vmlinux(const char *modname)
75 else 75 else
76 myname = modname; 76 myname = modname;
77 77
78 return strcmp(myname, "vmlinux") == 0; 78 return (strcmp(myname, "vmlinux") == 0) ||
79 (strcmp(myname, "vmlinux.o") == 0);
79} 80}
80 81
81void *do_nofail(void *ptr, const char *expr) 82void *do_nofail(void *ptr, const char *expr)