ChangeSet 1.2231.1.109, 2005/03/28 19:46:51-08:00, [EMAIL PROTECTED]

        [PATCH] uml: factor out common code in user-obj handling
        
        With Vadim Abrossimov <[EMAIL PROTECTED]>
        
        *) Handle USER_OBJS through the general Kbuild infrastructure; the 
trick we
           use is to change c_flags only for USER_OBJS.
        
           This ain't at all worse than the previous kludgy solution, enables 
us to
           use a better dependency handling and to support MODVERSIONS.
        
           And it is UML-specific, as a bonus.
        
           So, no "it ain't clean enough" reasoning is allowed to hold this 
patch
           until you find a better solution.  Leaving there the current broken 
code is
           not accepted.
        
        *) Move similar definitions from Makefiles to the newly created
           arch/um/scripts/Makefile.rules and include it everywhere needed.
        
        Signed-off-by: Paolo 'Blaisorblade' Giarrusso <[EMAIL PROTECTED]>
        Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
        Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>



 arch/um/drivers/Makefile             |    9 ++-------
 arch/um/kernel/Makefile              |   14 +++++++-------
 arch/um/kernel/skas/Makefile         |    8 +++-----
 arch/um/kernel/tt/Makefile           |   12 +++++-------
 arch/um/kernel/tt/ptproxy/Makefile   |    5 ++---
 arch/um/os-Linux/Makefile            |    6 ++----
 arch/um/os-Linux/drivers/Makefile    |    8 +-------
 arch/um/os-Linux/sys-i386/Makefile   |    5 ++---
 arch/um/os-Linux/sys-x86_64/Makefile |    5 ++---
 arch/um/scripts/Makefile.rules       |   10 ++++++++++
 arch/um/sys-i386/Makefile            |    6 ++----
 arch/um/sys-x86_64/Makefile          |    8 +++-----
 fs/hostfs/Makefile                   |   10 ++--------
 13 files changed, 43 insertions(+), 63 deletions(-)


diff -Nru a/arch/um/drivers/Makefile b/arch/um/drivers/Makefile
--- a/arch/um/drivers/Makefile  2005-03-28 21:30:28 -08:00
+++ b/arch/um/drivers/Makefile  2005-03-28 21:30:28 -08:00
@@ -41,11 +41,6 @@
 obj-$(CONFIG_BLK_DEV_COW_COMMON) += cow_user.o
 obj-$(CONFIG_UML_RANDOM) += random.o
 
-USER_SINGLE_OBJS = $(foreach f,$(patsubst %.o,%,$(obj-y) 
$(obj-m)),$($(f)-objs))
+USER_OBJS := fd.o null.o pty.o tty.o xterm.o
 
-USER_OBJS := $(filter %_user.o,$(obj-y) $(obj-m) $(USER_SINGLE_OBJS)) fd.o \
-       null.o pty.o tty.o xterm.o
-USER_OBJS := $(foreach file,$(USER_OBJS),$(obj)/$(file))
-
-$(USER_OBJS) : %.o: %.c
-       $(CC) $(CFLAGS_$(notdir $@)) $(USER_CFLAGS) -c -o $@ $<
+include arch/um/scripts/Makefile.rules
diff -Nru a/arch/um/kernel/Makefile b/arch/um/kernel/Makefile
--- a/arch/um/kernel/Makefile   2005-03-28 21:30:28 -08:00
+++ b/arch/um/kernel/Makefile   2005-03-28 21:30:28 -08:00
@@ -23,16 +23,16 @@
 obj-$(CONFIG_MODE_TT) += tt/
 obj-$(CONFIG_MODE_SKAS) += skas/
 
-user-objs-$(CONFIG_TTY_LOG) += tty_log.o
+# This needs be compiled with frame pointers regardless of how the rest of the
+# kernel is built.
+CFLAGS_frame.o := -fno-omit-frame-pointer
 
-USER_OBJS := $(filter %_user.o,$(obj-y))  $(user-objs-y) config.o helper.o \
-       main.o process.o tempfile.o time.o tty_log.o umid.o user_util.o frame.o
-USER_OBJS := $(foreach file,$(USER_OBJS),$(obj)/$(file))
+user-objs-$(CONFIG_TTY_LOG) += tty_log.o
 
