svn commit: r326203 - head/sys/conf
Nathan Whitehorn
nwhitehorn at freebsd.org
Tue Nov 28 16:14:07 UTC 2017
On 11/28/17 07:27, Justin Hibbits wrote:
> On Sat, Nov 25, 2017 at 3:45 PM, Nathan Whitehorn
> <nwhitehorn at 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
More information about the svn-src-all
mailing list