diff options
author | Andreas Schwab <schwab@linux-m68k.org> | 2002-02-13 11:17:48 +0000 |
---|---|---|
committer | Andreas Schwab <schwab@linux-m68k.org> | 2002-02-13 11:17:48 +0000 |
commit | 3bf057fadc5fa2788165c886c8544f1539cb89b1 (patch) | |
tree | 6f3b6b5f210e29ce3bbe641039246ad21f304154 | |
parent | bf36db1824820273d5766b88bdcd75bd51e05f08 (diff) | |
download | gdb-3bf057fadc5fa2788165c886c8544f1539cb89b1.zip gdb-3bf057fadc5fa2788165c886c8544f1539cb89b1.tar.gz gdb-3bf057fadc5fa2788165c886c8544f1539cb89b1.tar.bz2 |
* config/tc-i386.c (tc_i386_fix_adjustable): Don't adjust
pc-relative relocations to merge sections in 64-bit mode.
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-i386.c | 7 |
2 files changed, 11 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 27faf64..80f907e 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2002-02-13 Andreas Schwab <schwab@suse.de> + + * config/tc-i386.c (tc_i386_fix_adjustable): Don't adjust + pc-relative relocations to merge sections in 64-bit mode. + 2002-02-13 Ben Elliston <bje@redhat.com> * NEWS: Document floating point number handling in gasp. diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index cce25d8..8752390 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -1178,7 +1178,12 @@ tc_i386_fix_adjustable (fixP) /* Prevent all adjustments to global symbols, or else dynamic linking will not work correctly. */ if (S_IS_EXTERNAL (fixP->fx_addsy) - || S_IS_WEAK (fixP->fx_addsy)) + || S_IS_WEAK (fixP->fx_addsy) + /* Don't adjust pc-relative references to merge sections in 64-bit + mode. */ + || (use_rela_relocations + && (S_GET_SEGMENT (fixP->fx_addsy)->flags & SEC_MERGE) != 0 + && fixP->fx_pcrel)) return 0; #endif /* adjust_reloc_syms doesn't know about the GOT. */ |