diff options
-rw-r--r-- | gas/config/tc-sparc.c | 2 | ||||
-rw-r--r-- | gas/config/tc-sparc.h | 4 |
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) \ |