diff options
author | Alan Modra <amodra@gmail.com> | 2000-09-23 10:06:15 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2000-09-23 10:06:15 +0000 |
commit | 959ee54136558b8c3441d2e7167699c6ffba401f (patch) | |
tree | 11db472da8578ede5801c1f94d032c08962abb79 /gas | |
parent | d48ad4f3b63d6fba929d56d516e3aa4dda73f358 (diff) | |
download | gdb-959ee54136558b8c3441d2e7167699c6ffba401f.zip gdb-959ee54136558b8c3441d2e7167699c6ffba401f.tar.gz gdb-959ee54136558b8c3441d2e7167699c6ffba401f.tar.bz2 |
* config/tc-hppa.c (hppa_fix_adjustable): Do the external and weak
checks only for ELF.
(hppa_force_relocation): Likewise.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 6 | ||||
-rw-r--r-- | gas/config/tc-hppa.c | 10 |
2 files changed, 11 insertions, 5 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 1da1199..f117694 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2000-09-23 Alan Modra <alan@linuxcare.com.au> + + * config/tc-hppa.c (hppa_fix_adjustable): Do the external and weak + checks only for ELF. + (hppa_force_relocation): Likewise. + 2000-09-22 Jim Wilson <wilson@cygnus.com> * config/tc-ia64.c (dv_sem): Add "stop". diff --git a/gas/config/tc-hppa.c b/gas/config/tc-hppa.c index dcaae9b..54e651a 100644 --- a/gas/config/tc-hppa.c +++ b/gas/config/tc-hppa.c @@ -8310,6 +8310,10 @@ hppa_fix_adjustable (fixp) if (fixp->fx_r_type == (int) R_PARISC_GNU_VTINHERIT || fixp->fx_r_type == (int) R_PARISC_GNU_VTENTRY) return 0; + + if (fixp->fx_addsy && (S_IS_EXTERNAL (fixp->fx_addsy) + || S_IS_WEAK (fixp->fx_addsy))) + return 0; #endif /* Reject reductions of symbols in sym1-sym2 expressions when @@ -8372,10 +8376,6 @@ hppa_fix_adjustable (fixp) || hppa_fix->fx_r_field == e_lpsel) return 0; - if (fixp->fx_addsy && (S_IS_EXTERNAL (fixp->fx_addsy) - || S_IS_WEAK (fixp->fx_addsy))) - return 0; - /* Reject absolute calls (jumps). */ if (hppa_fix->fx_r_type == R_HPPA_ABS_CALL) return 0; @@ -8414,13 +8414,13 @@ hppa_force_relocation (fixp) if (fixp->fx_r_type == (int) R_PARISC_GNU_VTINHERIT || fixp->fx_r_type == (int) R_PARISC_GNU_VTENTRY) 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; +#endif /* 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 |