[committed, PATCH] x86: Properly check building shared library
H.J. Lu
hjl.tools@gmail.com
Wed Feb 14 05:13:00 GMT 2018
More information about the Binutils mailing list
Wed Feb 14 05:13:00 GMT 2018
- Previous message (by thread): [committed, PATCH] x86: Properly check building shared library
- Next message (by thread): [committed, PATCH] x86: Properly check building shared library
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Tue, Feb 13, 2018 at 6:11 PM, Alan Modra <amodra@gmail.com> wrote: > On Tue, Feb 13, 2018 at 02:31:43PM -0800, H.J. Lu wrote: >> If a symbol is not defined in a regular file, and we are not generating >> a shared library, then set the symbol to its location in the .plt. This >> is required to make function pointers compare as equal between the normal >> executable and the shared library. > > I'm curious as to why this is necessary, in case other targets need > the same treatment. Normally a PIE is built from position independent > code, and thus addresses of functions are loaded from the GOT. That > means there is no need to use any tricks to avoid dynamic text relocs. > This is true in most cases. However, you can use PC-relative relocation to compute function address without GOT. Here is a patch for https://sourceware.org/bugzilla/show_bug.cgi?id=22842 with testcases in assembly for i386 and x86-64. I think you can create similar testcases for other targets. I will check it in tomorrow. -- H.J. -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-x86-64-Use-PLT-address-for-PC-relative-reloc.patch Type: text/x-patch Size: 15021 bytes Desc: not available URL: <https://sourceware.org/pipermail/binutils/attachments/20180214/1a714f5f/attachment.bin>
- Previous message (by thread): [committed, PATCH] x86: Properly check building shared library
- Next message (by thread): [committed, PATCH] x86: Properly check building shared library
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list