[SLOF] [PATCH] Align stage2 TOC to 256 bytes for binutils 2.25.1.
Nikunj A Dadhania
nikunj at linux.vnet.ibm.com
Mon Oct 26 16:32:17 AEDT 2015
Alexey Kardashevskiy <aik at ozlabs.ru> writes:
> On 10/25/2015 01:27 AM, Segher Boessenkool wrote:
>> On Thu, Oct 22, 2015 at 12:45:53PM +1100, Alexey Kardashevskiy wrote:
>>> ( 700 ) Program Exception [ 4c ]
>>>
>>>
>>> R0 .. R7 R8 .. R15 R16 .. R23 R24 .. R31
>>> 000000007eae190c 0000000000000020 0000000000000000 0000000000000000
>>> 000000007ebf0d10 0000000000000001 0000000000000000 0000000000000000
>>> 000000007eaf8870 000000007eaeea40 0000000000000000 0000000000000000
>>> 000000007ebf0e00 0000000000000108 0000000000000000 0000000000000000
>>> 000000007ebf0f90 000000007fb977c8 0000000000000000 000000007ebf0f70
>>> 000000000000004c 0000000000000000 0000000000000000 0000000000000000
>>> 0000000000000000 0000000000000000 0000000000000000 0000000000000000
>>> 000000007dbe04f0 0000000000000000 0000000000000000 000000007eaeea50
>>>
>>> CR / XER LR / CTR SRR0 / SRR1 DAR / DSISR
>>> 80000004 000000007eae2918 000000007ebf0f90 0000000000000000
>>> 0000000000000000 000000007ebf0f90 8000000000083000 00000000
>>
>> Where does this 7ebf0f90 point? It seems to be on the stack, not likely
>> a good place to jump. The link register (7eae2918) will probably help
>> you find the code that did the wrong jump.
>>
>>
>> Segher
>>
>
> At least this is missing:
>
> diff --git a/clients/net-snk/client.lds b/clients/net-snk/client.lds
> index ab013d5..4deec66 100644
> --- a/clients/net-snk/client.lds
> +++ b/clients/net-snk/client.lds
> @@ -44,7 +44,7 @@ SECTIONS {
> *(.opd)
> }
>
> - . = ALIGN(0x10);
> + . = ALIGN(0x100);
>
> .got :
>
>
> what else is missing and just does not hit us yet...
$ find ./ -name "*.lds" -type f | xargs grep -in ALIGN
And filtering less than 256
./slof/OF.lds:27: . = ALIGN(8);
./slof/OF.lds:36: . = ALIGN(8);
./slof/OF.lds:51: . = ALIGN(8);
./board-js2x/llfw/stage2.lds:24: . = ALIGN(8);
./board-js2x/llfw/stage2.lds:36: . = ALIGN(8);
./board-js2x/llfw/stage2.lds:44: . = ALIGN(8);
./board-js2x/llfw/stage2.lds:53: . = ALIGN(8);
./clients/takeover/client.lds:46: . = ALIGN(8);
./clients/net-snk/client.lds:32: . = ALIGN(0x10);
./clients/net-snk/client.lds:41: . = ALIGN(0x10);
./clients/net-snk/client.lds:47: . = ALIGN(0x10);
./clients/net-snk/client.lds:65: . = ALIGN(0x10);
./clients/net-snk/client.lds:69: . = ALIGN(0x10);
./clients/net-snk/sec-client.lds:33: . = ALIGN(8);
./board-qemu/llfw/stage2.lds:28: . = ALIGN(8);
./board-qemu/llfw/stage2.lds:40: . = ALIGN(8);
./board-qemu/llfw/stage2.lds:48: . = ALIGN(8);
./board-qemu/llfw/stage2.lds:57: . = ALIGN(8);
./rtas/rtas.lds:36: . = ALIGN(4);
Regards
Nikunj
More information about the SLOF
mailing list