From: Kaz Kojima Date: Sat, 2 Aug 2003 13:46:44 +0000 (+0000) Subject: * elf32-sh.c (sh_elf_check_relocs): Don't set DF_TEXTREL here. X-Git-Tag: ezannoni_pie-20030916-branchpoint~533 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=866f48b717574d0bcf220751e0626e60432eb207;p=external%2Fbinutils.git * elf32-sh.c (sh_elf_check_relocs): Don't set DF_TEXTREL here. * ld-sh/shared-2.d, ld-sh/textrel1.s, ld-sh/textrel2.s: New test. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index cf9c453..1b4b2cc 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,7 @@ +2003-08-02 Kaz Kojima + + * elf32-sh.c (sh_elf_check_relocs): Don't set DF_TEXTREL here. + 2003-08-01 H.J. Lu * elfxx-ia64.c (get_got): Align the .got section at 8 bytes. diff --git a/bfd/elf32-sh.c b/bfd/elf32-sh.c index 39fb14c..5417865 100644 --- a/bfd/elf32-sh.c +++ b/bfd/elf32-sh.c @@ -6497,8 +6497,6 @@ sh_elf_check_relocs (bfd *abfd, struct bfd_link_info *info, asection *sec, sreloc, 2)) return FALSE; } - if (sec->flags & SEC_READONLY) - info->flags |= DF_TEXTREL; elf_section_data (sec)->sreloc = sreloc; } diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index 5ce50c4..fb5c4a1 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2003-08-02 Kaz Kojima + + * ld-sh/shared-2.d, ld-sh/textrel1.s, ld-sh/textrel2.s: New test. + 2003-08-02 Alan Modra * ld-d10v/reloc-001.d: Adjust for objdump -d change. diff --git a/ld/testsuite/ld-sh/shared-2.d b/ld/testsuite/ld-sh/shared-2.d new file mode 100644 index 0000000..12175ca --- /dev/null +++ b/ld/testsuite/ld-sh/shared-2.d @@ -0,0 +1,20 @@ +#source: textrel1.s +#source: textrel2.s +#as: -little +#ld: -shared -EL +#readelf: -d +#target: sh*-*-elf sh*-*-linux* sh*-*-netbsd* + +# Make sure that there is no unnecessary DT_TEXTREL entry. + +Dynamic segment at offset 0x[0-9a-f]+ contains 9 entries: + Tag Type Name/Value + 0x00000004 \(HASH\) 0x[0-9a-f]+ + 0x00000005 \(STRTAB\) 0x[0-9a-f]+ + 0x00000006 \(SYMTAB\) 0x[0-9a-f]+ + 0x0000000a \(STRSZ\) [0-9]+ \(bytes\) + 0x0000000b \(SYMENT\) 16 \(bytes\) + 0x00000007 \(RELA\) 0x[0-9a-f]+ + 0x00000008 \(RELASZ\) 12 \(bytes\) + 0x00000009 \(RELAENT\) 12 \(bytes\) + 0x00000000 \(NULL\) 0x0 diff --git a/ld/testsuite/ld-sh/textrel1.s b/ld/testsuite/ld-sh/textrel1.s new file mode 100644 index 0000000..eda4804 --- /dev/null +++ b/ld/testsuite/ld-sh/textrel1.s @@ -0,0 +1,11 @@ + .text + .align 5 + .globl f +f: + mov.l .L1,r0 + rts + nop + .align 2 +.L1: .long g - f + .long foo@GOT + diff --git a/ld/testsuite/ld-sh/textrel2.s b/ld/testsuite/ld-sh/textrel2.s new file mode 100644 index 0000000..1846a6b --- /dev/null +++ b/ld/testsuite/ld-sh/textrel2.s @@ -0,0 +1,7 @@ + .text + .align 5 + .globl g + .hidden g +g: + rts + nop