aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.base/tls-multiobj2.c
diff options
context:
space:
mode:
authorKevin Buettner <kevinb@redhat.com>2025-04-23 21:39:29 -0700
committerKevin Buettner <kevinb@redhat.com>2025-04-24 09:54:43 -0700
commitb0789fb6c2f95c56890c2858d7360771cdf153e7 (patch)
treeda480770cd9416935d5795cf1218ffe2c20ed19a /gdb/testsuite/gdb.base/tls-multiobj2.c
parentde893f31c1a594d622d32bc19b9b30daea5db96b (diff)
downloadbinutils-b0789fb6c2f95c56890c2858d7360771cdf153e7.zip
binutils-b0789fb6c2f95c56890c2858d7360771cdf153e7.tar.gz
binutils-b0789fb6c2f95c56890c2858d7360771cdf153e7.tar.bz2
New test - gdb.base/tls-multiobj.exp
This test exercises GDB's internal TLS support when both the main program and several shared libraries have TLS variables. It also tests existing (non-internal) TLS support too. It tests using two compilation scenarios, "default", in which libpthread is not linked with the program and libraries as well as one which does use libpthread. It tests link map address to module id mapping code in GDB in addition to the ability of GDB to traverse TLS data structures with several libraries in play. Tested-By: Luis Machado <luis.machado@arm.com> Approved-By: Luis Machado <luis.machado@arm.com>
Diffstat (limited to 'gdb/testsuite/gdb.base/tls-multiobj2.c')
-rw-r--r--gdb/testsuite/gdb.base/tls-multiobj2.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.base/tls-multiobj2.c b/gdb/testsuite/gdb.base/tls-multiobj2.c
new file mode 100644
index 0000000..cea0709
--- /dev/null
+++ b/gdb/testsuite/gdb.base/tls-multiobj2.c
@@ -0,0 +1,26 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2024 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+__thread int tls_lib2_tbss_1;
+__thread int tls_lib2_tbss_2;
+__thread int tls_lib2_tdata_1 = 296;
+__thread int tls_lib2_tdata_2 = 297;
+
+void
+lib2_func ()
+{
+}