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"