On 11/28/17 07:27, Justin Hibbits wrote:
On Sat, Nov 25, 2017 at 3:45 PM, Nathan Whitehorn
<nwhiteh...@freebsd.org> wrote:
Author: nwhitehorn
Date: Sat Nov 25 21:45:51 2017
New Revision: 326203
URL: https://svnweb.freebsd.org/changeset/base/326203

Log:
   Avoid emitting a PT_INTERP section for powerpc64 kernels and arrange for
   the first instruction to be at the start of the text segment. This allows
   the kernel to be booted correctly by stock kexec-lite.

   MFC after:    2 weeks

Modified:
   head/sys/conf/ldscript.powerpc64

Modified: head/sys/conf/ldscript.powerpc64
==============================================================================
--- head/sys/conf/ldscript.powerpc64    Sat Nov 25 21:44:23 2017        
(r326202)
+++ head/sys/conf/ldscript.powerpc64    Sat Nov 25 21:45:51 2017        
(r326203)
@@ -10,7 +10,7 @@ SECTIONS
  {
    /* Read-only sections, merged into text segment: */

-  . = kernbase + SIZEOF_HEADERS;
+  . = kernbase;
    PROVIDE (begin = . - SIZEOF_HEADERS);

    .text      :
@@ -24,7 +24,10 @@ SECTIONS
    _etext = .;
    PROVIDE (etext = .);

-  .interp     : { *(.interp)   }
+  /* Do not emit PT_INTERP section, which confuses some loaders (kexec-lite) */
+  .interpX    : { *(.interp)   } : NONE
+  /DISCARD/   : { *(.interp)   }
+
    .hash          : { *(.hash)          }
    .dynsym        : { *(.dynsym)                }
    .dynstr        : { *(.dynstr)                }

This broke powerpc64 Book-E kernels.  It now puts a 1MB blank space
ahead of the kernel data (ELF header + 1MB - sizeof(header) of 0's),
meaning that now the kernel needs to be loaded by uboot 1MB earlier in
memory, rather than straight on the 64MB boundary as it has been.

- Justin


How on Earth? It doesn't do that on my system. What binutils are you using?
-Nathan
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to