|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] [xen-unstable] [XEN] Remove weak-extern definitions from
# 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
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] [xen-unstable] [XEN] Remove weak-extern definitions from symbols.c.,
Xen patchbot-unstable <=
|
|
|
|
|