* elf32-sh.c (sh_elf_check_relocs): Don't set DF_TEXTREL here.
authorKaz Kojima <kkojima@rr.iij4u.or.jp>
Sat, 2 Aug 2003 13:46:44 +0000 (13:46 +0000)
committerKaz Kojima <kkojima@rr.iij4u.or.jp>
Sat, 2 Aug 2003 13:46:44 +0000 (13:46 +0000)
* ld-sh/shared-2.d, ld-sh/textrel1.s, ld-sh/textrel2.s: New test.

bfd/ChangeLog
bfd/elf32-sh.c
ld/testsuite/ChangeLog
ld/testsuite/ld-sh/shared-2.d [new file with mode: 0644]
ld/testsuite/ld-sh/textrel1.s [new file with mode: 0644]
ld/testsuite/ld-sh/textrel2.s [new file with mode: 0644]

index cf9c4536838b721969d1a615d0ec35ea16de0e1c..1b4b2ccc73318da3a9bde350a6c862643821e661 100644 (file)
@@ -1,3 +1,7 @@
+2003-08-02  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
+
+       * elf32-sh.c (sh_elf_check_relocs): Don't set DF_TEXTREL here.
+
 2003-08-01  H.J. Lu  <hongjiu.lu@intel.com>
 
        * elfxx-ia64.c (get_got): Align the .got section at 8 bytes.
index 39fb14c6a1a7c4dc6a5a01198f711da4ef688af7..541786581d6ca1ff9cfc1f871d32407893eb1829 100644 (file)
@@ -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;
                }
 
index 5ce50c4110d7f4b543233b00e8b494e6c8634eed..fb5c4a1d9cd2576bf47ea5acce4930aea4225d6b 100644 (file)
@@ -1,3 +1,7 @@
+2003-08-02  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
+
+       * ld-sh/shared-2.d, ld-sh/textrel1.s, ld-sh/textrel2.s: New test.
+
 2003-08-02  Alan Modra  <amodra@bigpond.net.au>
 
        * 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 (file)
index 0000000..12175ca
--- /dev/null
@@ -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 (file)
index 0000000..eda4804
--- /dev/null
@@ -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 (file)
index 0000000..1846a6b
--- /dev/null
@@ -0,0 +1,7 @@
+       .text
+       .align 5
+       .globl  g 
+       .hidden g
+g:
+       rts
+       nop