aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/config/tc-sparc.c2
-rw-r--r--gas/config/tc-sparc.h4
2 files changed, 5 insertions, 1 deletions
diff --git a/gas/config/tc-sparc.c b/gas/config/tc-sparc.c
index 40bbc49..a7bcae6 100644
--- a/gas/config/tc-sparc.c
+++ b/gas/config/tc-sparc.c
@@ -3144,6 +3144,8 @@ tc_gen_reloc (section, fixp)
#define GOT_NAME "__GLOBAL_OFFSET_TABLE_"
#endif
+ /* This code must be parallel to the OBJ_ELF tc_fix_adjustable. */
+
if (sparc_pic_code)
{
switch (code)
diff --git a/gas/config/tc-sparc.h b/gas/config/tc-sparc.h
index 2435d72..91fda22 100644
--- a/gas/config/tc-sparc.h
+++ b/gas/config/tc-sparc.h
@@ -123,7 +123,9 @@ extern int elf32_sparc_force_relocation PARAMS ((struct fix *));
/* Keep relocations against global symbols. Don't turn them into
relocations against sections. This is required for the dynamic
linker to operate properly. When generating PIC, we need to keep
- any non PC relative reloc. */
+ any non PC relative reloc. The PIC part of this test must be
+ parallel to the code in tc_gen_reloc which converts relocations to
+ GOT relocations. */
#define tc_fix_adjustable(FIX) \
(! S_IS_EXTERNAL ((FIX)->fx_addsy) \
&& ! S_IS_WEAK ((FIX)->fx_addsy) \