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