From 0ae911fecd61c0c5cc0513d6d6a8af4dcf8ccbd0 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Thu, 8 May 2003 05:10:47 +0000 Subject: [PATCH] 2003-05-07 H.J. Lu * ld-elfvers/vers.exp (build_binary): Support build exeutable. (build_binary): Renamed from ... (build_vers_lib): This. (build_vers_lib_no_pic): Updated. (build_vers_lib_pic): Likewise. Add vers27d1, vers27d2 and vers27d3 to test versioned definition for hidden symbol referenced by a DSO. * ld-elfvers/vers27d.dsym: New file. * ld-elfvers/vers27d.sym: Likewise. * ld-elfvers/vers27d.ver: Likewise. * ld-elfvers/vers27d1.c: Likewise. * ld-elfvers/vers27d2.c: Likewise. * ld-elfvers/vers27d3.c: Likewise. --- ld/testsuite/ChangeLog | 17 +++++++++++++++++ ld/testsuite/ld-elfvers/vers.exp | 16 ++++++++++++---- ld/testsuite/ld-elfvers/vers27d.dsym | 2 ++ ld/testsuite/ld-elfvers/vers27d.sym | 1 + ld/testsuite/ld-elfvers/vers27d.ver | 4 ++++ ld/testsuite/ld-elfvers/vers27d1.c | 6 ++++++ ld/testsuite/ld-elfvers/vers27d2.c | 7 +++++++ ld/testsuite/ld-elfvers/vers27d3.c | 11 +++++++++++ 8 files changed, 60 insertions(+), 4 deletions(-) create mode 100644 ld/testsuite/ld-elfvers/vers27d.dsym create mode 100644 ld/testsuite/ld-elfvers/vers27d.sym create mode 100644 ld/testsuite/ld-elfvers/vers27d.ver create mode 100644 ld/testsuite/ld-elfvers/vers27d1.c create mode 100644 ld/testsuite/ld-elfvers/vers27d2.c create mode 100644 ld/testsuite/ld-elfvers/vers27d3.c diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index b78599f1f34..0da2fb8dd8e 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,20 @@ +2003-05-07 H.J. Lu + + * ld-elfvers/vers.exp (build_binary): Support build exeutable. + (build_binary): Renamed from ... + (build_vers_lib): This. + (build_vers_lib_no_pic): Updated. + (build_vers_lib_pic): Likewise. + Add vers27d1, vers27d2 and vers27d3 to test versioned + definition for hidden symbol referenced by a DSO. + + * ld-elfvers/vers27d.dsym: New file. + * ld-elfvers/vers27d.sym: Likewise. + * ld-elfvers/vers27d.ver: Likewise. + * ld-elfvers/vers27d1.c: Likewise. + * ld-elfvers/vers27d2.c: Likewise. + * ld-elfvers/vers27d3.c: Likewise. + 2003-05-07 Andreas Schwab * ld-elfvsb/elfvsb.exp: Run dump tests even when cross diff --git a/ld/testsuite/ld-elfvers/vers.exp b/ld/testsuite/ld-elfvers/vers.exp index c28733ef26f..97cfaf3ea00 100644 --- a/ld/testsuite/ld-elfvers/vers.exp +++ b/ld/testsuite/ld-elfvers/vers.exp @@ -497,7 +497,7 @@ proc objdump_versionstuff { objdump object expectfile } { } } -proc build_vers_lib { pic test source libname other mapfile verexp versymexp symexp } { +proc build_binary { shared pic test source libname other mapfile verexp versymexp symexp } { global ld global srcdir global subdir @@ -508,7 +508,6 @@ proc build_vers_lib { pic test source libname other mapfile verexp versymexp sym global objdump global CC global CFLAGS - global shared global script if ![ld_compile "$CC -S $pic $CFLAGS" $srcdir/$subdir/$source $tmpdir/$libname.s] { @@ -565,13 +564,19 @@ proc build_vers_lib { pic test source libname other mapfile verexp versymexp sym } +proc build_executable { test source libname other mapfile verexp versymexp symexp } { + build_binary "" "" $test $source $libname $other $mapfile $verexp $versymexp $symexp +} + proc build_vers_lib_no_pic { test source libname other mapfile verexp versymexp symexp } { - build_vers_lib "" $test $source $libname $other $mapfile $verexp $versymexp $symexp + global shared + build_binary $shared "" $test $source $libname $other $mapfile $verexp $versymexp $symexp } proc build_vers_lib_pic { test source libname other mapfile verexp versymexp symexp } { global picflag - build_vers_lib $picflag $test $source $libname $other $mapfile $verexp $versymexp $symexp + global shared + build_binary $shared $picflag $test $source $libname $other $mapfile $verexp $versymexp $symexp } proc test_ldfail { test flag source execname other mapfile whyfail } { @@ -929,3 +934,6 @@ build_vers_lib_no_pic "vers27a" vers27a.c vers27a "" vers27a.map vers27a.ver ver build_vers_lib_no_pic "vers27b" vers27b.c vers27b "" "" vers27b.ver vers27b.dsym "" build_vers_lib_no_pic "vers27c1" vers27c.c vers27c1 "vers27b.o vers27a.so" "" vers27c.ver vers27c.dsym "" build_vers_lib_no_pic "vers27c2" vers27c.c vers27c2 "vers27a.so vers27b.o" "" vers27c.ver vers27c.dsym "" +build_vers_lib_pic "vers27d1" vers27d1.c vers27d1 "" vers27a.map vers27d.ver vers27d.dsym vers27d.sym +build_vers_lib_pic "vers27d2" vers27d2.c vers27d2 "" "" vers27b.ver vers27b.dsym "" +build_executable "vers27d3" vers27d3.c vers27d3 "vers27b.o vers27d2.so vers27d1.so" "" vers27b.ver vers27b.dsym "" diff --git a/ld/testsuite/ld-elfvers/vers27d.dsym b/ld/testsuite/ld-elfvers/vers27d.dsym new file mode 100644 index 00000000000..9813d95d1ce --- /dev/null +++ b/ld/testsuite/ld-elfvers/vers27d.dsym @@ -0,0 +1,2 @@ +[0]*[ ]+g[ ]+DO[ ]+\*ABS\*[ ]+[0]*[ ]+VERS.0[ ]+VERS.0 +[0-9a-f]*[ ]+g[ ]+DF[ ]+.text[ ]+[0-9a-f]*[ ]+\(VERS.0\)[ ]+(0x[0-9a-f]*|)[ ]*foo diff --git a/ld/testsuite/ld-elfvers/vers27d.sym b/ld/testsuite/ld-elfvers/vers27d.sym new file mode 100644 index 00000000000..2069993075f --- /dev/null +++ b/ld/testsuite/ld-elfvers/vers27d.sym @@ -0,0 +1 @@ +[0-9a-f]*[ ]+g[ ]+F[ ]+.text[ ]+[0-9a-f]* (0x[0-9a-f][0-9a-f] )?foo@VERS.0 diff --git a/ld/testsuite/ld-elfvers/vers27d.ver b/ld/testsuite/ld-elfvers/vers27d.ver new file mode 100644 index 00000000000..672c7ad2005 --- /dev/null +++ b/ld/testsuite/ld-elfvers/vers27d.ver @@ -0,0 +1,4 @@ +Version definitions: +1 0x01 0x05ac0cff vers27d1.so +2 0x00 0x05aa7610 VERS.0 + diff --git a/ld/testsuite/ld-elfvers/vers27d1.c b/ld/testsuite/ld-elfvers/vers27d1.c new file mode 100644 index 00000000000..3fc60b04bcd --- /dev/null +++ b/ld/testsuite/ld-elfvers/vers27d1.c @@ -0,0 +1,6 @@ +void +foo () +{ +} + +asm (".symver foo,foo@VERS.0"); diff --git a/ld/testsuite/ld-elfvers/vers27d2.c b/ld/testsuite/ld-elfvers/vers27d2.c new file mode 100644 index 00000000000..a98f38aa5eb --- /dev/null +++ b/ld/testsuite/ld-elfvers/vers27d2.c @@ -0,0 +1,7 @@ +void foo (); + +void +ref () +{ + foo (); +} diff --git a/ld/testsuite/ld-elfvers/vers27d3.c b/ld/testsuite/ld-elfvers/vers27d3.c new file mode 100644 index 00000000000..e72d6f8abfd --- /dev/null +++ b/ld/testsuite/ld-elfvers/vers27d3.c @@ -0,0 +1,11 @@ +extern void ref (); +extern void foo (); + +void _start() __asm__("_start"); + +void +_start () +{ + foo (); + ref (); +} -- 2.30.2