-CFLAGS_frame.o := -fno-omit-frame-pointer
+USER_OBJS := $(user-objs-y) config.o helper.o main.o process.o tempfile.o \
+       time.o tty_log.o umid.o user_util.o frame.o
 
-$(USER_OBJS) : %.o: %.c
-       $(CC) $(USER_CFLAGS) $(CFLAGS_$(notdir $@)) -c -o $@ $<
+include arch/um/scripts/Makefile.rules
 
 targets += config.c
 
diff -Nru a/arch/um/kernel/skas/Makefile b/arch/um/kernel/skas/Makefile
--- a/arch/um/kernel/skas/Makefile      2005-03-28 21:30:28 -08:00
+++ b/arch/um/kernel/skas/Makefile      2005-03-28 21:30:28 -08:00
@@ -6,10 +6,8 @@
 obj-y := exec_kern.o mem.o mem_user.o mmu.o process.o process_kern.o \
        syscall_kern.o syscall_user.o time.o tlb.o trap_user.o uaccess.o \
 
-USER_OBJS = $(filter %_user.o,$(obj-y)) process.o time.o
-USER_OBJS := $(foreach file,$(USER_OBJS),$(obj)/$(file))
+subdir- := util
 
-$(USER_OBJS) : %.o: %.c
-       $(CC) $(CFLAGS_$(notdir $@)) $(USER_CFLAGS) -c -o $@ $<
+USER_OBJS := process.o time.o
 
-subdir- := util
+include arch/um/scripts/Makefile.rules
diff -Nru a/arch/um/kernel/tt/Makefile b/arch/um/kernel/tt/Makefile
--- a/arch/um/kernel/tt/Makefile        2005-03-28 21:30:28 -08:00
+++ b/arch/um/kernel/tt/Makefile        2005-03-28 21:30:28 -08:00
@@ -12,17 +12,15 @@
 
 obj-$(CONFIG_PT_PROXY) += gdb_kern.o ptproxy/
 
-USER_OBJS := $(filter %_user.o,$(obj-y)) gdb.o time.o tracer.o
-USER_OBJS := $(foreach file,$(USER_OBJS),$(obj)/$(file))
+USER_OBJS := gdb.o time.o tracer.o
+
+include arch/um/scripts/Makefile.rules
 
 UNMAP_CFLAGS := $(patsubst -pg -DPROFILING,,$(USER_CFLAGS))
 UNMAP_CFLAGS := $(patsubst -fprofile-arcs -ftest-coverage,,$(UNMAP_CFLAGS))
 
-$(USER_OBJS) : %.o: %.c
-       $(CC) $(CFLAGS_$(notdir $@)) $(USER_CFLAGS) -c -o $@ $<
-
-$(obj)/unmap.o: $(src)/unmap.c
-       $(CC) $(UNMAP_CFLAGS) -c -o $@ $<
+#XXX: partially copied from arch/um/scripts/Makefile.rules
+$(obj)/unmap.o: c_flags = -Wp,-MD,$(depfile) $(UNMAP_CFLAGS)
 
 $(obj)/unmap_fin.o : $(obj)/unmap.o
        $(LD) -r -o $(obj)/unmap_tmp.o $< $(shell $(CC) -print-file-name=libc.a)
diff -Nru a/arch/um/kernel/tt/ptproxy/Makefile 
b/arch/um/kernel/tt/ptproxy/Makefile
--- a/arch/um/kernel/tt/ptproxy/Makefile        2005-03-28 21:30:28 -08:00
+++ b/arch/um/kernel/tt/ptproxy/Makefile        2005-03-28 21:30:28 -08:00
@@ -5,7 +5,6 @@
 
 obj-y = proxy.o ptrace.o sysdep.o wait.o
 
-USER_OBJS := $(foreach file,$(obj-y),$(src)/$(file))
+USER_OBJS := $(obj-y)
 
