aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2000-09-23 10:06:15 +0000
committerAlan Modra <amodra@gmail.com>2000-09-23 10:06:15 +0000
commit959ee54136558b8c3441d2e7167699c6ffba401f (patch)
tree11db472da8578ede5801c1f94d032c08962abb79 /gas
parentd48ad4f3b63d6fba929d56d516e3aa4dda73f358 (diff)
downloadgdb-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/ChangeLog6
-rw-r--r--gas/config/tc-hppa.c10
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