diff options
author | Keir Fraser <keir@xen.org> | 2010-11-04 16:37:29 +0000 |
---|---|---|
committer | Keir Fraser <keir@xen.org> | 2010-11-04 16:37:29 +0000 |
commit | f2136c61335271251b5e692b2efe66bca0b9bd04 (patch) | |
tree | 08e7f15737a981060632bd16ba09da4a65bb525f | |
parent | 0cd09703b178259c90832e4393ac8315ae340f2f (diff) | |
download | xen-f2136c61335271251b5e692b2efe66bca0b9bd04.tar.gz xen-f2136c61335271251b5e692b2efe66bca0b9bd04.tar.bz2 xen-f2136c61335271251b5e692b2efe66bca0b9bd04.zip |
libelf: move to init text/data when built for the hypervisor
Rather than annotating each and every function and data object (and
then still missing some compiler generated ones, plus getting into
ugliness due to the code also being built from tools/libxc/), use
objcopy to rename all relevant sections.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
-rw-r--r-- | xen/arch/ia64/xen/xen.lds.S | 8 | ||||
-rw-r--r-- | xen/arch/x86/xen.lds.S | 4 | ||||
-rw-r--r-- | xen/common/libelf/Makefile | 13 |
3 files changed, 20 insertions, 5 deletions
diff --git a/xen/arch/ia64/xen/xen.lds.S b/xen/arch/ia64/xen/xen.lds.S index f642a93dc0..46e9421743 100644 --- a/xen/arch/ia64/xen/xen.lds.S +++ b/xen/arch/ia64/xen/xen.lds.S @@ -120,7 +120,13 @@ SECTIONS } .init.data : AT(ADDR(.init.data) - LOAD_OFFSET) - { *(.init.data) } + { + *(.init.rodata) + *(.init.rodata.str*) + *(.init.data) + *(.init.data.rel) + *(.init.data.rel.*) + } .init.ramfs : AT(ADDR(.init.ramfs) - LOAD_OFFSET) { diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S index 2bc66042de..1ffd4e98de 100644 --- a/xen/arch/x86/xen.lds.S +++ b/xen/arch/x86/xen.lds.S @@ -79,7 +79,11 @@ SECTIONS _einittext = .; } :text .init.data : { + *(.init.rodata) + *(.init.rodata.str*) *(.init.data) + *(.init.data.rel) + *(.init.data.rel.*) } :text . = ALIGN(32); .init.setup : { diff --git a/xen/common/libelf/Makefile b/xen/common/libelf/Makefile index a586e1ae12..854e738089 100644 --- a/xen/common/libelf/Makefile +++ b/xen/common/libelf/Makefile @@ -1,4 +1,9 @@ -obj-y += libelf-tools.o -obj-y += libelf-loader.o -obj-y += libelf-dominfo.o -#obj-y += libelf-relocate.o +obj-y := libelf.o + +SECTIONS := text data rodata $(foreach n,1 2 4 8,rodata.str1.$(n)) $(foreach r,rel rel.ro,data.$(r) data.$(r).local) + +libelf.o: libelf-temp.o Makefile + $(OBJCOPY) $(foreach s,$(SECTIONS),--rename-section .$(s)=.init.$(s)) $< $@ + +libelf-temp.o: libelf-tools.o libelf-loader.o libelf-dominfo.o #libelf-relocate.o + $(LD) $(LDFLAGS) -r -o $@ $^ |