diff options
author | Dave Anglin <dave.anglin@nrc.ca> | 2005-11-25 02:08:22 +0000 |
---|---|---|
committer | Dave Anglin <dave.anglin@nrc.ca> | 2005-11-25 02:08:22 +0000 |
commit | 88856d20cbdcbfdb388a4568aced52ce2503f43b (patch) | |
tree | 5e1663b8d767abe16b57b8c11f48d441a01e1828 | |
parent | 992e649a8b98b0089c9d1badd1fc01153b88548d (diff) | |
download | gdb-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/ChangeLog | 6 | ||||
-rw-r--r-- | gas/config/tc-hppa.c | 19 | ||||
-rw-r--r-- | gas/testsuite/ChangeLog | 7 | ||||
-rw-r--r-- | gas/testsuite/gas/all/redef2.d | 4 | ||||
-rw-r--r-- | gas/testsuite/gas/all/weakref1.d | 20 | ||||
-rw-r--r-- | gas/testsuite/gas/hppa/reloc/reloc.exp | 6 |
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 } |