-$(USER_OBJS) : %.o: %.c
-       $(CC) $(CFLAGS_$(notdir $@)) $(USER_CFLAGS) -c -o $@ $<
+include arch/um/scripts/Makefile.rules
diff -Nru a/arch/um/os-Linux/Makefile b/arch/um/os-Linux/Makefile
--- a/arch/um/os-Linux/Makefile 2005-03-28 21:30:28 -08:00
+++ b/arch/um/os-Linux/Makefile 2005-03-28 21:30:28 -08:00
@@ -7,9 +7,7 @@
        sys-$(SUBARCH)/
 
 USER_OBJS := elf_aux.o file.o process.o signal.o time.o tty.o
-USER_OBJS := $(foreach file,$(USER_OBJS),$(obj)/$(file))
-
-$(USER_OBJS) : %.o: %.c
-       $(CC) $(CFLAGS_$(notdir $@)) $(USER_CFLAGS) -c -o $@ $<
 
 CFLAGS_user_syms.o += -DSUBARCH_$(SUBARCH)
+
+include arch/um/scripts/Makefile.rules
diff -Nru a/arch/um/os-Linux/drivers/Makefile 
b/arch/um/os-Linux/drivers/Makefile
--- a/arch/um/os-Linux/drivers/Makefile 2005-03-28 21:30:28 -08:00
+++ b/arch/um/os-Linux/drivers/Makefile 2005-03-28 21:30:28 -08:00
@@ -10,10 +10,4 @@
 obj-$(CONFIG_UML_NET_ETHERTAP) += ethertap.o
 obj-$(CONFIG_UML_NET_TUNTAP) += tuntap.o
 
-USER_SINGLE_OBJS = $(foreach f,$(patsubst %.o,%,$(obj-y)),$($(f)-objs))
-
-USER_OBJS = $(filter %_user.o,$(obj-y) $(USER_SINGLE_OBJS))
-USER_OBJS := $(foreach file,$(USER_OBJS),$(obj)/$(file))
-
-$(USER_OBJS) : %.o: %.c
-       $(CC) $(CFLAGS_$(notdir $@)) $(USER_CFLAGS) -c -o $@ $<
+include arch/um/scripts/Makefile.rules
diff -Nru a/arch/um/os-Linux/sys-i386/Makefile 
b/arch/um/os-Linux/sys-i386/Makefile
--- a/arch/um/os-Linux/sys-i386/Makefile        2005-03-28 21:30:28 -08:00
+++ b/arch/um/os-Linux/sys-i386/Makefile        2005-03-28 21:30:28 -08:00
@@ -5,7 +5,6 @@
 
 obj-$(CONFIG_MODE_SKAS) = registers.o
 
-USER_OBJS := $(foreach file,$(obj-y),$(obj)/$(file))
+USER_OBJS := $(obj-y)
 
-$(USER_OBJS) : %.o: %.c
-       $(CC) $(CFLAGS_$(notdir $@)) $(USER_CFLAGS) -c -o $@ $<
+include arch/um/scripts/Makefile.rules
diff -Nru a/arch/um/os-Linux/sys-x86_64/Makefile 
b/arch/um/os-Linux/sys-x86_64/Makefile
--- a/arch/um/os-Linux/sys-x86_64/Makefile      2005-03-28 21:30:28 -08:00
+++ b/arch/um/os-Linux/sys-x86_64/Makefile      2005-03-28 21:30:28 -08:00
@@ -5,7 +5,6 @@
 
 obj-$(CONFIG_MODE_SKAS) = registers.o
 
-USER_OBJS := $(foreach file,$(obj-y),$(obj)/$(file))
+USER_OBJS := $(obj-y)
 
