aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2009-07-13 11:19:31 +0100
committerKeir Fraser <keir.fraser@citrix.com>2009-07-13 11:19:31 +0100
commit0759ea7379b67a00646ef6f71bda61d538891664 (patch)
treee7b28481980605945c65173f4cb9faa9dbc91616
parent2e2e8763c259199aae75fdce6d607b1c01835aab (diff)
downloadxen-0759ea7379b67a00646ef6f71bda61d538891664.tar.gz
xen-0759ea7379b67a00646ef6f71bda61d538891664.tar.bz2
xen-0759ea7379b67a00646ef6f71bda61d538891664.zip
ia64: consolidate final linking step
This basically makes the final linking stage identical to x86's (with the sole difference being that ia64 has the linker generate a map file, while x86 doesn't), so would generally allow moving the final linking rule into xen/Rules.mk. Signed-off-by: Jan Beulich <jbeulich@novell.com>
-rw-r--r--xen/arch/ia64/Makefile35
1 files changed, 16 insertions, 19 deletions
diff --git a/xen/arch/ia64/Makefile b/xen/arch/ia64/Makefile
index a5e57ba8a2..324b65a7f0 100644
--- a/xen/arch/ia64/Makefile
+++ b/xen/arch/ia64/Makefile
@@ -3,28 +3,25 @@ subdir-y += vmx
subdir-y += linux
subdir-y += linux-xen
-$(TARGET)-syms: linux-xen/head.o $(ALL_OBJS) xen.lds.s
+ALL_OBJS := linux-xen/head.o $(ALL_OBJS)
+
+$(TARGET)-syms: $(ALL_OBJS) xen.lds.s
$(MAKE) -f $(BASEDIR)/Rules.mk $(BASEDIR)/common/symbols-dummy.o
- $(LD) $(LDFLAGS) -T xen.lds.s -N \
- -Map map.out linux-xen/head.o $(ALL_OBJS) \
- $(BASEDIR)/common/symbols-dummy.o -o $@
- $(NM) -n $@ | $(BASEDIR)/tools/symbols > $(BASEDIR)/xen-syms.S
- $(MAKE) -f $(BASEDIR)/Rules.mk $(BASEDIR)/xen-syms.o
- $(LD) $(LDFLAGS) -T xen.lds.s -N \
- -Map map.out linux-xen/head.o $(ALL_OBJS) \
- $(BASEDIR)/xen-syms.o -o $@
- $(NM) -n $@ | $(BASEDIR)/tools/symbols >$(BASEDIR)/xen-syms.S
- $(MAKE) -f $(BASEDIR)/Rules.mk $(BASEDIR)/xen-syms.o
- $(LD) $(LDFLAGS) -T xen.lds.s -N \
- -Map map.out linux-xen/head.o $(ALL_OBJS) \
- $(BASEDIR)/xen-syms.o -o $@
- rm -f $(BASEDIR)/xen-syms.S $(BASEDIR)/xen-syms.o
+ $(LD) $(LDFLAGS) -T xen.lds.s -N -Map $(@D)/.$(@F).0.map $(ALL_OBJS) \
+ $(BASEDIR)/common/symbols-dummy.o -o $(@D)/.$(@F).0
+ $(NM) -n $(@D)/.$(@F).0 | $(BASEDIR)/tools/symbols >$(@D)/.$(@F).0.S
+ $(MAKE) -f $(BASEDIR)/Rules.mk $(@D)/.$(@F).0.o
+ $(LD) $(LDFLAGS) -T xen.lds.s -N -Map $(@D)/.$(@F).1.map $(ALL_OBJS) \
+ $(@D)/.$(@F).0.o -o $(@D)/.$(@F).1
+ $(NM) -n $(@D)/.$(@F).1 | $(BASEDIR)/tools/symbols >$(@D)/.$(@F).1.S
+ $(MAKE) -f $(BASEDIR)/Rules.mk $(@D)/.$(@F).1.o
+ $(LD) $(LDFLAGS) -T xen.lds.s -N -Map $@.map $(ALL_OBJS) \
+ $(@D)/.$(@F).1.o -o $@
+ rm -f $(@D)/.$(@F).[0-9]*
$(TARGET): $(TARGET)-syms
- $(OBJCOPY) -R .note -R .comment -S $(TARGET)-syms $@
- $(NM) -n $(TARGET)-syms | \
- grep -v '\( [aUw] \)\|\(__crc_\)\|\( \$[adt]\)' \
- > $(BASEDIR)/System.map
+ $(NM) -n $< | grep -v ' [aUw] ' > $(@D)/System.map
+ $(OBJCOPY) -R .note -R .comment -S $< $@
# Headers do not depend on auto-generated header, but object files do.
$(ALL_OBJS): $(BASEDIR)/include/asm-ia64/asm-xsi-offsets.h