aboutsummaryrefslogtreecommitdiff
path: root/libobjc/THREADS
diff options
context:
space:
mode:
authorIain Sandoe <iain@sandoe.co.uk>2020-03-22 09:27:05 +0000
committerIain Sandoe <iain@sandoe.co.uk>2020-03-22 09:30:46 +0000
commit85e10e4f0fa5c6b1a9f3caf7d9cab28ef8490a83 (patch)
tree87c00c7f407beefac816c470faf5a860a98733ba /libobjc/THREADS
parent88d7d0ce8fa4643923958497f4b2a49db8d32611 (diff)
downloadgcc-85e10e4f0fa5c6b1a9f3caf7d9cab28ef8490a83.zip
gcc-85e10e4f0fa5c6b1a9f3caf7d9cab28ef8490a83.tar.gz
gcc-85e10e4f0fa5c6b1a9f3caf7d9cab28ef8490a83.tar.bz2
Darwin: Fix i686 bootstrap when the assembler supports GOTOFF in data.
When we use an assembler that supports " .long XX@GOTOFF", the current combination of configuration parameters and conditional compilation (when building an i686-darwin compiler with mdynamic-no-pic) assume that it's OK to put jump tables in the .const section. However, when we encounter a weak function with a jump table, this produces relocations that directly access the weak symbol section from the .const section - which is deemed illegal by the linker (since that would mean that the weak symbol could not be replaced). Arguably, this is a limitation (maybe even a bug) in the linker - but it seems that we'd have to change the ABI to fix it - since it would require some annotation (maybe just using a special section for the jump tables) to tell the linker that this specific circumstance is OK because the direct access to the weak symbol can only occur from that symbol itself. The fix is to force jump tables into the text section for all X86 Darwin versions (PIC code already had this change). gcc/ChangeLog: 2020-03-22 Iain Sandoe <iain@sandoe.co.uk> * config/i386/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Remove references to Darwin. * config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION): Define this unconditionally and comment on why.
Diffstat (limited to 'libobjc/THREADS')
0 files changed, 0 insertions, 0 deletions