]> git.pld-linux.org Git - packages/gdb.git/blame - gdb-6.5-sharedlibrary-path.patch
- typo
[packages/gdb.git] / gdb-6.5-sharedlibrary-path.patch
CommitLineData
3a58abaf
AM
1If you provided some relative path to the shared library, such as with
2 export LD_LIBRARY_PATH=.
3then gdb would fail to match the shared library name during the TLS lookup.
4
5
6Dropped the workaround/fix for gdb-6.8.50.20081128 - is it still needed?
7
8
9The testsuite needs `gdb-6.3-bz146810-solib_absolute_prefix_is_empty.patch'.
10The testsuite needs `gdb-6.5-tls-of-separate-debuginfo.patch'.
11
12
132006-09-01 Jan Kratochvil <jan.kratochvil@redhat.com>
14
15 * solib-svr4.c (svr4_fetch_objfile_link_map): Match even absolute
16 requested pathnames to the internal loaded relative pathnames.
17
182007-10-16 Jan Kratochvil <jan.kratochvil@redhat.com>
19
20 Port to GDB-6.7.
21
222008-02-27 Jan Kratochvil <jan.kratochvil@redhat.com>
23
24 Port to gdb-6.7.50.20080227.
25
26Index: gdb-6.7.50.20080227/gdb/testsuite/gdb.threads/tls-sepdebug-main.c
27===================================================================
28--- /dev/null 1970-01-01 00:00:00.000000000 +0000
29+++ gdb-6.7.50.20080227/gdb/testsuite/gdb.threads/tls-sepdebug-main.c 2008-02-27 09:00:15.000000000 +0100
30@@ -0,0 +1,25 @@
31+/* This testcase is part of GDB, the GNU debugger.
32+
33+ Copyright 2006 Free Software Foundation, Inc.
34+
35+ This program is free software; you can redistribute it and/or modify
36+ it under the terms of the GNU General Public License as published by
37+ the Free Software Foundation; either version 2 of the License, or
38+ (at your option) any later version.
39+
40+ This program is distributed in the hope that it will be useful,
41+ but WITHOUT ANY WARRANTY; without even the implied warranty of
42+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
43+ GNU General Public License for more details.
44+
45+ You should have received a copy of the GNU General Public License
46+ along with this program; if not, write to the Free Software
47+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
48+
49+ Please email any bugs, comments, and/or additions to this file to:
50+ bug-gdb@prep.ai.mit.edu */
51+
52+int main()
53+{
54+ return 0;
55+}
56Index: gdb-6.7.50.20080227/gdb/testsuite/gdb.threads/tls-sepdebug-shared.c
57===================================================================
58--- /dev/null 1970-01-01 00:00:00.000000000 +0000
59+++ gdb-6.7.50.20080227/gdb/testsuite/gdb.threads/tls-sepdebug-shared.c 2008-02-27 09:00:15.000000000 +0100
60@@ -0,0 +1,22 @@
61+/* This testcase is part of GDB, the GNU debugger.
62+
63+ Copyright 2006 Free Software Foundation, Inc.
64+
65+ This program is free software; you can redistribute it and/or modify
66+ it under the terms of the GNU General Public License as published by
67+ the Free Software Foundation; either version 2 of the License, or
68+ (at your option) any later version.
69+
70+ This program is distributed in the hope that it will be useful,
71+ but WITHOUT ANY WARRANTY; without even the implied warranty of
72+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
73+ GNU General Public License for more details.
74+
75+ You should have received a copy of the GNU General Public License
76+ along with this program; if not, write to the Free Software
77+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
78+
79+ Please email any bugs, comments, and/or additions to this file to:
80+ bug-gdb@prep.ai.mit.edu */
81+
82+__thread int var = 42;
83--- /dev/null 2009-02-10 00:19:00.494289687 +0100
84+++ gdb-6.8.50.20090209-x/gdb/testsuite/gdb.threads/tls-sepdebug.exp 2009-02-10 00:49:38.000000000 +0100
85@@ -0,0 +1,86 @@
86+# Copyright 2006 Free Software Foundation, Inc.
87+
88+# This program is free software; you can redistribute it and/or modify
89+# it under the terms of the GNU General Public License as published by
90+# the Free Software Foundation; either version 2 of the License, or
91+# (at your option) any later version.
92+#
93+# This program is distributed in the hope that it will be useful,
94+# but WITHOUT ANY WARRANTY; without even the implied warranty of
95+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
96+# GNU General Public License for more details.
97+#
98+# You should have received a copy of the GNU General Public License
99+# along with this program; if not, write to the Free Software
100+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
101+
102+if $tracelevel then {
103+ strace $tracelevel
104+}
105+
106+set testfile tls-sepdebug
107+set srcmainfile ${testfile}-main.c
108+set srcsharedfile ${testfile}-shared.c
109+
110+set binmainfile ${objdir}/${subdir}/${testfile}-main
111+set binsharedbase ${testfile}-shared.so
112+set binsharedfile ${objdir}/${subdir}/${binsharedbase}
113+set binshareddebugfile ${objdir}/${subdir}/${binsharedbase}.debug
114+
115+# Use explicit -soname as otherwise the full path to the library would get
116+# encoded into ${binmainfile} making LD_LIBRARY_PATH tests useless.
117+
118+# FIXME: gcc dependency (-Wl,-soname).
119+
120+if { [gdb_compile_shlib "${srcdir}/${subdir}/${srcsharedfile}" "${binsharedfile}" [list debug additional_flags=-Wl,-soname=${binsharedbase}]] != "" } {
121+ untested "Couldn't compile test library"
122+ return -1
123+}
124+
125+# eu-strip(1) works fine but it is a part of `elfutils', not `binutils'.
126+if 0 then {
127+ remote_exec build "eu-strip -f ${binshareddebugfile} ${binsharedfile}"
128+} else {
129+ remote_exec build "objcopy --only-keep-debug ${binsharedfile} ${binshareddebugfile}"
130+ remote_exec build "objcopy --strip-debug ${binsharedfile}"
131+ remote_exec build "objcopy --add-gnu-debuglink=${binshareddebugfile} ${binsharedfile}"
132+}
133+
134+# Do not use `shlib=' as it will automatically add also -rpath for gcc.
135+
136+if { [gdb_compile_pthreads "${srcdir}/${subdir}/${srcmainfile} ${binsharedfile}" "${binmainfile}" executable {debug}] != "" } {
137+ untested "Couldn't compile test program"
138+ return -1
139+}
140+
141+# Get things started.
142+
143+# Test also the proper resolving of relative library names to absolute ones.
144+# \$PWD is easy - it is the absolute way
145+# ${subdir} would fail on "print var"
146+
147+foreach ld_library_path [list [pwd]/${subdir} ./${subdir}] name { absolute relative } {
148+
149+ gdb_exit
150+ gdb_start
151+ ###gdb_reinitialize_dir $srcdir/$subdir
152+
153+ gdb_test "set env LD_LIBRARY_PATH=$ld_library_path" \
154+ "" \
155+ "set env LD_LIBRARY_PATH is $name"
156+
157+ gdb_load ${binmainfile}
158+
159+ # For C programs, "start" should stop in main().
160+
161+ gdb_test "start" \
162+ "main \\(\\) at .*${srcmainfile}.*" \
163+ "start"
164+
165+ # Check for: Cannot find shared library `/usr/lib/debug/lib/libc-2.4.90.so.debug' in dynamic linker's load module list
166+ # as happens with TLS variables and `separate_debug_objfile_backlink'.
167+
168+ gdb_test "print var" \
169+ "\\\$1 = \[0-9\].*" \
170+ "print TLS variable from a shared library with $name-directory separate debug info file"
171+}
This page took 0.108024 seconds and 4 git commands to generate.