From adcbdc63e5ccf663dacc8493cec63a95b653285e Mon Sep 17 00:00:00 2001 From: "Maciej W. Rozycki" Date: Mon, 23 Jan 2017 11:18:33 +0000 Subject: PR ld/20828: Relax symbol ordering in tests 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 | 11 +++++++++++ ld/testsuite/ld-elf/pr20828-1.sd | 12 ------------ ld/testsuite/ld-elf/pr20828-2a.sd | 9 --------- ld/testsuite/ld-elf/pr20828-2b.sd | 7 ------- ld/testsuite/ld-elf/pr20828-a.sd | 9 +++++++++ ld/testsuite/ld-elf/pr20828-b.sd | 9 +++++++++ ld/testsuite/ld-elf/pr20828-c.sd | 7 +++++++ ld/testsuite/ld-elf/shared.exp | 10 ++++++---- 8 files changed, 42 insertions(+), 32 deletions(-) delete mode 100644 ld/testsuite/ld-elf/pr20828-1.sd delete mode 100644 ld/testsuite/ld-elf/pr20828-2a.sd delete mode 100644 ld/testsuite/ld-elf/pr20828-2b.sd create mode 100644 ld/testsuite/ld-elf/pr20828-a.sd create mode 100644 ld/testsuite/ld-elf/pr20828-b.sd create mode 100644 ld/testsuite/ld-elf/pr20828-c.sd (limited to 'ld') diff --git a/ld/ChangeLog b/ld/ChangeLog index 3461444..89f4766 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,14 @@ +2017-01-23 Maciej W. Rozycki + + 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 * 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 index c47eb1d..0000000 --- a/ld/testsuite/ld-elf/pr20828-1.sd +++ /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 index c4b239b..0000000 --- a/ld/testsuite/ld-elf/pr20828-2a.sd +++ /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 index 8089c48..0000000 --- a/ld/testsuite/ld-elf/pr20828-2b.sd +++ /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 index 0000000..c24e5ad --- /dev/null +++ b/ld/testsuite/ld-elf/pr20828-a.sd @@ -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 index 0000000..c4b239b --- /dev/null +++ b/ld/testsuite/ld-elf/pr20828-b.sd @@ -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 index 0000000..8089c48 --- /dev/null +++ b/ld/testsuite/ld-elf/pr20828-c.sd @@ -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 diff --git a/ld/testsuite/ld-elf/shared.exp b/ld/testsuite/ld-elf/shared.exp index 8f1f166..65b632f 100644 --- a/ld/testsuite/ld-elf/shared.exp +++ b/ld/testsuite/ld-elf/shared.exp @@ -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"]] } -- cgit v1.1