[SLOF] [PATCH] Align stage2 TOC to 256 bytes for binutils 2.25.1.
Alexey Kardashevskiy
aik at ozlabs.ru
Mon Oct 26 16:58:18 AEDT 2015
On 10/26/2015 04:32 PM, Nikunj A Dadhania wrote:
> 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
No, this is only about .toc, I received a lesson from Paul (Alan got
another one :) ) and will rework the original patch. Here is some explanation:
https://sourceware.org/ml/binutils/2015-10/msg00124.html
>
> ./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
>
--
Alexey
More information about the SLOF
mailing list