From: Paul Brook Date: Sat, 1 Apr 2006 22:39:54 +0000 (+0000) Subject: 2005-04-01 Paul Brook X-Git-Tag: binutils-csl-sourcerygxx-3_4_4-17~7 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=736976bbb98a16df628d8d7406d80a1c86cf755e;p=thirdparty%2Fbinutils-gdb.git 2005-04-01 Paul Brook * config/tc-arm.c (arm_fix_adjustable): Return 0 for function symbols. --- diff --git a/ChangeLog.csl b/ChangeLog.csl index b139379d734..75d7adb9ccf 100644 --- a/ChangeLog.csl +++ b/ChangeLog.csl @@ -1,3 +1,7 @@ +2005-04-01 Paul Brook + + * config/tc-arm.c (arm_fix_adjustable): Return 0 for function symbols. + 2006-03-30 Mark Mitchell * libiberty/configure.ac: Add cygpath for mingw hosts. diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index 5af2cd4efbd..05158eec024 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -12614,9 +12614,9 @@ arm_fix_adjustable (fixS * fixP) #endif #ifdef OBJ_ELF -/* Relocations against Thumb function names must be left unadjusted, - so that the linker can use this information to correctly set the - bottom bit of their addresses. The MIPS version of this function +/* Relocations against function names must be left unadjusted, + so that the linker can use this information to generate interworking + stubs. The MIPS version of this function also prevents relocations that are mips-16 specific, but I do not know why it does this. @@ -12633,6 +12633,10 @@ arm_fix_adjustable (fixS * fixP) if (fixP->fx_addsy == NULL) return 1; + /* Preserve relocations against symbols with function type. */ + if (symbol_get_bfdsym (fixP->fx_addsy)->flags & BSF_FUNCTION) + return 0; + if (THUMB_IS_FUNC (fixP->fx_addsy) && fixP->fx_subsy == NULL) return 0;