aboutsummaryrefslogtreecommitdiff
path: root/gas/symbols.c
diff options
context:
space:
mode:
Diffstat (limited to 'gas/symbols.c')
-rw-r--r--gas/symbols.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/gas/symbols.c b/gas/symbols.c
index fd969f0..4b02b99 100644
--- a/gas/symbols.c
+++ b/gas/symbols.c
@@ -1807,15 +1807,17 @@ S_IS_DEFINED (s)
symbols or eliminated from expressions, because they may be
overridden by the linker. */
int
-S_FORCE_RELOC (s)
+S_FORCE_RELOC (s, strict)
symbolS *s;
+ int strict;
{
if (LOCAL_SYMBOL_CHECK (s))
return ((struct local_symbol *) s)->lsy_section == undefined_section;
- return ((s->bsym->flags & BSF_WEAK) != 0
- || (EXTERN_FORCE_RELOC
- && (s->bsym->flags & BSF_GLOBAL) != 0)
+ return ((strict
+ && ((s->bsym->flags & BSF_WEAK) != 0
+ || (EXTERN_FORCE_RELOC
+ && (s->bsym->flags & BSF_GLOBAL) != 0)))
|| s->bsym->section == undefined_section
|| bfd_is_com_section (s->bsym->section));
}