PR ld/20828: Relax symbol ordering in tests
authorMaciej W. Rozycki <macro@imgtec.com>
Mon, 23 Jan 2017 11:18:33 +0000 (11:18 +0000)
committerMaciej W. Rozycki <macro@imgtec.com>
Mon, 23 Jan 2017 11:24:21 +0000 (11:24 +0000)
Complement commit 81ff47b3a546 ("PR ld/20828: Fix linker script symbols
wrongly forced local with section GC") and make tests check for the
presence of global `_fdata' and `_edata' symbols separately, removing
any dependency on symbol table ordering for tests to succeed and
removing:

FAIL: PR ld/20828 dynamic symbols with section GC (auxiliary shared library)
FAIL: PR ld/20828 dynamic symbols with section GC (plain)

failures with the `x86_64-solaris2' target, which has additional
intervening entries:

Symbol table '.dynsym' contains 6 entries:
   Num:    Value          Size Type    Bind   Vis      Ndx Name
     0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND
     1: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT    1 _fdata
     2: 0000000000000000     0 OBJECT  GLOBAL DEFAULT    1 _DYNAMIC
     3: 0000000000000000     0 OBJECT  GLOBAL DEFAULT  ABS _PROCEDURE_LINKAGE_TABLE_
     4: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT    1 _edata
     5: 00000000000001b8     0 OBJECT  GLOBAL DEFAULT    4 _GLOBAL_OFFSET_TABLE_

Rename dump pattern files accordingly for consistency.

ld/
PR ld/20828
* testsuite/ld-elf/pr20828-1.sd: Remove test.
* testsuite/ld-elf/pr20828-a.sd: New test.
* testsuite/ld-elf/pr20828-2a.sd: Rename test to...
* testsuite/ld-elf/pr20828-b.sd: ... this.
* testsuite/ld-elf/pr20828-2b.sd: Rename test to...
* testsuite/ld-elf/pr20828-c.sd: ... this.
* testsuite/ld-elf/shared.exp: Adjust accordingly.

ld/ChangeLog
ld/testsuite/ld-elf/pr20828-1.sd [deleted file]
ld/testsuite/ld-elf/pr20828-2a.sd [deleted file]
ld/testsuite/ld-elf/pr20828-2b.sd [deleted file]
ld/testsuite/ld-elf/pr20828-a.sd [new file with mode: 0644]
ld/testsuite/ld-elf/pr20828-b.sd [new file with mode: 0644]
ld/testsuite/ld-elf/pr20828-c.sd [new file with mode: 0644]
ld/testsuite/ld-elf/shared.exp

index 34614442a5c1412eeb7dacc15d131b4bc5efda69..89f4766481e45cfb0d394588348124129e43e466 100644 (file)
@@ -1,3 +1,14 @@
+2017-01-23  Maciej W. Rozycki  <macro@imgtec.com>
+
+       PR ld/20828
+       * testsuite/ld-elf/pr20828-1.sd: Remove test.
+       * testsuite/ld-elf/pr20828-a.sd: New test.
+       * testsuite/ld-elf/pr20828-2a.sd: Rename test to...
+       * testsuite/ld-elf/pr20828-b.sd: ... this.
+       * testsuite/ld-elf/pr20828-2b.sd: Rename test to...
+       * testsuite/ld-elf/pr20828-c.sd: ... this.
+       * testsuite/ld-elf/shared.exp: Adjust accordingly.
+
 2017-01-23  Jiong Wang  <jiong.wang@arm.com>
 
        * testsuite/lib/ld-lib.exp (run_ld_link_exec_tests): Append
diff --git a/ld/testsuite/ld-elf/pr20828-1.sd b/ld/testsuite/ld-elf/pr20828-1.sd
deleted file mode 100644 (file)
index c47eb1d..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-# Make sure symbols are global rather than local in the dynamic symbol table,
-# e.g.:
-#    Num:    Value  Size Type    Bind   Vis      Ndx Name
-#      1: 00000000     0 NOTYPE  GLOBAL DEFAULT    1 _fdata
-#      2: 00000000     0 NOTYPE  GLOBAL DEFAULT    1 _edata
-# vs:
-#      1: 00000000     0 NOTYPE  LOCAL  DEFAULT    1 _fdata
-#      2: 00000000     0 NOTYPE  LOCAL  DEFAULT    1 _edata
-#...
- *[0-9]+: +[0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +[0-9]+ +_fdata
- *[0-9]+: +[0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +[0-9]+ +_edata
-#pass
diff --git a/ld/testsuite/ld-elf/pr20828-2a.sd b/ld/testsuite/ld-elf/pr20828-2a.sd
deleted file mode 100644 (file)
index c4b239b..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-# Make sure `_edata' is global rather than local in the dynamic symbol table,
-# e.g.:
-#    Num:    Value  Size Type    Bind   Vis      Ndx Name
-#      1: 00000000     0 NOTYPE  GLOBAL DEFAULT    1 _edata
-# vs:
-#      1: 00000000     0 NOTYPE  LOCAL  DEFAULT    1 _edata
-#...
- *[0-9]+: +[0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +[0-9]+ +_edata
-#pass
diff --git a/ld/testsuite/ld-elf/pr20828-2b.sd b/ld/testsuite/ld-elf/pr20828-2b.sd
deleted file mode 100644 (file)
index 8089c48..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-# Make sure no `_fdata' is present in the dynamic symbol table, e.g.:
-#    Num:    Value  Size Type    Bind   Vis      Ndx Name
-#      1: 00000000     0 NOTYPE  LOCAL  DEFAULT    1 _fdata
-#failif
-#...
-.+ +_fdata
-#pass
diff --git a/ld/testsuite/ld-elf/pr20828-a.sd b/ld/testsuite/ld-elf/pr20828-a.sd
new file mode 100644 (file)
index 0000000..c24e5ad
--- /dev/null
@@ -0,0 +1,9 @@
+# Make sure `_fdata' is global rather than local in the dynamic symbol table,
+# e.g.:
+#    Num:    Value  Size Type    Bind   Vis      Ndx Name
+#      1: 00000000     0 NOTYPE  GLOBAL DEFAULT    1 _fdata
+# vs:
+#      1: 00000000     0 NOTYPE  LOCAL  DEFAULT    1 _fdata
+#...
+ *[0-9]+: +[0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +[0-9]+ +_fdata
+#pass
diff --git a/ld/testsuite/ld-elf/pr20828-b.sd b/ld/testsuite/ld-elf/pr20828-b.sd
new file mode 100644 (file)
index 0000000..c4b239b
--- /dev/null
@@ -0,0 +1,9 @@
+# Make sure `_edata' is global rather than local in the dynamic symbol table,
+# e.g.:
+#    Num:    Value  Size Type    Bind   Vis      Ndx Name
+#      1: 00000000     0 NOTYPE  GLOBAL DEFAULT    1 _edata
+# vs:
+#      1: 00000000     0 NOTYPE  LOCAL  DEFAULT    1 _edata
+#...
+ *[0-9]+: +[0-9a-f]+ +0 +NOTYPE +GLOBAL +DEFAULT +[0-9]+ +_edata
+#pass
diff --git a/ld/testsuite/ld-elf/pr20828-c.sd b/ld/testsuite/ld-elf/pr20828-c.sd
new file mode 100644 (file)
index 0000000..8089c48
--- /dev/null
@@ -0,0 +1,7 @@
+# Make sure no `_fdata' is present in the dynamic symbol table, e.g.:
+#    Num:    Value  Size Type    Bind   Vis      Ndx Name
+#      1: 00000000     0 NOTYPE  LOCAL  DEFAULT    1 _fdata
+#failif
+#...
+.+ +_fdata
+#pass
index 8f1f1668c2e9eab8a40a7d5b1a42b5cf9b8a1fa2..65b632f05f92f4f236d99e57ddadaa48f728243d 100644 (file)
@@ -57,14 +57,16 @@ if { [check_gc_sections_available] } {
              (auxiliary shared library)" \
             "$LFLAGS -shared --gc-sections -T pr20828.ld" "" "$AFLAGS_PIC" \
             {pr20828.s} \
-            {{readelf --dyn-syms pr20828-1.sd}} \
+            {{readelf --dyn-syms pr20828-a.sd} \
+             {readelf --dyn-syms pr20828-b.sd}} \
             "libpr20828.so"] \
        [list \
            "PR ld/20828 dynamic symbols with section GC (plain)" \
             "$LFLAGS -shared --gc-sections -T pr20828.ld" \
             "tmpdir/libpr20828.so" "$AFLAGS_PIC" \
             {pr20828.s} \
-            {{readelf --dyn-syms pr20828-1.sd}} \
+            {{readelf --dyn-syms pr20828-a.sd} \
+             {readelf --dyn-syms pr20828-b.sd}} \
             "pr20828-1.so"] \
        [list \
            "PR ld/20828 dynamic symbols with section GC (version script)" \
@@ -73,8 +75,8 @@ if { [check_gc_sections_available] } {
             "tmpdir/libpr20828.so" \
             "$AFLAGS_PIC" \
             {pr20828.s} \
-            {{readelf --dyn-syms pr20828-2a.sd} \
-             {readelf --dyn-syms pr20828-2b.sd}} \
+            {{readelf --dyn-syms pr20828-b.sd} \
+             {readelf --dyn-syms pr20828-c.sd}} \
             "pr20828-2.so"]]
 }