bfd/
* elfxx-mips.c (mips_elf_calculate_relocation): Set DT_TEXTREL when creating a __GOTT_BASE__ or __GOTT_INDEX__ relocation in a read-only section. (_bfd_mips_elf_check_relocs): Likewise. ld/testsuite/ * ld-mips-elf/vxworks1-lib.td: New test. * ld-mips-elf/mips-elf.exp: Run it.
This commit is contained in:
parent
1aa9ef630c
commit
9e3313aecd
@ -1,3 +1,10 @@
|
||||
2007-04-12 Richard Sandiford <richard@codesourcery.com>
|
||||
|
||||
* elfxx-mips.c (mips_elf_calculate_relocation): Set DT_TEXTREL
|
||||
when creating a __GOTT_BASE__ or __GOTT_INDEX__ relocation
|
||||
in a read-only section.
|
||||
(_bfd_mips_elf_check_relocs): Likewise.
|
||||
|
||||
2007-04-12 Bob Wilson <bob.wilson@acm.org>
|
||||
|
||||
* elf32-xtensa.c (xtensa_is_insntable_section): New.
|
||||
|
@ -4275,6 +4275,13 @@ mips_elf_calculate_relocation (bfd *abfd, bfd *input_bfd,
|
||||
outrel.r_info = ELF32_R_INFO (h->root.dynindx, r_type);
|
||||
outrel.r_addend = addend;
|
||||
bfd_elf32_swap_reloca_out (abfd, &outrel, loc);
|
||||
|
||||
/* If we've written this relocation for a readonly section,
|
||||
we need to set DF_TEXTREL again, so that we do not delete the
|
||||
DT_TEXTREL tag. */
|
||||
if (MIPS_ELF_READONLY_SECTION (input_section))
|
||||
info->flags |= DF_TEXTREL;
|
||||
|
||||
*valuep = 0;
|
||||
return bfd_reloc_ok;
|
||||
}
|
||||
@ -6493,6 +6500,10 @@ _bfd_mips_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
|
||||
return FALSE;
|
||||
}
|
||||
mips_elf_allocate_dynamic_relocations (dynobj, info, 1);
|
||||
if (MIPS_ELF_READONLY_SECTION (sec))
|
||||
/* We tell the dynamic linker that there are
|
||||
relocations against the text segment. */
|
||||
info->flags |= DF_TEXTREL;
|
||||
}
|
||||
}
|
||||
else if (r_type == R_MIPS_CALL_LO16
|
||||
|
@ -1,3 +1,8 @@
|
||||
2007-04-12 Richard Sandiford <richard@codesourcery.com>
|
||||
|
||||
* ld-mips-elf/vxworks1-lib.td: New test.
|
||||
* ld-mips-elf/mips-elf.exp: Run it.
|
||||
|
||||
2007-04-05 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR ld/4304
|
||||
|
@ -21,7 +21,7 @@ if {[istarget "mips*-*-vxworks"]} {
|
||||
{"VxWorks shared library test 1" "-shared -Tvxworks1.ld"
|
||||
"-mips2" {vxworks1-lib.s}
|
||||
{{readelf --relocs vxworks1-lib.rd} {objdump -dr vxworks1-lib.dd}
|
||||
{readelf --symbols vxworks1-lib.nd}}
|
||||
{readelf --symbols vxworks1-lib.nd} {readelf -d vxworks1-lib.td}}
|
||||
"libvxworks1.so"}
|
||||
{"VxWorks executable test 1 (dynamic)" \
|
||||
"tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic"
|
||||
|
3
ld/testsuite/ld-mips-elf/vxworks1-lib.td
Normal file
3
ld/testsuite/ld-mips-elf/vxworks1-lib.td
Normal file
@ -0,0 +1,3 @@
|
||||
#...
|
||||
0x0+16 \(TEXTREL\) +0x0
|
||||
#pass
|
Loading…
Reference in New Issue
Block a user