]> xenbits.xensource.com Git - mini-os.git/commitdiff
x86: switch to use elfnote
authorWei Liu <wei.liu2@citrix.com>
Thu, 18 Aug 2016 10:15:25 +0000 (11:15 +0100)
committerWei Liu <wei.liu2@citrix.com>
Mon, 22 Aug 2016 09:39:14 +0000 (10:39 +0100)
Use the newer ELF note interface. The generated ELF notes results in
equivalent configuration.

Also need to modify linker script to provide a note section.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
arch/x86/minios-x86_32.lds
arch/x86/minios-x86_64.lds
arch/x86/x86_32.S
arch/x86/x86_64.S

index f5cabb6a11d9278984ebc2e722cdf38a1a8b4558..e4e18cb323cc543f8236e68f71b186a5ba351235 100644 (file)
@@ -15,6 +15,10 @@ SECTIONS
   .rodata : { *(.rodata) *(.rodata.*) }
   . = ALIGN(4096);
   _erodata = .;
+  .note : {
+       *(.note)
+       *(.note.*)
+  }
 
   /* newlib initialization functions */
   . = ALIGN(32 / 8);
index 3da0a9f130db75693144a25ee53ad1c9098aaee4..f6462f3355abcf82c144e8e500c2214a2c805ca7 100644 (file)
@@ -15,6 +15,10 @@ SECTIONS
   .rodata : { *(.rodata) *(.rodata.*) }
   . = ALIGN(4096);
   _erodata = .;
+  .note : {
+       *(.note)
+       *(.note.*)
+  }
 
   /* newlib initialization functions */
   . = ALIGN(64 / 8);
index b9aa39206c1a86e57c3baf3e8fbbfd877b1e2412..6dc985a2fef7662fea8cb9bc3efc5f3868cb5ec9 100644 (file)
@@ -1,17 +1,14 @@
 #include <mini-os/os.h>
 #include <mini-os/x86/arch_limits.h>
+#include <mini-os/asm_macros.h>
+#include <xen/elfnote.h>
 #include <xen/arch-x86_32.h>
 
-.section __xen_guest
-       .ascii  "GUEST_OS=Mini-OS"
-       .ascii  ",XEN_VER=xen-3.0"
-       .ascii  ",VIRT_BASE=0x0" /* &_text from minios_x86_32.lds */
-       .ascii  ",ELF_PADDR_OFFSET=0x0"
-       .ascii  ",HYPERCALL_PAGE=0x2"
-       .ascii  ",PAE=yes[extended-cr3]"
-       .ascii  ",LOADER=generic"
-       .byte   0
-.text
+ELFNOTE(Xen, XEN_ELFNOTE_GUEST_OS, .asciz "Mini-OS")
+ELFNOTE(Xen, XEN_ELFNOTE_LOADER, .asciz "generic")
+ELFNOTE(Xen, XEN_ELFNOTE_HYPERCALL_PAGE, _WORD hypercall_page)
+ELFNOTE(Xen, XEN_ELFNOTE_XEN_VERSION, .asciz "xen-3.0")
+ELFNOTE(Xen, XEN_ELFNOTE_PAE_MODE, .asciz "yes")
 
 .globl _start, shared_info, hypercall_page
                         
index 72921b143a79baa7010c7244ae85285aa47ef3fb..8ed452fd0c74e2175c560ba2c09271b5bd701a7b 100644 (file)
@@ -1,16 +1,13 @@
 #include <mini-os/os.h>
 #include <mini-os/x86/arch_limits.h>
+#include <mini-os/asm_macros.h>
+#include <xen/elfnote.h>
 #include <xen/features.h>
 
-.section __xen_guest
-       .ascii  "GUEST_OS=Mini-OS"
-       .ascii  ",XEN_VER=xen-3.0"
-       .ascii  ",VIRT_BASE=0x0" /* &_text from minios_x86_64.lds */
-       .ascii  ",ELF_PADDR_OFFSET=0x0"
-       .ascii  ",HYPERCALL_PAGE=0x2"
-       .ascii  ",LOADER=generic"
-       .byte   0
-.text
+ELFNOTE(Xen, XEN_ELFNOTE_GUEST_OS, .asciz "Mini-OS")
+ELFNOTE(Xen, XEN_ELFNOTE_LOADER, .asciz "generic")
+ELFNOTE(Xen, XEN_ELFNOTE_HYPERCALL_PAGE, _WORD hypercall_page)
+ELFNOTE(Xen, XEN_ELFNOTE_XEN_VERSION, .asciz "xen-3.0")
 
 #define ENTRY(X) .globl X ; X :
 .globl _start, shared_info, hypercall_page