Update PR ld/21964 tests
* testsuite/ld-elf/pr21964-1a.c (foo): Renamed to ... (foo1): This. * testsuite/ld-elf/pr21964-1b.c: Rewrite. * testsuite/ld-elf/pr21964-1c.c: New file. * testsuite/ld-elf/pr21964-2c.c: Likewise. * testsuite/ld-elf/pr21964-2a.c (foo): Renamed to ... (foo1): This. * testsuite/ld-elf/pr21964-2b.c: Rewrite. * testsuite/ld-elf/shared.exp: Update PR ld/21964 tests.
This commit is contained in:
parent
67d888f5c8
commit
8dfb7cbf84
13
ld/ChangeLog
13
ld/ChangeLog
@ -1,3 +1,16 @@
|
||||
2017-08-22 H.J. Lu <hongjiu.lu@intel.com>
|
||||
Alan Modra <amodra@gmail.com>
|
||||
|
||||
* testsuite/ld-elf/pr21964-1a.c (foo): Renamed to ...
|
||||
(foo1): This.
|
||||
* testsuite/ld-elf/pr21964-1b.c: Rewrite.
|
||||
* testsuite/ld-elf/pr21964-1c.c: New file.
|
||||
* testsuite/ld-elf/pr21964-2c.c: Likewise.
|
||||
* testsuite/ld-elf/pr21964-2a.c (foo): Renamed to ...
|
||||
(foo1): This.
|
||||
* testsuite/ld-elf/pr21964-2b.c: Rewrite.
|
||||
* testsuite/ld-elf/shared.exp: Update PR ld/21964 tests.
|
||||
|
||||
2017-08-21 H.J. Lu <hongjiu.lu@intel.com>
|
||||
Alan Modra <amodra@gmail.com>
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
extern int __start___verbose[];
|
||||
extern int __stop___verbose[];
|
||||
int foo (void)
|
||||
int
|
||||
foo1 (void)
|
||||
{
|
||||
static int my_var __attribute__((used, section("__verbose"))) = 5;
|
||||
if (__start___verbose == __stop___verbose
|
||||
|
@ -1,24 +1,12 @@
|
||||
#include <stdio.h>
|
||||
|
||||
extern int foo (void);
|
||||
|
||||
extern int __start___verbose[];
|
||||
extern int __stop___verbose[];
|
||||
static int my_var __attribute__((used, section("__verbose"))) = 6;
|
||||
int bar (void)
|
||||
int
|
||||
foo2 (void)
|
||||
{
|
||||
if (__start___verbose == __stop___verbose)
|
||||
static int my_var __attribute__((used, section("__verbose"))) = 10;
|
||||
if (__start___verbose == __stop___verbose
|
||||
|| __start___verbose[0] != 10)
|
||||
return -1;
|
||||
|
||||
if (__start___verbose[0] != 6)
|
||||
return -2;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
if (bar () == 0 && foo () == 0)
|
||||
printf ("PASS\n");
|
||||
return 0;
|
||||
}
|
||||
|
29
ld/testsuite/ld-elf/pr21964-1c.c
Normal file
29
ld/testsuite/ld-elf/pr21964-1c.c
Normal file
@ -0,0 +1,29 @@
|
||||
#include <stdio.h>
|
||||
|
||||
extern int foo1 (void);
|
||||
extern int foo2 (void);
|
||||
|
||||
extern int __start___verbose[];
|
||||
extern int __stop___verbose[];
|
||||
static int my_var __attribute__((used, section("__verbose"))) = 6;
|
||||
int
|
||||
bar (void)
|
||||
{
|
||||
if (__start___verbose == __stop___verbose)
|
||||
return -1;
|
||||
|
||||
if (__start___verbose[0] != 6)
|
||||
return -2;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
if (bar () == 0
|
||||
&& foo1 () == 0
|
||||
&& foo2 () == 0)
|
||||
printf ("PASS\n");
|
||||
return 0;
|
||||
}
|
@ -1,6 +1,7 @@
|
||||
extern int __start___verbose[];
|
||||
extern int __stop___verbose[];
|
||||
int foo (void)
|
||||
int
|
||||
foo1 (void)
|
||||
{
|
||||
static int my_var __attribute__((used, section("__verbose"))) = 5;
|
||||
if (__start___verbose == __stop___verbose
|
||||
|
@ -1,27 +1,12 @@
|
||||
#include <dlfcn.h>
|
||||
#include <stdio.h>
|
||||
|
||||
int main()
|
||||
extern int __start___verbose[];
|
||||
extern int __stop___verbose[];
|
||||
int
|
||||
foo2 (void)
|
||||
{
|
||||
void *dl;
|
||||
void *sym;
|
||||
int (*func) (void);
|
||||
|
||||
dl = dlopen("pr21964-2.so", RTLD_LAZY);
|
||||
if (!dl)
|
||||
return 1;
|
||||
|
||||
sym = dlsym(dl, "__start___verbose");
|
||||
if (!sym)
|
||||
return 2;
|
||||
|
||||
func = dlsym(dl, "foo");
|
||||
if (!func)
|
||||
return 3;
|
||||
if (func () == 0)
|
||||
printf ("PASS\n");
|
||||
|
||||
dlclose(dl);
|
||||
|
||||
return 0;
|
||||
static int my_var __attribute__((used, section("__verbose"))) = 10;
|
||||
if (__start___verbose == __stop___verbose
|
||||
|| __start___verbose[0] != 10)
|
||||
return -1;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
32
ld/testsuite/ld-elf/pr21964-2c.c
Normal file
32
ld/testsuite/ld-elf/pr21964-2c.c
Normal file
@ -0,0 +1,32 @@
|
||||
#include <dlfcn.h>
|
||||
#include <stdio.h>
|
||||
|
||||
extern int foo1 (void);
|
||||
|
||||
int main()
|
||||
{
|
||||
void *dl;
|
||||
void *sym;
|
||||
int (*func) (void);
|
||||
|
||||
if (foo1 () != 0)
|
||||
return 1;
|
||||
|
||||
dl = dlopen("pr21964-2b.so", RTLD_LAZY);
|
||||
if (!dl)
|
||||
return 2;
|
||||
|
||||
sym = dlsym(dl, "__start___verbose");
|
||||
if (!sym)
|
||||
return 3;
|
||||
|
||||
func = dlsym(dl, "foo2");
|
||||
if (!func)
|
||||
return 4;
|
||||
if (func () == 0)
|
||||
printf ("PASS\n");
|
||||
|
||||
dlclose(dl);
|
||||
|
||||
return 0;
|
||||
}
|
@ -423,12 +423,18 @@ set build_tests {
|
||||
{"Build libpr19073.so"
|
||||
"-shared -Wl,--version-script=pr19073.map tmpdir/pr19073a.o" "-fPIC"
|
||||
{dummy.c} {{readelf {--dyn-syms --wide} pr19073.rd}} "libpr19073.so"}
|
||||
{"Build pr21964-1.so"
|
||||
{"Build pr21964-1a.so"
|
||||
"-shared" "-fPIC"
|
||||
{pr21964-1a.c} {} "pr21964-1.so"}
|
||||
{"Build pr21964-2.so"
|
||||
{pr21964-1a.c} {} "pr21964-1a.so"}
|
||||
{"Build pr21964-1b.so"
|
||||
"-shared" "-fPIC"
|
||||
{pr21964-2a.c} {} "pr21964-2.so"}
|
||||
{pr21964-1b.c} {} "pr21964-1b.so"}
|
||||
{"Build pr21964-2a.so"
|
||||
"-shared" "-fPIC"
|
||||
{pr21964-2a.c} {} "pr21964-2a.so"}
|
||||
{"Build pr21964-2b.so"
|
||||
"-shared" "-fPIC"
|
||||
{pr21964-2b.c} {} "pr21964-2b.so"}
|
||||
}
|
||||
|
||||
run_cc_link_tests $build_tests
|
||||
@ -547,8 +553,8 @@ set run_tests [list \
|
||||
"-Wl,--no-as-needed,-z,now tmpdir/libpr18458a.so tmpdir/libpr18458b.so" "" \
|
||||
{pr18458c.c} "pr18458" "pass.out" ] \
|
||||
[list "Run pr21964-1" \
|
||||
"-Wl,--no-as-needed,-rpath,tmpdir tmpdir/pr21964-1.so" "" \
|
||||
{pr21964-1b.c} "pr21964-1" "pass.out" ] \
|
||||
"-Wl,--no-as-needed,-rpath,tmpdir tmpdir/pr21964-1a.so tmpdir/pr21964-1b.so" "" \
|
||||
{pr21964-1c.c} "pr21964-1" "pass.out" ] \
|
||||
]
|
||||
|
||||
# NetBSD ELF systems do not currently support the .*_array sections.
|
||||
@ -596,8 +602,8 @@ set dlopen_run_tests [list \
|
||||
"-Wl,--no-as-needed,--dynamic-list-data $extralibs" "" \
|
||||
{dl6dmain.c} "dl6d1" "dl6b.out" ] \
|
||||
[list "Run pr21964-2" \
|
||||
"-Wl,--no-as-needed,-rpath,tmpdir $extralibs" "" \
|
||||
{pr21964-2b.c} "pr21964-2" "pass.out" ] \
|
||||
"-Wl,--no-as-needed,-rpath,tmpdir tmpdir/pr21964-2a.so $extralibs" "" \
|
||||
{pr21964-2c.c} "pr21964-2" "pass.out" ] \
|
||||
]
|
||||
|
||||
# Only run them when libdl is available.
|
||||
|
Loading…
x
Reference in New Issue
Block a user