* config/tc-hppa.h (TC_FORCE_RELOCATION_SECTION): For ELF, allow

subtraction of two syms without emitting a relocation.
* config/tc-hppa.c (hppa_force_relocation): Force relocations for
global or weak symbols.
This commit is contained in:
Alan Modra 2000-09-18 12:36:03 +00:00
parent 25f7275229
commit 9e75421134
3 changed files with 20 additions and 1 deletions

View file

@ -1,3 +1,12 @@
2000-09-18 Alan Modra <alan@linuxcare.com.au>
* config/tc-hppa.h (TC_FORCE_RELOCATION_SECTION): Allow
subtraction of two syms without emitting a relocation.
From David Huggins-Daines <dhd@linuxcare.com>
* config/tc-hppa.c (hppa_force_relocation): Force relocations for
global or weak symbols.
2000-09-15 Kazu Hirata <kazu@hxi.com>
* config/tc-h8300.h: Fix formatting.

View file

@ -8416,9 +8416,15 @@ hppa_force_relocation (fixp)
return 1;
#endif
/* Ensure we emit a relocation for global symbols so that dynamic
linking works. */
if (fixp->fx_addsy && (S_IS_EXTERNAL (fixp->fx_addsy)
|| S_IS_WEAK (fixp->fx_addsy)))
return 1;
/* It is necessary to force PC-relative calls/jumps to have a relocation
entry if they're going to need either a argument relocation or long
call stub. FIXME. Can't we need the same for absolute calls? */
call stub. */
if (fixp->fx_pcrel && fixp->fx_addsy
&& (arg_reloc_stub_needed (symbol_arg_reloc_info (fixp->fx_addsy),
hppa_fixp->fx_arg_reloc)))

View file

@ -145,6 +145,10 @@ int hppa_fix_adjustable PARAMS((struct fix *));
#endif
#ifdef OBJ_ELF
/* It's OK to subtract two symbols in the same section without
emitting a relocation. */
#define TC_FORCE_RELOCATION_SECTION(FIXP, SEC) 0
/* Handle .type psuedo. Given a type string of `millicode', set the
internal elf symbol type to STT_PARISC_MILLI, and return
BSF_FUNCTION for the BFD symbol type. */