-$(USER_OBJS) : %.o: %.c
-       $(CC) $(CFLAGS_$(notdir $@)) $(USER_CFLAGS) -c -o $@ $<
+include arch/um/scripts/Makefile.rules
diff -Nru a/arch/um/scripts/Makefile.rules b/arch/um/scripts/Makefile.rules
--- /dev/null   Wed Dec 31 16:00:00 196900
+++ b/arch/um/scripts/Makefile.rules    2005-03-28 21:30:28 -08:00
@@ -0,0 +1,10 @@
+# ===========================================================================
+# arch/um: Generic definitions
+# ===========================================================================
+
+USER_SINGLE_OBJS = $(foreach f,$(patsubst %.o,%,$(obj-y) 
$(obj-m)),$($(f)-objs))
+USER_OBJS += $(filter %_user.o,$(obj-y) $(obj-m) $(USER_SINGLE_OBJS))
+
+USER_OBJS := $(foreach file,$(USER_OBJS),$(obj)/$(file))
+
+$(USER_OBJS): c_flags = -Wp,-MD,$(depfile) $(USER_CFLAGS) $(CFLAGS_$(notdir 
$@))
diff -Nru a/arch/um/sys-i386/Makefile b/arch/um/sys-i386/Makefile
--- a/arch/um/sys-i386/Makefile 2005-03-28 21:30:28 -08:00
+++ b/arch/um/sys-i386/Makefile 2005-03-28 21:30:28 -08:00
@@ -5,7 +5,8 @@
 obj-$(CONFIG_MODULES) += module.o
 
 USER_OBJS := bugs.o ptrace_user.o sigcontext.o fault.o
-USER_OBJS := $(foreach file,$(USER_OBJS),$(obj)/$(file))
+
+include arch/um/scripts/Makefile.rules
 
 SYMLINKS = bitops.c semaphore.c highmem.c module.c
 
@@ -24,9 +25,6 @@
        -rm -f $1
        ln -sf $(srctree)/arch/i386/$($(notdir $1)-dir)/$(notdir $1) $1
 endef
-
-$(USER_OBJS) : %.o: %.c
-       $(CC) $(CFLAGS_$(notdir $@)) $(USER_CFLAGS) -c -o $@ $<
 
 $(SYMLINKS): 
        $(call make_link,$@)
diff -Nru a/arch/um/sys-x86_64/Makefile b/arch/um/sys-x86_64/Makefile
--- a/arch/um/sys-x86_64/Makefile       2005-03-28 21:30:28 -08:00
+++ b/arch/um/sys-x86_64/Makefile       2005-03-28 21:30:28 -08:00
@@ -9,7 +9,8 @@
        syscalls.o sysrq.o thunk.o
 
 USER_OBJS := ptrace_user.o sigcontext.o
-USER_OBJS := $(foreach file,$(USER_OBJS),$(obj)/$(file))
+
+include arch/um/scripts/Makefile.rules
 
 SYMLINKS = bitops.c csum-copy.S csum-partial.c csum-wrappers.c memcpy.S \
        semaphore.c thunk.S
@@ -27,13 +28,10 @@
 
 define make_link
        -rm -f $1
-       ln -sf $(TOPDIR)/arch/x86_64/$($(notdir $1)-dir)/$(notdir $1) $1
+       ln -sf $(srctree)/arch/x86_64/$($(notdir $1)-dir)/$(notdir $1) $1
 endef
 
 $(SYMLINKS):
        $(call make_link,$@)
-
-$(USER_OBJS) : %.o: %.c
-       $(CC) $(CFLAGS_$(notdir $@)) $(USER_CFLAGS) -c -o $@ $<
 
 CFLAGS_csum-partial.o := -Dcsum_partial=arch_csum_partial
diff -Nru a/fs/hostfs/Makefile b/fs/hostfs/Makefile
--- a/fs/hostfs/Makefile        2005-03-28 21:30:28 -08:00
+++ b/fs/hostfs/Makefile        2005-03-28 21:30:28 -08:00
@@ -5,13 +5,7 @@
 
 hostfs-objs := hostfs_kern.o hostfs_user.o
 
-obj-y =
+obj-y :=
 obj-$(CONFIG_HOSTFS) += hostfs.o
 
-SINGLE_OBJS = $(foreach f,$(patsubst %.o,%,$(obj-y) $(obj-m)),$($(f)-objs))
-
-USER_OBJS := $(filter %_user.o,$(obj-y) $(obj-m) $(SINGLE_OBJS))
-USER_OBJS := $(foreach file,$(USER_OBJS),$(obj)/$(file))
-
-$(USER_OBJS) : %.o: %.c
-       $(CC) $(CFLAGS_$(notdir $@)) $(USER_CFLAGS) -c -o $@ $<
+include arch/um/scripts/Makefile.rules
-
To unsubscribe from this list: send the line "unsubscribe bk-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to