Page MenuHomeFreeBSD

D2783.diff
No OneTemporary

D2783.diff

Index: head/sys/amd64/amd64/xen-locore.S
===================================================================
--- head/sys/amd64/amd64/xen-locore.S
+++ head/sys/amd64/amd64/xen-locore.S
@@ -47,7 +47,7 @@
ELFNOTE(Xen, XEN_ELFNOTE_GUEST_VERSION, .asciz, __XSTRING(__FreeBSD_version))
ELFNOTE(Xen, XEN_ELFNOTE_XEN_VERSION, .asciz, "xen-3.0")
ELFNOTE(Xen, XEN_ELFNOTE_VIRT_BASE, .quad, KERNBASE)
- ELFNOTE(Xen, XEN_ELFNOTE_PADDR_OFFSET, .quad, KERNBASE) /* Xen honours elf->p_paddr; compensate for this */
+ ELFNOTE(Xen, XEN_ELFNOTE_PADDR_OFFSET, .quad, 0)
ELFNOTE(Xen, XEN_ELFNOTE_ENTRY, .quad, xen_start)
ELFNOTE(Xen, XEN_ELFNOTE_HYPERCALL_PAGE, .quad, hypercall_page)
ELFNOTE(Xen, XEN_ELFNOTE_HV_START_LOW, .quad, HYPERVISOR_VIRT_START)
Index: head/sys/conf/ldscript.amd64
===================================================================
--- head/sys/conf/ldscript.amd64
+++ head/sys/conf/ldscript.amd64
@@ -8,7 +8,12 @@
/* Read-only sections, merged into text segment: */
kernphys = CONSTANT (MAXPAGESIZE);
. = kernbase + kernphys + SIZEOF_HEADERS;
- .interp : { *(.interp) }
+ /*
+ * Use the AT keyword in order to set the right LMA that contains
+ * the physical address where the section should be loaded. This is
+ * needed for the Xen loader which honours the LMA.
+ */
+ .interp : AT (kernphys + SIZEOF_HEADERS) { *(.interp) }
.hash : { *(.hash) }
.gnu.hash : { *(.gnu.hash) }
.dynsym : { *(.dynsym) }

File Metadata

Mime Type
text/plain
Expires
Mon, Jul 6, 4:06 PM (12 h, 3 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
34761896
Default Alt Text
D2783.diff (1 KB)

Event Timeline