[PATCH] powerpc: fix ifunc-sel.h with GCC 6
Tulio Magno Quites Machado Filho
tuliom@linux.vnet.ibm.com
Tue Aug 2 14:44:00 GMT 2016
Aurelien Jarno <aurelien@aurel32.net> writes:
> On 2016-07-21 14:48, Tulio Magno Quites Machado Filho wrote:
>> Aurelien Jarno <aurelien@aurel32.net> writes:
>>
>> > On 32-bit PowerPC GCC 6 always saves the PIC register on the stack in
>> > the prologue and adjust the stack in the epilogue. It is therefore not
>> > possible anymore to just exit the function in the inline asm code,
>> > otherwise it corrupts the stack pointer. This causes the following tests
>> > to fail when using GCC 6:
>> >
>> > FAIL: elf/ifuncmain1
>> > FAIL: elf/ifuncmain1pic
>> > FAIL: elf/ifuncmain1picstatic
>> > FAIL: elf/ifuncmain1pie
>> > FAIL: elf/ifuncmain1staticpic
>> > FAIL: elf/ifuncmain1staticpie
>> > FAIL: elf/ifuncmain1vis
>> > FAIL: elf/ifuncmain1vispic
>> > FAIL: elf/ifuncmain1vispie
>> > FAIL: elf/ifuncmain2pic
>> > FAIL: elf/ifuncmain2picstatic
>> > FAIL: elf/ifuncmain3
>> > FAIL: elf/ifuncmain4picstatic
>> > FAIL: elf/ifuncmain5
>> > FAIL: elf/ifuncmain5picstatic
>> > FAIL: elf/ifuncmain5staticpic
>> >
>> > The solution is to replace the beqlr instructions by a beq to the end
>> > of the inline asm code. This fixes all the above failures.
>> >
>> > ChangeLog:
>> > * sysdeps/powerpc/ifunc-sel.h (ifunc_sel): Replace beqlr instructions
>> > by beq instructions jumping to the end of the function.
>>
>> I'd prefer to remove this file.
>>
>> Alan, do we still need this file?
>
> Now that 2.25 is open for development, what should we do? I think we can
> get the patch in, and try to remove this file in a second step.
I agree. As Alan explained, we still need it.
Thanks!
--
Tulio Magno
More information about the Libc-alpha
mailing list