aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWill Newton <willnewton@sourceware.org>2013-07-18 15:49:22 +0000
committerWill Newton <willnewton@sourceware.org>2013-07-18 15:49:22 +0000
commit623cc2854011a4ffa83755d7ce9a9e078fa7ec80 (patch)
tree29deb49c7bd2c05038c9e1654516c4591f44bf03
parent39b07303826d3c6c4045b41c62541611d1f93729 (diff)
downloadgdb-623cc2854011a4ffa83755d7ce9a9e078fa7ec80.zip
gdb-623cc2854011a4ffa83755d7ce9a9e078fa7ec80.tar.gz
gdb-623cc2854011a4ffa83755d7ce9a9e078fa7ec80.tar.bz2
gdb/testsuite/gdb.threads: Ensure TLS tests link against pthreads.
On Ubuntu by default the compiler passes --as-needed to ld which means no DT_NEEDED entry is added for libpthread when building the TLS tests. This causes the test to fail as libpthread is required to look up TLS variables. Add calls to pthread_testcancel to make sure libpthread gets linked. gdb/testsuite/ChangeLog: 2013-07-18 Will Newton <will.newton@linaro.org> * gdb.threads/tls-nodebug.c: Call pthread_testcancel to ensure the test is linked against pthreads. * gdb.threads/tls-var-main.c: Likewise. * gdb.threads/tls-shared.c: Likewise.
-rw-r--r--gdb/testsuite/ChangeLog7
-rw-r--r--gdb/testsuite/gdb.threads/tls-nodebug.c2
-rw-r--r--gdb/testsuite/gdb.threads/tls-shared.c5
-rw-r--r--gdb/testsuite/gdb.threads/tls-var-main.c4
4 files changed, 18 insertions, 0 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 47b7f6b..473c326 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,10 @@
+2013-07-18 Will Newton <will.newton@linaro.org>
+
+ * gdb.threads/tls-nodebug.c: Call pthread_testcancel
+ to ensure the test is linked against pthreads.
+ * gdb.threads/tls-var-main.c: Likewise.
+ * gdb.threads/tls-shared.c: Likewise.
+
2013-07-18 Yao Qi <yao@codesourcery.com>
* lib/future.exp (gdb_default_target_compile): Use tail name
diff --git a/gdb/testsuite/gdb.threads/tls-nodebug.c b/gdb/testsuite/gdb.threads/tls-nodebug.c
index 73d96f0..d3b31b7 100644
--- a/gdb/testsuite/gdb.threads/tls-nodebug.c
+++ b/gdb/testsuite/gdb.threads/tls-nodebug.c
@@ -6,5 +6,7 @@ __thread int thread_local = 42;
int main(void)
{
+ /* Ensure we link against pthreads even with --as-needed. */
+ pthread_testcancel();
return 0;
}
diff --git a/gdb/testsuite/gdb.threads/tls-shared.c b/gdb/testsuite/gdb.threads/tls-shared.c
index d4f8e5c..02b1308 100644
--- a/gdb/testsuite/gdb.threads/tls-shared.c
+++ b/gdb/testsuite/gdb.threads/tls-shared.c
@@ -1,6 +1,11 @@
+
+#include <pthread.h>
+
__thread int i_tls = 1;
int foo ()
{
+ /* Ensure we link against pthreads even with --as-needed. */
+ pthread_testcancel();
return i_tls;
}
diff --git a/gdb/testsuite/gdb.threads/tls-var-main.c b/gdb/testsuite/gdb.threads/tls-var-main.c
index 34a2522..afad945 100644
--- a/gdb/testsuite/gdb.threads/tls-var-main.c
+++ b/gdb/testsuite/gdb.threads/tls-var-main.c
@@ -15,8 +15,12 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#include <pthread.h>
+
int
main (void)
{
+ /* Ensure we link against pthreads even with --as-needed. */
+ pthread_testcancel();
return 0;
}