[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