summaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-elf
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2013-03-20 03:44:56 +0000
committerAlan Modra <amodra@bigpond.net.au>2013-03-20 03:44:56 +0000
commita25fe6b81292e5d6e66cefb2af5629fdb5d7ae07 (patch)
tree932ce2c6337abca34cf7c358c91a88fd64da497d /ld/testsuite/ld-elf
parent779d61b754ac7a28814b89e7664a8488ff894426 (diff)
downloadbinutils-redhat-a25fe6b81292e5d6e66cefb2af5629fdb5d7ae07.tar.gz
bfd/
* elflink.c (_bfd_elf_make_dynamic_reloc_section): Override sh_type according to is_rela. ld/testsuite/ * ld-elf/rel.c, ld-elf/relmain.c, ld-elf/relmain.out: New test. * ld-elf/shared.exp: Build and run it.
Diffstat (limited to 'ld/testsuite/ld-elf')
-rw-r--r--ld/testsuite/ld-elf/rel.c9
-rw-r--r--ld/testsuite/ld-elf/relmain.c7
-rw-r--r--ld/testsuite/ld-elf/relmain.out0
-rw-r--r--ld/testsuite/ld-elf/shared.exp6
4 files changed, 22 insertions, 0 deletions
diff --git a/ld/testsuite/ld-elf/rel.c b/ld/testsuite/ld-elf/rel.c
new file mode 100644
index 0000000000..fd94f71919
--- /dev/null
+++ b/ld/testsuite/ld-elf/rel.c
@@ -0,0 +1,9 @@
+static int seven = 7;
+static int *__attribute__((section("auto"))) auto_10 = &seven;
+
+int
+eight (void)
+{
+ extern int *__start_auto[], *__stop_auto[];
+ return *auto_10 + __stop_auto - __start_auto;
+}
diff --git a/ld/testsuite/ld-elf/relmain.c b/ld/testsuite/ld-elf/relmain.c
new file mode 100644
index 0000000000..f72dd54ae5
--- /dev/null
+++ b/ld/testsuite/ld-elf/relmain.c
@@ -0,0 +1,7 @@
+extern int eight (void);
+
+int
+main (void)
+{
+ return eight () - 8;
+}
diff --git a/ld/testsuite/ld-elf/relmain.out b/ld/testsuite/ld-elf/relmain.out
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/ld/testsuite/ld-elf/relmain.out
diff --git a/ld/testsuite/ld-elf/shared.exp b/ld/testsuite/ld-elf/shared.exp
index 2feb73086c..8a7590a100 100644
--- a/ld/testsuite/ld-elf/shared.exp
+++ b/ld/testsuite/ld-elf/shared.exp
@@ -203,6 +203,9 @@ set build_tests {
{"Build needed1b.so with --no-copy-dt-needed-entries"
"-shared tmpdir/libneeded1pic.o -Wl,--no-copy-dt-needed-entries -Ltmpdir -lneeded1a" ""
{dummy.c} {} "needed1d.so"}
+ {"Build librel.so"
+ "-shared" "-fPIC"
+ {rel.c} {} "librel.so"}
}
run_cc_link_tests $build_tests
@@ -347,6 +350,9 @@ set run_tests {
{"Link with --copy-dt-needed-entries"
"tmpdir/libneeded1c.o --copy-dt-needed-entries -rpath=tmpdir -Ltmpdir -lneeded1a" ""
{dummy.c} "needed1b" "needed1.out"}
+ {"Run relmain"
+ "--no-as-needed -rpath=tmpdir -Ltmpdir -lrel" ""
+ {relmain.c} "relmain" "relmain.out"}
}
# NetBSD ELF systems do not currently support the .*_array sections.