* 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.
This commit is contained in:
parent
2e94c45304
commit
d551a338e2
3 changed files with 19 additions and 9 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
2001-03-29 Hans-Peter Nilsson <hp@axis.com>
|
||||||
|
|
||||||
|
* 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.
|
||||||
|
|
||||||
2001-03-28 H.J. Lu <hjl@gnu.org>
|
2001-03-28 H.J. Lu <hjl@gnu.org>
|
||||||
|
|
||||||
* read.c (equals): Set to local for COFF only if it hasn't been
|
* read.c (equals): Set to local for COFF only if it hasn't been
|
||||||
|
|
|
@ -2570,7 +2570,7 @@ cris_get_pic_suffix (cPP, relocp, exprP)
|
||||||
/* Allow complex expressions as the constant part. It still
|
/* Allow complex expressions as the constant part. It still
|
||||||
has to be a assembly-time constant or there will be an
|
has to be a assembly-time constant or there will be an
|
||||||
error emitting the reloc. This makes the PIC qualifiers
|
error emitting the reloc. This makes the PIC qualifiers
|
||||||
idempotent; foo:GOT+32 == foo+32:GOT. The former we
|
idempotent; foo:GOTOFF+32 == foo+32:GOTOFF. The former we
|
||||||
recognize here; the latter is parsed in the incoming
|
recognize here; the latter is parsed in the incoming
|
||||||
expression. */
|
expression. */
|
||||||
exprP->X_add_symbol = make_expr_symbol (exprP);
|
exprP->X_add_symbol = make_expr_symbol (exprP);
|
||||||
|
|
|
@ -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
|
/* 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.
|
for weak symbols - it should be postponed to the link stage or later.
|
||||||
Also don't adjust fixups for global symbols for ELF. */
|
Also don't adjust fixups for global symbols for ELF, and no relocs
|
||||||
#define tc_fix_adjustable(X) \
|
where the original symbol name must be kept. */
|
||||||
(((X)->fx_addsy == NULL \
|
#define tc_fix_adjustable(X) \
|
||||||
|| (! S_IS_WEAK ((X)->fx_addsy) \
|
(((X)->fx_addsy == NULL \
|
||||||
&& ! (OUTPUT_FLAVOR == bfd_target_elf_flavour \
|
|| (! S_IS_WEAK ((X)->fx_addsy) \
|
||||||
&& S_IS_EXTERNAL ((X)->fx_addsy)))) \
|
&& ! (OUTPUT_FLAVOR == bfd_target_elf_flavour \
|
||||||
&& (X)->fx_r_type != BFD_RELOC_VTABLE_INHERIT \
|
&& S_IS_EXTERNAL ((X)->fx_addsy)))) \
|
||||||
&& (X)->fx_r_type != BFD_RELOC_VTABLE_ENTRY)
|
&& (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
|
/* When we have fixups against constant expressions, we get a GAS-specific
|
||||||
section symbol at no extra charge for obscure reasons in
|
section symbol at no extra charge for obscure reasons in
|
||||||
|
|
Loading…
Reference in a new issue