From: Keir Fraser Date: Thu, 4 Nov 2010 16:37:29 +0000 (+0000) Subject: libelf: move to init text/data when built for the hypervisor X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~11281 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=f2136c61335271251b5e692b2efe66bca0b9bd04;p=xen.git 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 --- 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 $@ $^