BTW, speaking of Kbuild cleanups (and that one is definitely 2.6.15 fodder):
patch below
        * kills messing with lib vs. core for uml-amd64 (we don't need that
anymore)
        * kills symlinks in arch/um/sys-*/
        * kills foo.c-dir - we simply give HOST_OBJS=<list of pathnames
under arch/$(SUBARCH)> and that's it (no SYMLINKS either)

Price: use of make feature I really, really hate - $(eval ...).  I'm using
it to generate and process

bar-y := ../../$(SUBARCH)/foo/bar.o
...

for all HOST_OBJS elements.  If there are better suggestions, I'd be glad
to hear them...

diff -urN RC14-rc2-git6-base/arch/um/Makefile-x86_64 
current/arch/um/Makefile-x86_64
--- RC14-rc2-git6-base/arch/um/Makefile-x86_64  2005-09-12 14:33:28.000000000 
-0400
+++ current/arch/um/Makefile-x86_64     2005-10-02 16:15:19.000000000 -0400
@@ -1,7 +1,7 @@
 # Copyright 2003 - 2004 Pathscale, Inc
 # Released under the GPL
 
-libs-y += arch/um/sys-x86_64/
+core-y += arch/um/sys-x86_64/
 START := 0x60000000
 
 #We #undef __x86_64__ for kernelspace, not for userspace where
diff -urN RC14-rc2-git6-base/arch/um/scripts/Makefile.rules 
current/arch/um/scripts/Makefile.rules
--- RC14-rc2-git6-base/arch/um/scripts/Makefile.rules   2005-09-05 
08:35:08.000000000 -0400
+++ current/arch/um/scripts/Makefile.rules      2005-10-02 16:16:27.000000000 
-0400
@@ -26,19 +26,9 @@
        $(patsubst -pg,,$(patsubst -fprofile-arcs -ftest-coverage,,$(1)))
 endef
 
-quiet_cmd_make_link = SYMLINK $@
-cmd_make_link       = ln -sf $(srctree)/arch/$(SUBARCH)/$($(notdir 
$@)-dir)/$(notdir $@) $@
+# for each object in the HOST_OBJS (say it foo/bar.o) generate
+# bar-y := ../../$(SUBARCH)/foo/bar.o
+# and have it evaluated
+$(foreach obj,$(HOST_OBJS),$(eval \
+  $(basename $(notdir $(obj)))-y := $(addprefix ../../$(SUBARCH)/,$(obj))))
 
-# this needs to be before the foreach, because targets does not accept
-# complete paths like $(obj)/$(f). To make sure this works, use a := assignment
-# or we will get $(obj)/$(f) in the "targets" value.
-# Also, this forces you to use the := syntax when assigning to targets.
-# Otherwise the line below will cause an infinite loop (if you don't know why,
-# just do it).
-
-targets := $(targets) $(SYMLINKS)
-
-SYMLINKS := $(foreach f,$(SYMLINKS),$(obj)/$(f))
-
-$(SYMLINKS): FORCE
-       $(call if_changed,make_link)
diff -urN RC14-rc2-git6-base/arch/um/sys-i386/Makefile 
current/arch/um/sys-i386/Makefile
--- RC14-rc2-git6-base/arch/um/sys-i386/Makefile        2005-09-12 
14:33:28.000000000 -0400
+++ current/arch/um/sys-i386/Makefile   2005-10-02 16:16:27.000000000 -0400
@@ -7,15 +7,10 @@
 
 USER_OBJS := bugs.o ptrace_user.o sigcontext.o fault.o
 
-SYMLINKS = bitops.c semaphore.c highmem.c module.c
+HOST_OBJS = lib/bitops.o kernel/semaphore.o mm/highmem.o kernel/module.o
 
 include arch/um/scripts/Makefile.rules
 
-bitops.c-dir = lib
-semaphore.c-dir = kernel
-highmem.c-dir = mm
-module.c-dir = kernel
-
 $(obj)/stub_segv.o : _c_flags = $(call unprofile,$(CFLAGS))
 
 include arch/um/scripts/Makefile.unmap
diff -urN RC14-rc2-git6-base/arch/um/sys-x86_64/Makefile 
current/arch/um/sys-x86_64/Makefile
--- RC14-rc2-git6-base/arch/um/sys-x86_64/Makefile      2005-09-12 
14:33:28.000000000 -0400
+++ current/arch/um/sys-x86_64/Makefile 2005-10-02 16:18:12.000000000 -0400
@@ -4,29 +4,19 @@
 # Licensed under the GPL
 #
 
-#XXX: why into lib-y?
-lib-y = bitops.o bugs.o csum-partial.o delay.o fault.o mem.o memcpy.o \
+obj-y = bitops.o bugs.o csum-partial.o delay.o fault.o mem.o memcpy.o \
        ptrace.o ptrace_user.o sigcontext.o signal.o stub.o \
-       stub_segv.o syscalls.o syscall_table.o sysrq.o thunk.o
+       stub_segv.o syscalls.o syscall_table.o sysrq.o thunk.o ksyms.o
 
-obj-y := ksyms.o
 obj-$(CONFIG_MODULES) += module.o um_module.o
 
 USER_OBJS := ptrace_user.o sigcontext.o
 
-SYMLINKS = bitops.c csum-copy.S csum-partial.c csum-wrappers.c memcpy.S \
-       thunk.S module.c
+HOST_OBJS = lib/bitops.o lib/csum-copy.o lib/csum-partial.o \
+       lib/csum-wrappers.o lib/memcpy.o lib/thunk.o kernel/module.o
 
 include arch/um/scripts/Makefile.rules
 
-bitops.c-dir = lib
-csum-copy.S-dir = lib
-csum-partial.c-dir = lib
-csum-wrappers.c-dir = lib
-memcpy.S-dir = lib
-thunk.S-dir = lib
-module.c-dir = kernel
-
 $(obj)/stub_segv.o: _c_flags = $(call unprofile,$(CFLAGS))
 
 include arch/um/scripts/Makefile.unmap


-------------------------------------------------------
This SF.Net email is sponsored by:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

Reply via email to