aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Anglin <dave.anglin@nrc.ca>2005-11-25 02:08:22 +0000
committerDave Anglin <dave.anglin@nrc.ca>2005-11-25 02:08:22 +0000
commit88856d20cbdcbfdb388a4568aced52ce2503f43b (patch)
tree5e1663b8d767abe16b57b8c11f48d441a01e1828
parent992e649a8b98b0089c9d1badd1fc01153b88548d (diff)
downloadgdb-88856d20cbdcbfdb388a4568aced52ce2503f43b.zip
gdb-88856d20cbdcbfdb388a4568aced52ce2503f43b.tar.gz
gdb-88856d20cbdcbfdb388a4568aced52ce2503f43b.tar.bz2
Bug gas/1896
* config/tc-hppa.c (hppa_fix_adjustable): Don't reject for reduction R_HPPA relocations that are 32-bits wide. * gas/all/redef2.d: Allow "$DATA$" as well as ".data" in matches. * gas/all/weakref1.d: Allow "$CODE$" as well as ".text" in matches. * gas/hppa/reloc/reloc.exp: Adjust regexp for new output.
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/config/tc-hppa.c19
-rw-r--r--gas/testsuite/ChangeLog7
-rw-r--r--gas/testsuite/gas/all/redef2.d4
-rw-r--r--gas/testsuite/gas/all/weakref1.d20
-rw-r--r--gas/testsuite/gas/hppa/reloc/reloc.exp6
6 files changed, 30 insertions, 32 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 04d9727..9044220 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2005-11-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ Bug gas/1896
+ * config/tc-hppa.c (hppa_fix_adjustable): Don't reject for reduction
+ R_HPPA relocations that are 32-bits wide.
+
2005-11-23 Daniel Jacobowitz <dan@codesourcery.com>
Thiemo Seufer <ths@networkno.de>
diff --git a/gas/config/tc-hppa.c b/gas/config/tc-hppa.c
index bcf5654..8ae5a57 100644
--- a/gas/config/tc-hppa.c
+++ b/gas/config/tc-hppa.c
@@ -8396,12 +8396,8 @@ pa_lsym (unused)
any fixup which creates entries in the DLT (eg they use "T" field
selectors).
- Reject reductions involving symbols with external scope; such
- reductions make life a living hell for object file editors.
-
- FIXME. Also reject R_HPPA relocations which are 32bits wide in
- the code space. The SOM BFD backend doesn't know how to pull the
- right bits out of an instruction. */
+ ??? Reject reductions involving symbols with external scope; such
+ reductions make life a living hell for object file editors. */
int
hppa_fix_adjustable (fixp)
@@ -8414,17 +8410,6 @@ hppa_fix_adjustable (fixp)
hppa_fix = (struct hppa_fix_struct *) fixp->tc_fix_data;
-#ifdef OBJ_SOM
- /* Reject reductions of symbols in 32bit relocs unless they
- are fake labels. */
- if (fixp->fx_r_type == R_HPPA
- && hppa_fix->fx_r_format == 32
- && strncmp (S_GET_NAME (fixp->fx_addsy),
- FAKE_LABEL_NAME,
- strlen (FAKE_LABEL_NAME)))
- return 0;
-#endif
-
#ifdef OBJ_ELF
/* LR/RR selectors are implicitly used for a number of different relocation
types. We must ensure that none of these types are adjusted (see below)
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index a2a665e..ea982ef 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,10 @@
+2005-11-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ Bug gas/1896
+ * gas/all/redef2.d: Allow "$DATA$" as well as ".data" in matches.
+ * gas/all/weakref1.d: Allow "$CODE$" as well as ".text" in matches.
+ * gas/hppa/reloc/reloc.exp: Adjust regexp for new output.
+
2005-11-23 Daniel Jacobowitz <dan@codesourcery.com>
Thiemo Seufer <ths@networkno.de>
diff --git a/gas/testsuite/gas/all/redef2.d b/gas/testsuite/gas/all/redef2.d
index 328f7e5..244d33d 100644
--- a/gas/testsuite/gas/all/redef2.d
+++ b/gas/testsuite/gas/all/redef2.d
@@ -5,9 +5,9 @@
RELOCATION RECORDS FOR .*
.*
-0+00.*(here|\.data)
+0+00.*(here|\.data|\$DATA\$)
0+08.*xtrn
-0+10.*(sym|\.data(\+0x0+10)?)
+0+10.*(sym|(\.data|\$DATA\$)(\+0x0+10)?)
#...
Contents of section (\.data|\$DATA\$):
0000 00000000 11111111 00000000 22222222[ ]+................[ ]*
diff --git a/gas/testsuite/gas/all/weakref1.d b/gas/testsuite/gas/all/weakref1.d
index dadd280..ee37d97 100644
--- a/gas/testsuite/gas/all/weakref1.d
+++ b/gas/testsuite/gas/all/weakref1.d
@@ -83,14 +83,14 @@ OFFSET +TYPE +VALUE *
[0-9a-f]+ [^ ]* +uh8
[0-9a-f]+ [^ ]* +uh9
[0-9a-f]+ [^ ]* +uh9
-[0-9a-f]+ [^ ]* +(ld1|\.text)(\+0x[0-9a-f]+)?
-[0-9a-f]+ [^ ]* +(ld2|\.text)(\+0x[0-9a-f]+)?
-[0-9a-f]+ [^ ]* +(ld3|\.text)(\+0x[0-9a-f]+)?
-[0-9a-f]+ [^ ]* +(ld4|\.text)(\+0x[0-9a-f]+)?
+[0-9a-f]+ [^ ]* +(ld1|\.text|\$CODE\$)(\+0x[0-9a-f]+)?
+[0-9a-f]+ [^ ]* +(ld2|\.text|\$CODE\$)(\+0x[0-9a-f]+)?
+[0-9a-f]+ [^ ]* +(ld3|\.text|\$CODE\$)(\+0x[0-9a-f]+)?
+[0-9a-f]+ [^ ]* +(ld4|\.text|\$CODE\$)(\+0x[0-9a-f]+)?
[0-9a-f]+ [^ ]* +ud5
-[0-9a-f]+ [^ ]* +(gd6|\.text)(\+0x[0-9a-f]+)?
-[0-9a-f]+ [^ ]* +(gd7|\.text)(\+0x[0-9a-f]+)?
-[0-9a-f]+ [^ ]* +(ld8|\.text)(\+0x[0-9a-f]+)?
-[0-9a-f]+ [^ ]* +(ld8|\.text)(\+0x[0-9a-f]+)?
-[0-9a-f]+ [^ ]* +(ld9|\.text)(\+0x[0-9a-f]+)?
-[0-9a-f]+ [^ ]* +(ld9|\.text)(\+0x[0-9a-f]+)?
+[0-9a-f]+ [^ ]* +(gd6|\.text|\$CODE\$)(\+0x[0-9a-f]+)?
+[0-9a-f]+ [^ ]* +(gd7|\.text|\$CODE\$)(\+0x[0-9a-f]+)?
+[0-9a-f]+ [^ ]* +(ld8|\.text|\$CODE\$)(\+0x[0-9a-f]+)?
+[0-9a-f]+ [^ ]* +(ld8|\.text|\$CODE\$)(\+0x[0-9a-f]+)?
+[0-9a-f]+ [^ ]* +(ld9|\.text|\$CODE\$)(\+0x[0-9a-f]+)?
+[0-9a-f]+ [^ ]* +(ld9|\.text|\$CODE\$)(\+0x[0-9a-f]+)?
diff --git a/gas/testsuite/gas/hppa/reloc/reloc.exp b/gas/testsuite/gas/hppa/reloc/reloc.exp
index 652e256..c1b9fa9 100644
--- a/gas/testsuite/gas/hppa/reloc/reloc.exp
+++ b/gas/testsuite/gas/hppa/reloc/reloc.exp
@@ -636,9 +636,9 @@ proc do_apply_test {} {
while 1 {
expect {
- -re "^ +\[0-9\]+ 0000 00000000\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0004 00000000\[^\n\]*\n" { set x [expr $x+1] }
- -re "^ +\[0-9\]+ 0008 00000000\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0000 00000044\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0004 00000058\[^\n\]*\n" { set x [expr $x+1] }
+ -re "^ +\[0-9\]+ 0008 0000006C\[^\n\]*\n" { set x [expr $x+1] }
-re "\[^\n\]*\n" { }
timeout { perror "timeout\n"; break }
eof { break }