+2017-11-08 Djordje Todorovic <djordje.todorovic@rt-rk.com>
+
+ * gdb.threads/tls-core.c: New file.
+ * gdb.threads/tls-core.exp: Likewise.
+
2017-11-08 Pedro Alves <palves@redhat.com>
* gdb.ada/complete.exp (p <Exported_Capitalized>): New test.
--- /dev/null
+/* This test is part of GDB, the GNU debugger.
+
+ Copyright 2017 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/>. */
+
+#include <pthread.h>
+
+int __thread foo = 0xdeadbeef;
+
+static void *
+thread_proc (void *arg)
+{
+ return arg;
+}
+
+int
+main (void)
+{
+ pthread_t thread;
+
+ pthread_create (&thread, NULL, thread_proc, NULL);
+ pthread_join (thread, NULL);
+
+ return 0;
+}
--- /dev/null
+# Copyright 2017 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/>.
+
+standard_testfile
+
+if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
+ executable { debug }] != "" } {
+ return -1
+}
+
+
+clean_restart ${binfile}
+
+runto thread_proc
+
+#
+# Generate corefile.
+#
+set corefile [standard_output_file gcore.test]
+set core_supported [gdb_gcore_cmd "$corefile" "save a corefile"]
+if {!$core_supported} {
+ return 0
+}
+
+#
+# Restart gdb and load generated corefile.
+#
+clean_restart ${binfile}
+
+set core_loaded [gdb_core_cmd "$corefile" "load generated corefile"]
+if { $core_loaded != 1 } {
+ # No use proceeding from here.
+ return 0
+}
+
+# This fails in cross-debugging due to the use of native `libthread_db'.
+if {![string match $host_triplet $target_triplet]} {
+ setup_kfail "threads/22381" "*-*-*"
+}
+gdb_test "p/x foo" \
+ "\\$\[0-9]+ = 0xdeadbeef" \
+ "print thread-local storage variable"
+
+gdb_exit