[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [XEN] Remove weak-extern definitions from symbols.c.
# HG changeset patch # User kfraser@xxxxxxxxxxxxxxxxxxxxx # Node ID 34452b2880463b3c8e0f6b713c98d0e58521e68d # Parent 8cffe84d8f51f74b64212c09cfaad1b73679ec55 [XEN] Remove weak-extern definitions from symbols.c. Instead we have an explicit set of dummy symbol definitions for the inital link of the Xen image. Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx> --- xen/arch/ia64/Makefile | 15 ++++++++++----- xen/arch/powerpc/Makefile | 3 ++- xen/arch/x86/Makefile | 13 +++++++++---- xen/common/symbols-dummy.c | 16 ++++++++++++++++ xen/common/symbols.c | 13 ++++++------- 5 files changed, 43 insertions(+), 17 deletions(-) diff -r 8cffe84d8f51 -r 34452b288046 xen/arch/ia64/Makefile --- a/xen/arch/ia64/Makefile Thu Sep 28 13:20:58 2006 +0100 +++ b/xen/arch/ia64/Makefile Thu Sep 28 13:44:24 2006 +0100 @@ -4,22 +4,27 @@ subdir-y += linux-xen subdir-y += linux-xen $(TARGET)-syms: linux-xen/head.o $(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) -o $@ + -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 $@ + -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 $@ + -Map map.out linux-xen/head.o $(ALL_OBJS) \ + $(BASEDIR)/xen-syms.o -o $@ rm -f $(BASEDIR)/xen-syms.S $(BASEDIR)/xen-syms.o $(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 $(TARGET)-syms | \ + grep -v '\( [aUw] \)\|\(__crc_\)\|\( \$[adt]\)' \ + > $(BASEDIR)/System.map # Headers do not depend on auto-generated header, but object files do. HDRS := $(subst $(BASEDIR)/include/asm-ia64/asm-xsi-offsets.h,,$(HDRS)) diff -r 8cffe84d8f51 -r 34452b288046 xen/arch/powerpc/Makefile --- a/xen/arch/powerpc/Makefile Thu Sep 28 13:20:58 2006 +0100 +++ b/xen/arch/powerpc/Makefile Thu Sep 28 13:44:24 2006 +0100 @@ -101,7 +101,8 @@ TARGET_OPTS += start.o $(ALL_OBJS) TARGET_OPTS += start.o $(ALL_OBJS) .xen-syms: start.o $(ALL_OBJS) xen.lds - $(CC) $(CFLAGS) $(TARGET_OPTS) -o $@ + $(MAKE) -f $(BASEDIR)/Rules.mk $(BASEDIR)/common/symbols-dummy.o + $(CC) $(CFLAGS) $(TARGET_OPTS) $(BASEDIR)/common/symbols-dummy.o -o $@ NM=$(CROSS_COMPILE)nm new_nm := $(shell if $(NM) --help 2>&1 | grep -- '--synthetic' > /dev/null; then echo y; else echo n; fi) diff -r 8cffe84d8f51 -r 34452b288046 xen/arch/x86/Makefile --- a/xen/arch/x86/Makefile Thu Sep 28 13:20:58 2006 +0100 +++ b/xen/arch/x86/Makefile Thu Sep 28 13:44:24 2006 +0100 @@ -46,19 +46,24 @@ obj-$(crash_debug) += gdbstub.o $(TARGET): $(TARGET)-syms boot/mkelf32 ./boot/mkelf32 $(TARGET)-syms $(TARGET) 0x100000 \ - `$(NM) $(TARGET)-syms | sort | tail -n 1 | sed -e 's/^\([^ ]*\).*/0x\1/'` + `$(NM) $(TARGET)-syms | sort | tail -n 1 | \ + sed -e 's/^\([^ ]*\).*/0x\1/'` $(TARGET)-syms: boot/$(TARGET_SUBARCH).o $(ALL_OBJS) xen.lds + $(MAKE) -f $(BASEDIR)/Rules.mk $(BASEDIR)/common/symbols-dummy.o $(LD) $(LDFLAGS) -T xen.lds -N \ - boot/$(TARGET_SUBARCH).o $(ALL_OBJS) -o $@ + boot/$(TARGET_SUBARCH).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 -N \ - boot/$(TARGET_SUBARCH).o $(ALL_OBJS) $(BASEDIR)/xen-syms.o -o $@ + boot/$(TARGET_SUBARCH).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 -N \ - boot/$(TARGET_SUBARCH).o $(ALL_OBJS) $(BASEDIR)/xen-syms.o -o $@ + boot/$(TARGET_SUBARCH).o $(ALL_OBJS) \ + $(BASEDIR)/xen-syms.o -o $@ rm -f $(BASEDIR)/xen-syms.S $(BASEDIR)/xen-syms.o asm-offsets.s: $(TARGET_SUBARCH)/asm-offsets.c $(HDRS) diff -r 8cffe84d8f51 -r 34452b288046 xen/common/symbols.c --- a/xen/common/symbols.c Thu Sep 28 13:20:58 2006 +0100 +++ b/xen/common/symbols.c Thu Sep 28 13:44:24 2006 +0100 @@ -16,15 +16,14 @@ #include <xen/lib.h> #include <xen/string.h> -/* These will be re-linked against their real values during the second link stage */ -extern unsigned long symbols_addresses[] __attribute__((weak)); -extern unsigned long symbols_num_syms __attribute__((weak,section("data"))); -extern u8 symbols_names[] __attribute__((weak)); +extern unsigned long symbols_addresses[]; +extern unsigned long symbols_num_syms; +extern u8 symbols_names[]; -extern u8 symbols_token_table[] __attribute__((weak)); -extern u16 symbols_token_index[] __attribute__((weak)); +extern u8 symbols_token_table[]; +extern u16 symbols_token_index[]; -extern unsigned long symbols_markers[] __attribute__((weak)); +extern unsigned long symbols_markers[]; /* expand a compressed symbol data into the resulting uncompressed string, given the offset to where the symbol is in the compressed stream */ diff -r 8cffe84d8f51 -r 34452b288046 xen/common/symbols-dummy.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xen/common/symbols-dummy.c Thu Sep 28 13:44:24 2006 +0100 @@ -0,0 +1,16 @@ +/* + * symbols-dummy.c: dummy symbol-table definitions for the inital partial + * link of the hypervisor image. + */ + +#include <xen/config.h> +#include <xen/types.h> + +unsigned long symbols_addresses[1]; +unsigned long symbols_num_syms; +u8 symbols_names[1]; + +u8 symbols_token_table[1]; +u16 symbols_token_index[1]; + +unsigned long symbols_markers[1]; _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |