https://sourceware.org/bugzilla/show_bug.cgi?id=33260

Fangrui Song <i at maskray dot me> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |i at maskray dot me

--- Comment #9 from Fangrui Song <i at maskray dot me> ---
I believe binding protected symbols locally should be the default behavior,
without requiring an ld -z option.
For clarity, other linkers or ports of GNU ld should avoid introducing -z
[no]indirect-extern-access or the .note.gnu.property complexity.

That said, I'm pleased there's a way to address the previous problematic
behavior for x86-64.

`cc -fPIC -DUSE_PROTECTED -O2 -fvisibility=hidden -mno-direct-extern-access
-shared -o a.so a.c b.c -fuse-ld=lld` doesn't have the extra R_X86_64_64
dynamic relocations.

On the GCC side, we should drop `HAVE_LD_PIE_COPYRELOC` and the x86-64 default
to GOT indirection for external data symbols in -fpie mode.
(https://maskray.me/blog/2021-01-09-copy-relocations-canonical-plt-entries-and-protected)

gold is known to miss some protected preemptibility
https://sourceware.org/bugzilla/show_bug.cgi?id=19823

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Reply via email to