PING: [PATCH] Load external function address via GOT slot

H.J. Lu hjl.tools@gmail.com
Mon May 30 07:22:00 GMT 2016


On Mon, May 9, 2016 at 10:37 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Fri, Apr 22, 2016 at 6:03 AM, Uros Bizjak <ubizjak@gmail.com> wrote:
>> On Fri, Apr 22, 2016 at 2:54 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
>>> For -fno-plt, we load the external function address via the GOT slot
>>> so that linker won't create an PLT entry for extern function address.
>>>
>>> Tested on x86-64. I also built GCC with -fno-plt.  It removes 99% PLT
>>> entries.  OK for trunk?
>>>
>>> H.J.
>>> --
>>> gcc/
>>>
>>>         PR target/pr67400
>>>         * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): New.
>>>         * config/i386/i386.c (ix86_force_load_from_GOT_p): New function.
>>>         (ix86_legitimate_address_p): Allow UNSPEC_GOTPCREL for
>>>         ix86_force_load_from_GOT_p returns true.
>>>         (ix86_print_operand_address): Support UNSPEC_GOTPCREL if
>>>         ix86_force_load_from_GOT_p returns true.
>>>         (ix86_expand_move): Load the external function address via the
>>>         GOT slot if ix86_force_load_from_GOT_p returns true.
>>>         * config/i386/predicates.md (x86_64_immediate_operand): Return
>>>         false if ix86_force_load_from_GOT_p returns true.
>>>
>>> gcc/testsuite/
>>>
>>>         PR target/pr67400
>>>         * gcc.target/i386/pr67400-1.c: New test.
>>>         * gcc.target/i386/pr67400-2.c: Likewise.
>>>         * gcc.target/i386/pr67400-3.c: Likewise.
>>>         * gcc.target/i386/pr67400-4.c: Likewise.
>>
>> Please get someone that knows this linker magic to review the
>> functionality first. Maybe Jakub can help?
>>
>
> Hi Jakub,
>
> Can you review this patch?
>
> Thanks.

PING.

-- 
H.J.



More information about the Gcc-patches mailing list