]> git.hungrycats.org Git - linux/commitdiff
Cset exclude: kai@tp1.ruhr-uni-bochum.de|ChangeSet|20021005215705|12351
authorKai Germaschewski <kai@tp1.ruhr-uni-bochum.de>
Sat, 5 Oct 2002 22:45:01 +0000 (17:45 -0500)
committerKai Germaschewski <kai@tp1.ruhr-uni-bochum.de>
Sat, 5 Oct 2002 22:45:01 +0000 (17:45 -0500)
Makefile
arch/i386/vmlinux.lds.S

index 0397fee4dfaaa15b9df2d84a503793a930e6242c..959fdf52102ffdef4d047a21a0501d55c8dc8e78 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -285,8 +285,8 @@ export MODLIB
 
 vmlinux-objs := $(HEAD) $(init-y) $(core-y) $(libs-y) $(drivers-y) $(net-y)
 
-quiet_cmd_ld_tmp_vmlinux = LD      $@
-define cmd_ld_tmp_vmlinux
+quiet_cmd_link_vmlinux = LD      $@
+define cmd_link_vmlinux
        $(LD) $(LDFLAGS) $(LDFLAGS_vmlinux) $(HEAD) $(init-y) \
        --start-group \
        $(core-y) \
@@ -294,19 +294,21 @@ define cmd_ld_tmp_vmlinux
        $(drivers-y) \
        $(net-y) \
        --end-group \
+       $(filter $(kallsyms.o),$^) \
        -o $@
 endef
 
 #      set -e makes the rule exit immediately on error
 
-define rule_ld_tmp_vmlinux
+define rule_vmlinux
        set -e
        echo '  Generating build number'
        . scripts/mkversion > .tmp_version
        mv -f .tmp_version .version
        +$(call descend,init,)
-       $(call cmd,ld_tmp_vmlinux)
-       echo 'cmd_$@ := $(cmd_ld_tmp_vmlinux)' > $(@D)/.$(@F).cmd
+       $(call cmd,link_vmlinux)
+       echo 'cmd_$@ := $(cmd_link_vmlinux)' > $(@D)/.$(@F).cmd
+       $(NM) $@ | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | sort > System.map
 endef
 
 LDFLAGS_vmlinux += -T arch/$(ARCH)/vmlinux.lds.s
@@ -325,9 +327,10 @@ LDFLAGS_vmlinux += -T arch/$(ARCH)/vmlinux.lds.s
 
 ifdef CONFIG_KALLSYMS
 
-final-objs += .tmp_kallsyms.o
+kallsyms.o := .tmp_kallsyms.o
 
 quiet_cmd_kallsyms = KSYM    $@
+cmd_kallsyms = $(KALLSYMS) $< > $@
 cmd_kallsyms = \
        $(KALLSYMS) $< > .tmp_kallsyms1.o; \
        $(LD) $(LDFLAGS) $(LDFLAGS_vmlinux) .tmp_vmlinux .tmp_kallsyms1.o \
@@ -338,32 +341,25 @@ cmd_kallsyms = \
 .tmp_kallsyms.o: .tmp_vmlinux
        $(call cmd,kallsyms)
 
-endif
+#      After generating .tmp_vmlinux just like vmlinux, decrement the version
+#      number again, so the final vmlinux gets the same one.
+#      Ignore return value of 'expr'.
 
-#      Link a temporary vmlinux for postprocessing
-#      (e.g. kallsyms)
+define rule_.tmp_vmlinux
+       $(rule_vmlinux)
+       if expr 0`cat .version` - 1 > .tmp_version; then true; fi
+       mv -f .tmp_version .version
+endef
 
 .tmp_vmlinux: $(vmlinux-objs) arch/$(ARCH)/vmlinux.lds.s FORCE
-       $(call if_changed_rule,ld_tmp_vmlinux)
-
-#      Finally the vmlinux rule
-
-quiet_cmd_ld_vmlinux = LD      $(echo_target)
-cmd_ld_vmlinux = $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) \
-              $(filter-out FORCE,$^) -o $@
+       $(call if_changed_rule,.tmp_vmlinux)
 
-define rule_ld_vmlinux
-       set -e
-       $(call cmd,ld_vmlinux)
-       echo 'cmd_$@ := $(cmd_ld_vmlinux)' > $(@D)/.$(@F).cmd
-       $(NM) $@ | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | sort > System.map
-endef
+endif
 
-#      Link the actual vmlinux, which is temporary one from above,
-#      and possibly additional sections given in $(final-objs)
+#      Finally the vmlinux rule
 
-vmlinux: .tmp_vmlinux $(final-objs) arch/$(ARCH)/vmlinux.lds.s FORCE
-       $(call if_changed_rule,ld_vmlinux)
+vmlinux: $(vmlinux-objs) $(kallsyms.o) arch/$(ARCH)/vmlinux.lds.s FORCE
+       $(call if_changed_rule,vmlinux)
 
 #      The actual objects are generated when descending, 
 #      make sure no implicit rule kicks in
@@ -881,17 +877,6 @@ ifneq ($(cmd_files),)
   include $(cmd_files)
 endif
 
-# function to only execute the passed command if necessary
-
-if_changed = $(if $(strip $? \
-                         $(filter-out $(cmd_$(1)),$(cmd_$@))\
-                         $(filter-out $(cmd_$@),$(cmd_$(1)))),\
-       @set -e; \
-       $(if $($(quiet)cmd_$(1)),echo '  $($(quiet)cmd_$(1))';) \
-       $(cmd_$(1)); \
-       echo 'cmd_$@ := $(cmd_$(1))' > $(@D)/.$(@F).cmd)
-
-
 # execute the command and also postprocess generated .d dependencies
 # file
 
index 09570eab04d8b250f9cba884f1385cbec32c5dc1..4469f4e5d584d35dca664b470bc4ff2ad79be6ff 100644 (file)
@@ -49,7 +49,6 @@ SECTIONS
   __setup_end = .;
   __initcall_start = .;
   .initcall.init : {
-       *(.initcall.init)
        *(.initcall1.init) 
        *(.initcall2.init) 
        *(.initcall3.init) 
@@ -73,7 +72,7 @@ SECTIONS
   __nosave_end = .;
 
   . = ALIGN(4096);
-  .data.page_aligned : {  *(.data.page_aligned) *(.data.idt) }
+  .data.page_aligned : { *(.data.idt) }
 
   . = ALIGN(32);
   .data.cacheline_aligned : { *(.data.cacheline_aligned) }