diff options
author | Will Newton <willnewton@sourceware.org> | 2013-07-18 15:49:22 +0000 |
---|---|---|
committer | Will Newton <willnewton@sourceware.org> | 2013-07-18 15:49:22 +0000 |
commit | 623cc2854011a4ffa83755d7ce9a9e078fa7ec80 (patch) | |
tree | 29deb49c7bd2c05038c9e1654516c4591f44bf03 /gdb/testsuite/gdb.threads | |
parent | 39b07303826d3c6c4045b41c62541611d1f93729 (diff) | |
download | gdb-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.
Diffstat (limited to 'gdb/testsuite/gdb.threads')
-rw-r--r-- | gdb/testsuite/gdb.threads/tls-nodebug.c | 2 | ||||
-rw-r--r-- | gdb/testsuite/gdb.threads/tls-shared.c | 5 | ||||
-rw-r--r-- | gdb/testsuite/gdb.threads/tls-var-main.c | 4 |
3 files changed, 11 insertions, 0 deletions
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; } |