* config/tc-mips.c (pic_need_relax): Return true for section symbols.

gas/testsuite:
	* gas/mips/elf-rel26.s: New test.
	* gas/mips/elf-rel26.d: Ditto.
	* gas/mips/mips.exp: Run it.
This commit is contained in:
David Daney 2006-11-07 23:55:36 +00:00
parent 3181e5dc7c
commit df1f3cdab5
6 changed files with 98 additions and 0 deletions

View file

@ -1,3 +1,7 @@
2006-11-06 David Daney <ddaney@avtrex.com>
* config/tc-mips.c (pic_need_relax): Return true for section symbols.
2006-11-06 Thiemo Seufer <ths@mips.com>
* doc/c-mips.texi (-march): Document sb1a.

View file

@ -13153,6 +13153,9 @@ pic_need_relax (symbolS *sym, asection *segtype)
sym = n;
}
if (symbol_section_p (sym))
return TRUE;
symsec = S_GET_SEGMENT (sym);
/* This must duplicate the test in adjust_reloc_syms. */

View file

@ -1,3 +1,9 @@
2006-11-06 David Daney <ddaney@avtrex.com>
* gas/mips/elf-rel26.s: New test.
* gas/mips/elf-rel26.d: Ditto.
* gas/mips/mips.exp: Run it.
2006-11-03 Jakub Jelinek <jakub@redhat.com>
* gas/cfi/cfi-common-6.d: New test.

View file

@ -0,0 +1,22 @@
#as: -mips32 -EL -KPIC
#readelf: --relocs
#name: MIPS ELF reloc 26
Relocation section '\.rel\.pdr' .*
*Offset.*
00.*
Relocation section '\.rel\.text\.foo' at offset .* contains 11 entries:
*Offset * Info * Type * Sym\.Value * Sym\. Name
0+000 * .+ * R_MIPS_HI16 * 0+0 * _gp_disp
0+004 * .+ * R_MIPS_LO16 * 0+0 * _gp_disp
0+014 * .+ * R_MIPS_GOT16 * 0+0 * \$LC28
0+01c * .+ * R_MIPS_LO16 * 0+0 * \$LC28
0+020 * .+ * R_MIPS_CALL16 * 0+0 * bar
0+030 * .+ * R_MIPS_PC16 * 0+0 * \$L846
0+034 * .+ * R_MIPS_GOT16 * 0+0 * \$LC27
0+038 * .+ * R_MIPS_PC16 * 0+0 * \$L848
0+048 * .+ * R_MIPS_PC16 * 0+0 * \$L925
0+010 * .+ * R_MIPS_GOT16 * 0+0 * \.rodata\.foo
0+05c * .+ * R_MIPS_LO16 * 0+0 * \.rodata\.foo
#pass

View file

@ -0,0 +1,62 @@
.section .text.foo,"axG",@progbits,foo,comdat
.align 2
.weak foo
.ent foo
.type foo, @function
foo:
$LFB308:
.frame $fp,136,$31 # vars= 72, regs= 10/0, args= 16, gp= 8
.mask 0xc0ff0000,-4
.fmask 0x00000000,0
.set noreorder
.cpload $25
.set nomacro
bne $3,$0,$L924
lw $25,%got($L874)($28)
.set macro
.set reorder
lw $5,%got($LC28)($28)
lw $4,136($fp)
addiu $5,$5,%lo($LC28)
lw $25,%call16(bar)($28)
.set noreorder
.set nomacro
jalr $25
li $6,-1 # 0xffffffffffffffff
.set macro
.set reorder
lw $25,64($fp)
.set noreorder
.set nomacro
bne $25,$0,$L846
lw $5,%got($LC27)($28)
b $L848
sw $0,68($fp)
.set macro
.set reorder
$L920:
lb $3,0($18)
li $2,59 # 0x3b
.set noreorder
.set nomacro
beq $3,$2,$L925
lw $25,76($fp)
b $L920
addiu $18,$18,1
.set macro
.set reorder
$L924:
sll $2,$2,2
addiu $25,$25,%lo($L874)
addu $2,$2,$25
lw $3,0($2)
addu $3,$3,$28
j $3
.end foo
.section .rodata.foo,"aG",@progbits,foo,comdat
.align 2
.align 2
$L874:
.gpword $L924

View file

@ -687,6 +687,7 @@ if { [istarget mips*-*-vxworks*] } {
run_dump_test "elf-rel25"
run_dump_test "elf-rel25a"
run_dump_test "elf-rel26"
if { !$no_mips16 } {
run_dump_test "${tmips}mips${el}16-e"