diff options
author | Hans-Peter Nilsson <hp@axis.com> | 2001-03-29 02:29:38 +0000 |
---|---|---|
committer | Hans-Peter Nilsson <hp@axis.com> | 2001-03-29 02:29:38 +0000 |
commit | d551a338e2a48edc7f970822cb980954f7db3ee2 (patch) | |
tree | c7360c9c7acdaca8fc03e228e646a7cef01e187d /gas/config/tc-cris.h | |
parent | 2e94c4530460ddbbe83590c7ea01e1128e36c126 (diff) | |
download | gdb-d551a338e2a48edc7f970822cb980954f7db3ee2.zip gdb-d551a338e2a48edc7f970822cb980954f7db3ee2.tar.gz gdb-d551a338e2a48edc7f970822cb980954f7db3ee2.tar.bz2 |
* config/tc-cris.h (tc_fix_adjustable): Allow only
BFD_RELOC_CRIS_32_GOTREL of the PIC relocs.
* config/tc-cris.c (cris_get_pic_suffix): Correct reloc used in
example to valid.
Diffstat (limited to 'gas/config/tc-cris.h')
-rw-r--r-- | gas/config/tc-cris.h | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/gas/config/tc-cris.h b/gas/config/tc-cris.h index 8f6d717..3c3bb5a 100644 --- a/gas/config/tc-cris.h +++ b/gas/config/tc-cris.h @@ -106,14 +106,17 @@ extern int md_cris_force_relocation PARAMS ((struct fix *)); /* This is really a workaround for a bug in write.c that resolves relocs for weak symbols - it should be postponed to the link stage or later. - Also don't adjust fixups for global symbols for ELF. */ -#define tc_fix_adjustable(X) \ - (((X)->fx_addsy == NULL \ - || (! S_IS_WEAK ((X)->fx_addsy) \ - && ! (OUTPUT_FLAVOR == bfd_target_elf_flavour \ - && S_IS_EXTERNAL ((X)->fx_addsy)))) \ - && (X)->fx_r_type != BFD_RELOC_VTABLE_INHERIT \ - && (X)->fx_r_type != BFD_RELOC_VTABLE_ENTRY) + Also don't adjust fixups for global symbols for ELF, and no relocs + where the original symbol name must be kept. */ +#define tc_fix_adjustable(X) \ + (((X)->fx_addsy == NULL \ + || (! S_IS_WEAK ((X)->fx_addsy) \ + && ! (OUTPUT_FLAVOR == bfd_target_elf_flavour \ + && S_IS_EXTERNAL ((X)->fx_addsy)))) \ + && (X)->fx_r_type != BFD_RELOC_VTABLE_INHERIT \ + && (X)->fx_r_type != BFD_RELOC_VTABLE_ENTRY \ + && (! IS_CRIS_PIC_RELOC ((X)->fx_r_type) \ + || (X)->fx_r_type == BFD_RELOC_CRIS_32_GOTREL)) /* When we have fixups against constant expressions, we get a GAS-specific section symbol at no extra charge for obscure reasons in |