[gold patch committed] Fix x86/x86_64 TLSDESC with -z relro
Ian Lance Taylor
iant@google.com
Mon Aug 2 10:09:00 GMT 2010
More information about the Binutils mailing list
Mon Aug 2 10:09:00 GMT 2010
- Previous message (by thread): ld: EXTERN/--unresolved & unresolved Symbols
- Next message (by thread): p_vaddr_offset should affect p_offset
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
The TLSDESC relocations used with -mtls-dialect=gnu2 did not work in gold when using -z relro. The problem was that the GOT entries were created in the regular .got section, which, when using -z relro, is marked read-only after relocations are complete. The TLSDESC relocations are resolved lazily, so attempting to set them while the program was running failed. I committed this path to fix the problem by moving the GOT entries into the .got.plt section. Ian 2010-08-02 Ian Lance Taylor <iant@google.com> * i386.cc (class Target_i386): Add got_tlsdesc_ field. (Target_i386::Target_i386):: Initialize got_tlsdesc_. (Target_i386::got_tlsdesc_section): New function. (Target_i386::got_section): Create space for GOT entries for TLSDESC relocations. (Target_i386::Scan::local): Use TLSDESC GOT for unoptimized R_386_TLS_GOTDESC. (Target_i386::Scan::global): Likewise. (Target_i386::Relocate::relocate_tls): Adjust GOT offset when using TLSDESC GOT. * x86_64.cc (class Target_x86_64): Add got_tlsdesc_ field. (Target_x86_64::Target_x86_64):: Initialize got_tlsdesc_. (Target_x86_64::got_tlsdesc_section): New function. (Target_x86_64::got_section): Create space for GOT entries for TLSDESC relocations. (Target_x86_64::Scan::local): Use TLSDESC GOT for unoptimized R_386_TLS_GOTDESC. (Target_x86_64::Scan::global): Likewise. (Target_x86_64::Relocate::relocate_tls): Adjust GOT offset when using TLSDESC GOT. -------------- next part -------------- A non-text attachment was scrubbed... Name: foo.patch Type: text/x-diff Size: 11715 bytes Desc: TLSDESC URL: <https://sourceware.org/pipermail/binutils/attachments/20100802/f54e98b3/attachment.bin>
- Previous message (by thread): ld: EXTERN/--unresolved & unresolved Symbols
- Next message (by thread): p_vaddr_offset should affect p_offset
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list