From: Andreas Schwab Date: Wed, 13 Feb 2002 11:17:48 +0000 (+0000) Subject: * config/tc-i386.c (tc_i386_fix_adjustable): Don't adjust X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3bf057fadc5fa2788165c886c8544f1539cb89b1;p=binutils-gdb.git * config/tc-i386.c (tc_i386_fix_adjustable): Don't adjust pc-relative relocations to merge sections in 64-bit mode. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index 27faf64e168..80f907e17aa 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2002-02-13 Andreas Schwab + + * 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 * NEWS: Document floating point number handling in gasp. diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index cce25d8b332..8752390922b 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. */