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.
This commit is contained in:
Dave Anglin 2005-11-25 02:08:22 +00:00
parent 992e649a8b
commit 88856d20cb
6 changed files with 30 additions and 32 deletions

View File

@ -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> 2005-11-23 Daniel Jacobowitz <dan@codesourcery.com>
Thiemo Seufer <ths@networkno.de> Thiemo Seufer <ths@networkno.de>

View File

@ -8396,12 +8396,8 @@ pa_lsym (unused)
any fixup which creates entries in the DLT (eg they use "T" field any fixup which creates entries in the DLT (eg they use "T" field
selectors). selectors).
Reject reductions involving symbols with external scope; such ??? Reject reductions involving symbols with external scope; such
reductions make life a living hell for object file editors. 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. */
int int
hppa_fix_adjustable (fixp) hppa_fix_adjustable (fixp)
@ -8414,17 +8410,6 @@ hppa_fix_adjustable (fixp)
hppa_fix = (struct hppa_fix_struct *) fixp->tc_fix_data; 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 #ifdef OBJ_ELF
/* LR/RR selectors are implicitly used for a number of different relocation /* 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) types. We must ensure that none of these types are adjusted (see below)

View File

@ -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> 2005-11-23 Daniel Jacobowitz <dan@codesourcery.com>
Thiemo Seufer <ths@networkno.de> Thiemo Seufer <ths@networkno.de>

View File

@ -5,9 +5,9 @@
RELOCATION RECORDS FOR .* RELOCATION RECORDS FOR .*
.* .*
0+00.*(here|\.data) 0+00.*(here|\.data|\$DATA\$)
0+08.*xtrn 0+08.*xtrn
0+10.*(sym|\.data(\+0x0+10)?) 0+10.*(sym|(\.data|\$DATA\$)(\+0x0+10)?)
#... #...
Contents of section (\.data|\$DATA\$): Contents of section (\.data|\$DATA\$):
0000 00000000 11111111 00000000 22222222[ ]+................[ ]* 0000 00000000 11111111 00000000 22222222[ ]+................[ ]*

View File

@ -83,14 +83,14 @@ OFFSET +TYPE +VALUE *
[0-9a-f]+ [^ ]* +uh8 [0-9a-f]+ [^ ]* +uh8
[0-9a-f]+ [^ ]* +uh9 [0-9a-f]+ [^ ]* +uh9
[0-9a-f]+ [^ ]* +uh9 [0-9a-f]+ [^ ]* +uh9
[0-9a-f]+ [^ ]* +(ld1|\.text)(\+0x[0-9a-f]+)? [0-9a-f]+ [^ ]* +(ld1|\.text|\$CODE\$)(\+0x[0-9a-f]+)?
[0-9a-f]+ [^ ]* +(ld2|\.text)(\+0x[0-9a-f]+)? [0-9a-f]+ [^ ]* +(ld2|\.text|\$CODE\$)(\+0x[0-9a-f]+)?
[0-9a-f]+ [^ ]* +(ld3|\.text)(\+0x[0-9a-f]+)? [0-9a-f]+ [^ ]* +(ld3|\.text|\$CODE\$)(\+0x[0-9a-f]+)?
[0-9a-f]+ [^ ]* +(ld4|\.text)(\+0x[0-9a-f]+)? [0-9a-f]+ [^ ]* +(ld4|\.text|\$CODE\$)(\+0x[0-9a-f]+)?
[0-9a-f]+ [^ ]* +ud5 [0-9a-f]+ [^ ]* +ud5
[0-9a-f]+ [^ ]* +(gd6|\.text)(\+0x[0-9a-f]+)? [0-9a-f]+ [^ ]* +(gd6|\.text|\$CODE\$)(\+0x[0-9a-f]+)?
[0-9a-f]+ [^ ]* +(gd7|\.text)(\+0x[0-9a-f]+)? [0-9a-f]+ [^ ]* +(gd7|\.text|\$CODE\$)(\+0x[0-9a-f]+)?
[0-9a-f]+ [^ ]* +(ld8|\.text)(\+0x[0-9a-f]+)? [0-9a-f]+ [^ ]* +(ld8|\.text|\$CODE\$)(\+0x[0-9a-f]+)?
[0-9a-f]+ [^ ]* +(ld8|\.text)(\+0x[0-9a-f]+)? [0-9a-f]+ [^ ]* +(ld8|\.text|\$CODE\$)(\+0x[0-9a-f]+)?
[0-9a-f]+ [^ ]* +(ld9|\.text)(\+0x[0-9a-f]+)? [0-9a-f]+ [^ ]* +(ld9|\.text|\$CODE\$)(\+0x[0-9a-f]+)?
[0-9a-f]+ [^ ]* +(ld9|\.text)(\+0x[0-9a-f]+)? [0-9a-f]+ [^ ]* +(ld9|\.text|\$CODE\$)(\+0x[0-9a-f]+)?

View File

@ -636,9 +636,9 @@ proc do_apply_test {} {
while 1 { while 1 {
expect { expect {
-re "^ +\[0-9\]+ 0000 00000000\[^\n\]*\n" { set x [expr $x+1] } -re "^ +\[0-9\]+ 0000 00000044\[^\n\]*\n" { set x [expr $x+1] }
-re "^ +\[0-9\]+ 0004 00000000\[^\n\]*\n" { set x [expr $x+1] } -re "^ +\[0-9\]+ 0004 00000058\[^\n\]*\n" { set x [expr $x+1] }
-re "^ +\[0-9\]+ 0008 00000000\[^\n\]*\n" { set x [expr $x+1] } -re "^ +\[0-9\]+ 0008 0000006C\[^\n\]*\n" { set x [expr $x+1] }
-re "\[^\n\]*\n" { } -re "\[^\n\]*\n" { }
timeout { perror "timeout\n"; break } timeout { perror "timeout\n"; break }
eof { break } eof { break }