Linux Headquarters
[ Register ]
[ About us ] [ Home Page ]

Advertisement
[ Kernel ] [ Documentation ] [ Links ] [ Books ]

Advertisement

Kernel v2.5.7 /Rules.make

Filename:/Rules.make
Lines Added:19
Lines Deleted:2
Also changed in: (Previous) 2.5.7-pre2  2.5.5  2.5.5-pre1  2.5.4  2.5.4-pre6  2.5.4-pre5 
(Following) 2.5.8-pre1  2.5.8-pre2  2.5.8-pre3  2.5.8  2.5.9  2.5.11 

Location
[  2.5.7
   o  Rules.make

Patch

diff -Nru a/Rules.make b/Rules.make
--- a/Rules.make   Mon Mar 18 12:36:24 2002
+++ b/Rules.make   Mon Mar 18 12:36:24 2002
@@ -120,6 +120,24 @@
    ) > $(dir $@)/.$(notdir $@).flags
 endif
 
+#
+# Rule to link composite objects
+#
+
+# for make >= 3.78 the following is cleaner:
+# multi-used := $(foreach m,$(obj-y) $(obj-m), $(if $($(basename $(m))-objs), $(m)))
+multi-used := $(sort $(foreach m,$(obj-y) $(obj-m),$(patsubst %,$(m),$($(basename $(m))-objs))))
+ld-multi-used := $(filter-out $(list-multi),$(multi-used))
+ld-multi-objs := $(foreach m, $(ld-multi-used), $($(basename $(m))-objs))
+
+$(ld-multi-used) : %.o: $(ld-multi-objs)
+   rm -f $@
+   $(LD) $(EXTRA_LDFLAGS) -r -o $@ $(filter $($(basename $@)-objs), $^)
+   @ ( \
+       echo 'ifeq ($(strip $(subst $(comma),:,$(LD) $(EXTRA_LDFLAGS) $($(basename $@)-objs)),$$(strip $$(subst $$(comma),:,$$(LD) $+
$(EXTRA_LDFLAGS) $$($(basename $@)-objs)))))' ; \
+       echo 'FILES_FLAGS_UP_TO_DATE += $@' ; \
+       echo 'endif' \
+   ) > $(dir $@)/.$(notdir $@).flags
 
 #
 # This make dependencies quickly
@@ -200,8 +218,7 @@
 #
 ifdef CONFIG_MODULES
 
-multi-used   := $(filter $(list-multi), $(obj-y) $(obj-m))
-multi-objs   := $(foreach m, $(multi-used), $($(basename $(m))-objs))
+multi-objs   := $(foreach m, $(obj-y) $(obj-m), $($(basename $(m))-objs))
 active-objs   := $(sort $(multi-objs) $(obj-y) $(obj-m))
 
 ifdef CONFIG_MODVERSIONS


Comments: webmaster (at) linuxhq.com.
Advertising: banners (at) linuxhq.com.
Compilation ©1998-2008 Linux Headquarters, Inc.