summaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-size
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2013-01-18 00:01:51 +0000
committerH.J. Lu <hjl.tools@gmail.com>2013-01-18 00:01:51 +0000
commit913edd72db4f658b27647fc6721f226c8679caa5 (patch)
tree44e72d26ef84cc70f2d5902791f1482815b2ef39 /ld/testsuite/ld-size
parent9c903353f3168e4b5d138e763976cfcac9c8b979 (diff)
downloadbinutils-redhat-913edd72db4f658b27647fc6721f226c8679caa5.tar.gz
Add size-1 and size-2 tests
* ld-size/size-1.c: New file. * ld-size/size-1.out: Likewise. * ld-size/size-1a.c: Likewise. * ld-size/size-1b.c: Likewise. * ld-size/size-2.c: Likewise. * ld-size/size-2.out: Likewise. * ld-size/size-2a.c: Likewise. * ld-size/size-2b.c: Likewise. * ld-size/size.exp (build_tests): Build libsize-1.so and libsize-2.so. (run_tests): Run size-1 and size-2.
Diffstat (limited to 'ld/testsuite/ld-size')
-rw-r--r--ld/testsuite/ld-size/size-1.c12
-rw-r--r--ld/testsuite/ld-size/size-1.out1
-rw-r--r--ld/testsuite/ld-size/size-1a.c1
-rw-r--r--ld/testsuite/ld-size/size-1b.c3
-rw-r--r--ld/testsuite/ld-size/size-2.c14
-rw-r--r--ld/testsuite/ld-size/size-2.out1
-rw-r--r--ld/testsuite/ld-size/size-2a.c1
-rw-r--r--ld/testsuite/ld-size/size-2b.c10
-rw-r--r--ld/testsuite/ld-size/size.exp12
9 files changed, 55 insertions, 0 deletions
diff --git a/ld/testsuite/ld-size/size-1.c b/ld/testsuite/ld-size/size-1.c
new file mode 100644
index 0000000000..71a7a667ef
--- /dev/null
+++ b/ld/testsuite/ld-size/size-1.c
@@ -0,0 +1,12 @@
+#include <stdio.h>
+
+extern int bar_size;
+
+int
+main ()
+{
+ if (bar_size == 10)
+ printf ("OK\n");
+
+ return 0;
+}
diff --git a/ld/testsuite/ld-size/size-1.out b/ld/testsuite/ld-size/size-1.out
new file mode 100644
index 0000000000..d86bac9de5
--- /dev/null
+++ b/ld/testsuite/ld-size/size-1.out
@@ -0,0 +1 @@
+OK
diff --git a/ld/testsuite/ld-size/size-1a.c b/ld/testsuite/ld-size/size-1a.c
new file mode 100644
index 0000000000..a9b20f5c6a
--- /dev/null
+++ b/ld/testsuite/ld-size/size-1a.c
@@ -0,0 +1 @@
+char bar[10] __attribute__ ((visibility("hidden")));
diff --git a/ld/testsuite/ld-size/size-1b.c b/ld/testsuite/ld-size/size-1b.c
new file mode 100644
index 0000000000..723c60a84c
--- /dev/null
+++ b/ld/testsuite/ld-size/size-1b.c
@@ -0,0 +1,3 @@
+extern char bar[];
+extern char size_of_bar asm ("bar@SIZE");
+char *bar_size = &size_of_bar;
diff --git a/ld/testsuite/ld-size/size-2.c b/ld/testsuite/ld-size/size-2.c
new file mode 100644
index 0000000000..47e6a2fc50
--- /dev/null
+++ b/ld/testsuite/ld-size/size-2.c
@@ -0,0 +1,14 @@
+#include <stdio.h>
+
+extern int bar_size;
+extern char *get_bar (int, int);
+
+int
+main ()
+{
+ char *bar = get_bar (2, 20);
+ if (bar_size == 10 && bar[2] == 20)
+ printf ("OK\n");
+
+ return 0;
+}
diff --git a/ld/testsuite/ld-size/size-2.out b/ld/testsuite/ld-size/size-2.out
new file mode 100644
index 0000000000..d86bac9de5
--- /dev/null
+++ b/ld/testsuite/ld-size/size-2.out
@@ -0,0 +1 @@
+OK
diff --git a/ld/testsuite/ld-size/size-2a.c b/ld/testsuite/ld-size/size-2a.c
new file mode 100644
index 0000000000..0b96aa7c1e
--- /dev/null
+++ b/ld/testsuite/ld-size/size-2a.c
@@ -0,0 +1 @@
+__thread char bar[10] __attribute__ ((visibility("hidden")));
diff --git a/ld/testsuite/ld-size/size-2b.c b/ld/testsuite/ld-size/size-2b.c
new file mode 100644
index 0000000000..0f02c94027
--- /dev/null
+++ b/ld/testsuite/ld-size/size-2b.c
@@ -0,0 +1,10 @@
+extern __thread char bar[];
+extern char size_of_bar asm ("bar@SIZE");
+char *bar_size = &size_of_bar;
+
+char *
+get_bar (int i, int v)
+{
+ bar[i] = v;
+ return bar;
+}
diff --git a/ld/testsuite/ld-size/size.exp b/ld/testsuite/ld-size/size.exp
index 4bbb5d720b..fe4702cf39 100644
--- a/ld/testsuite/ld-size/size.exp
+++ b/ld/testsuite/ld-size/size.exp
@@ -55,6 +55,12 @@ if { [which $CC] == 0 } {
}
set build_tests {
+ {"Build libsize-1.so"
+ "-shared" "-fPIC"
+ {size-1a.c size-1b.c} {} "libsize-1.so"}
+ {"Build libsize-2.so"
+ "-shared" "-fPIC"
+ {size-2a.c size-2b.c} {} "libsize-2.so"}
{"Build libsize-3a.so"
"-shared" "-fPIC"
{size-3a.c} {} "libsize-3a.so"}
@@ -84,6 +90,12 @@ set build_tests {
run_cc_link_tests $build_tests
set run_tests {
+ {"Run size-1"
+ "tmpdir/libsize-1.so" ""
+ {size-1.c} "size-1" "size-1.out"}
+ {"Run size-2"
+ "tmpdir/libsize-2.so" ""
+ {size-2.c} "size-2" "size-2.out"}
{"Run size-3a"
"" ""
{size-3.c size-3a.c} "size-3a" "size-3.out"}