Magellan Linux

Annotation of /trunk/gdb/patches/gdb-6.4-1ubuntu5.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 144 - (hide annotations) (download)
Tue May 8 20:06:05 2007 UTC (17 years, 1 month ago) by niro
File size: 184911 byte(s)
-import

1 niro 144 --- gdb-6.4.orig/debian/control.in
2     +++ gdb-6.4/debian/control.in
3     @@ -0,0 +1,19 @@
4     +Source: gdb
5     +Maintainer: Daniel Jacobowitz <dan@debian.org>
6     +Section: devel
7     +Priority: standard
8     +Standards-Version: 3.5.3
9     +Build-Depends: autoconf, libtool, texinfo (>= 4.7-2.2), tetex-bin, libncurses5-dev, libreadline4-dev (>= 4.2a-1), bison, gettext, debhelper (>= 4.9.0), dejagnu, gcj [!mips !mipsel !hurd-i386], gobjc, mig [@gnu@], cdbs (>= 0.4.17), quilt (>= 0.30-1), libkvm-dev [@kfreebsd@], type-handling (>= 0.2.1), libunwind7-dev [ia64], flex | flex-old
10     +
11     +Package: gdb
12     +Architecture: any
13     +Section: devel
14     +Depends: ${shlibs:Depends}
15     +Conflicts: gdb-arm
16     +Replaces: gdb-arm, insight (<< 6.1+cvs.2004.04.07-1)
17     +Description: The GNU Debugger
18     + GDB is a source-level debugger, capable of breaking programs at
19     + any specific line, displaying variable values, and determining
20     + where errors occurred. Currently, it works for C, C++, Fortran
21     + Modula 2 and Java programs. A must-have for any serious
22     + programmer.
23     --- gdb-6.4.orig/debian/patches/series
24     +++ gdb-6.4/debian/patches/series
25     @@ -0,0 +1,25 @@
26     +10.selected-frame.patch
27     +13.use-dynamic-readline.patch
28     +static-thread-db.patch
29     +34.info-section.patch
30     +sim-destdir.patch
31     +member-field-symtab.patch
32     +cp-pass-by-reference.patch
33     +thread-db-multiple-libraries.patch
34     +static-threads-test.patch
35     +dwarf2-cfi-warning.patch
36     +gdbinit-ownership.patch
37     +pending-breakpoints-and-sigttou.patch
38     +gdb-pascal-support.patch
39     +gdb-nptl-cancellation.patch
40     +gdb-fortran-main.patch
41     +gdb-powerpc-pic-prologue.patch
42     +linux-clear-thread-list.patch
43     +fix-attach-inferior-notification.patch
44     +gdb-sparclinux-threads.patch
45     +sparc32-dwarf2.patch
46     +sparc-dwarf2-unimp.patch
47     +sparclinux-dwarf2-unwind.patch
48     +sparclinux-core-regset.patch
49     +linux-nat-core-regset.patch
50     +linux_nat_do_thread_registers.patch
51     --- gdb-6.4.orig/debian/patches/sparclinux-dwarf2-unwind.patch
52     +++ gdb-6.4/debian/patches/sparclinux-dwarf2-unwind.patch
53     @@ -0,0 +1,43 @@
54     +2006-04-05 David S. Miller <davem@sunset.davemloft.net>
55     +
56     + * sparc-linux-tdep.c (sparc32_linux_init_abi): Append
57     + dwarf2 frame sniffer.
58     + * Makefile.in (sparc-linux-tdep.o): Update dependencies.
59     +
60     +--- gdb-6.4/gdb/Makefile.in.~1~ 2006-05-01 00:18:42.000000000 -0700
61     ++++ gdb-6.4/gdb/Makefile.in 2006-05-01 00:18:45.000000000 -0700
62     +@@ -2617,10 +2617,10 @@ sparc64-tdep.o: sparc64-tdep.c $(defs_h)
63     + $(gdb_string_h) $(sparc64_tdep_h)
64     + sparc-linux-nat.o: sparc-linux-nat.c $(defs_h) $(inferior_h) $(target_h) \
65     + $(linux_nat_h)
66     +-sparc-linux-tdep.o: sparc-linux-tdep.c $(defs_h) $(floatformat_h) $(frame_h) \
67     +- $(frame_unwind_h) $(gdbarch_h) $(gdbcore_h) $(osabi_h) $(regcache_h) \
68     +- $(solib_svr4_h) $(symtab_h) $(trad_frame_h) $(tramp_frame_h) \
69     +- $(sparc_tdep_h)
70     ++sparc-linux-tdep.o: sparc-linux-tdep.c $(defs_h) $(dwarf2_frame_h) \
71     ++ $(floatformat_h) $(frame_h) $(frame_unwind_h) $(gdbarch_h) \
72     ++ $(gdbcore_h) $(osabi_h) $(regcache_h) $(solib_svr4_h) $(symtab_h) \
73     ++ $(trad_frame_h) $(tramp_frame_h) $(sparc_tdep_h)
74     + sparc-nat.o: sparc-nat.c $(defs_h) $(inferior_h) $(regcache_h) $(target_h) \
75     + $(gdb_assert_h) $(gdb_string_h) $(gdb_wait_h) $(sparc_tdep_h) \
76     + $(sparc_nat_h) $(inf_ptrace_h)
77     +--- gdb-6.4/gdb/sparc-linux-tdep.c.~1~ 2006-05-01 00:18:42.000000000 -0700
78     ++++ gdb-6.4/gdb/sparc-linux-tdep.c 2006-05-01 00:18:45.000000000 -0700
79     +@@ -20,6 +20,7 @@
80     + Boston, MA 02111-1307, USA. */
81     +
82     + #include "defs.h"
83     ++#include "dwarf2-frame.h"
84     + #include "floatformat.h"
85     + #include "frame.h"
86     + #include "frame-unwind.h"
87     +@@ -147,6 +148,9 @@ sparc32_linux_init_abi (struct gdbarch_i
88     + /* Enable TLS support. */
89     + set_gdbarch_fetch_tls_load_module_address (gdbarch,
90     + svr4_fetch_objfile_link_map);
91     ++
92     ++ /* Hook in the DWARF CFI frame unwinder. */
93     ++ frame_unwind_append_sniffer (gdbarch, dwarf2_frame_sniffer);
94     + }
95     +
96     + /* Provide a prototype to silence -Wmissing-prototypes. */
97     --- gdb-6.4.orig/debian/patches/sparc32-dwarf2.patch
98     +++ gdb-6.4/debian/patches/sparc32-dwarf2.patch
99     @@ -0,0 +1,78 @@
100     +2006-04-04 David S. Miller <davem@sunset.davemloft.net>
101     +
102     + * sparc-tdep.c (sparc32_dwarf2_frame_init_reg): New.
103     + (sparc32_gdbarch_init): Pass it to dwarf2_frame_set_init_reg.
104     + * Makefile.in (sparc-tdep.o): Update dependencies.
105     +
106     +--- gdb-6.4/gdb/Makefile.in.~1~ 2006-04-30 23:25:58.000000000 -0700
107     ++++ gdb-6.4/gdb/Makefile.in 2006-04-30 23:26:01.000000000 -0700
108     +@@ -2641,10 +2641,10 @@ sparc-sol2-tdep.o: sparc-sol2-tdep.c $(d
109     + $(sparc_tdep_h) $(solib_svr4_h)
110     + sparc-stub.o: sparc-stub.c
111     + sparc-tdep.o: sparc-tdep.c $(defs_h) $(arch_utils_h) $(dis_asm_h) \
112     +- $(floatformat_h) $(frame_h) $(frame_base_h) $(frame_unwind_h) \
113     +- $(gdbcore_h) $(gdbtypes_h) $(inferior_h) $(symtab_h) $(objfiles_h) \
114     +- $(osabi_h) $(regcache_h) $(target_h) $(value_h) $(gdb_assert_h) \
115     +- $(gdb_string_h) $(sparc_tdep_h)
116     ++ $(dwarf2_frame_h) $(floatformat_h) $(frame_h) $(frame_base_h) \
117     ++ $(frame_unwind_h) $(gdbcore_h) $(gdbtypes_h) $(inferior_h) \
118     ++ $(symtab_h) $(objfiles_h) $(osabi_h) $(regcache_h) $(target_h) \
119     ++ $(value_h) $(gdb_assert_h) $(gdb_string_h) $(sparc_tdep_h)
120     + stabsread.o: stabsread.c $(defs_h) $(gdb_string_h) $(bfd_h) $(gdb_obstack_h) \
121     + $(symtab_h) $(gdbtypes_h) $(expression_h) $(symfile_h) $(objfiles_h) \
122     + $(aout_stab_gnu_h) $(libaout_h) $(aout_aout64_h) $(gdb_stabs_h) \
123     +--- gdb-6.4/gdb/sparc-tdep.c.~1~ 2006-04-30 23:25:58.000000000 -0700
124     ++++ gdb-6.4/gdb/sparc-tdep.c 2006-04-30 23:26:56.000000000 -0700
125     +@@ -22,6 +22,7 @@
126     + #include "defs.h"
127     + #include "arch-utils.h"
128     + #include "dis-asm.h"
129     ++#include "dwarf2-frame.h"
130     + #include "floatformat.h"
131     + #include "frame.h"
132     + #include "frame-base.h"
133     +@@ -1001,6 +1002,32 @@ sparc32_stabs_argument_has_addr (struct
134     + || (sparc_floating_p (type) && TYPE_LENGTH (type) == 16));
135     + }
136     +
137     ++static void
138     ++sparc32_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
139     ++ struct dwarf2_frame_state_reg *reg)
140     ++{
141     ++ switch (regnum)
142     ++ {
143     ++ case SPARC_G0_REGNUM:
144     ++ /* Since %g0 is always zero, there is no point in saving it, and
145     ++ people will be inclined omit it from the CFI. Make sure we
146     ++ don't warn about that. */
147     ++ reg->how = DWARF2_FRAME_REG_SAME_VALUE;
148     ++ break;
149     ++ case SPARC_SP_REGNUM:
150     ++ reg->how = DWARF2_FRAME_REG_CFA;
151     ++ break;
152     ++ case SPARC32_PC_REGNUM:
153     ++ reg->how = DWARF2_FRAME_REG_RA_OFFSET;
154     ++ reg->loc.offset = 8;
155     ++ break;
156     ++ case SPARC32_NPC_REGNUM:
157     ++ reg->how = DWARF2_FRAME_REG_RA_OFFSET;
158     ++ reg->loc.offset = 12;
159     ++ break;
160     ++ }
161     ++}
162     ++
163     +
164     + /* The SPARC Architecture doesn't have hardware single-step support,
165     + and most operating systems don't implement it either, so we provide
166     +@@ -1240,6 +1267,11 @@ sparc32_gdbarch_init (struct gdbarch_inf
167     +
168     + frame_base_set_default (gdbarch, &sparc32_frame_base);
169     +
170     ++ /* Hook in the DWARF CFI frame unwinder. */
171     ++ dwarf2_frame_set_init_reg (gdbarch, sparc32_dwarf2_frame_init_reg);
172     ++ /* FIXME: kettenis/20050423: Don't enable the unwinder until the
173     ++ StackGhost issues have been resolved. */
174     ++
175     + /* Hook in ABI-specific overrides, if they have been registered. */
176     + gdbarch_init_osabi (info, gdbarch);
177     +
178     --- gdb-6.4.orig/debian/patches/sparc-dwarf2-unimp.patch
179     +++ gdb-6.4/debian/patches/sparc-dwarf2-unimp.patch
180     @@ -0,0 +1,213 @@
181     +2006-04-05 David S. Miller <davem@sunset.davemloft.net>
182     +
183     + * dwarf2-frame.c (dwarf2_frame_ops init_reg): Add "next_frame"
184     + argument.
185     + (dwarf2_frame_default_init_reg): Likewise.
186     + (dwarf2_frame_set_init_reg): Update init_reg arg.
187     + (dwarf2_frame_init_reg): Take "next_frame" and pass it to
188     + ops->init_reg().
189     + (dwarf2_frame_cache): Pass next_frame to dwarf2_frame_init_reg.
190     + * dwarf2-frame.h (dwarf2-frame_set_init_reg): Update declaration.
191     + * cris-tdep.c (cris_dwarf2_frame_init_reg): Add next_frame arg.
192     + * s390-tdep.c (s390_dwarf2_frame_init_reg): Likewise.
193     + * sparc64-tdep.c (sparc64_dwarf2_frame_init_reg): Likewise.
194     + * sparc-tdep.c (sparc32_struct_return_from_sym): New function.
195     + (sparc32_frame_cache): Call it.
196     + (sparc32_dwarf2_struct_return_p): New function.
197     + (sparc_dwarf2_frame_init_reg): Use it to determine if the function
198     + returns a structure and thus we have to indicate the return PC and
199     + NPC are 4 bytes later than usual.
200     +
201     +--- gdb-6.4/gdb/cris-tdep.c.~1~ 2006-04-30 23:32:22.000000000 -0700
202     ++++ gdb-6.4/gdb/cris-tdep.c 2006-04-30 23:32:25.000000000 -0700
203     +@@ -1851,7 +1851,8 @@ cris_dwarf2_reg_to_regnum (int reg)
204     +
205     + static void
206     + cris_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
207     +- struct dwarf2_frame_state_reg *reg)
208     ++ struct dwarf2_frame_state_reg *reg,
209     ++ struct frame_info *next_frame)
210     + {
211     + /* The return address column. */
212     + if (regnum == PC_REGNUM)
213     +--- gdb-6.4/gdb/dwarf2-frame.c.~1~ 2006-04-30 23:32:22.000000000 -0700
214     ++++ gdb-6.4/gdb/dwarf2-frame.c 2006-04-30 23:32:24.000000000 -0700
215     +@@ -506,7 +506,8 @@ static struct gdbarch_data *dwarf2_frame
216     + struct dwarf2_frame_ops
217     + {
218     + /* Pre-initialize the register state REG for register REGNUM. */
219     +- void (*init_reg) (struct gdbarch *, int, struct dwarf2_frame_state_reg *);
220     ++ void (*init_reg) (struct gdbarch *, int, struct dwarf2_frame_state_reg *,
221     ++ struct frame_info *);
222     +
223     + /* Check whether the frame preceding NEXT_FRAME will be a signal
224     + trampoline. */
225     +@@ -518,7 +519,8 @@ struct dwarf2_frame_ops
226     +
227     + static void
228     + dwarf2_frame_default_init_reg (struct gdbarch *gdbarch, int regnum,
229     +- struct dwarf2_frame_state_reg *reg)
230     ++ struct dwarf2_frame_state_reg *reg,
231     ++ struct frame_info *next_frame)
232     + {
233     + /* If we have a register that acts as a program counter, mark it as
234     + a destination for the return address. If we have a register that
235     +@@ -570,7 +572,8 @@ dwarf2_frame_init (struct obstack *obsta
236     + void
237     + dwarf2_frame_set_init_reg (struct gdbarch *gdbarch,
238     + void (*init_reg) (struct gdbarch *, int,
239     +- struct dwarf2_frame_state_reg *))
240     ++ struct dwarf2_frame_state_reg *,
241     ++ struct frame_info *))
242     + {
243     + struct dwarf2_frame_ops *ops = gdbarch_data (gdbarch, dwarf2_frame_data);
244     +
245     +@@ -581,11 +584,12 @@ dwarf2_frame_set_init_reg (struct gdbarc
246     +
247     + static void
248     + dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
249     +- struct dwarf2_frame_state_reg *reg)
250     ++ struct dwarf2_frame_state_reg *reg,
251     ++ struct frame_info *next_frame)
252     + {
253     + struct dwarf2_frame_ops *ops = gdbarch_data (gdbarch, dwarf2_frame_data);
254     +
255     +- ops->init_reg (gdbarch, regnum, reg);
256     ++ ops->init_reg (gdbarch, regnum, reg, next_frame);
257     + }
258     +
259     + /* Set the architecture-specific signal trampoline recognition
260     +@@ -713,7 +717,7 @@ dwarf2_frame_cache (struct frame_info *n
261     + int regnum;
262     +
263     + for (regnum = 0; regnum < num_regs; regnum++)
264     +- dwarf2_frame_init_reg (gdbarch, regnum, &cache->reg[regnum]);
265     ++ dwarf2_frame_init_reg (gdbarch, regnum, &cache->reg[regnum], next_frame);
266     + }
267     +
268     + /* Go through the DWARF2 CFI generated table and save its register
269     +--- gdb-6.4/gdb/dwarf2-frame.h.~1~ 2006-04-30 23:32:22.000000000 -0700
270     ++++ gdb-6.4/gdb/dwarf2-frame.h 2006-04-30 23:32:24.000000000 -0700
271     +@@ -78,7 +78,8 @@ struct dwarf2_frame_state_reg
272     +
273     + extern void dwarf2_frame_set_init_reg (struct gdbarch *gdbarch,
274     + void (*init_reg) (struct gdbarch *, int,
275     +- struct dwarf2_frame_state_reg *));
276     ++ struct dwarf2_frame_state_reg *,
277     ++ struct frame_info *));
278     +
279     + /* Set the architecture-specific signal trampoline recognition
280     + function for GDBARCH to SIGNAL_FRAME_P. */
281     +--- gdb-6.4/gdb/s390-tdep.c.~1~ 2006-04-30 23:32:22.000000000 -0700
282     ++++ gdb-6.4/gdb/s390-tdep.c 2006-04-30 23:32:25.000000000 -0700
283     +@@ -2281,7 +2281,8 @@ s390_unwind_sp (struct gdbarch *gdbarch,
284     +
285     + static void
286     + s390_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
287     +- struct dwarf2_frame_state_reg *reg)
288     ++ struct dwarf2_frame_state_reg *reg,
289     ++ struct frame_info *next_frame)
290     + {
291     + struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
292     +
293     +--- gdb-6.4/gdb/sparc-tdep.c.~1~ 2006-04-30 23:32:22.000000000 -0700
294     ++++ gdb-6.4/gdb/sparc-tdep.c 2006-04-30 23:32:25.000000000 -0700
295     +@@ -680,6 +680,23 @@ sparc_frame_cache (struct frame_info *ne
296     + return cache;
297     + }
298     +
299     ++static int
300     ++sparc32_struct_return_from_sym (struct symbol *sym)
301     ++{
302     ++ struct type *type = check_typedef (SYMBOL_TYPE (sym));
303     ++ enum type_code code = TYPE_CODE (type);
304     ++
305     ++ if (code == TYPE_CODE_FUNC || code == TYPE_CODE_METHOD)
306     ++ {
307     ++ type = check_typedef (TYPE_TARGET_TYPE (type));
308     ++ if (sparc_structure_or_union_p (type)
309     ++ || (sparc_floating_p (type) && TYPE_LENGTH (type) == 16))
310     ++ return 1;
311     ++ }
312     ++
313     ++ return 0;
314     ++}
315     ++
316     + struct sparc_frame_cache *
317     + sparc32_frame_cache (struct frame_info *next_frame, void **this_cache)
318     + {
319     +@@ -694,16 +711,7 @@ sparc32_frame_cache (struct frame_info *
320     + sym = find_pc_function (cache->pc);
321     + if (sym)
322     + {
323     +- struct type *type = check_typedef (SYMBOL_TYPE (sym));
324     +- enum type_code code = TYPE_CODE (type);
325     +-
326     +- if (code == TYPE_CODE_FUNC || code == TYPE_CODE_METHOD)
327     +- {
328     +- type = check_typedef (TYPE_TARGET_TYPE (type));
329     +- if (sparc_structure_or_union_p (type)
330     +- || (sparc_floating_p (type) && TYPE_LENGTH (type) == 16))
331     +- cache->struct_return_p = 1;
332     +- }
333     ++ cache->struct_return_p = sparc32_struct_return_from_sym (sym);
334     + }
335     + else
336     + {
337     +@@ -1002,10 +1010,24 @@ sparc32_stabs_argument_has_addr (struct
338     + || (sparc_floating_p (type) && TYPE_LENGTH (type) == 16));
339     + }
340     +
341     ++static int
342     ++sparc32_dwarf2_struct_return_p (struct frame_info *next_frame)
343     ++{
344     ++ CORE_ADDR pc = frame_unwind_address_in_block (next_frame);
345     ++ struct symbol *sym = find_pc_function (pc);
346     ++
347     ++ if (sym)
348     ++ return sparc32_struct_return_from_sym (sym);
349     ++ return 0;
350     ++}
351     ++
352     + static void
353     + sparc32_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
354     +- struct dwarf2_frame_state_reg *reg)
355     ++ struct dwarf2_frame_state_reg *reg,
356     ++ struct frame_info *next_frame)
357     + {
358     ++ int off;
359     ++
360     + switch (regnum)
361     + {
362     + case SPARC_G0_REGNUM:
363     +@@ -1018,12 +1040,14 @@ sparc32_dwarf2_frame_init_reg (struct gd
364     + reg->how = DWARF2_FRAME_REG_CFA;
365     + break;
366     + case SPARC32_PC_REGNUM:
367     +- reg->how = DWARF2_FRAME_REG_RA_OFFSET;
368     +- reg->loc.offset = 8;
369     +- break;
370     + case SPARC32_NPC_REGNUM:
371     + reg->how = DWARF2_FRAME_REG_RA_OFFSET;
372     +- reg->loc.offset = 12;
373     ++ off = 8;
374     ++ if (sparc32_dwarf2_struct_return_p (next_frame))
375     ++ off += 4;
376     ++ if (regnum == SPARC32_NPC_REGNUM)
377     ++ off += 4;
378     ++ reg->loc.offset = off;
379     + break;
380     + }
381     + }
382     +--- gdb-6.4/gdb/sparc64-tdep.c.~1~ 2006-04-30 23:32:22.000000000 -0700
383     ++++ gdb-6.4/gdb/sparc64-tdep.c 2006-04-30 23:32:25.000000000 -0700
384     +@@ -1106,7 +1106,8 @@ sparc64_return_value (struct gdbarch *gd
385     +
386     + static void
387     + sparc64_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
388     +- struct dwarf2_frame_state_reg *reg)
389     ++ struct dwarf2_frame_state_reg *reg,
390     ++ struct frame_info *next_frame)
391     + {
392     + switch (regnum)
393     + {
394     --- gdb-6.4.orig/debian/patches/gdb-sparclinux-threads.patch
395     +++ gdb-6.4/debian/patches/gdb-sparclinux-threads.patch
396     @@ -0,0 +1,121 @@
397     +2006-04-01 David S. Miller <davem@davemloft.net>
398     +
399     + * config/linux.mh (NATDEPFILES): Remove sparc-sol2-nat.o
400     + * config/linux64.h (NATDEPFILES): Likewise
401     + * sparc-linux-nat.c (supply_gregset, supply_fpregset, fill_gregset,
402     + fill_fpregset): New.
403     + * sparc64-linux-nat.c (supply_gregset, supply_fpregset, fill_gregset,
404     + fill_fpregset): New.
405     +%patch
406     +--- gdb-6.4/gdb/config/sparc/linux.mh.~1~ 2005-09-10 11:11:13.000000000 -0700
407     ++++ gdb-6.4/gdb/config/sparc/linux.mh 2006-04-01 22:33:54.000000000 -0800
408     +@@ -1,6 +1,6 @@
409     + # Host: GNU/Linux SPARC
410     + NAT_FILE= nm-linux.h
411     +-NATDEPFILES= sparc-nat.o sparc-sol2-nat.o sparc-linux-nat.o \
412     ++NATDEPFILES= sparc-nat.o sparc-linux-nat.o \
413     + corelow.o core-regset.o fork-child.o inf-ptrace.o \
414     + proc-service.o linux-thread-db.o \
415     + gcore.o linux-nat.o
416     +--- gdb-6.4/gdb/config/sparc/linux64.mh.~1~ 2005-09-10 11:11:14.000000000 -0700
417     ++++ gdb-6.4/gdb/config/sparc/linux64.mh 2006-04-01 22:45:49.000000000 -0800
418     +@@ -1,6 +1,6 @@
419     + # Host: GNU/Linux UltraSPARC
420     + NAT_FILE= nm-linux.h
421     +-NATDEPFILES= sparc-nat.o sparc64-nat.o sparc-sol2-nat.o sparc64-linux-nat.o \
422     ++NATDEPFILES= sparc-nat.o sparc64-nat.o sparc64-linux-nat.o \
423     + corelow.o core-regset.o \
424     + fork-child.o inf-ptrace.o \
425     + proc-service.o linux-thread-db.o \
426     +--- gdb-6.4/gdb/sparc-linux-nat.c.~1~ 2005-09-10 11:11:05.000000000 -0700
427     ++++ gdb-6.4/gdb/sparc-linux-nat.c 2006-04-01 22:38:48.000000000 -0800
428     +@@ -20,9 +20,38 @@
429     + Boston, MA 02111-1307, USA. */
430     +
431     + #include "defs.h"
432     ++#include "regcache.h"
433     + #include "inferior.h"
434     + #include "target.h"
435     ++#include <sys/procfs.h>
436     ++#include "gregset.h"
437     + #include "linux-nat.h"
438     ++#include "sparc-nat.h"
439     ++#include "sparc-tdep.h"
440     ++
441     ++void
442     ++supply_gregset (prgregset_t *gregs)
443     ++{
444     ++ sparc32_supply_gregset (sparc_gregset, current_regcache, -1, gregs);
445     ++}
446     ++
447     ++void
448     ++supply_fpregset (prfpregset_t *fpregs)
449     ++{
450     ++ sparc32_supply_fpregset (current_regcache, -1, fpregs);
451     ++}
452     ++
453     ++void
454     ++fill_gregset (prgregset_t *gregs, int regnum)
455     ++{
456     ++ sparc32_collect_gregset (sparc_gregset, current_regcache, regnum, gregs);
457     ++}
458     ++
459     ++void
460     ++fill_fpregset (prfpregset_t *fpregs, int regnum)
461     ++{
462     ++ sparc32_collect_fpregset (current_regcache, regnum, fpregs);
463     ++}
464     +
465     + void _initialialize_sparc_linux_nat (void);
466     +
467     +--- gdb-6.4/gdb/sparc64-linux-nat.c.~1~ 2005-09-10 11:11:05.000000000 -0700
468     ++++ gdb-6.4/gdb/sparc64-linux-nat.c 2006-04-01 22:39:29.000000000 -0800
469     +@@ -20,12 +20,14 @@
470     + Boston, MA 02111-1307, USA. */
471     +
472     + #include "defs.h"
473     +-
474     +-#include "sparc64-tdep.h"
475     +-#include "sparc-nat.h"
476     ++#include "regcache.h"
477     + #include "inferior.h"
478     + #include "target.h"
479     ++#include <sys/procfs.h>
480     ++#include "sparc64-tdep.h"
481     ++#include "sparc-nat.h"
482     + #include "linux-nat.h"
483     ++#include "sparc-tdep.h"
484     +
485     + static const struct sparc_gregset sparc64_linux_ptrace_gregset =
486     + {
487     +@@ -41,6 +43,30 @@ static const struct sparc_gregset sparc6
488     + };
489     +
490     +
491     ++void
492     ++supply_gregset (prgregset_t *gregs)
493     ++{
494     ++ sparc64_supply_gregset (sparc_gregset, current_regcache, -1, gregs);
495     ++}
496     ++
497     ++void
498     ++supply_fpregset (prfpregset_t *fpregs)
499     ++{
500     ++ sparc64_supply_fpregset (current_regcache, -1, fpregs);
501     ++}
502     ++
503     ++void
504     ++fill_gregset (prgregset_t *gregs, int regnum)
505     ++{
506     ++ sparc64_collect_gregset (sparc_gregset, current_regcache, regnum, gregs);
507     ++}
508     ++
509     ++void
510     ++fill_fpregset (prfpregset_t *fpregs, int regnum)
511     ++{
512     ++ sparc64_collect_fpregset (current_regcache, regnum, fpregs);
513     ++}
514     ++
515     + /* Provide a prototype to silence -Wmissing-prototypes. */
516     + void _initialize_sparc64_linux_nat (void);
517     +
518     --- gdb-6.4.orig/debian/patches/13.use-dynamic-readline.patch
519     +++ gdb-6.4/debian/patches/13.use-dynamic-readline.patch
520     @@ -0,0 +1,29 @@
521     +Debian local - Use system readline to build.
522     +
523     +It would be nice to add a configure argument for this upstream.
524     +
525     +Index: gdb-6.3/gdb/Makefile.in
526     +===================================================================
527     +--- gdb-6.3.orig/gdb/Makefile.in 2004-11-03 21:18:49.000000000 -0500
528     ++++ gdb-6.3/gdb/Makefile.in 2004-11-09 23:04:57.204160812 -0500
529     +@@ -121,10 +121,16 @@ BFD_SRC = $(srcdir)/$(BFD_DIR)
530     + BFD_CFLAGS = -I$(BFD_DIR) -I$(BFD_SRC)
531     +
532     + # Where is the READLINE library? Typically in ../readline.
533     +-READLINE_DIR = ../readline
534     +-READLINE = $(READLINE_DIR)/libreadline.a
535     +-READLINE_SRC = $(srcdir)/$(READLINE_DIR)
536     +-READLINE_CFLAGS = -I$(READLINE_SRC)/..
537     ++#READLINE_DIR = ../readline
538     ++#READLINE = $(READLINE_DIR)/libreadline.a
539     ++#READLINE_SRC = $(srcdir)/$(READLINE_DIR)
540     ++#READLINE_CFLAGS = -I$(READLINE_SRC)/..
541     ++#
542     ++# Debian has a perfectly fine readline - use it.
543     ++READLINE_SRC=/usr/include/readline
544     ++READLINE=-lreadline
545     ++READLINE_CFLAGS=
546     ++READLINE_DIR=
547     +
548     + WARN_CFLAGS = @WARN_CFLAGS@
549     + WERROR_CFLAGS = @WERROR_CFLAGS@
550     --- gdb-6.4.orig/debian/patches/34.info-section.patch
551     +++ gdb-6.4/debian/patches/34.info-section.patch
552     @@ -0,0 +1,42 @@
553     +Debian-local:
554     + Use the Development section, for consistency with other Debian packages.
555     +
556     +Index: gdb-6.3/gdb/doc/gdb.texinfo
557     +===================================================================
558     +--- gdb-6.3.orig/gdb/doc/gdb.texinfo 2004-10-08 15:19:03.000000000 -0400
559     ++++ gdb-6.3/gdb/doc/gdb.texinfo 2004-11-10 00:38:00.343924014 -0500
560     +@@ -38,7 +38,7 @@
561     +
562     + @c This is a dir.info fragment to support semi-automated addition of
563     + @c manuals to an info tree.
564     +-@dircategory Software development
565     ++@dircategory Development
566     + @direntry
567     + * Gdb: (gdb). The GNU debugger.
568     + @end direntry
569     +Index: gdb-6.3/gdb/doc/gdbint.texinfo
570     +===================================================================
571     +--- gdb-6.3.orig/gdb/doc/gdbint.texinfo 2004-10-12 15:14:31.000000000 -0400
572     ++++ gdb-6.3/gdb/doc/gdbint.texinfo 2004-11-10 00:37:59.165154226 -0500
573     +@@ -1,7 +1,7 @@
574     + \input texinfo @c -*- texinfo -*-
575     + @setfilename gdbint.info
576     + @include gdb-cfg.texi
577     +-@dircategory Software development
578     ++@dircategory Development
579     + @direntry
580     + * Gdb-Internals: (gdbint). The GNU debugger's internals.
581     + @end direntry
582     +Index: gdb-6.3/gdb/doc/stabs.texinfo
583     +===================================================================
584     +--- gdb-6.3.orig/gdb/doc/stabs.texinfo 2004-09-21 17:06:37.000000000 -0400
585     ++++ gdb-6.3/gdb/doc/stabs.texinfo 2004-11-10 00:37:59.874015787 -0500
586     +@@ -5,7 +5,7 @@
587     +
588     + @c This is a dir.info fragment to support semi-automated addition of
589     + @c manuals to an info tree.
590     +-@dircategory Software development
591     ++@dircategory Development
592     + @direntry
593     + * Stabs: (stabs). The "stabs" debugging information format.
594     + @end direntry
595     --- gdb-6.4.orig/debian/patches/sim-destdir.patch
596     +++ gdb-6.4/debian/patches/sim-destdir.patch
597     @@ -0,0 +1,29 @@
598     +Fix some missing uses of DESTDIR in the sim/ directories. The Debian
599     +packages use DESTDIR to build.
600     +
601     +%patch
602     +Index: gdb-6.3/sim/Makefile.in
603     +===================================================================
604     +--- gdb-6.3.orig/sim/Makefile.in 2003-09-03 14:46:52.000000000 -0400
605     ++++ gdb-6.3/sim/Makefile.in 2004-11-10 00:39:25.381315738 -0500
606     +@@ -93,6 +93,7 @@ FLAGS_TO_PASS = \
607     + "CC=$(CC)" \
608     + "CC_FOR_BUILD=$(CC_FOR_BUILD)" \
609     + "CFLAGS=$(CFLAGS)" \
610     ++ "DESTDIR=$(DESTDIR)" \
611     + "RANLIB=$(RANLIB)" \
612     + "MAKEINFO=$(MAKEINFO)" \
613     + "INSTALL=$(INSTALL)" \
614     +Index: gdb-6.3/sim/erc32/Makefile.in
615     +===================================================================
616     +--- gdb-6.3.orig/sim/erc32/Makefile.in 2000-03-07 10:32:49.000000000 -0500
617     ++++ gdb-6.3/sim/erc32/Makefile.in 2004-11-10 00:39:25.385314957 -0500
618     +@@ -53,7 +53,7 @@ end.h: end
619     + # Copy the files into directories where they will be run.
620     + install-sis: installdirs
621     + n=`echo sis | sed '$(program_transform_name)'`; \
622     +- $(INSTALL_PROGRAM) sis$(EXEEXT) $(bindir)/$$n$(EXEEXT)
623     ++ $(INSTALL_PROGRAM) sis$(EXEEXT) $(DESTDIR)$(bindir)/$$n$(EXEEXT)
624     +
625     + clean-sis:
626     + rm -f sis end end.h
627     --- gdb-6.4.orig/debian/patches/member-field-symtab.patch
628     +++ gdb-6.4/debian/patches/member-field-symtab.patch
629     @@ -0,0 +1,35 @@
630     +Status: unsubmitted
631     +
632     +This patch was for Debian bug #239535. It needs to be tested, and
633     +submitted.
634     +
635     +Index: gdb-6.3.90.20051119/gdb/valops.c
636     +===================================================================
637     +--- gdb-6.3.90.20051119.orig/gdb/valops.c 2005-11-19 22:42:02.000000000 -0500
638     ++++ gdb-6.3.90.20051119/gdb/valops.c 2005-11-19 22:42:40.000000000 -0500
639     +@@ -2256,8 +2256,10 @@ check_field_in (struct type *type, const
640     + return 1;
641     + }
642     +
643     ++ /* Check each baseclass. Call check_typedef, which will follow typedefs
644     ++ and do opaque/stub type resolution. */
645     + for (i = TYPE_N_BASECLASSES (type) - 1; i >= 0; i--)
646     +- if (check_field_in (TYPE_BASECLASS (type, i), name))
647     ++ if (check_field_in (check_typedef (TYPE_BASECLASS (type, i)), name))
648     + return 1;
649     +
650     + return 0;
651     +Index: gdb-6.3.90.20051119/gdb/dwarf2read.c
652     +===================================================================
653     +--- gdb-6.3.90.20051119.orig/gdb/dwarf2read.c 2005-11-19 22:38:17.000000000 -0500
654     ++++ gdb-6.3.90.20051119/gdb/dwarf2read.c 2005-11-19 22:42:40.000000000 -0500
655     +@@ -2098,8 +2098,8 @@ guess_structure_name (struct partial_die
656     + strlen (actual_class_name),
657     + &cu->comp_unit_obstack);
658     + xfree (actual_class_name);
659     ++ break;
660     + }
661     +- break;
662     + }
663     +
664     + child_pdi = child_pdi->die_sibling;
665     --- gdb-6.4.orig/debian/patches/dwarf2-cfi-warning.patch
666     +++ gdb-6.4/debian/patches/dwarf2-cfi-warning.patch
667     @@ -0,0 +1,32 @@
668     +Status: Unsuitable for upstream (at least, without a lot of arguing).
669     +
670     +GCC does not specify the state of every last register in the CIE. Since
671     +GCC's focus is on correctness of runtime unwinding, any registers which
672     +have to be unwound will be specified; but unmodified registers will not
673     +be explicitly marked. (How about modified, call-clobbered registers?
674     +I'm not sure if they are marked as unavailable.)
675     +
676     +GDB issues a noisy warning about this. The warning is generally not useful,
677     +and we can get it extremely frequently (any time we load a new CIE).
678     +
679     +This patch disables the warning. Alternately we could set the complaints
680     +threshold to zero, or implement a default frame init-register method for
681     +every architecture. But someday the compiler will support using different
682     +calling conventions for internal functions, so that's not much of a stopgap.
683     +ARM has a complex algorithm for handling this, involving scanning all CIEs -
684     +benefit not completely clear outside of the ARM context of flexible register
685     +sets.
686     +
687     +Index: gdb-6.3.90.20051119/gdb/dwarf2-frame.c
688     +===================================================================
689     +--- gdb-6.3.90.20051119.orig/gdb/dwarf2-frame.c 2005-08-01 00:06:27.000000000 -0400
690     ++++ gdb-6.3.90.20051119/gdb/dwarf2-frame.c 2005-11-20 00:11:37.000000000 -0500
691     +@@ -738,7 +738,7 @@ dwarf2_frame_cache (struct frame_info *n
692     + DWARF2 register numbers. */
693     + if (fs->regs.reg[column].how == DWARF2_FRAME_REG_UNSPECIFIED)
694     + {
695     +- if (cache->reg[regnum].how == DWARF2_FRAME_REG_UNSPECIFIED)
696     ++ if (0 && cache->reg[regnum].how == DWARF2_FRAME_REG_UNSPECIFIED)
697     + complaint (&symfile_complaints, _("\
698     + incomplete CFI data; unspecified registers (e.g., %s) at 0x%s"),
699     + gdbarch_register_name (gdbarch, regnum),
700     --- gdb-6.4.orig/debian/patches/fix-attach-inferior-notification.patch
701     +++ gdb-6.4/debian/patches/fix-attach-inferior-notification.patch
702     @@ -0,0 +1,60 @@
703     +Index: gdb-6.4/gdb/inf-ptrace.c
704     +===================================================================
705     +--- gdb-6.4.orig/gdb/inf-ptrace.c 2005-11-21 04:16:07.000000000 -0500
706     ++++ gdb-6.4/gdb/inf-ptrace.c 2005-12-11 13:08:51.000000000 -0500
707     +@@ -228,10 +228,6 @@ inf_ptrace_attach (char *args, int from_
708     +
709     + inferior_ptid = pid_to_ptid (pid);
710     + push_target (ptrace_ops_hack);
711     +-
712     +- /* Do this first, before anything has had a chance to query the
713     +- inferior's symbol table or similar. */
714     +- observer_notify_inferior_created (&current_target, from_tty);
715     + }
716     +
717     + #ifdef PT_GET_PROCESS_STATE
718     +Index: gdb-6.4/gdb/inf-ttrace.c
719     +===================================================================
720     +--- gdb-6.4.orig/gdb/inf-ttrace.c 2005-10-29 17:22:39.000000000 -0400
721     ++++ gdb-6.4/gdb/inf-ttrace.c 2005-12-11 13:10:29.000000000 -0500
722     +@@ -727,10 +727,6 @@ inf_ttrace_attach (char *args, int from_
723     +
724     + inferior_ptid = pid_to_ptid (pid);
725     + push_target (ttrace_ops_hack);
726     +-
727     +- /* Do this first, before anything has had a chance to query the
728     +- inferior's symbol table or similar. */
729     +- observer_notify_inferior_created (&current_target, from_tty);
730     + }
731     +
732     + static void
733     +Index: gdb-6.4/gdb/infcmd.c
734     +===================================================================
735     +--- gdb-6.4.orig/gdb/infcmd.c 2005-12-07 20:37:42.000000000 -0500
736     ++++ gdb-6.4/gdb/infcmd.c 2005-12-11 13:09:33.000000000 -0500
737     +@@ -1878,6 +1878,10 @@ attach_command (char *args, int from_tty
738     + reread_symbols ();
739     + }
740     +
741     ++ /* Do this first, before anything has had a chance to query the
742     ++ inferior's symbol table or similar. */
743     ++ observer_notify_inferior_created (&current_target, from_tty);
744     ++
745     + #ifdef SOLIB_ADD
746     + /* Add shared library symbols from the newly attached process, if any. */
747     + SOLIB_ADD ((char *) 0, from_tty, &current_target, auto_solib_add);
748     +Index: gdb-6.4/gdb/inftarg.c
749     +===================================================================
750     +--- gdb-6.4.orig/gdb/inftarg.c 2005-09-04 12:18:19.000000000 -0400
751     ++++ gdb-6.4/gdb/inftarg.c 2005-12-11 13:10:37.000000000 -0500
752     +@@ -211,10 +211,6 @@ child_attach (char *args, int from_tty)
753     +
754     + inferior_ptid = pid_to_ptid (pid);
755     + push_target (&deprecated_child_ops);
756     +-
757     +- /* Do this first, before anything has had a chance to query the
758     +- inferior's symbol table or similar. */
759     +- observer_notify_inferior_created (&current_target, from_tty);
760     + }
761     +
762     + #if !defined(CHILD_POST_ATTACH)
763     --- gdb-6.4.orig/debian/patches/gdb-fortran-main.patch
764     +++ gdb-6.4/debian/patches/gdb-fortran-main.patch
765     @@ -0,0 +1,100 @@
766     +Daniel,
767     +
768     +Although the proper way of adding case insensitivity to symbol lookup is
769     +still under discussion, I think it might be desirable to set the main
770     +function of Fortran programs to "MAIN__" first. Because it can at least
771     +let GDB recognize that the language is Fortran after loading a Fortran
772     +executable only. What is your idea on this? Please comments. TIA!
773     +
774     +Here is the patch to set the main function in Fortran programs to
775     +"MAIN__". And followed is a patch to verify this. Tested with g77 and
776     +gfortran on x86, and g77 on ppc64. With the first patch, it reported
777     +PASS; without, report FAIL. No regression is found in gdb.fortran
778     +testcases.
779     +
780     +P.S: if there is a symbol named "MAIN__" in sources of other languages, it
781     +might disturb the debugging. But I am not sure how much it is.
782     +
783     +Index: gdb/symtab.c
784     +===================================================================
785     +RCS file: /cvs/src/src/gdb/symtab.c,v
786     +retrieving revision 1.145
787     +diff -c -p -r1.145 symtab.c
788     +*** lalalla/gdb/symtab.c 8 Mar 2005 04:34:44 -0000 1.145
789     +--- lalala/gdb/symtab.c 28 Jul 2005 03:16:48 -0000
790     +*************** find_main_name (void)
791     +*** 4125,4132 ****
792     + }
793     +
794     + /* The languages above didn't identify the name of the main procedure.
795     +! Fallback to "main". */
796     +! set_main_name ("main");
797     + }
798     +
799     + char *
800     +--- 4125,4136 ----
801     + }
802     +
803     + /* The languages above didn't identify the name of the main procedure.
804     +! Fallback to "MAIN__" (g77 and gfortran) if we can find it in the
805     +! minimal symtab, to "main" otherwise. */
806     +! if (lookup_minimal_symbol ("MAIN__", NULL, NULL))
807     +! set_main_name ("MAIN__");
808     +! else
809     +! set_main_name ("main");
810     + }
811     +
812     + char *
813     +
814     +Testcase lang.exp to verify the above patch:
815     +===========================================================
816     +*** /dev/null Mon Jul 25 13:51:17 2005
817     +--- lalal/gdb/testsuite/gdb.fortran/lang.exp Mon Jul 25 06:50:20 2005
818     +***************
819     +*** 0 ****
820     +--- 1,40 ----
821     ++ # Copyright 2005 Free Software Foundation, Inc.
822     ++
823     ++ # This program is free software; you can redistribute it and/or modify
824     ++ # it under the terms of the GNU General Public License as published by
825     ++ # the Free Software Foundation; either version 2 of the License, or
826     ++ # (at your option) any later version.
827     ++ #
828     ++ # This program is distributed in the hope that it will be useful,
829     ++ # but WITHOUT ANY WARRANTY; without even the implied warranty of
830     ++ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
831     ++ # GNU General Public License for more details.
832     ++ #
833     ++ # You should have received a copy of the GNU General Public License
834     ++ # along with this program; if not, write to the Free Software
835     ++ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
836     ++
837     ++ # This file was written by Wu Zhou. (woodzltc@cn.ibm.com)
838     ++
839     ++ # This file is part of the gdb testsuite. It is intended to test that gdb
840     ++ # could recognize the Fortran language after loading the binary
841     ++
842     ++ if $tracelevel then {
843     ++ strace $tracelevel
844     ++ }
845     ++
846     ++ set testfile "array-element"
847     ++ set srcfile ${srcdir}/${subdir}/${testfile}.f
848     ++ set binfile ${objdir}/${subdir}/${testfile}
849     ++
850     ++ if { [gdb_compile "${srcfile}" "${binfile}" executable {debug f77}] != "" } {
851     ++ untested "Couldn't compile ${srcfile}"
852     ++ return -1
853     ++ }
854     ++
855     ++ gdb_exit
856     ++ gdb_start
857     ++ gdb_reinitialize_dir $srcdir/$subdir
858     ++ gdb_load ${binfile}
859     ++
860     ++ gdb_test "show language" ".*currently fortran.*" "show language(fortran)"
861     +
862     +
863     +Regards
864     +- Wu Zhou
865     +
866     --- gdb-6.4.orig/debian/patches/gdbinit-ownership.patch
867     +++ gdb-6.4/debian/patches/gdbinit-ownership.patch
868     @@ -0,0 +1,121 @@
869     +This patch was not popular upstream; there was no fundamental objection, but
870     +several problems with the implementation. It needs to be revisited.
871     +
872     +Index: gdb-6.3.90.20051119/gdb/cli/cli-cmds.c
873     +===================================================================
874     +--- gdb-6.3.90.20051119.orig/gdb/cli/cli-cmds.c 2005-11-19 22:56:43.000000000 -0500
875     ++++ gdb-6.3.90.20051119/gdb/cli/cli-cmds.c 2005-11-20 00:17:15.000000000 -0500
876     +@@ -37,6 +37,7 @@
877     + #include "objfiles.h"
878     + #include "source.h"
879     + #include "disasm.h"
880     ++#include "gdb_stat.h"
881     +
882     + #include "ui-out.h"
883     +
884     +@@ -50,6 +51,8 @@
885     + #include "tui/tui.h" /* For tui_active et.al. */
886     + #endif
887     +
888     ++#include <fcntl.h>
889     ++
890     + /* Prototypes for local command functions */
891     +
892     + static void complete_command (char *, int);
893     +@@ -420,30 +423,54 @@ cd_command (char *dir, int from_tty)
894     + pwd_command ((char *) 0, 1);
895     + }
896     +
897     ++/* Load a GDB command file whose name is given in ARGS. FROM_TTY may
898     ++ be -1, in which case we are loading a gdbinit file; in that case,
899     ++ be paranoid about unsafe files. */
900     ++
901     + void
902     + source_command (char *args, int from_tty)
903     + {
904     +- FILE *stream;
905     ++ FILE *stream = NULL;
906     ++ int fd;
907     + struct cleanup *old_cleanups;
908     + char *file = args;
909     +
910     + if (file == NULL)
911     +- {
912     +- error (_("source command requires pathname of file to source."));
913     +- }
914     ++ error (_("source command requires pathname of file to source."));
915     +
916     + file = tilde_expand (file);
917     + old_cleanups = make_cleanup (xfree, file);
918     +
919     +- stream = fopen (file, FOPEN_RT);
920     +- if (!stream)
921     ++ fd = open (file, O_RDONLY);
922     ++ if (fd != -1)
923     ++ stream = fdopen (fd, FOPEN_RT);
924     ++ if (stream == NULL)
925     + {
926     +- if (from_tty)
927     ++ if (from_tty > 0)
928     + perror_with_name (file);
929     + else
930     + return;
931     + }
932     +
933     ++#ifdef HAVE_GETUID
934     ++ if (from_tty == -1)
935     ++ {
936     ++ struct stat statbuf;
937     ++ if (fstat (fd, &statbuf) < 0)
938     ++ {
939     ++ perror_with_name (file);
940     ++ fclose (stream);
941     ++ return;
942     ++ }
943     ++ if (statbuf.st_uid != getuid () || (statbuf.st_mode & S_IWOTH))
944     ++ {
945     ++ warning ("not using untrusted file \"%s\"", file);
946     ++ fclose (stream);
947     ++ return;
948     ++ }
949     ++ }
950     ++#endif
951     ++
952     + script_from_file (stream, file);
953     +
954     + do_cleanups (old_cleanups);
955     +Index: gdb-6.3.90.20051119/gdb/main.c
956     +===================================================================
957     +--- gdb-6.3.90.20051119.orig/gdb/main.c 2005-11-14 10:53:06.000000000 -0500
958     ++++ gdb-6.3.90.20051119/gdb/main.c 2005-11-20 00:14:13.000000000 -0500
959     +@@ -638,7 +638,7 @@ extern int gdbtk_test (char *);
960     +
961     + if (!inhibit_gdbinit)
962     + {
963     +- catch_command_errors (source_command, homeinit, 0, RETURN_MASK_ALL);
964     ++ catch_command_errors (source_command, homeinit, -1, RETURN_MASK_ALL);
965     + }
966     +
967     + /* Do stats; no need to do them elsewhere since we'll only
968     +@@ -725,7 +725,7 @@ extern int gdbtk_test (char *);
969     + || memcmp ((char *) &homebuf, (char *) &cwdbuf, sizeof (struct stat)))
970     + if (!inhibit_gdbinit)
971     + {
972     +- catch_command_errors (source_command, gdbinit, 0, RETURN_MASK_ALL);
973     ++ catch_command_errors (source_command, gdbinit, -1, RETURN_MASK_ALL);
974     + }
975     +
976     + for (i = 0; i < ncmd; i++)
977     +Index: gdb-6.3.90.20051119/gdb/Makefile.in
978     +===================================================================
979     +--- gdb-6.3.90.20051119.orig/gdb/Makefile.in 2005-11-19 22:56:43.000000000 -0500
980     ++++ gdb-6.3.90.20051119/gdb/Makefile.in 2005-11-20 00:14:13.000000000 -0500
981     +@@ -2794,7 +2794,7 @@ cli-cmds.o: $(srcdir)/cli/cli-cmds.c $(d
982     + $(expression_h) $(frame_h) $(value_h) $(language_h) $(filenames_h) \
983     + $(objfiles_h) $(source_h) $(disasm_h) $(ui_out_h) $(top_h) \
984     + $(cli_decode_h) $(cli_script_h) $(cli_setshow_h) $(cli_cmds_h) \
985     +- $(tui_h)
986     ++ $(tui_h) $(gdb_stat_h)
987     + $(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/cli/cli-cmds.c
988     + cli-decode.o: $(srcdir)/cli/cli-decode.c $(defs_h) $(symtab_h) \
989     + $(gdb_regex_h) $(gdb_string_h) $(ui_out_h) $(cli_cmds_h) \
990     --- gdb-6.4.orig/debian/patches/linux-clear-thread-list.patch
991     +++ gdb-6.4/debian/patches/linux-clear-thread-list.patch
992     @@ -0,0 +1,24 @@
993     +Index: gdb-6.4/gdb/linux-thread-db.c
994     +===================================================================
995     +--- gdb-6.4.orig/gdb/linux-thread-db.c 2005-12-07 20:37:42.000000000 -0500
996     ++++ gdb-6.4/gdb/linux-thread-db.c 2005-12-11 12:33:04.000000000 -0500
997     +@@ -842,6 +842,9 @@ thread_db_detach (char *args, int from_t
998     + inferior is supposed to be survive this function call. */
999     + inferior_ptid = lwp_from_thread (inferior_ptid);
1000     +
1001     ++ /* Destroy thread info; it's no longer valid. */
1002     ++ init_thread_list ();
1003     ++
1004     + /* Forget about the child's process ID. We shouldn't need it
1005     + anymore. */
1006     + proc_handle.pid = 0;
1007     +@@ -1138,6 +1141,9 @@ thread_db_mourn_inferior (void)
1008     + {
1009     + remove_thread_event_breakpoints ();
1010     +
1011     ++ /* Destroy thread info; it's no longer valid. */
1012     ++ init_thread_list ();
1013     ++
1014     + /* Forget about the child's process ID. We shouldn't need it
1015     + anymore. */
1016     + proc_handle.pid = 0;
1017     --- gdb-6.4.orig/debian/patches/static-threads-test.patch
1018     +++ gdb-6.4/debian/patches/static-threads-test.patch
1019     @@ -0,0 +1,17 @@
1020     +Update staticthreads.exp to handle debugging info in libpthread.a.
1021     +
1022     +Index: gdb-6.3.90.20051119/gdb/testsuite/gdb.threads/staticthreads.exp
1023     +===================================================================
1024     +--- gdb-6.3.90.20051119.orig/gdb/testsuite/gdb.threads/staticthreads.exp 2005-11-19 22:56:59.000000000 -0500
1025     ++++ gdb-6.3.90.20051119/gdb/testsuite/gdb.threads/staticthreads.exp 2005-11-20 00:01:11.000000000 -0500
1026     +@@ -53,6 +53,10 @@ gdb_test_multiple "continue" "$test" {
1027     + -re " sem_post .*$gdb_prompt " {
1028     + pass "$test"
1029     + }
1030     ++ -re " (.*_)sem_post .*$gdb_prompt " {
1031     ++ # Glibc uses aliases for internal symbols; match __new_sem_post.
1032     ++ pass "$test"
1033     ++ }
1034     + -re "Program received signal .*$gdb_prompt " {
1035     + kfail gdb/1328 "$test"
1036     + }
1037     --- gdb-6.4.orig/debian/patches/10.selected-frame.patch
1038     +++ gdb-6.4/debian/patches/10.selected-frame.patch
1039     @@ -0,0 +1,437 @@
1040     +2004-10-11
1041     +
1042     +This patch is not submitted. Many of these functions should be passing
1043     +a frame around rather than calling get_selected_frame, but at least it
1044     +is an improvement over deprecated_selected_frame.
1045     +
1046     +2005-11-20
1047     +
1048     +Patch updated, but still not submitted.
1049     +
1050     +Index: gdb-6.3.90.20051119/gdb/breakpoint.c
1051     +===================================================================
1052     +--- gdb-6.3.90.20051119.orig/gdb/breakpoint.c 2005-11-20 11:39:21.000000000 -0500
1053     ++++ gdb-6.3.90.20051119/gdb/breakpoint.c 2005-11-20 11:39:22.000000000 -0500
1054     +@@ -932,7 +932,7 @@ insert_bp_location (struct bp_location *
1055     + /* FIXME drow/2003-09-09: It would be nice if evaluate_expression
1056     + took a frame parameter, so that we didn't have to change the
1057     + selected frame. */
1058     +- saved_frame_id = get_frame_id (deprecated_selected_frame);
1059     ++ saved_frame_id = get_frame_id (get_selected_frame (NULL));
1060     +
1061     + /* Determine if the watchpoint is within scope. */
1062     + if (bpt->owner->exp_valid_block == NULL)
1063     +@@ -5927,7 +5927,7 @@ until_break_command (char *arg, int from
1064     + {
1065     + struct symtabs_and_lines sals;
1066     + struct symtab_and_line sal;
1067     +- struct frame_info *prev_frame = get_prev_frame (deprecated_selected_frame);
1068     ++ struct frame_info *prev_frame = get_prev_frame (get_selected_frame (NULL));
1069     + struct breakpoint *breakpoint;
1070     + struct cleanup *old_chain;
1071     + struct continuation_arg *arg1;
1072     +@@ -5964,7 +5964,7 @@ until_break_command (char *arg, int from
1073     + /* Otherwise, specify the current frame, because we want to stop only
1074     + at the very same frame. */
1075     + breakpoint = set_momentary_breakpoint (sal,
1076     +- get_frame_id (deprecated_selected_frame),
1077     ++ get_frame_id (get_selected_frame (NULL)),
1078     + bp_until);
1079     +
1080     + if (!target_can_async_p ())
1081     +Index: gdb-6.3.90.20051119/gdb/cli/cli-cmds.c
1082     +===================================================================
1083     +--- gdb-6.3.90.20051119.orig/gdb/cli/cli-cmds.c 2005-11-20 11:39:21.000000000 -0500
1084     ++++ gdb-6.3.90.20051119/gdb/cli/cli-cmds.c 2005-11-20 11:39:22.000000000 -0500
1085     +@@ -846,10 +846,7 @@ disassemble_command (char *arg, int from
1086     + name = NULL;
1087     + if (!arg)
1088     + {
1089     +- if (!deprecated_selected_frame)
1090     +- error (_("No frame selected."));
1091     +-
1092     +- pc = get_frame_pc (deprecated_selected_frame);
1093     ++ pc = get_frame_pc (get_selected_frame (_("No frame selected.")));
1094     + if (find_pc_partial_function (pc, &name, &low, &high) == 0)
1095     + error (_("No function contains program counter for selected frame."));
1096     + #if defined(TUI)
1097     +Index: gdb-6.3.90.20051119/gdb/f-valprint.c
1098     +===================================================================
1099     +--- gdb-6.3.90.20051119.orig/gdb/f-valprint.c 2005-11-20 11:39:21.000000000 -0500
1100     ++++ gdb-6.3.90.20051119/gdb/f-valprint.c 2005-11-20 11:39:22.000000000 -0500
1101     +@@ -71,7 +71,7 @@ f77_get_dynamic_lowerbound (struct type
1102     + switch (TYPE_ARRAY_LOWER_BOUND_TYPE (type))
1103     + {
1104     + case BOUND_BY_VALUE_ON_STACK:
1105     +- current_frame_addr = get_frame_base (deprecated_selected_frame);
1106     ++ current_frame_addr = get_frame_base (get_selected_frame (NULL));
1107     + if (current_frame_addr > 0)
1108     + {
1109     + *lower_bound =
1110     +@@ -95,7 +95,7 @@ f77_get_dynamic_lowerbound (struct type
1111     + break;
1112     +
1113     + case BOUND_BY_REF_ON_STACK:
1114     +- current_frame_addr = get_frame_base (deprecated_selected_frame);
1115     ++ current_frame_addr = get_frame_base (get_selected_frame (NULL));
1116     + if (current_frame_addr > 0)
1117     + {
1118     + ptr_to_lower_bound =
1119     +@@ -129,7 +129,7 @@ f77_get_dynamic_upperbound (struct type
1120     + switch (TYPE_ARRAY_UPPER_BOUND_TYPE (type))
1121     + {
1122     + case BOUND_BY_VALUE_ON_STACK:
1123     +- current_frame_addr = get_frame_base (deprecated_selected_frame);
1124     ++ current_frame_addr = get_frame_base (get_selected_frame (NULL));
1125     + if (current_frame_addr > 0)
1126     + {
1127     + *upper_bound =
1128     +@@ -158,7 +158,7 @@ f77_get_dynamic_upperbound (struct type
1129     + break;
1130     +
1131     + case BOUND_BY_REF_ON_STACK:
1132     +- current_frame_addr = get_frame_base (deprecated_selected_frame);
1133     ++ current_frame_addr = get_frame_base (get_selected_frame (NULL));
1134     + if (current_frame_addr > 0)
1135     + {
1136     + ptr_to_upper_bound =
1137     +@@ -619,10 +619,7 @@ info_common_command (char *comname, int
1138     + first make sure that it is visible and if so, let
1139     + us display its contents */
1140     +
1141     +- fi = deprecated_selected_frame;
1142     +-
1143     +- if (fi == NULL)
1144     +- error (_("No frame selected"));
1145     ++ fi = get_selected_frame (_("No frame selected"));
1146     +
1147     + /* The following is generally ripped off from stack.c's routine
1148     + print_frame_info() */
1149     +@@ -711,10 +708,7 @@ there_is_a_visible_common_named (char *c
1150     + if (comname == NULL)
1151     + error (_("Cannot deal with NULL common name!"));
1152     +
1153     +- fi = deprecated_selected_frame;
1154     +-
1155     +- if (fi == NULL)
1156     +- error (_("No frame selected"));
1157     ++ fi = get_selected_frame (_("No frame selected"));
1158     +
1159     + /* The following is generally ripped off from stack.c's routine
1160     + print_frame_info() */
1161     +Index: gdb-6.3.90.20051119/gdb/infcmd.c
1162     +===================================================================
1163     +--- gdb-6.3.90.20051119.orig/gdb/infcmd.c 2005-11-20 11:39:21.000000000 -0500
1164     ++++ gdb-6.3.90.20051119/gdb/infcmd.c 2005-11-20 11:39:22.000000000 -0500
1165     +@@ -1244,10 +1244,8 @@ finish_command (char *arg, int from_tty)
1166     + error (_("The \"finish\" command does not take any arguments."));
1167     + if (!target_has_execution)
1168     + error (_("The program is not running."));
1169     +- if (deprecated_selected_frame == NULL)
1170     +- error (_("No selected frame."));
1171     +
1172     +- frame = get_prev_frame (deprecated_selected_frame);
1173     ++ frame = get_prev_frame (get_selected_frame (_("No selected frame.")));
1174     + if (frame == 0)
1175     + error (_("\"finish\" not meaningful in the outermost frame."));
1176     +
1177     +@@ -1265,7 +1263,7 @@ finish_command (char *arg, int from_tty)
1178     +
1179     + /* Find the function we will return from. */
1180     +
1181     +- function = find_pc_function (get_frame_pc (deprecated_selected_frame));
1182     ++ function = find_pc_function (get_frame_pc (get_selected_frame (NULL)));
1183     +
1184     + /* Print info on the selected frame, including level number but not
1185     + source. */
1186     +@@ -1631,13 +1629,12 @@ registers_info (char *addr_exp, int fpre
1187     +
1188     + if (!target_has_registers)
1189     + error (_("The program has no registers now."));
1190     +- if (deprecated_selected_frame == NULL)
1191     +- error (_("No selected frame."));
1192     +
1193     + if (!addr_exp)
1194     + {
1195     + gdbarch_print_registers_info (current_gdbarch, gdb_stdout,
1196     +- deprecated_selected_frame, -1, fpregs);
1197     ++ get_selected_frame (_("No selected frame.")),
1198     ++ -1, fpregs);
1199     + return;
1200     + }
1201     +
1202     +@@ -1670,12 +1667,12 @@ registers_info (char *addr_exp, int fpre
1203     +
1204     + /* A register name? */
1205     + {
1206     +- int regnum = frame_map_name_to_regnum (deprecated_selected_frame,
1207     ++ int regnum = frame_map_name_to_regnum (get_selected_frame (_("No selected frame.")),
1208     + start, end - start);
1209     + if (regnum >= 0)
1210     + {
1211     + gdbarch_print_registers_info (current_gdbarch, gdb_stdout,
1212     +- deprecated_selected_frame, regnum, fpregs);
1213     ++ get_selected_frame (NULL), regnum, fpregs);
1214     + continue;
1215     + }
1216     + }
1217     +@@ -1689,7 +1686,7 @@ registers_info (char *addr_exp, int fpre
1218     + && regnum < NUM_REGS + NUM_PSEUDO_REGS)
1219     + {
1220     + gdbarch_print_registers_info (current_gdbarch, gdb_stdout,
1221     +- deprecated_selected_frame, regnum, fpregs);
1222     ++ get_selected_frame (NULL), regnum, fpregs);
1223     + continue;
1224     + }
1225     + }
1226     +@@ -1715,7 +1712,7 @@ registers_info (char *addr_exp, int fpre
1227     + if (gdbarch_register_reggroup_p (current_gdbarch, regnum,
1228     + group))
1229     + gdbarch_print_registers_info (current_gdbarch,
1230     +- gdb_stdout, deprecated_selected_frame,
1231     ++ gdb_stdout, get_selected_frame (NULL),
1232     + regnum, fpregs);
1233     + }
1234     + continue;
1235     +@@ -1745,8 +1742,6 @@ print_vector_info (struct gdbarch *gdbar
1236     + {
1237     + if (!target_has_registers)
1238     + error (_("The program has no registers now."));
1239     +- if (deprecated_selected_frame == NULL)
1240     +- error (_("No selected frame."));
1241     +
1242     + if (gdbarch_print_vector_info_p (gdbarch))
1243     + gdbarch_print_vector_info (gdbarch, file, frame, args);
1244     +@@ -1771,7 +1766,7 @@ print_vector_info (struct gdbarch *gdbar
1245     + static void
1246     + vector_info (char *args, int from_tty)
1247     + {
1248     +- print_vector_info (current_gdbarch, gdb_stdout, deprecated_selected_frame, args);
1249     ++ print_vector_info (current_gdbarch, gdb_stdout, get_selected_frame (NULL), args);
1250     + }
1251     +
1252     +
1253     +@@ -1965,8 +1960,6 @@ print_float_info (struct gdbarch *gdbarc
1254     + {
1255     + if (!target_has_registers)
1256     + error (_("The program has no registers now."));
1257     +- if (deprecated_selected_frame == NULL)
1258     +- error (_("No selected frame."));
1259     +
1260     + if (gdbarch_print_float_info_p (gdbarch))
1261     + gdbarch_print_float_info (gdbarch, file, frame, args);
1262     +@@ -1993,7 +1986,7 @@ static void
1263     + float_info (char *args, int from_tty)
1264     + {
1265     + print_float_info (current_gdbarch, gdb_stdout,
1266     +- deprecated_selected_frame, args);
1267     ++ get_selected_frame (NULL), args);
1268     + }
1269     +
1270     + static void
1271     +Index: gdb-6.3.90.20051119/gdb/inflow.c
1272     +===================================================================
1273     +--- gdb-6.3.90.20051119.orig/gdb/inflow.c 2005-11-20 11:39:21.000000000 -0500
1274     ++++ gdb-6.3.90.20051119/gdb/inflow.c 2005-11-20 11:45:45.000000000 -0500
1275     +@@ -591,7 +591,7 @@ kill_command (char *arg, int from_tty)
1276     + if (target_has_stack)
1277     + {
1278     + printf_filtered (_("In %s,\n"), target_longname);
1279     +- if (deprecated_selected_frame == NULL)
1280     ++ if (deprecated_safe_get_selected_frame () == NULL)
1281     + fputs_filtered ("No selected stack frame.\n", gdb_stdout);
1282     + else
1283     + print_stack_frame (get_selected_frame (NULL), 1, SRC_AND_LOC);
1284     +Index: gdb-6.3.90.20051119/gdb/infrun.c
1285     +===================================================================
1286     +--- gdb-6.3.90.20051119.orig/gdb/infrun.c 2005-11-20 11:39:21.000000000 -0500
1287     ++++ gdb-6.3.90.20051119/gdb/infrun.c 2005-11-20 11:39:22.000000000 -0500
1288     +@@ -3584,7 +3584,7 @@ save_inferior_status (int restore_stack_
1289     +
1290     + inf_status->registers = regcache_dup (current_regcache);
1291     +
1292     +- inf_status->selected_frame_id = get_frame_id (deprecated_selected_frame);
1293     ++ inf_status->selected_frame_id = get_frame_id (get_selected_frame (NULL));
1294     + return inf_status;
1295     + }
1296     +
1297     +Index: gdb-6.3.90.20051119/gdb/stack.c
1298     +===================================================================
1299     +--- gdb-6.3.90.20051119.orig/gdb/stack.c 2005-11-20 11:39:21.000000000 -0500
1300     ++++ gdb-6.3.90.20051119/gdb/stack.c 2005-11-20 11:39:22.000000000 -0500
1301     +@@ -1909,7 +1909,7 @@ func_command (char *arg, int from_tty)
1302     +
1303     + if (!found)
1304     + printf_filtered (_("'%s' not within current stack frame.\n"), arg);
1305     +- else if (frame != deprecated_selected_frame)
1306     ++ else if (frame != get_selected_frame (NULL))
1307     + select_and_print_frame (frame);
1308     + }
1309     +
1310     +@@ -1918,7 +1918,7 @@ func_command (char *arg, int from_tty)
1311     + enum language
1312     + get_frame_language (void)
1313     + {
1314     +- struct frame_info *frame = deprecated_selected_frame;
1315     ++ struct frame_info *frame = deprecated_safe_get_selected_frame ();
1316     +
1317     + if (frame)
1318     + {
1319     +Index: gdb-6.3.90.20051119/gdb/tui/tui-disasm.c
1320     +===================================================================
1321     +--- gdb-6.3.90.20051119.orig/gdb/tui/tui-disasm.c 2005-11-20 11:39:21.000000000 -0500
1322     ++++ gdb-6.3.90.20051119/gdb/tui/tui-disasm.c 2005-11-20 11:39:22.000000000 -0500
1323     +@@ -386,7 +386,7 @@ tui_vertical_disassem_scroll (enum tui_s
1324     +
1325     + content = (tui_win_content) TUI_DISASM_WIN->generic.content;
1326     + if (cursal.symtab == (struct symtab *) NULL)
1327     +- s = find_pc_symtab (get_frame_pc (deprecated_selected_frame));
1328     ++ s = find_pc_symtab (get_frame_pc (get_selected_frame (NULL)));
1329     + else
1330     + s = cursal.symtab;
1331     +
1332     +Index: gdb-6.3.90.20051119/gdb/tui/tui-source.c
1333     +===================================================================
1334     +--- gdb-6.3.90.20051119.orig/gdb/tui/tui-source.c 2005-11-20 11:39:21.000000000 -0500
1335     ++++ gdb-6.3.90.20051119/gdb/tui/tui-source.c 2005-11-20 11:39:22.000000000 -0500
1336     +@@ -330,7 +330,7 @@ tui_vertical_source_scroll (enum tui_scr
1337     + struct symtab_and_line cursal = get_current_source_symtab_and_line ();
1338     +
1339     + if (cursal.symtab == (struct symtab *) NULL)
1340     +- s = find_pc_symtab (get_frame_pc (deprecated_selected_frame));
1341     ++ s = find_pc_symtab (get_frame_pc (get_selected_frame (NULL)));
1342     + else
1343     + s = cursal.symtab;
1344     +
1345     +Index: gdb-6.3.90.20051119/gdb/tui/tui-winsource.c
1346     +===================================================================
1347     +--- gdb-6.3.90.20051119.orig/gdb/tui/tui-winsource.c 2005-11-20 11:39:21.000000000 -0500
1348     ++++ gdb-6.3.90.20051119/gdb/tui/tui-winsource.c 2005-11-20 11:39:22.000000000 -0500
1349     +@@ -314,7 +314,7 @@ tui_horizontal_source_scroll (struct tui
1350     + struct symtab_and_line cursal = get_current_source_symtab_and_line ();
1351     +
1352     + if (cursal.symtab == (struct symtab *) NULL)
1353     +- s = find_pc_symtab (get_frame_pc (deprecated_selected_frame));
1354     ++ s = find_pc_symtab (get_frame_pc (get_selected_frame (NULL)));
1355     + else
1356     + s = cursal.symtab;
1357     +
1358     +Index: gdb-6.3.90.20051119/gdb/valops.c
1359     +===================================================================
1360     +--- gdb-6.3.90.20051119.orig/gdb/valops.c 2005-11-20 11:39:21.000000000 -0500
1361     ++++ gdb-6.3.90.20051119/gdb/valops.c 2005-11-20 11:49:37.000000000 -0500
1362     +@@ -544,7 +544,7 @@ value_assign (struct value *toval, struc
1363     + /* Since modifying a register can trash the frame chain, and modifying memory
1364     + can trash the frame cache, we save the old frame and then restore the new
1365     + frame afterwards. */
1366     +- old_frame = get_frame_id (deprecated_selected_frame);
1367     ++ old_frame = get_frame_id (deprecated_safe_get_selected_frame ());
1368     +
1369     + switch (VALUE_LVAL (toval))
1370     + {
1371     +@@ -2605,16 +2605,18 @@ value_of_local (const char *name, int co
1372     + struct symbol *func, *sym;
1373     + struct block *b;
1374     + struct value * ret;
1375     ++ struct frame_info *frame;
1376     +
1377     +- if (deprecated_selected_frame == 0)
1378     ++ if (complain)
1379     ++ frame = get_selected_frame (_("no frame selected"));
1380     ++ else
1381     + {
1382     +- if (complain)
1383     +- error (_("no frame selected"));
1384     +- else
1385     ++ frame = deprecated_safe_get_selected_frame ();
1386     ++ if (frame == 0)
1387     + return 0;
1388     + }
1389     +
1390     +- func = get_frame_function (deprecated_selected_frame);
1391     ++ func = get_frame_function (frame);
1392     + if (!func)
1393     + {
1394     + if (complain)
1395     +@@ -2643,7 +2645,7 @@ value_of_local (const char *name, int co
1396     + return NULL;
1397     + }
1398     +
1399     +- ret = read_var_value (sym, deprecated_selected_frame);
1400     ++ ret = read_var_value (sym, frame);
1401     + if (ret == 0 && complain)
1402     + error (_("`%s' argument unreadable"), name);
1403     + return ret;
1404     +Index: gdb-6.3.90.20051119/gdb/varobj.c
1405     +===================================================================
1406     +--- gdb-6.3.90.20051119.orig/gdb/varobj.c 2005-11-20 11:39:21.000000000 -0500
1407     ++++ gdb-6.3.90.20051119/gdb/varobj.c 2005-11-20 11:39:22.000000000 -0500
1408     +@@ -498,7 +498,7 @@ varobj_create (char *objname,
1409     + if (fi != NULL)
1410     + {
1411     + var->root->frame = get_frame_id (fi);
1412     +- old_fi = deprecated_selected_frame;
1413     ++ old_fi = get_selected_frame (NULL);
1414     + select_frame (fi);
1415     + }
1416     +
1417     +Index: gdb-6.3.90.20051119/gdb/testsuite/gdb.base/default.exp
1418     +===================================================================
1419     +--- gdb-6.3.90.20051119.orig/gdb/testsuite/gdb.base/default.exp 2005-11-20 11:39:21.000000000 -0500
1420     ++++ gdb-6.3.90.20051119/gdb/testsuite/gdb.base/default.exp 2005-11-20 11:39:22.000000000 -0500
1421     +@@ -167,7 +167,7 @@ gdb_test "disable breakpoints" "" "disab
1422     + #test disable display
1423     + gdb_test "disable display" "" "disable display"
1424     + #test disassemble
1425     +-gdb_test "disassemble" "No frame selected." "disassemble"
1426     ++gdb_test "disassemble" "No (frame selected|registers)." "disassemble"
1427     + #test display
1428     + gdb_test "display" "" "display"
1429     + #test do
1430     +@@ -229,9 +229,9 @@ gdb_expect {
1431     + }
1432     +
1433     + #test frame "f" abbreviation
1434     +-gdb_test "f" "No stack." "frame \"f\" abbreviation"
1435     ++gdb_test "f" "No (stack|registers)." "frame \"f\" abbreviation"
1436     + #test frame
1437     +-gdb_test "frame" "No stack." "frame"
1438     ++gdb_test "frame" "No (stack|registers)." "frame"
1439     + #test fg
1440     + gdb_test "fg" "The program is not being run." "fg"
1441     + # FIXME: fg kills the udi connection
1442     +@@ -294,9 +294,9 @@ gdb_test "ignore" "Argument required .a
1443     + #test info address
1444     + gdb_test "info address" "Argument required." "info address"
1445     + #test info all-registers
1446     +-gdb_test "info all-registers" "The program has no registers now." "info all-registers"
1447     ++gdb_test "info all-registers" "(The program has no registers now|No registers)." "info all-registers"
1448     + #test info args
1449     +-gdb_test "info args" "No frame selected." "info args"
1450     ++gdb_test "info args" "No (frame selected|registers)." "info args"
1451     + #test info bogus-gdb-command
1452     + gdb_test "info bogus-gdb-command" "Undefined info command: \"bogus-gdb-command\". Try \"help info\".*" "info bogus-gdb-command"
1453     + #test info breakpoints
1454     +@@ -320,11 +320,11 @@ gdb_test "info frame" "No stack.|No sele
1455     + #test info files
1456     + gdb_test "info files" "" "info files"
1457     + #test info float
1458     +-gdb_test "info float" "The program has no registers now." "info float"
1459     ++gdb_test "info float" "(The program has no registers now|No registers)." "info float"
1460     + #test info functions
1461     + gdb_test "info functions" "All defined functions:" "info functions"
1462     + #test info locals
1463     +-gdb_test "info locals" "No frame selected." "info locals"
1464     ++gdb_test "info locals" "(No frame selected|No registers)." "info locals"
1465     + #test info program
1466     + gdb_test "info program" "The program being debugged is not being run." "info program"
1467     + #test info registers
1468     +@@ -352,7 +352,7 @@ gdb_test "info types" "All defined types
1469     + #test info variables
1470     + gdb_test "info variables" "All defined variables:" "info variables"
1471     + #test info vector
1472     +-gdb_test "info vector" "The program has no registers now." "info vector"
1473     ++gdb_test "info vector" "(The program has no registers now|No registers)." "info vector"
1474     + #test info warranty
1475     + gdb_test "info warranty" "NO WARRANTY(\[^\r\n\]*\[\r\n\])+ *11. *BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY(\[^\r\n\]*\[\r\n\])+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN(\[^\r\n\]*\[\r\n\])+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES(\[^\r\n\]*\[\r\n\])+PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED(\[^\r\n\]*\[\r\n\])+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF(\[^\r\n\]*\[\r\n\])+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS(\[^\r\n\]*\[\r\n\])+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE(\[^\r\n\]*\[\r\n\])+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,(\[^\r\n\]*\[\r\n\])+REPAIR OR CORRECTION.(\[^\r\n\]*\[\r\n\])+ *12. *IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING(\[^\r\n\]*\[\r\n\])+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR(\[^\r\n\]*\[\r\n\])+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,(\[^\r\n\]*\[\r\n\])+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING(\[^\r\n\]*\[\r\n\])+OUT OF THE USE OR INABILITY TO USE THE PROGRAM .INCLUDING BUT NOT LIMITED(\[^\r\n\]*\[\r\n\])+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY(\[^\r\n\]*\[\r\n\])+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER(\[^\r\n\]*\[\r\n\])+PROGRAMS., EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE(\[^\r\n\]*\[\r\n\])+POSSIBILITY OF SUCH DAMAGES.*" "info warranty"
1476     + #test info watchpoints
1477     --- gdb-6.4.orig/debian/patches/thread-db-multiple-libraries.patch
1478     +++ gdb-6.4/debian/patches/thread-db-multiple-libraries.patch
1479     @@ -0,0 +1,593 @@
1480     +Support loading two libthread_db DSOs. In this case, the LinuxThreads
1481     +and NPTL ones.
1482     +
1483     +Index: gdb-6.3.90.20051119/gdb/linux-thread-db.c
1484     +===================================================================
1485     +--- gdb-6.3.90.20051119.orig/gdb/linux-thread-db.c 2005-11-19 22:42:24.000000000 -0500
1486     ++++ gdb-6.3.90.20051119/gdb/linux-thread-db.c 2005-11-19 22:53:02.000000000 -0500
1487     +@@ -82,53 +82,63 @@ static td_thragent_t *thread_agent;
1488     +
1489     + /* Pointers to the libthread_db functions. */
1490     +
1491     +-static td_err_e (*td_init_p) (void);
1492     ++struct thread_db_pointers
1493     ++{
1494     ++ const char *filename;
1495     ++
1496     ++ td_err_e (*td_init_p) (void);
1497     +
1498     +-static td_err_e (*td_ta_new_p) (struct ps_prochandle * ps,
1499     +- td_thragent_t **ta);
1500     +-static td_err_e (*td_ta_map_id2thr_p) (const td_thragent_t *ta, thread_t pt,
1501     +- td_thrhandle_t *__th);
1502     +-static td_err_e (*td_ta_map_lwp2thr_p) (const td_thragent_t *ta,
1503     +- lwpid_t lwpid, td_thrhandle_t *th);
1504     +-static td_err_e (*td_ta_thr_iter_p) (const td_thragent_t *ta,
1505     +- td_thr_iter_f *callback, void *cbdata_p,
1506     +- td_thr_state_e state, int ti_pri,
1507     +- sigset_t *ti_sigmask_p,
1508     +- unsigned int ti_user_flags);
1509     +-static td_err_e (*td_ta_event_addr_p) (const td_thragent_t *ta,
1510     +- td_event_e event, td_notify_t *ptr);
1511     +-static td_err_e (*td_ta_set_event_p) (const td_thragent_t *ta,
1512     +- td_thr_events_t *event);
1513     +-static td_err_e (*td_ta_event_getmsg_p) (const td_thragent_t *ta,
1514     +- td_event_msg_t *msg);
1515     +-
1516     +-static td_err_e (*td_thr_validate_p) (const td_thrhandle_t *th);
1517     +-static td_err_e (*td_thr_get_info_p) (const td_thrhandle_t *th,
1518     +- td_thrinfo_t *infop);
1519     +-static td_err_e (*td_thr_getfpregs_p) (const td_thrhandle_t *th,
1520     +- gdb_prfpregset_t *regset);
1521     +-static td_err_e (*td_thr_getgregs_p) (const td_thrhandle_t *th,
1522     +- prgregset_t gregs);
1523     +-static td_err_e (*td_thr_setfpregs_p) (const td_thrhandle_t *th,
1524     +- const gdb_prfpregset_t *fpregs);
1525     +-static td_err_e (*td_thr_setgregs_p) (const td_thrhandle_t *th,
1526     +- prgregset_t gregs);
1527     +-static td_err_e (*td_thr_event_enable_p) (const td_thrhandle_t *th,
1528     +- int event);
1529     +-
1530     +-static td_err_e (*td_thr_tls_get_addr_p) (const td_thrhandle_t *th,
1531     +- void *map_address,
1532     +- size_t offset, void **address);
1533     ++ td_err_e (*td_ta_new_p) (struct ps_prochandle * ps,
1534     ++ td_thragent_t **ta);
1535     ++ td_err_e (*td_ta_map_id2thr_p) (const td_thragent_t *ta, thread_t pt,
1536     ++ td_thrhandle_t *__th);
1537     ++ td_err_e (*td_ta_map_lwp2thr_p) (const td_thragent_t *ta,
1538     ++ lwpid_t lwpid, td_thrhandle_t *th);
1539     ++
1540     ++ td_err_e (*td_ta_thr_iter_p) (const td_thragent_t *ta,
1541     ++ td_thr_iter_f *callback, void *cbdata_p,
1542     ++ td_thr_state_e state, int ti_pri,
1543     ++ sigset_t *ti_sigmask_p,
1544     ++ unsigned int ti_user_flags);
1545     ++ td_err_e (*td_ta_event_addr_p) (const td_thragent_t *ta,
1546     ++ td_event_e event, td_notify_t *ptr);
1547     ++ td_err_e (*td_ta_set_event_p) (const td_thragent_t *ta,
1548     ++ td_thr_events_t *event);
1549     ++ td_err_e (*td_ta_event_getmsg_p) (const td_thragent_t *ta,
1550     ++ td_event_msg_t *msg);
1551     ++
1552     ++ td_err_e (*td_thr_validate_p) (const td_thrhandle_t *th);
1553     ++ td_err_e (*td_thr_get_info_p) (const td_thrhandle_t *th,
1554     ++ td_thrinfo_t *infop);
1555     ++ td_err_e (*td_thr_getfpregs_p) (const td_thrhandle_t *th,
1556     ++ gdb_prfpregset_t *regset);
1557     ++ td_err_e (*td_thr_getgregs_p) (const td_thrhandle_t *th,
1558     ++ prgregset_t gregs);
1559     ++ td_err_e (*td_thr_setfpregs_p) (const td_thrhandle_t *th,
1560     ++ const gdb_prfpregset_t *fpregs);
1561     ++ td_err_e (*td_thr_setgregs_p) (const td_thrhandle_t *th,
1562     ++ prgregset_t gregs);
1563     ++ td_err_e (*td_thr_event_enable_p) (const td_thrhandle_t *th,
1564     ++ int event);
1565     ++
1566     ++ td_err_e (*td_thr_tls_get_addr_p) (const td_thrhandle_t *th,
1567     ++ void *map_address,
1568     ++ size_t offset, void **address);
1569     ++
1570     ++ struct thread_db_pointers *next;
1571     ++};
1572     +
1573     + /* Location of the thread creation event breakpoint. The code at this
1574     + location in the child process will be called by the pthread library
1575     + whenever a new thread is created. By setting a special breakpoint
1576     + at this location, GDB can detect when a new thread is created. We
1577     + obtain this location via the td_ta_event_addr call. */
1578     +-static CORE_ADDR td_create_bp_addr;
1579     ++CORE_ADDR td_create_bp_addr;
1580     +
1581     + /* Location of the thread death event breakpoint. */
1582     +-static CORE_ADDR td_death_bp_addr;
1583     ++CORE_ADDR td_death_bp_addr;
1584     ++
1585     ++static struct thread_db_pointers *current_pointers, *all_pointers;
1586     +
1587     + /* Prototypes for local functions. */
1588     + static void thread_db_find_new_threads (void);
1589     +@@ -264,7 +274,7 @@ thread_get_info_callback (const td_thrha
1590     + struct thread_info *thread_info;
1591     + ptid_t thread_ptid;
1592     +
1593     +- err = td_thr_get_info_p (thp, &ti);
1594     ++ err = current_pointers->td_thr_get_info_p (thp, &ti);
1595     + if (err != TD_OK)
1596     + error (_("thread_get_info_callback: cannot get thread info: %s"),
1597     + thread_db_err_str (err));
1598     +@@ -318,8 +328,9 @@ thread_db_map_id2thr (struct thread_info
1599     + if (thread_info->private->th_valid)
1600     + return;
1601     +
1602     +- err = td_ta_map_id2thr_p (thread_agent, GET_THREAD (thread_info->ptid),
1603     +- &thread_info->private->th);
1604     ++ err = current_pointers->td_ta_map_id2thr_p (thread_agent,
1605     ++ GET_THREAD (thread_info->ptid),
1606     ++ &thread_info->private->th);
1607     + if (err != TD_OK)
1608     + {
1609     + if (fatal)
1610     +@@ -342,8 +353,8 @@ thread_db_get_info (struct thread_info *
1611     + if (!thread_info->private->th_valid)
1612     + thread_db_map_id2thr (thread_info, 1);
1613     +
1614     +- err =
1615     +- td_thr_get_info_p (&thread_info->private->th, &thread_info->private->ti);
1616     ++ err = current_pointers->td_thr_get_info_p (&thread_info->private->th,
1617     ++ &thread_info->private->ti);
1618     + if (err != TD_OK)
1619     + error (_("thread_db_get_info: cannot get thread info: %s"),
1620     + thread_db_err_str (err));
1621     +@@ -367,7 +378,8 @@ thread_from_lwp (ptid_t ptid)
1622     +
1623     + gdb_assert (is_lwp (ptid));
1624     +
1625     +- err = td_ta_map_lwp2thr_p (thread_agent, GET_LWP (ptid), &th);
1626     ++ err = current_pointers->td_ta_map_lwp2thr_p (thread_agent, GET_LWP (ptid),
1627     ++ &th);
1628     + if (err != TD_OK)
1629     + error (_("Cannot find user-level thread for LWP %ld: %s"),
1630     + GET_LWP (ptid), thread_db_err_str (err));
1631     +@@ -414,85 +426,102 @@ verbose_dlsym (void *handle, const char
1632     + return sym;
1633     + }
1634     +
1635     +-static int
1636     +-thread_db_load (void)
1637     ++static struct thread_db_pointers *
1638     ++thread_db_load (const char *name)
1639     + {
1640     ++ struct thread_db_pointers *ptrs;
1641     ++ Dl_info info;
1642     + void *handle;
1643     + td_err_e err;
1644     +
1645     +- handle = dlopen (LIBTHREAD_DB_SO, RTLD_NOW);
1646     ++ ptrs = xcalloc (1, sizeof (struct thread_db_pointers));
1647     ++
1648     ++ handle = dlopen (name, RTLD_NOW);
1649     + if (handle == NULL)
1650     + {
1651     +- fprintf_filtered (gdb_stderr, "\n\ndlopen failed on '%s' - %s\n",
1652     +- LIBTHREAD_DB_SO, dlerror ());
1653     +- fprintf_filtered (gdb_stderr,
1654     +- "GDB will not be able to debug pthreads.\n\n");
1655     ++ if (all_pointers == NULL)
1656     ++ {
1657     ++ fprintf_filtered (gdb_stderr, "\n\ndlopen failed on '%s' - %s\n",
1658     ++ name, dlerror ());
1659     ++ fprintf_filtered (gdb_stderr,
1660     ++ "GDB will not be able to debug pthreads.\n\n");
1661     ++ }
1662     + return 0;
1663     + }
1664     +
1665     + /* Initialize pointers to the dynamic library functions we will use.
1666     + Essential functions first. */
1667     +
1668     +- td_init_p = verbose_dlsym (handle, "td_init");
1669     +- if (td_init_p == NULL)
1670     ++ ptrs->td_init_p = verbose_dlsym (handle, "td_init");
1671     ++ if (ptrs->td_init_p == NULL)
1672     + return 0;
1673     +
1674     +- td_ta_new_p = verbose_dlsym (handle, "td_ta_new");
1675     +- if (td_ta_new_p == NULL)
1676     ++ ptrs->td_ta_new_p = verbose_dlsym (handle, "td_ta_new");
1677     ++ if (ptrs->td_ta_new_p == NULL)
1678     + return 0;
1679     +
1680     +- td_ta_map_id2thr_p = verbose_dlsym (handle, "td_ta_map_id2thr");
1681     +- if (td_ta_map_id2thr_p == NULL)
1682     ++ ptrs->td_ta_map_id2thr_p = verbose_dlsym (handle, "td_ta_map_id2thr");
1683     ++ if (ptrs->td_ta_map_id2thr_p == NULL)
1684     + return 0;
1685     +
1686     +- td_ta_map_lwp2thr_p = verbose_dlsym (handle, "td_ta_map_lwp2thr");
1687     +- if (td_ta_map_lwp2thr_p == NULL)
1688     ++ ptrs->td_ta_map_lwp2thr_p = verbose_dlsym (handle, "td_ta_map_lwp2thr");
1689     ++ if (ptrs->td_ta_map_lwp2thr_p == NULL)
1690     + return 0;
1691     +
1692     +- td_ta_thr_iter_p = verbose_dlsym (handle, "td_ta_thr_iter");
1693     +- if (td_ta_thr_iter_p == NULL)
1694     ++ ptrs->td_ta_thr_iter_p = verbose_dlsym (handle, "td_ta_thr_iter");
1695     ++ if (ptrs->td_ta_thr_iter_p == NULL)
1696     + return 0;
1697     +
1698     +- td_thr_validate_p = verbose_dlsym (handle, "td_thr_validate");
1699     +- if (td_thr_validate_p == NULL)
1700     ++ ptrs->td_thr_validate_p = verbose_dlsym (handle, "td_thr_validate");
1701     ++ if (ptrs->td_thr_validate_p == NULL)
1702     + return 0;
1703     +
1704     +- td_thr_get_info_p = verbose_dlsym (handle, "td_thr_get_info");
1705     +- if (td_thr_get_info_p == NULL)
1706     ++ ptrs->td_thr_get_info_p = verbose_dlsym (handle, "td_thr_get_info");
1707     ++ if (ptrs->td_thr_get_info_p == NULL)
1708     + return 0;
1709     +
1710     +- td_thr_getfpregs_p = verbose_dlsym (handle, "td_thr_getfpregs");
1711     +- if (td_thr_getfpregs_p == NULL)
1712     ++ ptrs->td_thr_getfpregs_p = verbose_dlsym (handle, "td_thr_getfpregs");
1713     ++ if (ptrs->td_thr_getfpregs_p == NULL)
1714     + return 0;
1715     +
1716     +- td_thr_getgregs_p = verbose_dlsym (handle, "td_thr_getgregs");
1717     +- if (td_thr_getgregs_p == NULL)
1718     ++ ptrs->td_thr_getgregs_p = verbose_dlsym (handle, "td_thr_getgregs");
1719     ++ if (ptrs->td_thr_getgregs_p == NULL)
1720     + return 0;
1721     +
1722     +- td_thr_setfpregs_p = verbose_dlsym (handle, "td_thr_setfpregs");
1723     +- if (td_thr_setfpregs_p == NULL)
1724     ++ ptrs->td_thr_setfpregs_p = verbose_dlsym (handle, "td_thr_setfpregs");
1725     ++ if (ptrs->td_thr_setfpregs_p == NULL)
1726     + return 0;
1727     +
1728     +- td_thr_setgregs_p = verbose_dlsym (handle, "td_thr_setgregs");
1729     +- if (td_thr_setgregs_p == NULL)
1730     ++ ptrs->td_thr_setgregs_p = verbose_dlsym (handle, "td_thr_setgregs");
1731     ++ if (ptrs->td_thr_setgregs_p == NULL)
1732     + return 0;
1733     +
1734     + /* Initialize the library. */
1735     +- err = td_init_p ();
1736     ++ err = ptrs->td_init_p ();
1737     + if (err != TD_OK)
1738     + {
1739     + warning (_("Cannot initialize libthread_db: %s"), thread_db_err_str (err));
1740     ++ xfree (ptrs);
1741     + return 0;
1742     + }
1743     +
1744     + /* These are not essential. */
1745     +- td_ta_event_addr_p = dlsym (handle, "td_ta_event_addr");
1746     +- td_ta_set_event_p = dlsym (handle, "td_ta_set_event");
1747     +- td_ta_event_getmsg_p = dlsym (handle, "td_ta_event_getmsg");
1748     +- td_thr_event_enable_p = dlsym (handle, "td_thr_event_enable");
1749     +- td_thr_tls_get_addr_p = dlsym (handle, "td_thr_tls_get_addr");
1750     ++ ptrs->td_ta_event_addr_p = dlsym (handle, "td_ta_event_addr");
1751     ++ ptrs->td_ta_set_event_p = dlsym (handle, "td_ta_set_event");
1752     ++ ptrs->td_ta_event_getmsg_p = dlsym (handle, "td_ta_event_getmsg");
1753     ++ ptrs->td_thr_event_enable_p = dlsym (handle, "td_thr_event_enable");
1754     ++ ptrs->td_thr_tls_get_addr_p = dlsym (handle, "td_thr_tls_get_addr");
1755     ++
1756     ++ if (dladdr (ptrs->td_ta_new_p, &info) != 0)
1757     ++ ptrs->filename = info.dli_fname;
1758     ++
1759     ++ /* Try dlinfo? */
1760     ++
1761     ++ if (ptrs->filename == NULL)
1762     ++ /* Paranoid - don't let a NULL path slip through. */
1763     ++ ptrs->filename = name;
1764     +
1765     +- return 1;
1766     ++ return ptrs;
1767     + }
1768     +
1769     + static td_err_e
1770     +@@ -502,7 +531,7 @@ enable_thread_event (td_thragent_t *thre
1771     + td_err_e err;
1772     +
1773     + /* Get the breakpoint address for thread EVENT. */
1774     +- err = td_ta_event_addr_p (thread_agent, event, &notify);
1775     ++ err = current_pointers->td_ta_event_addr_p (thread_agent, event, &notify);
1776     + if (err != TD_OK)
1777     + return err;
1778     +
1779     +@@ -533,8 +562,10 @@ enable_thread_event_reporting (void)
1780     +
1781     + /* We cannot use the thread event reporting facility if these
1782     + functions aren't available. */
1783     +- if (td_ta_event_addr_p == NULL || td_ta_set_event_p == NULL
1784     +- || td_ta_event_getmsg_p == NULL || td_thr_event_enable_p == NULL)
1785     ++ if (current_pointers->td_ta_event_addr_p == NULL
1786     ++ || current_pointers->td_ta_set_event_p == NULL
1787     ++ || current_pointers->td_ta_event_getmsg_p == NULL
1788     ++ || current_pointers->td_thr_event_enable_p == NULL)
1789     + return;
1790     +
1791     + /* Set the process wide mask saying which events we're interested in. */
1792     +@@ -551,7 +582,7 @@ enable_thread_event_reporting (void)
1793     + #endif
1794     + td_event_addset (&events, TD_DEATH);
1795     +
1796     +- err = td_ta_set_event_p (thread_agent, &events);
1797     ++ err = current_pointers->td_ta_set_event_p (thread_agent, &events);
1798     + if (err != TD_OK)
1799     + {
1800     + warning (_("Unable to set global thread event mask: %s"),
1801     +@@ -591,7 +622,7 @@ disable_thread_event_reporting (void)
1802     + /* Set the process wide mask saying we aren't interested in any
1803     + events anymore. */
1804     + td_event_emptyset (&events);
1805     +- td_ta_set_event_p (thread_agent, &events);
1806     ++ current_pointers->td_ta_set_event_p (thread_agent, &events);
1807     +
1808     + /* Delete thread event breakpoints, if any. */
1809     + remove_thread_event_breakpoints ();
1810     +@@ -634,7 +665,6 @@ check_thread_signals (void)
1811     + static void
1812     + check_for_thread_db (void)
1813     + {
1814     +- td_err_e err;
1815     + static int already_loaded;
1816     +
1817     + /* First time through, report that libthread_db was successfuly
1818     +@@ -643,19 +673,8 @@ check_for_thread_db (void)
1819     +
1820     + if (!already_loaded)
1821     + {
1822     +- Dl_info info;
1823     +- const char *library = NULL;
1824     +- if (dladdr ((*td_ta_new_p), &info) != 0)
1825     +- library = info.dli_fname;
1826     +-
1827     +- /* Try dlinfo? */
1828     +-
1829     +- if (library == NULL)
1830     +- /* Paranoid - don't let a NULL path slip through. */
1831     +- library = LIBTHREAD_DB_SO;
1832     +-
1833     + printf_unfiltered (_("Using host libthread_db library \"%s\".\n"),
1834     +- library);
1835     ++ all_pointers->filename);
1836     + already_loaded = 1;
1837     + }
1838     +
1839     +@@ -673,28 +692,34 @@ check_for_thread_db (void)
1840     + proc_handle.pid = GET_PID (inferior_ptid);
1841     +
1842     + /* Now attempt to open a connection to the thread library. */
1843     +- err = td_ta_new_p (&proc_handle, &thread_agent);
1844     +- switch (err)
1845     ++ for (current_pointers = all_pointers;
1846     ++ current_pointers != NULL;
1847     ++ current_pointers = current_pointers->next)
1848     + {
1849     +- case TD_NOLIBTHREAD:
1850     +- /* No thread library was detected. */
1851     +- break;
1852     +-
1853     +- case TD_OK:
1854     +- printf_unfiltered (_("[Thread debugging using libthread_db enabled]\n"));
1855     ++ td_err_e err;
1856     ++ err = current_pointers->td_ta_new_p (&proc_handle, &thread_agent);
1857     ++ switch (err)
1858     ++ {
1859     ++ case TD_NOLIBTHREAD:
1860     ++ /* No thread library was detected. */
1861     ++ break;
1862     +
1863     +- /* The thread library was detected. Activate the thread_db target. */
1864     +- push_target (&thread_db_ops);
1865     +- using_thread_db = 1;
1866     ++ case TD_OK:
1867     ++ printf_unfiltered (_("[Thread debugging using libthread_db enabled]\n"));
1868     +
1869     +- enable_thread_event_reporting ();
1870     +- thread_db_find_new_threads ();
1871     +- break;
1872     ++ /* The thread library was detected. Activate the thread_db target. */
1873     ++ push_target (&thread_db_ops);
1874     ++ using_thread_db = 1;
1875     ++
1876     ++ enable_thread_event_reporting ();
1877     ++ thread_db_find_new_threads ();
1878     ++ return;
1879     +
1880     +- default:
1881     +- warning (_("Cannot initialize thread debugging library: %s"),
1882     +- thread_db_err_str (err));
1883     +- break;
1884     ++ default:
1885     ++ warning (_("Cannot initialize thread debugging library: %s"),
1886     ++ thread_db_err_str (err));
1887     ++ break;
1888     ++ }
1889     + }
1890     + }
1891     +
1892     +@@ -765,7 +790,7 @@ attach_thread (ptid_t ptid, const td_thr
1893     + #endif
1894     +
1895     + /* Enable thread event reporting for this thread. */
1896     +- err = td_thr_event_enable_p (th_p, 1);
1897     ++ err = current_pointers->td_thr_event_enable_p (th_p, 1);
1898     + if (err != TD_OK)
1899     + error (_("Cannot enable thread event reporting for %s: %s"),
1900     + target_pid_to_str (ptid), thread_db_err_str (err));
1901     +@@ -891,7 +916,7 @@ check_event (ptid_t ptid)
1902     +
1903     + do
1904     + {
1905     +- err = td_ta_event_getmsg_p (thread_agent, &msg);
1906     ++ err = current_pointers->td_ta_event_getmsg_p (thread_agent, &msg);
1907     + if (err != TD_OK)
1908     + {
1909     + if (err == TD_NOMSG)
1910     +@@ -901,7 +926,7 @@ check_event (ptid_t ptid)
1911     + thread_db_err_str (err));
1912     + }
1913     +
1914     +- err = td_thr_get_info_p (msg.th_p, &ti);
1915     ++ err = current_pointers->td_thr_get_info_p (msg.th_p, &ti);
1916     + if (err != TD_OK)
1917     + error (_("Cannot get thread info: %s"), thread_db_err_str (err));
1918     +
1919     +@@ -1014,12 +1039,14 @@ thread_db_fetch_registers (int regno)
1920     + thread_info = find_thread_pid (inferior_ptid);
1921     + thread_db_map_id2thr (thread_info, 1);
1922     +
1923     +- err = td_thr_getgregs_p (&thread_info->private->th, gregset);
1924     ++ err = current_pointers->td_thr_getgregs_p (&thread_info->private->th,
1925     ++ gregset);
1926     + if (err != TD_OK)
1927     + error (_("Cannot fetch general-purpose registers for thread %ld: %s"),
1928     + (long) GET_THREAD (inferior_ptid), thread_db_err_str (err));
1929     +
1930     +- err = td_thr_getfpregs_p (&thread_info->private->th, &fpregset);
1931     ++ err = current_pointers->td_thr_getfpregs_p (&thread_info->private->th,
1932     ++ &fpregset);
1933     + if (err != TD_OK)
1934     + error (_("Cannot get floating-point registers for thread %ld: %s"),
1935     + (long) GET_THREAD (inferior_ptid), thread_db_err_str (err));
1936     +@@ -1061,11 +1088,13 @@ thread_db_store_registers (int regno)
1937     + fill_gregset ((gdb_gregset_t *) gregset, -1);
1938     + fill_fpregset (&fpregset, -1);
1939     +
1940     +- err = td_thr_setgregs_p (&thread_info->private->th, gregset);
1941     ++ err = current_pointers->td_thr_setgregs_p (&thread_info->private->th,
1942     ++ gregset);
1943     + if (err != TD_OK)
1944     + error (_("Cannot store general-purpose registers for thread %ld: %s"),
1945     + (long) GET_THREAD (inferior_ptid), thread_db_err_str (err));
1946     +- err = td_thr_setfpregs_p (&thread_info->private->th, &fpregset);
1947     ++ err = current_pointers->td_thr_setfpregs_p (&thread_info->private->th,
1948     ++ &fpregset);
1949     + if (err != TD_OK)
1950     + error (_("Cannot store floating-point registers for thread %ld: %s"),
1951     + (long) GET_THREAD (inferior_ptid), thread_db_err_str (err));
1952     +@@ -1135,15 +1164,14 @@ thread_db_thread_alive (ptid_t ptid)
1953     + if (!thread_info->private->th_valid)
1954     + return 0;
1955     +
1956     +- err = td_thr_validate_p (&thread_info->private->th);
1957     ++ err = current_pointers->td_thr_validate_p (&thread_info->private->th);
1958     + if (err != TD_OK)
1959     + return 0;
1960     +
1961     + if (!thread_info->private->ti_valid)
1962     + {
1963     +- err =
1964     +- td_thr_get_info_p (&thread_info->private->th,
1965     +- &thread_info->private->ti);
1966     ++ err = current_pointers->td_thr_get_info_p
1967     ++ (&thread_info->private->th, &thread_info->private->ti);
1968     + if (err != TD_OK)
1969     + return 0;
1970     + thread_info->private->ti_valid = 1;
1971     +@@ -1169,7 +1197,7 @@ find_new_threads_callback (const td_thrh
1972     + td_err_e err;
1973     + ptid_t ptid;
1974     +
1975     +- err = td_thr_get_info_p (th_p, &ti);
1976     ++ err = current_pointers->td_thr_get_info_p (th_p, &ti);
1977     + if (err != TD_OK)
1978     + error (_("find_new_threads_callback: cannot get thread info: %s"),
1979     + thread_db_err_str (err));
1980     +@@ -1191,9 +1219,10 @@ thread_db_find_new_threads (void)
1981     + td_err_e err;
1982     +
1983     + /* Iterate over all user-space threads to discover new threads. */
1984     +- err = td_ta_thr_iter_p (thread_agent, find_new_threads_callback, NULL,
1985     +- TD_THR_ANY_STATE, TD_THR_LOWEST_PRIORITY,
1986     +- TD_SIGNO_MASK, TD_THR_ANY_USER_FLAGS);
1987     ++ err = current_pointers->td_ta_thr_iter_p
1988     ++ (thread_agent, find_new_threads_callback, NULL,
1989     ++ TD_THR_ANY_STATE, TD_THR_LOWEST_PRIORITY,
1990     ++ TD_SIGNO_MASK, TD_THR_ANY_USER_FLAGS);
1991     + if (err != TD_OK)
1992     + error (_("Cannot find new threads: %s"), thread_db_err_str (err));
1993     + }
1994     +@@ -1255,7 +1284,7 @@ thread_db_get_thread_local_address (ptid
1995     + struct thread_info *thread_info;
1996     +
1997     + /* glibc doesn't provide the needed interface. */
1998     +- if (!td_thr_tls_get_addr_p)
1999     ++ if (!current_pointers->td_thr_tls_get_addr_p)
2000     + throw_error (TLS_NO_LIBRARY_SUPPORT_ERROR,
2001     + _("No TLS library support"));
2002     +
2003     +@@ -1267,8 +1296,8 @@ thread_db_get_thread_local_address (ptid
2004     + thread_db_map_id2thr (thread_info, 1);
2005     +
2006     + /* Finally, get the address of the variable. */
2007     +- err = td_thr_tls_get_addr_p (&thread_info->private->th, (void *) lm,
2008     +- offset, &address);
2009     ++ err = current_pointers->td_thr_tls_get_addr_p
2010     ++ (&thread_info->private->th, (void *) lm, offset, &address);
2011     +
2012     + #ifdef THREAD_DB_HAS_TD_NOTALLOC
2013     + /* The memory hasn't been allocated, yet. */
2014     +@@ -1330,17 +1359,49 @@ init_thread_db_ops (void)
2015     + void
2016     + _initialize_thread_db (void)
2017     + {
2018     ++ struct thread_db_pointers *ptrs;
2019     ++ const char *p;
2020     ++
2021     + /* Only initialize the module if we can load libthread_db. */
2022     +- if (thread_db_load ())
2023     +- {
2024     +- init_thread_db_ops ();
2025     +- add_target (&thread_db_ops);
2026     ++ ptrs = thread_db_load (LIBTHREAD_DB_SO);
2027     ++ if (ptrs == NULL)
2028     ++ return;
2029     ++
2030     ++ all_pointers = ptrs;
2031     +
2032     +- /* Add ourselves to objfile event chain. */
2033     +- target_new_objfile_chain = deprecated_target_new_objfile_hook;
2034     +- deprecated_target_new_objfile_hook = thread_db_new_objfile;
2035     ++ /* Some GNU/Linux systems have more than one binary-compatible copy
2036     ++ of libthread_db. If we can find a second one, load that too.
2037     ++ The inferior may force the use of a different threading package
2038     ++ than we expect. Our guess for the location is somewhat hokey:
2039     ++ strip out anything between /lib (or /lib64) and LIBTHREAD_DB_SO.
2040     ++ If we loaded the NPTL libthread_db by default, this may find us
2041     ++ the LinuxThreads copy. */
2042     ++ p = strrchr (ptrs->filename, '/');
2043     ++ while (p != NULL && p > ptrs->filename)
2044     ++ {
2045     ++ const char *component;
2046     +
2047     +- /* Register ourselves for the new inferior observer. */
2048     +- observer_attach_inferior_created (check_for_thread_db_observer);
2049     ++ component = memrchr (ptrs->filename, '/', p - ptrs->filename);
2050     ++ if (component != NULL && strncmp (component, "/lib", 4) == 0)
2051     ++ {
2052     ++ char *new_name = xmalloc (p - ptrs->filename + 2
2053     ++ + strlen (LIBTHREAD_DB_SO));
2054     ++ memcpy (new_name, ptrs->filename, p - ptrs->filename + 1);
2055     ++ strcpy (new_name + (p - ptrs->filename) + 1, LIBTHREAD_DB_SO);
2056     ++ ptrs->next = thread_db_load (new_name);
2057     ++ xfree (new_name);
2058     ++ break;
2059     ++ }
2060     ++ p = component;
2061     + }
2062     ++
2063     ++ init_thread_db_ops ();
2064     ++ add_target (&thread_db_ops);
2065     ++
2066     ++ /* Add ourselves to objfile event chain. */
2067     ++ target_new_objfile_chain = deprecated_target_new_objfile_hook;
2068     ++ deprecated_target_new_objfile_hook = thread_db_new_objfile;
2069     ++
2070     ++ /* Register ourselves for the new inferior observer. */
2071     ++ observer_attach_inferior_created (check_for_thread_db_observer);
2072     + }
2073     --- gdb-6.4.orig/debian/patches/gdb-nptl-cancellation.patch
2074     +++ gdb-6.4/debian/patches/gdb-nptl-cancellation.patch
2075     @@ -0,0 +1,31 @@
2076     +2005-12-07 Daniel Jacobowitz <dan@codesourcery.com>
2077     +
2078     + * linux-nat.c (lin_thread_get_thread_signals): Default to __SIGRTMIN
2079     + and __SIGRTMIN + 1.
2080     +
2081     +Index: gdb-6.4/gdb/linux-nat.c
2082     +===================================================================
2083     +--- gdb-6.4.orig/gdb/linux-nat.c 2005-11-03 14:51:40.000000000 -0500
2084     ++++ gdb-6.4/gdb/linux-nat.c 2005-12-07 21:44:12.000000000 -0500
2085     +@@ -3284,12 +3284,18 @@ lin_thread_get_thread_signals (sigset_t
2086     + sigemptyset (set);
2087     +
2088     + restart = get_signo ("__pthread_sig_restart");
2089     ++ cancel = get_signo ("__pthread_sig_cancel");
2090     ++
2091     ++ /* LinuxThreads normally uses the first two RT signals, but in some legacy
2092     ++ cases may use SIGUSR1/SIGUSR2. NPTL always uses RT signals, but does
2093     ++ not provide any way for the debugger to query the signal numbers -
2094     ++ fortunately they don't change! */
2095     ++
2096     + if (restart == 0)
2097     +- return;
2098     ++ restart = __SIGRTMIN;
2099     +
2100     +- cancel = get_signo ("__pthread_sig_cancel");
2101     + if (cancel == 0)
2102     +- return;
2103     ++ cancel = __SIGRTMIN + 1;
2104     +
2105     + sigaddset (set, restart);
2106     + sigaddset (set, cancel);
2107     --- gdb-6.4.orig/debian/patches/pending-breakpoints-and-sigttou.patch
2108     +++ gdb-6.4/debian/patches/pending-breakpoints-and-sigttou.patch
2109     @@ -0,0 +1,21 @@
2110     +Don't generate SIGTTOU when resolving a pending breakpoint.
2111     +
2112     +Index: gdb-6.3.90.20051119/gdb/infrun.c
2113     +===================================================================
2114     +--- gdb-6.3.90.20051119.orig/gdb/infrun.c 2005-11-19 22:56:43.000000000 -0500
2115     ++++ gdb-6.3.90.20051119/gdb/infrun.c 2005-11-20 00:19:55.000000000 -0500
2116     +@@ -2171,12 +2171,13 @@ process_event_stop_test:
2117     + #else
2118     + solib_add (NULL, 0, &current_target, auto_solib_add);
2119     + #endif
2120     +- target_terminal_inferior ();
2121     +
2122     + /* Try to reenable shared library breakpoints, additional
2123     + code segments in shared libraries might be mapped in now. */
2124     + re_enable_breakpoints_in_shlibs ();
2125     +
2126     ++ target_terminal_inferior ();
2127     ++
2128     + /* If requested, stop when the dynamic linker notifies
2129     + gdb of events. This allows the user to get control
2130     + and place breakpoints in initializer routines for
2131     --- gdb-6.4.orig/debian/patches/cp-pass-by-reference.patch
2132     +++ gdb-6.4/debian/patches/cp-pass-by-reference.patch
2133     @@ -0,0 +1,426 @@
2134     +This patch needs to be submitted for the FSF. Also, there may be testcases
2135     +already in the GDB testsuite (currently disabled) that it would probably fix.
2136     +
2137     +2005-11-20
2138     +
2139     +Patch updated, but still not submitted.
2140     +
2141     +Index: gdb-6.3.90.20051119/gdb/infcall.c
2142     +===================================================================
2143     +--- gdb-6.3.90.20051119.orig/gdb/infcall.c 2005-11-20 11:39:20.000000000 -0500
2144     ++++ gdb-6.3.90.20051119/gdb/infcall.c 2005-11-20 12:42:22.000000000 -0500
2145     +@@ -36,6 +36,7 @@
2146     + #include "gdb_string.h"
2147     + #include "infcall.h"
2148     + #include "dummy-frame.h"
2149     ++#include "cp-abi.h"
2150     +
2151     + /* NOTE: cagney/2003-04-16: What's the future of this code?
2152     +
2153     +@@ -314,8 +315,8 @@ call_function_by_hand (struct value *fun
2154     + {
2155     + CORE_ADDR sp;
2156     + CORE_ADDR dummy_addr;
2157     +- struct type *values_type;
2158     +- unsigned char struct_return;
2159     ++ struct type *values_type, *target_values_type;
2160     ++ unsigned char struct_return = 0, cp_struct_return = 0;
2161     + CORE_ADDR struct_addr = 0;
2162     + struct regcache *retbuf;
2163     + struct cleanup *retbuf_cleanup;
2164     +@@ -329,6 +330,7 @@ call_function_by_hand (struct value *fun
2165     + struct regcache *caller_regcache;
2166     + struct cleanup *caller_regcache_cleanup;
2167     + struct frame_id dummy_id;
2168     ++ struct cleanup *args_cleanup;
2169     +
2170     + if (!target_has_execution)
2171     + noprocess ();
2172     +@@ -430,10 +432,31 @@ call_function_by_hand (struct value *fun
2173     + using_gcc = (b == NULL ? 2 : BLOCK_GCC_COMPILED (b));
2174     + }
2175     +
2176     +- /* Are we returning a value using a structure return or a normal
2177     +- value return? */
2178     ++ /* Are we returning a value using a structure return (passing a
2179     ++ hidden argument pointing to storage) or a normal value return?
2180     ++ There are two cases: C++ ABI mandated structure return and
2181     ++ target ABI structure return. The variable STRUCT_RETURN only
2182     ++ describes the latter. The C++ version is handled by passing
2183     ++ the return location as the first parameter to the function,
2184     ++ even preceding "this". This is different from the target
2185     ++ ABI version, which is target-specific; for instance, on ia64
2186     ++ the first argument is passed in out0 but the hidden structure
2187     ++ return pointer would normally be passed in r8. */
2188     +
2189     +- struct_return = using_struct_return (values_type, using_gcc);
2190     ++ if (current_language->la_language == language_cplus
2191     ++ && cp_pass_by_reference (values_type))
2192     ++ {
2193     ++ cp_struct_return = 1;
2194     ++
2195     ++ /* Tell the target specific argument pushing routine not to
2196     ++ expect a value. */
2197     ++ target_values_type = builtin_type_void;
2198     ++ }
2199     ++ else
2200     ++ {
2201     ++ struct_return = using_struct_return (values_type, using_gcc);
2202     ++ target_values_type = values_type;
2203     ++ }
2204     +
2205     + /* Determine the location of the breakpoint (and possibly other
2206     + stuff) that the called function will return to. The SPARC, for a
2207     +@@ -452,7 +475,7 @@ call_function_by_hand (struct value *fun
2208     + if (INNER_THAN (1, 2))
2209     + {
2210     + sp = push_dummy_code (current_gdbarch, sp, funaddr,
2211     +- using_gcc, args, nargs, values_type,
2212     ++ using_gcc, args, nargs, target_values_type,
2213     + &real_pc, &bp_addr);
2214     + dummy_addr = sp;
2215     + }
2216     +@@ -460,7 +483,7 @@ call_function_by_hand (struct value *fun
2217     + {
2218     + dummy_addr = sp;
2219     + sp = push_dummy_code (current_gdbarch, sp, funaddr,
2220     +- using_gcc, args, nargs, values_type,
2221     ++ using_gcc, args, nargs, target_values_type,
2222     + &real_pc, &bp_addr);
2223     + }
2224     + break;
2225     +@@ -527,9 +550,15 @@ call_function_by_hand (struct value *fun
2226     + param_type = TYPE_FIELD_TYPE (ftype, i);
2227     + else
2228     + param_type = NULL;
2229     +-
2230     ++
2231     + args[i] = value_arg_coerce (args[i], param_type, prototyped);
2232     +
2233     ++ /* FIXME: Is current_language the right language? */
2234     ++ if (current_language->la_language == language_cplus
2235     ++ && param_type != NULL
2236     ++ && cp_pass_by_reference (param_type))
2237     ++ args[i] = value_addr (args[i]);
2238     ++
2239     + /* elz: this code is to handle the case in which the function
2240     + to be called has a pointer to function as parameter and the
2241     + corresponding actual argument is the address of a function
2242     +@@ -628,7 +657,7 @@ You must use a pointer to function type
2243     + stack, if necessary. Make certain that the value is correctly
2244     + aligned. */
2245     +
2246     +- if (struct_return)
2247     ++ if (struct_return || cp_struct_return)
2248     + {
2249     + int len = TYPE_LENGTH (values_type);
2250     + if (INNER_THAN (1, 2))
2251     +@@ -653,6 +682,22 @@ You must use a pointer to function type
2252     + }
2253     + }
2254     +
2255     ++ if (cp_struct_return)
2256     ++ {
2257     ++ struct value **new_args;
2258     ++
2259     ++ /* Add the new argument to the front of the argument list. */
2260     ++ new_args = xmalloc (sizeof (struct value *) * (nargs + 1));
2261     ++ new_args[0] = value_from_pointer (lookup_pointer_type (values_type),
2262     ++ struct_addr);
2263     ++ memcpy (&new_args[1], &args[0], sizeof (struct value *) * nargs);
2264     ++ args = new_args;
2265     ++ nargs++;
2266     ++ args_cleanup = make_cleanup (xfree, args);
2267     ++ }
2268     ++ else
2269     ++ args_cleanup = make_cleanup (null_cleanup, NULL);
2270     ++
2271     + /* Create the dummy stack frame. Pass in the call dummy address as,
2272     + presumably, the ABI code knows where, in the call dummy, the
2273     + return address should be pointed. */
2274     +@@ -660,6 +705,8 @@ You must use a pointer to function type
2275     + bp_addr, nargs, args, sp, struct_return,
2276     + struct_addr);
2277     +
2278     ++ do_cleanups (args_cleanup);
2279     ++
2280     + /* Set up a frame ID for the dummy frame so we can pass it to
2281     + set_momentary_breakpoint. We need to give the breakpoint a frame
2282     + ID so that the breakpoint code can correctly re-identify the
2283     +@@ -851,7 +898,9 @@ the function call)."), name);
2284     + {
2285     + struct value *retval = NULL;
2286     +
2287     +- if (TYPE_CODE (values_type) == TYPE_CODE_VOID)
2288     ++ if (cp_struct_return)
2289     ++ retval = value_at (values_type, struct_addr);
2290     ++ else if (TYPE_CODE (target_values_type) == TYPE_CODE_VOID)
2291     + {
2292     + /* If the function returns void, don't bother fetching the
2293     + return value. */
2294     +@@ -861,7 +910,7 @@ the function call)."), name);
2295     + {
2296     + struct gdbarch *arch = current_gdbarch;
2297     +
2298     +- switch (gdbarch_return_value (arch, values_type, NULL, NULL, NULL))
2299     ++ switch (gdbarch_return_value (arch, target_values_type, NULL, NULL, NULL))
2300     + {
2301     + case RETURN_VALUE_REGISTER_CONVENTION:
2302     + case RETURN_VALUE_ABI_RETURNS_ADDRESS:
2303     +Index: gdb-6.3.90.20051119/gdb/cp-abi.h
2304     +===================================================================
2305     +--- gdb-6.3.90.20051119.orig/gdb/cp-abi.h 2005-11-20 11:39:20.000000000 -0500
2306     ++++ gdb-6.3.90.20051119/gdb/cp-abi.h 2005-11-20 11:50:11.000000000 -0500
2307     +@@ -147,6 +147,10 @@ extern struct type *value_rtti_type (str
2308     + extern int baseclass_offset (struct type *type, int index,
2309     + const bfd_byte *valaddr, CORE_ADDR address);
2310     +
2311     ++/* Return non-zero if an argument of type TYPE should be passed by reference
2312     ++ instead of value. */
2313     ++extern int cp_pass_by_reference (struct type *type);
2314     ++
2315     + struct cp_abi_ops
2316     + {
2317     + const char *shortname;
2318     +@@ -164,6 +168,7 @@ struct cp_abi_ops
2319     + int *using_enc);
2320     + int (*baseclass_offset) (struct type *type, int index,
2321     + const bfd_byte *valaddr, CORE_ADDR address);
2322     ++ int (*pass_by_reference) (struct type *type);
2323     + };
2324     +
2325     +
2326     +Index: gdb-6.3.90.20051119/gdb/cp-abi.c
2327     +===================================================================
2328     +--- gdb-6.3.90.20051119.orig/gdb/cp-abi.c 2005-11-20 11:39:20.000000000 -0500
2329     ++++ gdb-6.3.90.20051119/gdb/cp-abi.c 2005-11-20 11:50:11.000000000 -0500
2330     +@@ -95,6 +95,14 @@ value_rtti_type (struct value *v, int *f
2331     + return (*current_cp_abi.rtti_type) (v, full, top, using_enc);
2332     + }
2333     +
2334     ++int
2335     ++cp_pass_by_reference (struct type *type)
2336     ++{
2337     ++ if ((current_cp_abi.pass_by_reference) == NULL)
2338     ++ return 0;
2339     ++ return (*current_cp_abi.pass_by_reference) (type);
2340     ++}
2341     ++
2342     + /* Set the current C++ ABI to SHORT_NAME. */
2343     +
2344     + static int
2345     +Index: gdb-6.3.90.20051119/gdb/gnu-v3-abi.c
2346     +===================================================================
2347     +--- gdb-6.3.90.20051119.orig/gdb/gnu-v3-abi.c 2005-11-20 11:39:20.000000000 -0500
2348     ++++ gdb-6.3.90.20051119/gdb/gnu-v3-abi.c 2005-11-20 11:50:11.000000000 -0500
2349     +@@ -416,6 +416,84 @@ gnuv3_baseclass_offset (struct type *typ
2350     + return base_offset;
2351     + }
2352     +
2353     ++/* Return nonzero if a type should be passed by reference.
2354     ++
2355     ++ The rule in the v3 ABI document comes from section 3.1.1. If the
2356     ++ type has a non-trivial copy constructor or destructor, then the
2357     ++ caller must make a copy (by calling the copy constructor if there
2358     ++ is one or perform the copy itself otherwise), pass the address of
2359     ++ the copy, and then destroy the temporary (if necessary).
2360     ++
2361     ++ For return values with non-trivial copy constructors or
2362     ++ destructors, space will be allocated in the caller, and a pointer
2363     ++ will be passed as the first argument (preceding "this").
2364     ++
2365     ++ We don't have a bulletproof mechanism for determining whether a
2366     ++ constructor or destructor is trivial. For GCC and DWARF2 debug
2367     ++ information, we can check the artificial flag.
2368     ++
2369     ++ We don't do anything with the constructors or destructors yet,
2370     ++ but we have to get the argument passing right anyway. */
2371     ++static int
2372     ++gnuv3_pass_by_reference (struct type *type)
2373     ++{
2374     ++ int fieldnum, fieldelem, basenum;
2375     ++
2376     ++ CHECK_TYPEDEF (type);
2377     ++
2378     ++ /* We're only interested in things that can have methods. */
2379     ++ if (TYPE_CODE (type) != TYPE_CODE_STRUCT
2380     ++ && TYPE_CODE (type) != TYPE_CODE_CLASS
2381     ++ && TYPE_CODE (type) != TYPE_CODE_UNION)
2382     ++ return 0;
2383     ++
2384     ++ for (fieldnum = 0; fieldnum < TYPE_NFN_FIELDS (type); fieldnum++)
2385     ++ for (fieldelem = 0; fieldelem < TYPE_FN_FIELDLIST_LENGTH (type, fieldnum);
2386     ++ fieldelem++)
2387     ++ {
2388     ++ struct fn_field *fn = TYPE_FN_FIELDLIST1 (type, fieldnum);
2389     ++ char *name = TYPE_FN_FIELDLIST_NAME (type, fieldnum);
2390     ++ struct type *fieldtype = TYPE_FN_FIELD_TYPE (fn, fieldelem);
2391     ++
2392     ++ /* If this function is marked as artificial, it is compiler-generated,
2393     ++ and we assume it is trivial. */
2394     ++ if (TYPE_FN_FIELD_ARTIFICIAL (fn, fieldelem))
2395     ++ continue;
2396     ++
2397     ++ /* If we've found a destructor, we must pass this by reference. */
2398     ++ if (name[0] == '~')
2399     ++ return 1;
2400     ++
2401     ++ /* If the mangled name of this method doesn't indicate that it
2402     ++ is a constructor, we're not interested.
2403     ++
2404     ++ FIXME drow/2004-05-27: We could do this using the name of
2405     ++ the method and the name of the class instead of dealing
2406     ++ with the mangled name. We don't have a convenient function
2407     ++ to strip off both leading scope qualifiers and trailing
2408     ++ template arguments yet. */
2409     ++ if (!is_constructor_name (TYPE_FN_FIELD_PHYSNAME (fn, fieldelem)))
2410     ++ continue;
2411     ++
2412     ++ /* If this method takes two arguments, and the second argument is
2413     ++ a reference to this class, then it is a copy constructor. */
2414     ++ if (TYPE_NFIELDS (fieldtype) == 2
2415     ++ && TYPE_CODE (TYPE_FIELD_TYPE (fieldtype, 1)) == TYPE_CODE_REF
2416     ++ && check_typedef (TYPE_TARGET_TYPE (TYPE_FIELD_TYPE (fieldtype, 1))) == type)
2417     ++ return 1;
2418     ++ }
2419     ++
2420     ++ /* Even if all the constructors and destructors were artificial, one
2421     ++ of them may have invoked a non-artificial constructor or
2422     ++ destructor in a base class. If any base class needs to be passed
2423     ++ by reference, so does this class. */
2424     ++ for (basenum = 0; basenum < TYPE_N_BASECLASSES (type); basenum++)
2425     ++ if (gnuv3_pass_by_reference (TYPE_BASECLASS (type, basenum)))
2426     ++ return 1;
2427     ++
2428     ++ return 0;
2429     ++}
2430     ++
2431     + static void
2432     + init_gnuv3_ops (void)
2433     + {
2434     +@@ -433,6 +511,7 @@ init_gnuv3_ops (void)
2435     + gnu_v3_abi_ops.rtti_type = gnuv3_rtti_type;
2436     + gnu_v3_abi_ops.virtual_fn_field = gnuv3_virtual_fn_field;
2437     + gnu_v3_abi_ops.baseclass_offset = gnuv3_baseclass_offset;
2438     ++ gnu_v3_abi_ops.pass_by_reference = gnuv3_pass_by_reference;
2439     + }
2440     +
2441     + extern initialize_file_ftype _initialize_gnu_v3_abi; /* -Wmissing-prototypes */
2442     +Index: gdb-6.3.90.20051119/gdb/Makefile.in
2443     +===================================================================
2444     +--- gdb-6.3.90.20051119.orig/gdb/Makefile.in 2005-11-20 11:50:11.000000000 -0500
2445     ++++ gdb-6.3.90.20051119/gdb/Makefile.in 2005-11-20 12:41:06.000000000 -0500
2446     +@@ -2114,7 +2114,7 @@ ia64-tdep.o: ia64-tdep.c $(defs_h) $(inf
2447     + infcall.o: infcall.c $(defs_h) $(breakpoint_h) $(target_h) $(regcache_h) \
2448     + $(inferior_h) $(gdb_assert_h) $(block_h) $(gdbcore_h) $(language_h) \
2449     + $(objfiles_h) $(gdbcmd_h) $(command_h) $(gdb_string_h) $(infcall_h) \
2450     +- $(dummy_frame_h)
2451     ++ $(dummy_frame_h) $(cp_abi_h)
2452     + inf-child.o: inf-child.c $(defs_h) $(regcache_h) $(memattr_h) $(symtab_h) \
2453     + $(target_h) $(inferior_h) $(gdb_string_h)
2454     + infcmd.o: infcmd.c $(defs_h) $(gdb_string_h) $(symtab_h) $(gdbtypes_h) \
2455     +Index: gdb-6.3.90.20051119/gdb/testsuite/gdb.cp/pass-by-ref.exp
2456     +===================================================================
2457     +--- /dev/null 1970-01-01 00:00:00.000000000 +0000
2458     ++++ gdb-6.3.90.20051119/gdb/testsuite/gdb.cp/pass-by-ref.exp 2005-11-20 12:29:39.000000000 -0500
2459     +@@ -0,0 +1,38 @@
2460     ++# This testcase is part of GDB, the GNU debugger.
2461     ++
2462     ++# Copyright 2004 Free Software Foundation, Inc.
2463     ++
2464     ++# This program is free software; you can redistribute it and/or modify
2465     ++# it under the terms of the GNU General Public License as published by
2466     ++# the Free Software Foundation; either version 2 of the License, or
2467     ++# (at your option) any later version.
2468     ++#
2469     ++# This program is distributed in the hope that it will be useful,
2470     ++# but WITHOUT ANY WARRANTY; without even the implied warranty of
2471     ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2472     ++# GNU General Public License for more details.
2473     ++#
2474     ++# You should have received a copy of the GNU General Public License
2475     ++# along with this program; if not, write to the Free Software
2476     ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
2477     ++
2478     ++# Check that GDB can call C++ functions whose parameters have
2479     ++# object type, but are passed by reference.
2480     ++
2481     ++set testfile "pass-by-ref"
2482     ++set srcfile ${testfile}.cc
2483     ++set binfile ${objdir}/${subdir}/${testfile}
2484     ++if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
2485     ++ return -1
2486     ++}
2487     ++
2488     ++gdb_exit
2489     ++gdb_start
2490     ++gdb_reinitialize_dir $srcdir/$subdir
2491     ++gdb_load ${binfile}
2492     ++
2493     ++if ![runto_main] then {
2494     ++ return -1
2495     ++}
2496     ++
2497     ++gdb_test "print foo (global_obj)" " = 3" "call function"
2498     +Index: gdb-6.3.90.20051119/gdb/testsuite/gdb.cp/pass-by-ref.cc
2499     +===================================================================
2500     +--- /dev/null 1970-01-01 00:00:00.000000000 +0000
2501     ++++ gdb-6.3.90.20051119/gdb/testsuite/gdb.cp/pass-by-ref.cc 2005-11-20 11:50:11.000000000 -0500
2502     +@@ -0,0 +1,57 @@
2503     ++/* This testcase is part of GDB, the GNU debugger.
2504     ++
2505     ++ Copyright 2004 Free Software Foundation, Inc.
2506     ++
2507     ++ This program is free software; you can redistribute it and/or modify
2508     ++ it under the terms of the GNU General Public License as published by
2509     ++ the Free Software Foundation; either version 2 of the License, or
2510     ++ (at your option) any later version.
2511     ++
2512     ++ This program is distributed in the hope that it will be useful,
2513     ++ but WITHOUT ANY WARRANTY; without even the implied warranty of
2514     ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2515     ++ GNU General Public License for more details.
2516     ++
2517     ++ You should have received a copy of the GNU General Public License
2518     ++ along with this program; if not, write to the Free Software
2519     ++ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
2520     ++ USA. */
2521     ++
2522     ++class Obj {
2523     ++public:
2524     ++ Obj ();
2525     ++ Obj (const Obj &);
2526     ++ ~Obj ();
2527     ++ int var[2];
2528     ++};
2529     ++
2530     ++int foo (Obj arg)
2531     ++{
2532     ++ return arg.var[0] + arg.var[1];
2533     ++}
2534     ++
2535     ++Obj::Obj ()
2536     ++{
2537     ++ var[0] = 1;
2538     ++ var[1] = 2;
2539     ++}
2540     ++
2541     ++Obj::Obj (const Obj &obj)
2542     ++{
2543     ++ var[0] = obj.var[0];
2544     ++ var[1] = obj.var[1];
2545     ++}
2546     ++
2547     ++Obj::~Obj ()
2548     ++{
2549     ++
2550     ++}
2551     ++
2552     ++Obj global_obj;
2553     ++
2554     ++int
2555     ++main ()
2556     ++{
2557     ++ int bar = foo (global_obj);
2558     ++ return bar;
2559     ++}
2560     --- gdb-6.4.orig/debian/patches/gdb-pascal-support.patch
2561     +++ gdb-6.4/debian/patches/gdb-pascal-support.patch
2562     @@ -0,0 +1,94 @@
2563     +From:
2564     + http://www.math.uni.wroc.pl/~hebisch/gpc/
2565     +
2566     +I believe this patch was posted to gdb-patches and never reviewed.
2567     +
2568     +Index: gdb-6.3.90.20051119/gdb/dwarf2read.c
2569     +===================================================================
2570     +--- gdb-6.3.90.20051119.orig/gdb/dwarf2read.c 2005-11-20 13:15:44.000000000 -0500
2571     ++++ gdb-6.3.90.20051119/gdb/dwarf2read.c 2005-11-20 13:36:49.000000000 -0500
2572     +@@ -911,6 +911,8 @@ static const char *namespace_name (struc
2573     +
2574     + static void read_enumeration_type (struct die_info *, struct dwarf2_cu *);
2575     +
2576     ++static void read_set_type (struct die_info *, struct dwarf2_cu *);
2577     ++
2578     + static void process_enumeration_scope (struct die_info *, struct dwarf2_cu *);
2579     +
2580     + static struct type *dwarf_base_type (int, int, struct dwarf2_cu *);
2581     +@@ -2648,6 +2650,9 @@ process_die (struct die_info *die, struc
2582     + read_enumeration_type (die, cu);
2583     + process_enumeration_scope (die, cu);
2584     + break;
2585     ++ case DW_TAG_set_type:
2586     ++ read_set_type (die, cu);
2587     ++ break;
2588     +
2589     + /* FIXME drow/2004-03-14: These initialize die->type, but do not create
2590     + a symbol or process any children. Therefore it doesn't do anything
2591     +@@ -4031,6 +4036,24 @@ determine_class_name (struct die_info *d
2592     + return new_prefix;
2593     + }
2594     +
2595     ++static void
2596     ++read_set_type (struct die_info * die, struct dwarf2_cu *cu)
2597     ++{
2598     ++ struct type *domain_type;
2599     ++
2600     ++ /* Return if we've already decoded this type. */
2601     ++ if (die->type)
2602     ++ {
2603     ++ return;
2604     ++ }
2605     ++
2606     ++ domain_type = die_type (die, cu);
2607     ++
2608     ++ die->type = create_set_type (NULL, domain_type);
2609     ++
2610     ++}
2611     ++
2612     ++
2613     + /* Given a pointer to a die which begins an enumeration, process all
2614     + the dies that define the members of the enumeration, and create the
2615     + symbol for the enumeration type.
2616     +@@ -6113,9 +6136,11 @@ set_cu_language (unsigned int lang, stru
2617     + case DW_LANG_Ada95:
2618     + cu->language = language_ada;
2619     + break;
2620     ++ case DW_LANG_Pascal83:
2621     ++ cu->language = language_pascal;
2622     ++ break;
2623     + case DW_LANG_Cobol74:
2624     + case DW_LANG_Cobol85:
2625     +- case DW_LANG_Pascal83:
2626     + case DW_LANG_Modula2:
2627     + default:
2628     + cu->language = language_minimal;
2629     +@@ -6904,6 +6929,7 @@ new_symbol (struct die_info *die, struct
2630     + case DW_TAG_structure_type:
2631     + case DW_TAG_union_type:
2632     + case DW_TAG_enumeration_type:
2633     ++ case DW_TAG_set_type:
2634     + SYMBOL_CLASS (sym) = LOC_TYPEDEF;
2635     + SYMBOL_DOMAIN (sym) = STRUCT_DOMAIN;
2636     +
2637     +@@ -7225,6 +7251,9 @@ read_type_die (struct die_info *die, str
2638     + case DW_TAG_enumeration_type:
2639     + read_enumeration_type (die, cu);
2640     + break;
2641     ++ case DW_TAG_set_type:
2642     ++ read_set_type (die, cu);
2643     ++ break;
2644     + case DW_TAG_subprogram:
2645     + case DW_TAG_subroutine_type:
2646     + read_subroutine_type (die, cu);
2647     +@@ -7282,7 +7311,8 @@ determine_prefix (struct die_info *die,
2648     + struct die_info *parent;
2649     +
2650     + if (cu->language != language_cplus
2651     +- && cu->language != language_java)
2652     ++ && cu->language != language_java
2653     ++ && cu->language != language_pascal)
2654     + return NULL;
2655     +
2656     + parent = die->parent;
2657     --- gdb-6.4.orig/debian/patches/gdb-powerpc-pic-prologue.patch
2658     +++ gdb-6.4/debian/patches/gdb-powerpc-pic-prologue.patch
2659     @@ -0,0 +1,34 @@
2660     +2005-12-10 Daniel Jacobowitz <dan@codesourcery.com>
2661     +
2662     + PR tdep/2029
2663     + Suggested by Till Straumann <strauman@slac.stanford.edu>:
2664     + * rs6000-tdep.c (skip_prologue): Update check for later mtlr
2665     + instructions. Handle PIC bcl.
2666     +
2667     +Index: gdb-6.4/gdb/rs6000-tdep.c
2668     +===================================================================
2669     +--- gdb-6.4.orig/gdb/rs6000-tdep.c 2005-11-01 14:32:36.000000000 -0500
2670     ++++ gdb-6.4/gdb/rs6000-tdep.c 2005-12-10 00:22:15.000000000 -0500
2671     +@@ -911,7 +911,7 @@ skip_prologue (CORE_ADDR pc, CORE_ADDR l
2672     +
2673     + remember just the first one, but skip over additional
2674     + ones. */
2675     +- if (lr_reg < 0)
2676     ++ if (lr_reg == -1)
2677     + lr_reg = (op & 0x03e00000);
2678     + if (lr_reg == 0)
2679     + r0_contains_arg = 0;
2680     +@@ -1024,6 +1024,13 @@ skip_prologue (CORE_ADDR pc, CORE_ADDR l
2681     + continue;
2682     +
2683     + }
2684     ++ else if ((op & 0xfe80ffff) == 0x42800005 && lr_reg != -1)
2685     ++ {
2686     ++ /* bcl 20,xx,.+4 is used to get the current PC, with or without
2687     ++ prediction bits. If the LR has already been saved, we can
2688     ++ skip it. */
2689     ++ continue;
2690     ++ }
2691     + else if (op == 0x48000005)
2692     + { /* bl .+4 used in
2693     + -mrelocatable */
2694     --- gdb-6.4.orig/debian/patches/static-thread-db.patch
2695     +++ gdb-6.4/debian/patches/static-thread-db.patch
2696     @@ -0,0 +1,155 @@
2697     +Status: submitted similar patch 2004-12-08
2698     +
2699     +This patch cleans up the initialization of thread_db. It works for static
2700     +binaries now. The vsyscall patches hide this problem, since new static
2701     +binaries will load the vsyscall DSO and then trigger thread_db; but
2702     +this is still a good cleanup.
2703     +
2704     +Index: gdb-6.3.90.20051119/gdb/linux-thread-db.c
2705     +===================================================================
2706     +--- gdb-6.3.90.20051119.orig/gdb/linux-thread-db.c 2005-10-13 05:31:59.000000000 -0400
2707     ++++ gdb-6.3.90.20051119/gdb/linux-thread-db.c 2005-11-19 15:15:55.000000000 -0500
2708     +@@ -37,6 +37,7 @@
2709     + #include "regcache.h"
2710     + #include "solib-svr4.h"
2711     + #include "gdbcore.h"
2712     ++#include "observer.h"
2713     +
2714     + #ifdef HAVE_GNU_LIBC_VERSION_H
2715     + #include <gnu/libc-version.h>
2716     +@@ -626,59 +627,49 @@ check_thread_signals (void)
2717     + #endif
2718     + }
2719     +
2720     ++/* Check whether thread_db is usable. This function is called when
2721     ++ an inferior is created (or otherwise acquired, e.g. attached to)
2722     ++ and when new shared libraries are loaded into a running process. */
2723     ++
2724     + static void
2725     +-thread_db_new_objfile (struct objfile *objfile)
2726     ++check_for_thread_db (void)
2727     + {
2728     + td_err_e err;
2729     ++ static int already_loaded;
2730     +
2731     + /* First time through, report that libthread_db was successfuly
2732     + loaded. Can't print this in in thread_db_load as, at that stage,
2733     +- the interpreter and it's console haven't started. The real
2734     +- problem here is that libthread_db is loaded too early - it should
2735     +- only be loaded when there is a program to debug. */
2736     +- {
2737     +- static int dejavu;
2738     +- if (!dejavu)
2739     +- {
2740     +- Dl_info info;
2741     +- const char *library = NULL;
2742     +- /* Try dladdr. */
2743     +- if (dladdr ((*td_ta_new_p), &info) != 0)
2744     +- library = info.dli_fname;
2745     +- /* Try dlinfo? */
2746     +- if (library == NULL)
2747     +- /* Paranoid - don't let a NULL path slip through. */
2748     +- library = LIBTHREAD_DB_SO;
2749     +- printf_unfiltered (_("Using host libthread_db library \"%s\".\n"),
2750     +- library);
2751     +- dejavu = 1;
2752     +- }
2753     +- }
2754     ++ the interpreter and it's console haven't started. */
2755     +
2756     +- /* Don't attempt to use thread_db on targets which can not run
2757     +- (core files). */
2758     +- if (objfile == NULL || !target_has_execution)
2759     ++ if (!already_loaded)
2760     + {
2761     +- /* All symbols have been discarded. If the thread_db target is
2762     +- active, deactivate it now. */
2763     +- if (using_thread_db)
2764     +- {
2765     +- gdb_assert (proc_handle.pid == 0);
2766     +- unpush_target (&thread_db_ops);
2767     +- using_thread_db = 0;
2768     +- }
2769     ++ Dl_info info;
2770     ++ const char *library = NULL;
2771     ++ if (dladdr ((*td_ta_new_p), &info) != 0)
2772     ++ library = info.dli_fname;
2773     ++
2774     ++ /* Try dlinfo? */
2775     +
2776     +- goto quit;
2777     ++ if (library == NULL)
2778     ++ /* Paranoid - don't let a NULL path slip through. */
2779     ++ library = LIBTHREAD_DB_SO;
2780     ++
2781     ++ printf_unfiltered (_("Using host libthread_db library \"%s\".\n"),
2782     ++ library);
2783     ++ already_loaded = 1;
2784     + }
2785     +
2786     + if (using_thread_db)
2787     + /* Nothing to do. The thread library was already detected and the
2788     + target vector was already activated. */
2789     +- goto quit;
2790     ++ return;
2791     ++
2792     ++ /* Don't attempt to use thread_db on targets which can not run
2793     ++ (executables not running yet, core files) for now. */
2794     ++ if (!target_has_execution)
2795     ++ return;
2796     +
2797     +- /* Initialize the structure that identifies the child process. Note
2798     +- that at this point there is no guarantee that we actually have a
2799     +- child process. */
2800     ++ /* Initialize the structure that identifies the child process. */
2801     + proc_handle.pid = GET_PID (inferior_ptid);
2802     +
2803     + /* Now attempt to open a connection to the thread library. */
2804     +@@ -705,12 +696,24 @@ thread_db_new_objfile (struct objfile *o
2805     + thread_db_err_str (err));
2806     + break;
2807     + }
2808     ++}
2809     ++
2810     ++static void
2811     ++thread_db_new_objfile (struct objfile *objfile)
2812     ++{
2813     ++ if (objfile != NULL)
2814     ++ check_for_thread_db ();
2815     +
2816     +-quit:
2817     + if (target_new_objfile_chain)
2818     + target_new_objfile_chain (objfile);
2819     + }
2820     +
2821     ++static void
2822     ++check_for_thread_db_observer (struct target_ops *target, int from_tty)
2823     ++{
2824     ++ check_for_thread_db ();
2825     ++}
2826     ++
2827     + /* Attach to a new thread. This function is called when we receive a
2828     + TD_CREATE event or when we iterate over all threads and find one
2829     + that wasn't already in our list. */
2830     +@@ -1336,5 +1339,8 @@ _initialize_thread_db (void)
2831     + /* Add ourselves to objfile event chain. */
2832     + target_new_objfile_chain = deprecated_target_new_objfile_hook;
2833     + deprecated_target_new_objfile_hook = thread_db_new_objfile;
2834     ++
2835     ++ /* Register ourselves for the new inferior observer. */
2836     ++ observer_attach_inferior_created (check_for_thread_db_observer);
2837     + }
2838     + }
2839     +Index: gdb-6.3.90.20051119/gdb/Makefile.in
2840     +===================================================================
2841     +--- gdb-6.3.90.20051119.orig/gdb/Makefile.in 2005-11-19 15:11:23.000000000 -0500
2842     ++++ gdb-6.3.90.20051119/gdb/Makefile.in 2005-11-19 15:13:21.000000000 -0500
2843     +@@ -2189,7 +2189,7 @@ linux-nat.o: linux-nat.c $(defs_h) $(inf
2844     + linux-thread-db.o: linux-thread-db.c $(defs_h) $(gdb_assert_h) \
2845     + $(gdb_proc_service_h) $(gdb_thread_db_h) $(bfd_h) $(exceptions_h) \
2846     + $(gdbthread_h) $(inferior_h) $(symfile_h) $(objfiles_h) $(target_h) \
2847     +- $(regcache_h) $(solib_svr4_h) $(gdbcore_h)
2848     ++ $(regcache_h) $(solib_svr4_h) $(gdbcore_h) $(observer_h)
2849     + lynx-nat.o: lynx-nat.c $(defs_h) $(frame_h) $(inferior_h) $(target_h) \
2850     + $(gdbcore_h) $(regcache_h)
2851     + m2-exp.o: m2-exp.c $(defs_h) $(gdb_string_h) $(expression_h) $(language_h) \
2852     --- gdb-6.4.orig/debian/patches/sparclinux-core-regset.patch
2853     +++ gdb-6.4/debian/patches/sparclinux-core-regset.patch
2854     @@ -0,0 +1,180 @@
2855     +--- gdb-6.4/gdb/Makefile.in.~1~ 2006-05-05 16:09:44.000000000 -0700
2856     ++++ gdb-6.4/gdb/Makefile.in 2006-05-05 16:09:49.000000000 -0700
2857     +@@ -2594,7 +2594,7 @@ sparc64fbsd-tdep.o: sparc64fbsd-tdep.c $
2858     + sparc64-linux-nat.o: sparc64-linux-nat.c $(defs_h) $(sparc64_tdep_h) \
2859     + $(sparc_nat_h) $(inferior_h) $(target_h) $(linux_nat_h)
2860     + sparc64-linux-tdep.o: sparc64-linux-tdep.c $(defs_h) $(frame_h) \
2861     +- $(frame_unwind_h) $(gdbarch_h) $(osabi_h) $(solib_svr4_h) \
2862     ++ $(frame_unwind_h) $(regset_h) $(gdbarch_h) $(osabi_h) $(solib_svr4_h) \
2863     + $(symtab_h) $(trad_frame_h) $(tramp_frame_h) $(sparc64_tdep_h)
2864     + sparc64-nat.o: sparc64-nat.c $(defs_h) $(gdbarch_h) $(sparc64_tdep_h) \
2865     + $(sparc_nat_h)
2866     +@@ -2618,9 +2618,9 @@ sparc64-tdep.o: sparc64-tdep.c $(defs_h)
2867     + sparc-linux-nat.o: sparc-linux-nat.c $(defs_h) $(inferior_h) $(target_h) \
2868     + $(linux_nat_h)
2869     + sparc-linux-tdep.o: sparc-linux-tdep.c $(defs_h) $(dwarf2_frame_h) \
2870     +- $(floatformat_h) $(frame_h) $(frame_unwind_h) $(gdbarch_h) \
2871     +- $(gdbcore_h) $(osabi_h) $(regcache_h) $(solib_svr4_h) $(symtab_h) \
2872     +- $(trad_frame_h) $(tramp_frame_h) $(sparc_tdep_h)
2873     ++ $(floatformat_h) $(frame_h) $(frame_unwind_h) $(regset_h) \
2874     ++ $(gdbarch_h) $(gdbcore_h) $(osabi_h) $(regcache_h) $(solib_svr4_h) \
2875     ++ $(symtab_h) $(trad_frame_h) $(tramp_frame_h) $(sparc_tdep_h)
2876     + sparc-nat.o: sparc-nat.c $(defs_h) $(inferior_h) $(regcache_h) $(target_h) \
2877     + $(gdb_assert_h) $(gdb_string_h) $(gdb_wait_h) $(sparc_tdep_h) \
2878     + $(sparc_nat_h) $(inf_ptrace_h)
2879     +--- gdb-6.4/gdb/sparc-linux-tdep.c.~1~ 2006-05-05 16:09:44.000000000 -0700
2880     ++++ gdb-6.4/gdb/sparc-linux-tdep.c 2006-05-05 16:09:49.000000000 -0700
2881     +@@ -24,6 +24,7 @@
2882     + #include "floatformat.h"
2883     + #include "frame.h"
2884     + #include "frame-unwind.h"
2885     ++#include "regset.h"
2886     + #include "gdbarch.h"
2887     + #include "gdbcore.h"
2888     + #include "osabi.h"
2889     +@@ -124,11 +125,67 @@ sparc32_linux_sigframe_init (const struc
2890     + }
2891     +
2892     +
2893     ++const struct sparc_gregset sparc32_linux_core_gregset =
2894     ++{
2895     ++ 32 * 4, /* %psr */
2896     ++ 33 * 4, /* %pc */
2897     ++ 34 * 4, /* %npc */
2898     ++ 35 * 4, /* %y */
2899     ++ -1, /* %wim */
2900     ++ -1, /* %tbr */
2901     ++ 1 * 4, /* %g1 */
2902     ++ 16 * 4, /* %l0 */
2903     ++ 4, /* y size */
2904     ++};
2905     ++
2906     ++
2907     ++static void
2908     ++sparc32_linux_supply_core_gregset (const struct regset *regset,
2909     ++ struct regcache *regcache,
2910     ++ int regnum, const void *gregs, size_t len)
2911     ++{
2912     ++ sparc32_supply_gregset (&sparc32_linux_core_gregset, regcache, regnum, gregs);
2913     ++}
2914     ++
2915     ++static void
2916     ++sparc32_linux_collect_core_gregset (const struct regset *regset,
2917     ++ const struct regcache *regcache,
2918     ++ int regnum, void *gregs, size_t len)
2919     ++{
2920     ++ sparc32_collect_gregset (&sparc32_linux_core_gregset, regcache, regnum, gregs);
2921     ++}
2922     ++
2923     ++static void
2924     ++sparc32_linux_supply_core_fpregset (const struct regset *regset,
2925     ++ struct regcache *regcache,
2926     ++ int regnum, const void *fpregs, size_t len)
2927     ++{
2928     ++ sparc32_supply_fpregset (regcache, regnum, fpregs);
2929     ++}
2930     ++
2931     ++static void
2932     ++sparc32_linux_collect_core_fpregset (const struct regset *regset,
2933     ++ const struct regcache *regcache,
2934     ++ int regnum, void *fpregs, size_t len)
2935     ++{
2936     ++ sparc32_collect_fpregset (regcache, regnum, fpregs);
2937     ++}
2938     ++
2939     ++
2940     ++
2941     + static void
2942     + sparc32_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
2943     + {
2944     + struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
2945     +
2946     ++ tdep->gregset = regset_alloc (gdbarch, sparc32_linux_supply_core_gregset,
2947     ++ sparc32_linux_collect_core_gregset);
2948     ++ tdep->sizeof_gregset = 152;
2949     ++
2950     ++ tdep->fpregset = regset_alloc (gdbarch, sparc32_linux_supply_core_fpregset,
2951     ++ sparc32_linux_collect_core_fpregset);
2952     ++ tdep->sizeof_fpregset = 396;
2953     ++
2954     + tramp_frame_prepend_unwinder (gdbarch, &sparc32_linux_sigframe);
2955     + tramp_frame_prepend_unwinder (gdbarch, &sparc32_linux_rt_sigframe);
2956     +
2957     +--- gdb-6.4/gdb/sparc64-linux-tdep.c.~1~ 2006-05-05 16:09:44.000000000 -0700
2958     ++++ gdb-6.4/gdb/sparc64-linux-tdep.c 2006-05-05 16:09:49.000000000 -0700
2959     +@@ -22,6 +22,7 @@
2960     + #include "defs.h"
2961     + #include "frame.h"
2962     + #include "frame-unwind.h"
2963     ++#include "regset.h"
2964     + #include "gdbarch.h"
2965     + #include "osabi.h"
2966     + #include "solib-svr4.h"
2967     +@@ -95,11 +96,67 @@ sparc64_linux_sigframe_init (const struc
2968     + }
2969     +
2970     +
2971     ++const struct sparc_gregset sparc64_linux_core_gregset =
2972     ++{
2973     ++ 32 * 8, /* %tstate */
2974     ++ 33 * 8, /* %tpc */
2975     ++ 34 * 8, /* %tnpc */
2976     ++ 35 * 8, /* %y */
2977     ++ -1, /* %wim */
2978     ++ -1, /* %tbr */
2979     ++ 1 * 8, /* %g1 */
2980     ++ 16 * 8, /* %l0 */
2981     ++ 8, /* y size */
2982     ++};
2983     ++
2984     ++
2985     ++static void
2986     ++sparc64_linux_supply_core_gregset (const struct regset *regset,
2987     ++ struct regcache *regcache,
2988     ++ int regnum, const void *gregs, size_t len)
2989     ++{
2990     ++ sparc64_supply_gregset (&sparc64_linux_core_gregset, regcache, regnum, gregs);
2991     ++}
2992     ++
2993     ++static void
2994     ++sparc64_linux_collect_core_gregset (const struct regset *regset,
2995     ++ const struct regcache *regcache,
2996     ++ int regnum, void *gregs, size_t len)
2997     ++{
2998     ++ sparc64_collect_gregset (&sparc64_linux_core_gregset, regcache, regnum, gregs);
2999     ++}
3000     ++
3001     ++static void
3002     ++sparc64_linux_supply_core_fpregset (const struct regset *regset,
3003     ++ struct regcache *regcache,
3004     ++ int regnum, const void *fpregs, size_t len)
3005     ++{
3006     ++ sparc64_supply_fpregset (regcache, regnum, fpregs);
3007     ++}
3008     ++
3009     ++static void
3010     ++sparc64_linux_collect_core_fpregset (const struct regset *regset,
3011     ++ const struct regcache *regcache,
3012     ++ int regnum, void *fpregs, size_t len)
3013     ++{
3014     ++ sparc64_collect_fpregset (regcache, regnum, fpregs);
3015     ++}
3016     ++
3017     ++
3018     ++
3019     + static void
3020     + sparc64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
3021     + {
3022     + struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
3023     +
3024     ++ tdep->gregset = regset_alloc (gdbarch, sparc64_linux_supply_core_gregset,
3025     ++ sparc64_linux_collect_core_gregset);
3026     ++ tdep->sizeof_gregset = 288;
3027     ++
3028     ++ tdep->fpregset = regset_alloc (gdbarch, sparc64_linux_supply_core_fpregset,
3029     ++ sparc64_linux_collect_core_fpregset);
3030     ++ tdep->sizeof_fpregset = 280;
3031     ++
3032     + tramp_frame_prepend_unwinder (gdbarch, &sparc64_linux_rt_sigframe);
3033     +
3034     + sparc64_init_abi (info, gdbarch);
3035     --- gdb-6.4.orig/debian/patches/linux-nat-core-regset.patch
3036     +++ gdb-6.4/debian/patches/linux-nat-core-regset.patch
3037     @@ -0,0 +1,113 @@
3038     +--- gdb-6.4/gdb/Makefile.in.~1~ 2006-05-05 16:18:11.000000000 -0700
3039     ++++ gdb-6.4/gdb/Makefile.in 2006-05-05 16:19:26.000000000 -0700
3040     +@@ -2184,8 +2184,8 @@ linespec.o: linespec.c $(defs_h) $(symta
3041     + $(objc_lang_h) $(linespec_h) $(exceptions_h)
3042     + linux-nat.o: linux-nat.c $(defs_h) $(inferior_h) $(target_h) $(gdb_string_h) \
3043     + $(gdb_wait_h) $(gdb_assert_h) $(linux_nat_h) $(gdbthread_h) \
3044     +- $(gdbcmd_h) $(regcache_h) $(inf_ptrace.h) $(auxv.h) $(elf_bfd_h) \
3045     +- $(gregset_h) $(gdbcore_h) $(gdbthread_h) $(gdb_stat_h)
3046     ++ $(gdbcmd_h) $(regcache_h) $(regset_h) $(inf_ptrace.h) $(auxv.h) \
3047     ++ $(elf_bfd_h) $(gregset_h) $(gdbcore_h) $(gdbthread_h) $(gdb_stat_h)
3048     + linux-thread-db.o: linux-thread-db.c $(defs_h) $(gdb_assert_h) \
3049     + $(gdb_proc_service_h) $(gdb_thread_db_h) $(bfd_h) $(exceptions_h) \
3050     + $(gdbthread_h) $(inferior_h) $(symfile_h) $(objfiles_h) $(target_h) \
3051     +--- gdb-6.4/gdb/linux-nat.c.~1~ 2006-05-05 16:18:11.000000000 -0700
3052     ++++ gdb-6.4/gdb/linux-nat.c 2006-05-05 16:18:14.000000000 -0700
3053     +@@ -34,6 +34,7 @@
3054     + #include "gdbthread.h"
3055     + #include "gdbcmd.h"
3056     + #include "regcache.h"
3057     ++#include "regset.h"
3058     + #include "inf-ptrace.h"
3059     + #include "auxv.h"
3060     + #include <sys/param.h> /* for MAXPATHLEN */
3061     +@@ -2602,25 +2603,72 @@ linux_nat_do_thread_registers (bfd *obfd
3062     + gdb_fpxregset_t fpxregs;
3063     + #endif
3064     + unsigned long lwp = ptid_get_lwp (ptid);
3065     ++ struct gdbarch *gdbarch = current_gdbarch;
3066     ++ const struct regset *regset;
3067     ++ int core_regset_p, record_reg_p;
3068     ++
3069     ++ core_regset_p = gdbarch_regset_from_core_section_p (gdbarch);
3070     ++ record_reg_p = 1;
3071     ++ if (core_regset_p)
3072     ++ {
3073     ++ regset = gdbarch_regset_from_core_section (gdbarch, ".reg",
3074     ++ sizeof (gregs));
3075     ++ if (regset)
3076     ++ regset->collect_regset (regset, current_regcache, -1,
3077     ++ &gregs, sizeof (gregs));
3078     ++ else
3079     ++ record_reg_p = 0;
3080     ++ }
3081     ++ else
3082     ++ fill_gregset (&gregs, -1);
3083     ++
3084     ++ if (record_reg_p)
3085     ++ note_data = (char *) elfcore_write_prstatus (obfd,
3086     ++ note_data,
3087     ++ note_size,
3088     ++ lwp,
3089     ++ stop_signal, &gregs);
3090     ++
3091     ++ record_reg_p = 1;
3092     ++ if (core_regset_p)
3093     ++ {
3094     ++ regset = gdbarch_regset_from_core_section (gdbarch, ".reg2",
3095     ++ sizeof (fpregs));
3096     ++ if (regset)
3097     ++ regset->collect_regset (regset, current_regcache, -1,
3098     ++ &fpregs, sizeof (fpregs));
3099     ++ else
3100     ++ record_reg_p = 0;
3101     ++ }
3102     ++ else
3103     ++ fill_fpregset (&fpregs, -1);
3104     ++
3105     ++ if (record_reg_p)
3106     ++ note_data = (char *) elfcore_write_prfpreg (obfd,
3107     ++ note_data,
3108     ++ note_size,
3109     ++ &fpregs, sizeof (fpregs));
3110     +
3111     +- fill_gregset (&gregs, -1);
3112     +- note_data = (char *) elfcore_write_prstatus (obfd,
3113     +- note_data,
3114     +- note_size,
3115     +- lwp,
3116     +- stop_signal, &gregs);
3117     +-
3118     +- fill_fpregset (&fpregs, -1);
3119     +- note_data = (char *) elfcore_write_prfpreg (obfd,
3120     +- note_data,
3121     +- note_size,
3122     +- &fpregs, sizeof (fpregs));
3123     + #ifdef FILL_FPXREGSET
3124     +- fill_fpxregset (&fpxregs, -1);
3125     +- note_data = (char *) elfcore_write_prxfpreg (obfd,
3126     +- note_data,
3127     +- note_size,
3128     +- &fpxregs, sizeof (fpxregs));
3129     ++ record_reg_p = 1;
3130     ++ if (core_regset_p)
3131     ++ {
3132     ++ regset = gdbarch_regset_from_core_section (gdbarch, ".reg-xfp",
3133     ++ sizeof (fpxregs));
3134     ++ if (regset)
3135     ++ regset->collect_regset (regset, current_regcache, -1,
3136     ++ &fpxregs, sizeof (fpxregs));
3137     ++ else
3138     ++ record_reg_p = 0;
3139     ++ }
3140     ++ else
3141     ++ fill_fpxregset (&fpxregs, -1);
3142     ++
3143     ++ if (record_reg_p)
3144     ++ note_data = (char *) elfcore_write_prxfpreg (obfd,
3145     ++ note_data,
3146     ++ note_size,
3147     ++ &fpxregs, sizeof (fpxregs));
3148     + #endif
3149     + return note_data;
3150     + }
3151     --- gdb-6.4.orig/debian/patches/linux_nat_do_thread_registers.patch
3152     +++ gdb-6.4/debian/patches/linux_nat_do_thread_registers.patch
3153     @@ -0,0 +1,111 @@
3154     +2006-05-05 David S. Miller <davem@sunset.davemloft.net>
3155     +
3156     + * linux-nat.c (linux_nat_do_thread_registers): Check for
3157     + NULL collect_regset method.
3158     +
3159     +--- gdb-6.4/gdb/linux-nat.c.~1~ 2006-05-07 22:42:28.000000000 -0700
3160     ++++ gdb-6.4/gdb/linux-nat.c 2006-05-07 22:42:32.000000000 -0700
3161     +@@ -2605,70 +2605,52 @@
3162     + unsigned long lwp = ptid_get_lwp (ptid);
3163     + struct gdbarch *gdbarch = current_gdbarch;
3164     + const struct regset *regset;
3165     +- int core_regset_p, record_reg_p;
3166     ++ int core_regset_p;
3167     +
3168     + core_regset_p = gdbarch_regset_from_core_section_p (gdbarch);
3169     +- record_reg_p = 1;
3170     +- if (core_regset_p)
3171     +- {
3172     +- regset = gdbarch_regset_from_core_section (gdbarch, ".reg",
3173     +- sizeof (gregs));
3174     +- if (regset)
3175     +- regset->collect_regset (regset, current_regcache, -1,
3176     +- &gregs, sizeof (gregs));
3177     +- else
3178     +- record_reg_p = 0;
3179     +- }
3180     ++ if (core_regset_p
3181     ++ && (regset = gdbarch_regset_from_core_section (gdbarch, ".reg",
3182     ++ sizeof (gregs))) != NULL
3183     ++ && regset->collect_regset != NULL)
3184     ++ regset->collect_regset (regset, current_regcache, -1,
3185     ++ &gregs, sizeof (gregs));
3186     + else
3187     + fill_gregset (&gregs, -1);
3188     +
3189     +- if (record_reg_p)
3190     +- note_data = (char *) elfcore_write_prstatus (obfd,
3191     +- note_data,
3192     +- note_size,
3193     +- lwp,
3194     +- stop_signal, &gregs);
3195     +-
3196     +- record_reg_p = 1;
3197     +- if (core_regset_p)
3198     +- {
3199     +- regset = gdbarch_regset_from_core_section (gdbarch, ".reg2",
3200     +- sizeof (fpregs));
3201     +- if (regset)
3202     +- regset->collect_regset (regset, current_regcache, -1,
3203     +- &fpregs, sizeof (fpregs));
3204     +- else
3205     +- record_reg_p = 0;
3206     +- }
3207     ++ note_data = (char *) elfcore_write_prstatus (obfd,
3208     ++ note_data,
3209     ++ note_size,
3210     ++ lwp,
3211     ++ stop_signal, &gregs);
3212     ++
3213     ++ if (core_regset_p
3214     ++ && (regset = gdbarch_regset_from_core_section (gdbarch, ".reg2",
3215     ++ sizeof (fpregs))) != NULL
3216     ++ && regset->collect_regset != NULL)
3217     ++ regset->collect_regset (regset, current_regcache, -1,
3218     ++ &fpregs, sizeof (fpregs));
3219     + else
3220     + fill_fpregset (&fpregs, -1);
3221     +
3222     +- if (record_reg_p)
3223     +- note_data = (char *) elfcore_write_prfpreg (obfd,
3224     +- note_data,
3225     +- note_size,
3226     +- &fpregs, sizeof (fpregs));
3227     ++ note_data = (char *) elfcore_write_prfpreg (obfd,
3228     ++ note_data,
3229     ++ note_size,
3230     ++ &fpregs, sizeof (fpregs));
3231     +
3232     + #ifdef FILL_FPXREGSET
3233     +- record_reg_p = 1;
3234     +- if (core_regset_p)
3235     +- {
3236     +- regset = gdbarch_regset_from_core_section (gdbarch, ".reg-xfp",
3237     +- sizeof (fpxregs));
3238     +- if (regset)
3239     +- regset->collect_regset (regset, current_regcache, -1,
3240     +- &fpxregs, sizeof (fpxregs));
3241     +- else
3242     +- record_reg_p = 0;
3243     +- }
3244     ++ if (core_regset_p
3245     ++ && (regset = gdbarch_regset_from_core_section (gdbarch, ".reg-xfp",
3246     ++ sizeof (fpxregs))) != NULL
3247     ++ && regset->collect_regset != NULL)
3248     ++ regset->collect_regset (regset, current_regcache, -1,
3249     ++ &fpxregs, sizeof (fpxregs));
3250     + else
3251     + fill_fpxregset (&fpxregs, -1);
3252     +
3253     +- if (record_reg_p)
3254     +- note_data = (char *) elfcore_write_prxfpreg (obfd,
3255     +- note_data,
3256     +- note_size,
3257     +- &fpxregs, sizeof (fpxregs));
3258     ++ note_data = (char *) elfcore_write_prxfpreg (obfd,
3259     ++ note_data,
3260     ++ note_size,
3261     ++ &fpxregs, sizeof (fpxregs));
3262     + #endif
3263     + return note_data;
3264     + }
3265     --- gdb-6.4.orig/debian/gdb.menu
3266     +++ gdb-6.4/debian/gdb.menu
3267     @@ -0,0 +1,3 @@
3268     +?package(gdb):needs="text" title="GDB" section="Apps/Programming"\
3269     + hints="Debuggers" command="/usr/bin/gdb"
3270     +
3271     --- gdb-6.4.orig/debian/changelog
3272     +++ gdb-6.4/debian/changelog
3273     @@ -0,0 +1,887 @@
3274     +gdb (6.4-1ubuntu5) dapper; urgency=low
3275     +
3276     + Changes by David S. Miller:
3277     +
3278     + * Fix linux_nat regression introduced with the last upload.
3279     +
3280     + -- Fabio M. Di Nitto <fabbione@ubuntu.com> Tue, 09 May 2006 07:48:51 +0200
3281     +
3282     +gdb (6.4-1ubuntu4) dapper; urgency=low
3283     +
3284     + Changes by David S. Miller:
3285     +
3286     + * Fix core file generation on sparc.
3287     +
3288     + * sparc patches split and clean up as applied upstream.
3289     +
3290     + -- Fabio M. Di Nitto <fabbione@ubuntu.com> Sat, 06 May 2006 06:44:31 +0200
3291     +
3292     +gdb (6.4-1ubuntu3) dapper; urgency=low
3293     +
3294     + Changes by David S. Miller:
3295     +
3296     + * Fix signal frame handling on sparc and use dwarf2 frame unwinding on
3297     + sparc/linux:
3298     + - Add patch sparc-dwarf2-and-sigframe.patch.
3299     + - Update debian/patches/series.
3300     +
3301     + -- Fabio M. Di Nitto <fabbione@ubuntu.com> Thu, 06 Apr 2006 07:16:23 +0200
3302     +
3303     +gdb (6.4-1ubuntu2) dapper; urgency=low
3304     +
3305     + Changes by David S. Miller:
3306     +
3307     + * Fix sparc threads support:
3308     + - Add patch gdb-sparclinux-threads.patch.
3309     + - Update debian/patches/series.
3310     +
3311     + NOTE: the patch will work only with properly patched kernel.
3312     + The patch should be in 2.6.15-20 kernel serie.
3313     +
3314     + -- Fabio M. Di Nitto <fabbione@ubuntu.com> Sun, 02 Apr 2006 09:42:13 +0200
3315     +
3316     +gdb (6.4-1ubuntu1) dapper; urgency=low
3317     +
3318     + * merged with debian,
3319     + * debian/control, debian/rules: Remove type-handling.
3320     +
3321     + -- Michael Vogt <michael.vogt@ubuntu.com> Wed, 28 Dec 2005 11:19:23 +0100
3322     +
3323     +gdb (6.4-1) unstable; urgency=low
3324     +
3325     + * New upstream release.
3326     + * Reset core ulimit before running the testsuite (Closes: #342343).
3327     + * Ignore cancellation signal for NPTL by default (Closes: #324683).
3328     + * Include a description of the front cover texts, et cetera for the
3329     + manual in the copyright file (Closes: #321803).
3330     + * Set the default name of main to MAIN__ for Fortran programs
3331     + (Closes: #319520).
3332     + * Handle PowerPC PIC prologues a little better (Closes: #312059).
3333     + * Cope with attaching to threaded programs after the exit of a threaded
3334     + program (Closes: #303736).
3335     +
3336     + -- Daniel Jacobowitz <dan@debian.org> Sun, 11 Dec 2005 13:14:04 -0500
3337     +
3338     +gdb (6.3.90.20051119-1ubuntu1) dapper; urgency=low
3339     +
3340     + * debian/control, debian/rules: Remove type-handling.
3341     +
3342     + -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 21 Nov 2005 19:50:49 +0000
3343     +
3344     +gdb (6.3.90.20051119-1) unstable; urgency=low
3345     +
3346     + * New upstream snapshot (6.4 branch prerelease).
3347     + - Many Debian patches merged.
3348     + - Selected frame and C++ pass-by-reference patches updated.
3349     + - Fixes segfault when executing malformed TUI window commands
3350     + (Closes: #317317).
3351     + - Behaves more gracefully when the executable disappears, et cetera
3352     + (Closes: #293637, #323217, #332184).
3353     + - Handle vfork from threaded programs using NPTL (Closes: #320391).
3354     + * Do not rebuild bfd.info.
3355     + * Build depend on a version of debhelper which will put menu fils
3356     + in /usr/share.
3357     + * Don't build depend on gcj on the Hurd (Closes: #298088).
3358     + * Prevent unnecessary SIGTTOU when resolving pending breakpoints
3359     + (Closes: #306267).
3360     + * Enable the testsuite on amd64.
3361     + * Use libreadline5 instead of libreadline4 (Closes: #309538, #326358).
3362     + * Install gdb_gcore.sh as gcore (Closes: #328580).
3363     + * Add GPC support (Closes: #261330).
3364     +
3365     + -- Daniel Jacobowitz <dan@debian.org> Sun, 20 Nov 2005 13:40:44 -0500
3366     +
3367     +gdb (6.3-6) unstable; urgency=high
3368     +
3369     + * Do not crash on certain malformed input files [CAN-2005-1704]
3370     + (Closes: #308624, #310972).
3371     + * Do not load untrusted .gdbinit files [CAN-2005-1705] (Closes: #310728).
3372     +
3373     + -- Daniel Jacobowitz <dan@debian.org> Sun, 29 May 2005 18:55:44 -0400
3374     +
3375     +gdb (6.3-5) unstable; urgency=low
3376     +
3377     + * Fix NPTL debugging using gdbserver.
3378     + * Disable the "Incomplete CFI data" warning.
3379     + * Really include the menu file this time (Closes: #80010).
3380     + * Include a patch to handle strange binaries produced by Kylix
3381     + (Closes: #249008).
3382     + * Fix printing of fork status messages, and disable them by default
3383     + (Closes: #254039).
3384     +
3385     + -- Daniel Jacobowitz <dan@debian.org> Wed, 8 Dec 2004 18:35:02 -0500
3386     +
3387     +gdb (6.3-4) unstable; urgency=low
3388     +
3389     + * Backport a patch for a warning about the vsyscall DSO.
3390     + * Backport a spelling fix for PTRACE_EVENT_VFORK_DONE to fix S/390
3391     + build failure.
3392     +
3393     + -- Daniel Jacobowitz <dan@debian.org> Mon, 15 Nov 2004 11:52:13 -0500
3394     +
3395     +gdb (6.3-3) unstable; urgency=low
3396     +
3397     + * Add flex to build dependencies for ada-lex.l.
3398     +
3399     + -- Daniel Jacobowitz <dan@debian.org> Sun, 14 Nov 2004 00:28:18 -0500
3400     +
3401     +gdb (6.3-2) unstable; urgency=low
3402     +
3403     + * Backport a patch for a C++ / stabs debug info crash (Closes: #251322).
3404     + * Correct build dependency for gcj (missed a !).
3405     + * Correct build dependency for libunwind (it's libunwind7-dev now).
3406     + * Update fix for fork tracing. This removes a warning on 2.4 kernels,
3407     + and fixes UML debugging (Closes: #271069).
3408     + * Fix single-stepping through a call to NULL on SPARC (Closes: #256012).
3409     +
3410     + -- Daniel Jacobowitz <dan@debian.org> Sat, 13 Nov 2004 16:50:55 -0500
3411     +
3412     +gdb (6.3-1) unstable; urgency=low
3413     +
3414     + * New upstream release (Closes: #259219).
3415     + - Give an error for division by 0 (Closes: #280051).
3416     + - Includes support for -feliminate-dwarf2-dups.
3417     + - Limited support for Ada is included; more to come
3418     + (Closes: #39516, #46470, #57876, #85947).
3419     + * Update build dependency on texinfo; 4.7-1 could not build GDB.
3420     + * Build depend on gcj on all architectures other than mips and mipsel
3421     + (Closes: #272327).
3422     + * Build depend on libkvm-dev for kfreebsd-gnu (Closes: #264103).
3423     + * Add libunwind support on ia64 (Closes: #279596).
3424     + * Make the fork tracing checks more robust. Prevents stray processes
3425     + on 2.6.10-rc1.
3426     + * Add a Debian menu entry for GDB (Closes: #80010).
3427     +
3428     + -- Daniel Jacobowitz <dan@debian.org> Fri, 12 Nov 2004 18:45:46 -0500
3429     +
3430     +gdb (6.1-3) unstable; urgency=low
3431     +
3432     + * Fix passing and returning of non-trivial C++ objects (Closes: #160459).
3433     + * Update hppa patches (Closes: #247948).
3434     + * Add a patch for finding C++ member variables in base classes
3435     + (Closes: #239535).
3436     + * Replace versions of insight which contain gdbtui. Partial fix for
3437     + #242498.
3438     +
3439     + -- Daniel Jacobowitz <dan@debian.org> Thu, 27 May 2004 11:30:23 -0400
3440     +
3441     +gdb (6.1-2) unstable; urgency=low
3442     +
3443     + * Add an NPTL thread-exit patch. Short-lived threads could cause GDB
3444     + to leave unattached threads, which would crash as soon as they hit
3445     + a breakpoint.
3446     + * Testsuite patches - no unexpected FAILs on i386-linux.
3447     +
3448     + -- Daniel Jacobowitz <dan@debian.org> Mon, 19 Apr 2004 11:43:07 -0400
3449     +
3450     +gdb (6.1-1) unstable; urgency=low
3451     +
3452     + * New upstream version.
3453     + * Re-add the -debian suffix to GDB's version number. This got lost in the
3454     + transition to CDBS.
3455     + * Revised HPPA port. Thanks to Randolph Chung, as usual.
3456     + * Run the testsuite on SPARC again. The SPARC port is much improved
3457     + (it has been basically rewritten from scratch).
3458     +
3459     + -- Daniel Jacobowitz <dan@debian.org> Tue, 6 Apr 2004 00:13:00 -0400
3460     +
3461     +gdb (6.0-6) unstable; urgency=low
3462     +
3463     + * Also add DESTDIR to the ranlib invocation.
3464     + * Fix typo in moving run.1 manpage.
3465     + * Link linux-nat.o on HPPA.
3466     +
3467     + -- Daniel Jacobowitz <dan@debian.org> Tue, 3 Feb 2004 11:07:27 -0500
3468     +
3469     +gdb (6.0-5) unstable; urgency=low
3470     +
3471     + * Add DESTDIR support to sim/, to fix build failures on targets with a
3472     + simulator.
3473     +
3474     + -- Daniel Jacobowitz <dan@debian.org> Mon, 2 Feb 2004 15:32:23 -0500
3475     +
3476     +gdb (6.0-4) unstable; urgency=low
3477     +
3478     + * Switch to CDBS and quilt.
3479     + * Suppress warning about "<in-memory>" on re-run with a vsyscall DSO.
3480     + * Import gdb 6.0 CVS branch; fixes a segfault with development GCC
3481     + and frequent segfaults when rereading changed binaries
3482     + (Closes: #230550).
3483     +
3484     + -- Daniel Jacobowitz <dan@debian.org> Mon, 2 Feb 2004 10:03:19 -0500
3485     +
3486     +gdb (6.0-3) unstable; urgency=low
3487     +
3488     + * Include <asm/offsets.h> instead of <asm/offset.h> on HPPA
3489     + (Closes: #208928).
3490     + * Support backtraces through the vsyscall DSO on i386.
3491     + * Do not run testsuite on hurd-i386 (Closes: #221956).
3492     + * Fix up texinfo files so that dh_installinfo puts them in the right
3493     + section.
3494     + * Update build dependency on texinfo (Closes: #219337).
3495     +
3496     + -- Daniel Jacobowitz <dan@debian.org> Sun, 25 Jan 2004 18:04:24 -0500
3497     +
3498     +gdb (6.0-2) unstable; urgency=low
3499     +
3500     + * Add build dependency on mig for hurd-i386 (Closes: #216428).
3501     + * Don't paginate symbol file progress messages. In combination
3502     + with recent changes to dwarf2-frame.c this fixes some potential
3503     + internal errors (Closes: #199889).
3504     + - 28.symfile-unfiltered.patch
3505     +
3506     + -- Daniel Jacobowitz <dan@debian.org> Mon, 27 Oct 2003 23:32:39 -0500
3507     +
3508     +gdb (6.0-1) unstable; urgency=low
3509     +
3510     + * New upstream release
3511     + - 11.read-var-value.patch merged upstream.
3512     + - 12.dwarf-loc-register.patch merged upstream.
3513     + - -data-list-changed-registers no longer segfaults (Closes: #204561).
3514     + * Include the text of the GFDL in the copyright file (Closes: #212890).
3515     + * Include a threading patch which may fix #212949.
3516     + - 26.lin-lwp-assert.patch
3517     + * Include a patch which should improve Control-C handling for LinuxThreads
3518     + on 2.6 kernels.
3519     + - 27.lin-lwp-2.6.patch
3520     +
3521     + -- Daniel Jacobowitz <dan@debian.org> Sat, 4 Oct 2003 17:47:35 -0400
3522     +
3523     +gdb (5.3.20030824-1) unstable; urgency=low
3524     +
3525     + * New upstream CVS snapshot, from the GDB 6.0 branch.
3526     + - 27.tui-paginate-backtrace.patch merged upstream.
3527     + - 28.minsym-section.patch merged upstream.
3528     + - Watchpoint handling bug for ia64 fixed (Closes: #205241).
3529     + * Squash some warnings for HPPA.
3530     +
3531     + -- Daniel Jacobowitz <dan@debian.org> Sun, 24 Aug 2003 14:26:52 -0400
3532     +
3533     +gdb (5.3.20030801-1) unstable; urgency=low
3534     +
3535     + * New upstream CVS snapshot, from the GDB 6.0 branch.
3536     + - 26.fix-sparc-build-two.patch merged upstream.
3537     + - Includes a fix for backtracing from noreturn functions like abort ().
3538     + - Insert a space between the address and code when disassembling,
3539     + even if we don't have a function name (Closes: #199672).
3540     + * Update HPPA patch again; is anyone ever going to submit this
3541     + upstream? Better do it soon. (Closes: #200980).
3542     + * Make filtered output paginate correctly again.
3543     + - 27.tui-paginate-backtrace.patch
3544     + * Fix an internal error on -data-list-changed-registers, and possibly
3545     + many others (Closes: #203553).
3546     + - 10.selected-frame.patch
3547     + * Add two patches for watchpoints in optimized programs (Closes: #203000).
3548     + - 11.read-var-value.patch
3549     + - 12.dwarf-loc-register.patch
3550     + * Add a patch for several shared library single-stepping bugs.
3551     + - 28.minsym-section.patch
3552     +
3553     + -- Daniel Jacobowitz <dan@debian.org> Sun, 3 Aug 2003 23:09:56 -0400
3554     +
3555     +gdb (5.3.20030629-2) unstable; urgency=low
3556     +
3557     + * Yet another sparc build fix.
3558     + - 26.fix-sparc-build-two.patch
3559     +
3560     + -- Daniel Jacobowitz <dan@debian.org> Sun, 29 Jun 2003 17:11:12 -0400
3561     +
3562     +gdb (5.3.20030629-1) unstable; urgency=low
3563     +
3564     + * New upstream CVS snapshot, from the GDB 6.0 branch.
3565     + - Remote debugging isn't totally broken any more.
3566     + * Remove merge or obsoleted patches.
3567     + - Parts of 23.static-thread-apps.patch
3568     + - 26.fix-tui-build.patch
3569     + - 27.fix-sparc-build-two.patch
3570     + - 28.dwarf2-reread-segv.patch
3571     +
3572     + -- Daniel Jacobowitz <dan@debian.org> Sat, 28 Jun 2003 21:17:13 -0400
3573     +
3574     +gdb (5.3.20030606-3) unstable; urgency=low
3575     +
3576     + * Fix build failure on HPPA.
3577     + * Fix a segfault when reread applications (Closes: #197226).
3578     + - 28.dwarf2-reread-segv.patch
3579     +
3580     + -- Daniel Jacobowitz <dan@debian.org> Sun, 22 Jun 2003 14:30:49 -0400
3581     +
3582     +gdb (5.3.20030606-2) unstable; urgency=low
3583     +
3584     + * Add 27.fix-sparc-build-two.patch to fix build failure on sparc.
3585     + * Disable the testsuite on sparc, since it's completely broken.
3586     + * Conditionalize gcj build dependency for architectures which both
3587     + have gcj and run the testsuite.
3588     +
3589     + -- Daniel Jacobowitz <dan@debian.org> Sat, 14 Jun 2003 12:30:33 -0400
3590     +
3591     +gdb (5.3.20030606-1) unstable; urgency=low
3592     +
3593     + * New upstream snapshot, with lots of nice features.
3594     + - Improved prologue analyzer and DWARF-2 frame unwind support for i386.
3595     + - Overhauled Alpha support.
3596     + - More C++ namespace support (still not complete).
3597     + - DW_AT_ranges support - if you've noticed local variables in your code
3598     + being missing in GDB, this is the most likely cause.
3599     + - Integrated Objective C support, finally! It's got some rough edges
3600     + but it works (Closes: #62081, #24598, #57824, #86506).
3601     + - "set cp-abi" command for debugging combined v2 and v3 C++ code.
3602     + - Some bug fixes in the parsing for gdb --args (Closes: #33361, #193413).
3603     + - Support for debug info in separate files, coming soon to a Debian
3604     + near you.
3605     + * Removed integrated or obsoleted patches:
3606     + - 01.const-tilde_expand.patch
3607     + - 05.i386-backtrace-to-main.patch
3608     + - 08.max-ui-out.patch
3609     + - 12.tui-readline.patch
3610     + - 15.m68k-build.patch
3611     + - 16.use-rl-prefixed-function.patch
3612     + - 19.alpha-doublest-correction.patch
3613     + - 21.lin-lwp-schedlock.patch
3614     + * Disabled some patches which I hope are no longer needed:
3615     + - 06.java-testsuite-jmisc.patch
3616     + - 11.thread-confused-exit.patch
3617     + - 20.alpha-testsuite.patch
3618     + - 22.alpha-proc-desc-stack.patch
3619     + * Updated HPPA patches for this snapshot.
3620     + - 02.gdb-hppa.patch
3621     + - 03.hppa-core.patch
3622     + - 04.hppa-func-returns.patch
3623     + * Add some build fixes for TUI.
3624     + - 26.fix-tui-build.patch
3625     + * Build with an absolute path to configure, to work around three failing
3626     + MI tests.
3627     + * Don't bother running the testsuite for two debug formats any more.
3628     + * Add build-dependencies for gcj and gobjc, for the testsuite.
3629     + * Adjust configure --mandir argument to match more stupid quoting.
3630     + * Re-enable thread testsuite on Alpha.
3631     + * Enable the testsuite on ia64, hppa, and s390.
3632     +
3633     + -- Daniel Jacobowitz <dan@debian.org> Sun, 8 Jun 2003 20:15:55 -0400
3634     +
3635     +gdb (5.3-2) unstable; urgency=low
3636     +
3637     + * Fix build on SPARC.
3638     + * Fix buid on HPPA.
3639     +
3640     + -- Daniel Jacobowitz <dan@debian.org> Sat, 4 Jan 2003 01:02:36 -0500
3641     +
3642     +gdb (5.3-1) unstable; urgency=low
3643     +
3644     + * New upstream release.
3645     + * Patches updated for new release.
3646     + - Patch 14.gdb-maint-its-typo.patch included.
3647     + - Patch 17.tui-fixes.patch included.
3648     + - Patch 18.threads-much-faster.patch included.
3649     +
3650     + -- Daniel Jacobowitz <dan@debian.org> Mon, 16 Dec 2002 14:43:03 -0500
3651     +
3652     +gdb (5.2.debian90.cvs20021120-4) unstable; urgency=low
3653     +
3654     + * Fix thread debugging for statically linked applications
3655     + (Closes: #170107).
3656     + * Prevent a segfault when entering tracepoint actions if you hit EOF
3657     + (Closes: #167997).
3658     +
3659     + -- Daniel Jacobowitz <dan@debian.org> Tue, 3 Dec 2002 14:46:07 -0500
3660     +
3661     +gdb (5.2.debian90.cvs20021120-3) unstable; urgency=low
3662     +
3663     + * Add another Alpha patch for setting breakpoints after the process exits.
3664     + * Disable running the thread tests on Alpha (ew). It hangs the build
3665     + daemon; the problem appears to be in glibc. It returns nonexistant
3666     + and duplicate threads.
3667     +
3668     + -- Daniel Jacobowitz <dan@debian.org> Sun, 24 Nov 2002 23:16:36 -0500
3669     +
3670     +gdb (5.2.debian90.cvs20021120-2) unstable; urgency=low
3671     +
3672     + * Add patch for testsuite false failures on Alpha.
3673     + * Add patch for floating point support on Alpha.
3674     + * Add a patch from the CVS HEAD for schedule-lock mode and for software
3675     + single step platforms.
3676     + * Correct the testsuite to match "help maint dump-me".
3677     +
3678     + -- Daniel Jacobowitz <dan@debian.org> Sun, 24 Nov 2002 18:11:26 -0500
3679     +
3680     +gdb (5.2.debian90.cvs20021120-1) unstable; urgency=low
3681     +
3682     + * New upstream CVS snapshot from 5.3 CVS branch.
3683     + - Builds with new bison (Closes: #169656).
3684     + - Fixes crashes without SSE support or when loading core files without
3685     + applications.
3686     + - TUI no longer crashes if there is no debugging information for main
3687     + (Closes: #141491).
3688     + - GDB no longer crashes on "info win" if there are no windows
3689     + (Closes: #158186).
3690     + - Setting some C++ breakpoints works the first time instead of having
3691     + to do it twice (Closes: #110684).
3692     + * Patches updated for new release.
3693     + - Patch 07.manual-vector.dpatch included in CVS.
3694     + - Patch 09.mips-linux-buildfixes-aug02.patch included in CVS.
3695     + - Patch 10.no-readline-docs.patch removed - we still use readline,
3696     + I believe that leaving it as an appendix to the GDB manual is
3697     + appropriate.
3698     + - Patch 12.tui-readline.patch updated.
3699     + - Patch 17.tui-fixes.patch added to fix a TUI problem with -i=mi.
3700     + * Remove useless --enable-shared.
3701     + * Fix a typo in "help maint dump-me" (Closes: #168495).
3702     + * Add a patch to fix build on m68k, from Michael Fedrowitz
3703     + <michaelf@debian.org> (Closes: #163543).
3704     + * Added a patch to call rl_filename_completion_function instead of
3705     + filename_completion_function, from Matt Chapman
3706     + <matthewc@cse.unsw.edu.au> (Closes: #165366).
3707     + * Tag GDB version with "-debian" because we apply patches.
3708     + * Add a patch which makes debugging threaded applications drastically
3709     + (5x - 10x) faster. Whee!
3710     +
3711     + -- Daniel Jacobowitz <dan@debian.org> Fri, 22 Nov 2002 17:30:26 -0500
3712     +
3713     +gdb (5.2.cvs20020818-3) unstable; urgency=low
3714     +
3715     + * HPPA fix from Randolph Chung (Closes: #158055).
3716     +
3717     + -- Daniel Jacobowitz <dan@debian.org> Sun, 25 Aug 2002 00:37:34 -0400
3718     +
3719     +gdb (5.2.cvs20020818-2) unstable; urgency=low
3720     +
3721     + * MIPS and MIPSel build fixes.
3722     + * Apply and remove patches in numbered order.
3723     + * HPPA build fixes.
3724     +
3725     + -- Daniel Jacobowitz <dan@debian.org> Mon, 19 Aug 2002 10:49:40 -0400
3726     +
3727     +gdb (5.2.cvs20020818-1) unstable; urgency=low
3728     +
3729     + * New upstream CVS snapshot.
3730     + - Don't include <termio.h> in TUI (Closes: #145040).
3731     + - Don't use libthread_db with core files (Closes: #133778).
3732     + * Recompile against current readline package (Closes: #153972).
3733     + * Reduce some thread-db errors to warnings
3734     + (Closes: #123675, #126614, #134693).
3735     + * Bump MAX_UI_OUT_LEVELS for the Hurd (Closes: #145630).
3736     + * Include patch from Richard Hirst to improve function return printing
3737     + on HPPA. It looks like there's finally a little progress on getting
3738     + the HPPA code in upstream... (Closes: #148672).
3739     + * Mention Peter Jay Salzman's GDB tutorial in the documentation
3740     + (Closes: #151128).
3741     +
3742     + -- Daniel Jacobowitz <dan@debian.org> Sun, 18 Aug 2002 23:09:46 -0400
3743     +
3744     +gdb (5.2.cvs20020401-6) unstable; urgency=medium
3745     +
3746     + * More HPPA build fixes - I forgot linux-proc.o again
3747     + (Closes: #143707).
3748     + * Add support for HPPA core files, patch from Randolph Chung
3749     + (Closes: #137316).
3750     +
3751     + -- Daniel Jacobowitz <dan@debian.org> Sun, 21 Apr 2002 10:29:40 -0400
3752     +
3753     +gdb (5.2.cvs20020401-5) unstable; urgency=low
3754     +
3755     + * More HPPA build fixes.
3756     +
3757     + -- Daniel Jacobowitz <dan@debian.org> Fri, 19 Apr 2002 12:43:56 -0400
3758     +
3759     +gdb (5.2.cvs20020401-4) unstable; urgency=medium
3760     +
3761     + * Add linux-proc.o to NATDEPFILES for S/390; should fix S/390 build.
3762     + * Change `value_ptr' to `struct value *' in HPPA patch. Should fix
3763     + HPPA build in combination with libc6 2.2.5-4.0.2.
3764     +
3765     + -- Daniel Jacobowitz <dan@debian.org> Wed, 17 Apr 2002 00:43:32 -0400
3766     +
3767     +gdb (5.2.cvs20020401-3) unstable; urgency=low
3768     +
3769     + * Add a patch to fix initialization on non-multi-arch targets
3770     + (particularly Alpha and Sparc).
3771     + * Enable testsuite on Alpha and Sparc.
3772     +
3773     + -- Daniel Jacobowitz <dan@debian.org> Thu, 4 Apr 2002 21:49:24 -0500
3774     +
3775     +gdb (5.2.cvs20020401-2) unstable; urgency=low
3776     +
3777     + * My apologies to all you autobuilders out there. Results were worse than
3778     + I feared. Testsuite is now run only on PowerPC and i386 until I can
3779     + clean up the results everywhere else.
3780     +
3781     + -- Daniel Jacobowitz <dan@debian.org> Wed, 3 Apr 2002 17:24:17 -0500
3782     +
3783     +gdb (5.2.cvs20020401-1) unstable; urgency=low
3784     +
3785     + * The "Ahhhhhhhhhhhhhhhhhh!" Release.
3786     + * New snapshot from CVS (post-5.2) (yes, I know 5.2 isn't out yet).
3787     + - Fixes crash on printing large types
3788     + (Closes: #111017, #130592, #131033).
3789     + - In one upstream patch and one pending patch, greatly improve
3790     + debugging with GCC 2.95. If you've ever breakpointed the
3791     + beginning of a function and been frustrated when arguments
3792     + printed incorrectly, this release is for you! It should fix most
3793     + occurances of that problem.
3794     + * Patches from J.H.M. Dassen to use system readline. Slightly tweaked.
3795     + - [debian/rules] Build the refcard; figure out patches automatically.
3796     + - [debian/use-dynamic-readline.patch] Link against dynamic readline again.
3797     + - [debian/no-readline-docs.patch] Remove readline documentation.
3798     + - [debian/const-tilde_expand.patch] Bring extern declaration of tilde_expand
3799     + in sync with current readline headers.
3800     + - [debian/rules] Ensure we don't build against the local readline copy by
3801     + mistake; remove generated config.status files.
3802     + * Include gdbserver if it is built.
3803     + * Include a version of GDB with the TUI interface enabled
3804     + (Closes: #137503).
3805     + * Run 'make check' during build, for stabs and DWARF-2.
3806     + * Add --disable-gdbtk (Closes: #115429).
3807     + * Add a patch to prevent a hang while running the Java testsuite if
3808     + gcj-3.0 is installed.
3809     + * Include simulator in the binary package if one is built (PPC, ARM,
3810     + MIPS) (Closes: #123185).
3811     +
3812     + -- Daniel Jacobowitz <dan@debian.org> Mon, 1 Apr 2002 17:17:30 -0500
3813     +
3814     +gdb (5.1.1-1) unstable; urgency=low
3815     +
3816     + * New upstream release (Closes: #132314).
3817     + - Corrected manual licenses (Closes: #129311).
3818     + * Apply HPPA patch (Closes: #127301).
3819     + * Add <stdbool.h> patch to fix conflict with new ncurses.
3820     +
3821     + -- Daniel Jacobowitz <dan@debian.org> Wed, 13 Feb 2002 16:39:32 -0500
3822     +
3823     +gdb (5.1-1) unstable; urgency=low
3824     +
3825     + * New upstream release.
3826     + * All patches merged upstream, including (hopefully) everything needed
3827     + for S/390.
3828     +
3829     + -- Daniel Jacobowitz <dan@debian.org> Fri, 7 Dec 2001 13:04:15 -0500
3830     +
3831     +gdb (5.0.cvs20011007-3) unstable; urgency=low
3832     +
3833     + * Add ARM patch (committed to upstream CVS).
3834     +
3835     + -- Daniel Jacobowitz <dan@debian.org> Wed, 31 Oct 2001 10:59:21 -0500
3836     +
3837     +gdb (5.0.cvs20011007-2) unstable; urgency=low
3838     +
3839     + * Updated S/390 patch from Gerhard Tonn.
3840     +
3841     + -- Daniel Jacobowitz <dan@debian.org> Mon, 8 Oct 2001 13:55:06 -0400
3842     +
3843     +gdb (5.0.cvs20011007-1) unstable; urgency=low
3844     +
3845     + * New upstream release.
3846     + * Remove obsolete patches (gdb-docs, gdb-ppc-core).
3847     + * Add S/390 support patch.
3848     + * Configure for $(DEB_HOST_GNU_TYPE) (Closes: #109715).
3849     +
3850     + -- Daniel Jacobowitz <dan@debian.org> Sun, 7 Oct 2001 14:06:20 -0400
3851     +
3852     +gdb (5.0.cvs20010729-2) unstable; urgency=low
3853     +
3854     + * Fix m68k build. Again. (Closes: #107807).
3855     +
3856     + -- Daniel Jacobowitz <dan@debian.org> Sat, 25 Aug 2001 15:32:16 -0700
3857     +
3858     +gdb (5.0.cvs20010729-1) unstable; urgency=low
3859     +
3860     + * Call dh_installinfo from rules file (Closes: #107119).
3861     + * Put info files in "Development" to match other Debian development tools.
3862     + * Fix malformed gdbint.info file.
3863     + * Use DH_COMPAT=3 to make dh_installinfo work better with wildcards,
3864     + and bump debhelper build dependency.
3865     + * Update to 5.1 release branch (Closes: #103992).
3866     + * Fix PowerPC core files (Re: bug #107072).
3867     + * Fix up patch handling in rules file a little bit.
3868     +
3869     + -- Daniel Jacobowitz <dan@debian.org> Mon, 30 Jul 2001 13:48:27 -0700
3870     +
3871     +gdb (5.0.cvs20010704-1) unstable; urgency=low
3872     +
3873     + * The "Independence Day" release - CVS snapshot from July 4th.
3874     + * New maintainer.
3875     + * Update build-depends (Closes: #96835, #96897).
3876     + * New version includes thread support - for some platforms. I'm not going
3877     + to close the related bugs until I've verified it on a few more targets.
3878     + * Debhelperize (Closes: #97715, #97593).
3879     + * Add Replaces: gdb-arm for upgrades (Closes: #79992).
3880     +
3881     + -- Daniel Jacobowitz <dan@debian.org> Thu, 5 Jul 2001 12:46:06 -0700
3882     +
3883     +gdb (5.0-4) unstable; urgency=low
3884     +
3885     + * Made almost lintian clean:
3886     + - added Section: and Priority: fields in gdb binary package
3887     + - info files are now installed in /usr/share/info
3888     + - binaries get now stripped
3889     + - debian/copyright now refers to '/usr/share/common-licenses' for
3890     + full GPL license text
3891     + (patch by Domenico Andreoli <cavok@debian.org>)
3892     + * added texinfo & tetex-bin to the build-dependencies.
3893     +
3894     + -- Vincent Renardias <vincent@debian.org> Sun, 6 May 2001 21:19:16 +0200
3895     +
3896     +gdb (5.0-3) unstable; urgency=low
3897     +
3898     + * Include upstream README & NEWS files.
3899     + closes: #37978 gdb documentation.
3900     + * s|usr/doc|usr/share/doc|g.
3901     + closes: #69272: gdb: docs should be in /usr/share/doc according policy.
3902     + * Fix description.
3903     +
3904     + -- Vincent Renardias <vincent@debian.org> Wed, 16 Aug 2000 21:58:45 +0200
3905     +
3906     +gdb (5.0-2) unstable; urgency=low
3907     +
3908     + * Include patch to get it to work on m68k.
3909     + closes: #69185: gdb doesn't build on m68k.
3910     +
3911     + -- Vincent Renardias <vincent@debian.org> Wed, 16 Aug 2000 19:33:16 +0200
3912     +
3913     +gdb (5.0-1) unstable; urgency=low
3914     +
3915     + * New upstream code.
3916     + (Foreign patches not re-applied for now. Will see if they
3917     + are necessary)
3918     + closes: #66221 New major upstream version (5.0) out.
3919     + closes: #63337 gdb: Recompilation with libncurse5 needed.
3920     + closes: #58450 gdb: Won't compile on PowerPC.
3921     + closes: #54738 gdb does not compile on i386 under current glibc.
3922     +
3923     + -- Vincent Renardias <vincent@debian.org> Sun, 13 Aug 2000 01:27:40 +0200
3924     +
3925     +gdb (4.18.19990928-1) unstable; urgency=low
3926     +
3927     + * New upstream code.
3928     + Fixes some problems related to the C++ code:
3929     + closes: #46125: gdb seg faults calling C++ functions.
3930     + closes: #46195: gdb is broken for C++
3931     + closes: #43955: gdb can't resolve virtual methods with new g++
3932     + closes: #36341: gdb: Gives a parse error when casting an expression
3933     + * Include patch from David N. Welton <davidw@linuxcare.com>:
3934     + closes: #45308: gdb: Patch for gdb debian/rules
3935     + * ACK NMU:
3936     + closes: #39661: gdb is broken on ppc arch.
3937     + * Now compiles on non-i386 archs:
3938     + closes: #32267
3939     + * Updated my email address.
3940     +
3941     + -- Vincent Renardias <vincent@debian.org> Wed, 29 Sep 1999 17:39:17 +0200
3942     +
3943     +gdb (4.18-1.1) unstable; urgency=low
3944     +
3945     + * Applied some ppc patch i got from the linuxppc gdb.
3946     +
3947     + -- Sven LUTHER <luther@debian.org> Mon, 14 Jun 1999 19:54:49 +0200
3948     +
3949     +gdb (4.18-1) unstable; urgency=low
3950     +
3951     + * New upstream version!
3952     +
3953     + -- Vincent Renardias <vincent@waw.com> Thu, 22 Apr 1999 17:35:41 +0200
3954     +
3955     +gdb (4.17.19981224-3.m68k.objc.threads.hwwp.fpu.gnat) unstable; urgency=low
3956     +
3957     + * Upgrade to new code.
3958     + * Apply HJL's 4.17.0.4 -> 4.17.0.8 patch.
3959     + * Fix #30463.
3960     +
3961     + -- Vincent Renardias <vincent@waw.com> Mon, 18 Jan 1999 23:38:36 +0100
3962     +
3963     +gdb (4.17-4.m68k.objc.threads.hwwp.fpu.gnat.3) frozen unstable; urgency=low
3964     +
3965     + * Non-maintainer upload.
3966     + * Apply threads patch (dynamically) only if building on i386; the patch
3967     + works currently only correct on i386 and breaks compilation at least
3968     + on m68k and sparc.
3969     +
3970     + -- Roman Hodek <Roman.Hodek@informatik.uni-erlangen.de> Fri, 11 Dec 1998 13:56:00 +0100
3971     +
3972     +gdb (4.17-4.m68k.objc.threads.hwwp.fpu.gnat.2) unstable; urgency=low
3973     +
3974     + * Non-maintainer upload.
3975     + * debian/rules (checkroot): use tab not spaces, thanks to Roman Hodek
3976     + <Roman.Hodek@informatik.uni-erlangen.de>. [#26798]
3977     +
3978     + -- James Troup <james@nocrew.org> Tue, 20 Oct 1998 02:41:26 +0100
3979     +
3980     +gdb (4.17-4.m68k.objc.threads.hwwp.fpu.gnat.1) unstable; urgency=low
3981     +
3982     + * NMU with yet more hideous revision.
3983     + * PowerPC support via Matt McLean.
3984     + * Clean up corrupted m68k files a little bit - move config/m68k/* to
3985     + gdb/config/m68k/* and remove literal ^L's.
3986     +
3987     + -- Daniel Jacobowitz <dan@debian.org> Fri, 11 Sep 1998 22:40:22 -0400
3988     +
3989     +gdb (4.17-4.m68k.objc.threads.hwwp.fpu.gnat) unstable; urgency=low
3990     +
3991     + * Apply yet another patch to improve Objective-C support (Fix #24599).
3992     +
3993     + -- Vincent Renardias <vincent@waw.com> Wed, 15 Jul 1998 12:34:47 +0200
3994     +
3995     +gdb (4.17-3.m68k.objc.threads.hwwp.fpu.gnat) unstable; urgency=low
3996     +
3997     + * re-integrated gnat support.
3998     + (Was repported as a bug against 4.16, patch had been integrated then,
3999     + but dropped while switching to version 4.17).
4000     + (NB: Not being an ADA expert, I'd appreciate if s/o could confirm
4001     + it now works properly, thanx)
4002     +
4003     + -- Vincent Renardias <vincent@waw.com> Fri, 3 Jul 1998 18:46:28 +0200
4004     +
4005     +gdb (4.17-2.m68k.objc.threads.hwwp.fpu) unstable; urgency=low
4006     +
4007     + * Include patch to support debugging of multithreaded programs
4008     + (Bug #23823)
4009     + Note: Needs a patch to libc6 to work (submitted as #24213).
4010     + * Include JH Lu patch to have hardware watchpoint and FPU support
4011     + (Fix bug #660!! (40 months old!!!) & bug #16435)
4012     + * Bug #8861 also appears to be fixed... Isn't that great? :)
4013     + * Now provide the reference card (Bug #20772).
4014     +
4015     + -- Vincent Renardias <vincent@waw.com> Fri, 3 Jul 1998 18:46:28 +0200
4016     +
4017     +gdb (4.17-1) unstable; urgency=low
4018     +
4019     + * Fix #22555 (enable building on sparc)
4020     + * Fix #21932 (acknowledge NMU)
4021     +
4022     + -- Vincent Renardias <vincent@waw.com> Mon, 18 May 1998 17:56:10 +0200
4023     +
4024     +gdb (4.17-0.1) frozen unstable; urgency=low
4025     +
4026     + * New upstream release (differences with upstream 4.16.98 are negligable).
4027     + * Non-maintainer upload.
4028     + * Disabled linking -rpath:
4029     + * bfd/configure.in, opcodes/configure.in: applied libtool-rpath-workaround
4030     + * gdb/configure.in, gdb/configure: don't use -rpath on Linux.
4031     + * regenerate "configure" scripts involved.
4032     +
4033     + -- J.H.M. Dassen (Ray) <jdassen@wi.LeidenUniv.nl> Thu, 30 Apr 1998 19:47:34 +0200
4034     +
4035     +gdb (4.16.98-1) frozen unstable; urgency=low
4036     +
4037     + * New upstream code. Only change relevant on Linux: Patch by
4038     + H.J. Lu so debugging of shared library works properly (That was
4039     + the important patch motivating this upload).
4040     + This release _is_ supposed to be the final gdb-4.17 (from the announce:
4041     + 'I wanted to make a "this is the release unless something is
4042     + very wrong" release and then kick 4.17 out').
4043     +
4044     + -- Vincent Renardias <vincent@waw.com> Thu, 23 Apr 1998 20:44:36 +0200
4045     +
4046     +gdb (4.16.86-1) unstable; urgency=low
4047     +
4048     + * New upstream code. (still unreleased).
4049     + * Re-added the m68k stuff that didn't make it upstream (Bug #19539, #19635).
4050     + * Re-added the Objective-C stuff (Bug #19630)
4051     +
4052     + -- Vincent Renardias <vincent@waw.com> Sat, 14 Mar 1998 23:40:06 +0100
4053     +
4054     +gdb (4.16.85-2) unstable; urgency=low
4055     +
4056     + * debian/rules: Also remove gdb/doc/GDBvn.texi and config.log when cleaning up.
4057     + * The following has been done by <jdassen@wi.LeidenUniv.nl>:
4058     + * TODO: this version of gdb uses an evil new version of libtool which
4059     + forces -rpath. With lesstif, I got around this by replacing the libtool
4060     + scripts with those from the Debian libtool package.
4061     + * Use dynamic readline library.
4062     + * Install with preserved timestamps.
4063     + * Clean out .tab.c files missed by "make distclean", so the .diff.gz is
4064     + smaller.
4065     + * Clean out symlinks, so dpkg-source works after debian/rules build clean.
4066     + * Several other minor clean-ups of the rules file.
4067     + * Updated FSF address (lintian).
4068     + * Bumped Standards-Version.
4069     +
4070     + -- Vincent Renardias <vincent@waw.com> Fri, 6 Mar 1998 20:49:54 +0100
4071     +
4072     +gdb (4.16.85-1) unstable; urgency=low
4073     +
4074     + * New upstream code (Although not released yet).
4075     +
4076     + -- Vincent Renardias <vincent@waw.com> Thu, 5 Mar 1998 20:19:14 +0100
4077     +
4078     +gdb (4.16-12) unstable; urgency=low
4079     +
4080     + * Applied alpha patches (#11841).
4081     +
4082     + -- Vincent Renardias <vincent@waw.com> Mon, 4 Aug 1997 22:28:54 +0200
4083     +
4084     +gdb (4.16-11) unstable; urgency=low
4085     +
4086     + * Included patch to fix bugs (#11552,#11324).
4087     +
4088     + -- Vincent Renardias <vincent@waw.com> Wed, 30 Jul 1997 20:40:01 +0200
4089     +
4090     +gdb (4.16-10) unstable; urgency=low
4091     +
4092     + * Fixed #11136 (support for Ada;
4093     + Thanx to Marc Eichin for pointing this patch).
4094     +
4095     + -- Vincent Renardias <vincent@waw.com> Thu, 10 Jul 1997 19:38:07 +0200
4096     +
4097     +gdb (4.16-9) unstable; urgency=low
4098     +
4099     + * Fixed #11037 (compilation on m68k).
4100     +
4101     + -- Vincent Renardias <vincent@waw.com> Sat, 5 Jul 1997 16:14:39 +0200
4102     +
4103     +gdb (4.16-8) unstable; urgency=low
4104     +
4105     + * Compiled with libc6/ncurses3.4/libreadline2.1.
4106     + * Fixed #9654 (cosmetic fix).
4107     + * Updated debian/control file (now supports Objective-C).
4108     +
4109     + -- Vincent Renardias <vincent@waw.com> Sat, 21 Jun 1997 15:15:13 +0200
4110     +
4111     +gdb (4.16-7) unstable; urgency=low
4112     +
4113     + * Fixed typo. in documentation (Fixes bug #5477).
4114     +
4115     + -- Vincent Renardias <vincent@waw.com> Mon, 7 Apr 1997 16:35:53 +0200
4116     +
4117     +gdb (4.16-6) unstable; urgency=low
4118     +
4119     + * Corrected texinfo documentation (Fixes bug #3823).
4120     + * Added upstream ChangeLog file.
4121     +
4122     + -- Vincent Renardias <vincent@waw.com> Sun, 16 Mar 1997 18:32:23 +0100
4123     +
4124     +gdb (4.16-5) unstable; urgency=low
4125     +
4126     + * Included patch for glibc-2.0 support.
4127     +
4128     + -- Vincent Renardias <vincent@waw.com> Sun, 16 Mar 1997 07:46:29 +0100
4129     +
4130     +gdb (4.16-4) unstable; urgency=low
4131     +
4132     + * Included patch for Objective-C support (Fixes bug #7063).
4133     +
4134     + -- Vincent Renardias <vincent@waw.com> Sun, 16 Mar 1997 03:12:13 +0100
4135     +
4136     +gdb (4.16-3) unstable; urgency=low
4137     +
4138     + * New maintainer.
4139     + * Included patches for m68k support.
4140     +
4141     + -- Vincent Renardias <vincent@waw.com> Fri, 14 Mar 1997 22:07:58 +0100
4142     +
4143     +gdb (4.16-2) unstable; urgency=MEDIUM
4144     +
4145     + * New caretaker: Stuart Lamble (note: this package is still up
4146     + for adoption, as I would prefer not to be maintaining it
4147     + full-time.)
4148     + * Upgraded to the 2.1.1.0 source format.
4149     + * Recompiled, with a corrected procfs.h, to correct problems with
4150     + ELF coredumps.
4151     + * Reformatted the changelog :-)
4152     +
4153     + -- Stuart Lamble <lamble@yoyo.cc.monash.edu.au> Sun, 20 Oct 1996 18:48:40 +1000
4154     +
4155     +gdb (4.16-1) unstable; urgency=low
4156     +
4157     + * Updated to new upstream version (Bug#4373)
4158     + * Added a simple extended description (Bug#3599)
4159     +
4160     + -- David Engel
4161     --- gdb-6.4.orig/debian/control
4162     +++ gdb-6.4/debian/control
4163     @@ -0,0 +1,19 @@
4164     +Source: gdb
4165     +Maintainer: Daniel Jacobowitz <dan@debian.org>
4166     +Section: devel
4167     +Priority: standard
4168     +Standards-Version: 3.5.3
4169     +Build-Depends: autoconf, libtool, texinfo (>= 4.7-2.2), tetex-bin, libncurses5-dev, libreadline5-dev, bison, gettext, debhelper (>= 4.9.0), dejagnu, gcj [!mips !mipsel !hurd-i386], gobjc, cdbs (>= 0.4.17), quilt (>= 0.30-1), libunwind7-dev [ia64], flex | flex-old
4170     +
4171     +Package: gdb
4172     +Architecture: any
4173     +Section: devel
4174     +Depends: ${shlibs:Depends}
4175     +Conflicts: gdb-arm
4176     +Replaces: gdb-arm, insight (<< 6.1+cvs.2004.04.07-1)
4177     +Description: The GNU Debugger
4178     + GDB is a source-level debugger, capable of breaking programs at
4179     + any specific line, displaying variable values, and determining
4180     + where errors occurred. Currently, it works for C, C++, Fortran
4181     + Modula 2 and Java programs. A must-have for any serious
4182     + programmer.
4183     --- gdb-6.4.orig/debian/compat
4184     +++ gdb-6.4/debian/compat
4185     @@ -0,0 +1 @@
4186     +4
4187     --- gdb-6.4.orig/debian/gdb.info
4188     +++ gdb-6.4/debian/gdb.info
4189     @@ -0,0 +1,3 @@
4190     +objdir/gdb/doc/gdb.info*
4191     +objdir/gdb/doc/gdbint.info*
4192     +objdir/gdb/doc/stabs.info*
4193     --- gdb-6.4.orig/debian/README.Debian
4194     +++ gdb-6.4/debian/README.Debian
4195     @@ -0,0 +1,6 @@
4196     +GDB is a complex program. It comes with an Info manual (`info gdb' or your
4197     +favorite other info browser), which serves as a good command reference.
4198     +
4199     +There are also a number of books and tutorials devoted to GDB. One
4200     +particularly useful guide is Peter Jay Salzman's, at:
4201     + http://www.dirac.org/linux/gdb/
4202     --- gdb-6.4.orig/debian/copyright
4203     +++ gdb-6.4/debian/copyright
4204     @@ -0,0 +1,414 @@
4205     +This is the Debian GNU/Linux packaged version of the GNU debugger, GDB.
4206     +
4207     +Earlier versions of this package were assembled by David Engel
4208     +<david@ods.com>, Stuart Lamble <lamble@yoyo.cc.monash.edu.au>, and others.
4209     +
4210     +GDB is Copyright (C) Free Software Foundation, Inc.
4211     +
4212     + This program is free software; you can redistribute it and/or modify
4213     + it under the terms of the GNU General Public License as published by
4214     + the Free Software Foundation; either version 2 of the License, or
4215     + (at your option) any later version.
4216     +
4217     + This program is distributed in the hope that it will be useful,
4218     + but WITHOUT ANY WARRANTY; without even the implied warranty of
4219     + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4220     + GNU General Public License for more details.
4221     +
4222     + You should have received a copy of the GNU General Public License
4223     + along with this program; if not, write to the Free Software
4224     + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
4225     +
4226     +On Debian GNU/Linux systems, the complete text of the GNU General
4227     +Public License can be found in `/usr/share/common-licenses'.
4228     +
4229     +===
4230     +
4231     +The GDB manual and associated documentation are also Copyright (C) Free
4232     +Software Foundation, Inc. They are distributed under the GNU Free
4233     +Documentation License, shown below, with these terms:
4234     +
4235     +
4236     + Permission is granted to copy, distribute and/or modify this document
4237     +under the terms of the GNU Free Documentation License, Version 1.1 or
4238     +any later version published by the Free Software Foundation; with the
4239     +Invariant Sections being "Free Software" and "Free Software Needs Free
4240     +Documentation", with the Front-Cover Texts being "A GNU Manual," and
4241     +with the Back-Cover Texts as in (a) below.
4242     +
4243     + (a) The Free Software Foundation's Back-Cover Text is: "You have
4244     +freedom to copy and modify this GNU Manual, like GNU software. Copies
4245     +published by the Free Software Foundation raise funds for GNU
4246     +development."
4247     +
4248     +
4249     +GNU Free Documentation License
4250     +******************************
4251     +
4252     + Version 1.1, March 2000
4253     + Copyright (C) 2000 Free Software Foundation, Inc.
4254     + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
4255     +
4256     + Everyone is permitted to copy and distribute verbatim copies
4257     + of this license document, but changing it is not allowed.
4258     +
4259     +
4260     + 0. PREAMBLE
4261     +
4262     + The purpose of this License is to make a manual, textbook, or other
4263     + written document "free" in the sense of freedom: to assure everyone
4264     + the effective freedom to copy and redistribute it, with or without
4265     + modifying it, either commercially or noncommercially. Secondarily,
4266     + this License preserves for the author and publisher a way to get
4267     + credit for their work, while not being considered responsible for
4268     + modifications made by others.
4269     +
4270     + This License is a kind of "copyleft", which means that derivative
4271     + works of the document must themselves be free in the same sense.
4272     + It complements the GNU General Public License, which is a copyleft
4273     + license designed for free software.
4274     +
4275     + We have designed this License in order to use it for manuals for
4276     + free software, because free software needs free documentation: a
4277     + free program should come with manuals providing the same freedoms
4278     + that the software does. But this License is not limited to
4279     + software manuals; it can be used for any textual work, regardless
4280     + of subject matter or whether it is published as a printed book.
4281     + We recommend this License principally for works whose purpose is
4282     + instruction or reference.
4283     +
4284     +
4285     + 1. APPLICABILITY AND DEFINITIONS
4286     +
4287     + This License applies to any manual or other work that contains a
4288     + notice placed by the copyright holder saying it can be distributed
4289     + under the terms of this License. The "Document", below, refers to
4290     + any such manual or work. Any member of the public is a licensee,
4291     + and is addressed as "you."
4292     +
4293     + A "Modified Version" of the Document means any work containing the
4294     + Document or a portion of it, either copied verbatim, or with
4295     + modifications and/or translated into another language.
4296     +
4297     + A "Secondary Section" is a named appendix or a front-matter
4298     + section of the Document that deals exclusively with the
4299     + relationship of the publishers or authors of the Document to the
4300     + Document's overall subject (or to related matters) and contains
4301     + nothing that could fall directly within that overall subject.
4302     + (For example, if the Document is in part a textbook of
4303     + mathematics, a Secondary Section may not explain any mathematics.)
4304     + The relationship could be a matter of historical connection with
4305     + the subject or with related matters, or of legal, commercial,
4306     + philosophical, ethical or political position regarding them.
4307     +
4308     + The "Invariant Sections" are certain Secondary Sections whose
4309     + titles are designated, as being those of Invariant Sections, in
4310     + the notice that says that the Document is released under this
4311     + License.
4312     +
4313     + The "Cover Texts" are certain short passages of text that are
4314     + listed, as Front-Cover Texts or Back-Cover Texts, in the notice
4315     + that says that the Document is released under this License.
4316     +
4317     + A "Transparent" copy of the Document means a machine-readable copy,
4318     + represented in a format whose specification is available to the
4319     + general public, whose contents can be viewed and edited directly
4320     + and straightforwardly with generic text editors or (for images
4321     + composed of pixels) generic paint programs or (for drawings) some
4322     + widely available drawing editor, and that is suitable for input to
4323     + text formatters or for automatic translation to a variety of
4324     + formats suitable for input to text formatters. A copy made in an
4325     + otherwise Transparent file format whose markup has been designed
4326     + to thwart or discourage subsequent modification by readers is not
4327     + Transparent. A copy that is not "Transparent" is called "Opaque."
4328     +
4329     + Examples of suitable formats for Transparent copies include plain
4330     + ASCII without markup, Texinfo input format, LaTeX input format,
4331     + SGML or XML using a publicly available DTD, and
4332     + standard-conforming simple HTML designed for human modification.
4333     + Opaque formats include PostScript, PDF, proprietary formats that
4334     + can be read and edited only by proprietary word processors, SGML
4335     + or XML for which the DTD and/or processing tools are not generally
4336     + available, and the machine-generated HTML produced by some word
4337     + processors for output purposes only.
4338     +
4339     + The "Title Page" means, for a printed book, the title page itself,
4340     + plus such following pages as are needed to hold, legibly, the
4341     + material this License requires to appear in the title page. For
4342     + works in formats which do not have any title page as such, "Title
4343     + Page" means the text near the most prominent appearance of the
4344     + work's title, preceding the beginning of the body of the text.
4345     +
4346     + 2. VERBATIM COPYING
4347     +
4348     + You may copy and distribute the Document in any medium, either
4349     + commercially or noncommercially, provided that this License, the
4350     + copyright notices, and the license notice saying this License
4351     + applies to the Document are reproduced in all copies, and that you
4352     + add no other conditions whatsoever to those of this License. You
4353     + may not use technical measures to obstruct or control the reading
4354     + or further copying of the copies you make or distribute. However,
4355     + you may accept compensation in exchange for copies. If you
4356     + distribute a large enough number of copies you must also follow
4357     + the conditions in section 3.
4358     +
4359     + You may also lend copies, under the same conditions stated above,
4360     + and you may publicly display copies.
4361     +
4362     + 3. COPYING IN QUANTITY
4363     +
4364     + If you publish printed copies of the Document numbering more than
4365     + 100, and the Document's license notice requires Cover Texts, you
4366     + must enclose the copies in covers that carry, clearly and legibly,
4367     + all these Cover Texts: Front-Cover Texts on the front cover, and
4368     + Back-Cover Texts on the back cover. Both covers must also clearly
4369     + and legibly identify you as the publisher of these copies. The
4370     + front cover must present the full title with all words of the
4371     + title equally prominent and visible. You may add other material
4372     + on the covers in addition. Copying with changes limited to the
4373     + covers, as long as they preserve the title of the Document and
4374     + satisfy these conditions, can be treated as verbatim copying in
4375     + other respects.
4376     +
4377     + If the required texts for either cover are too voluminous to fit
4378     + legibly, you should put the first ones listed (as many as fit
4379     + reasonably) on the actual cover, and continue the rest onto
4380     + adjacent pages.
4381     +
4382     + If you publish or distribute Opaque copies of the Document
4383     + numbering more than 100, you must either include a
4384     + machine-readable Transparent copy along with each Opaque copy, or
4385     + state in or with each Opaque copy a publicly-accessible
4386     + computer-network location containing a complete Transparent copy
4387     + of the Document, free of added material, which the general
4388     + network-using public has access to download anonymously at no
4389     + charge using public-standard network protocols. If you use the
4390     + latter option, you must take reasonably prudent steps, when you
4391     + begin distribution of Opaque copies in quantity, to ensure that
4392     + this Transparent copy will remain thus accessible at the stated
4393     + location until at least one year after the last time you
4394     + distribute an Opaque copy (directly or through your agents or
4395     + retailers) of that edition to the public.
4396     +
4397     + It is requested, but not required, that you contact the authors of
4398     + the Document well before redistributing any large number of
4399     + copies, to give them a chance to provide you with an updated
4400     + version of the Document.
4401     +
4402     + 4. MODIFICATIONS
4403     +
4404     + You may copy and distribute a Modified Version of the Document
4405     + under the conditions of sections 2 and 3 above, provided that you
4406     + release the Modified Version under precisely this License, with
4407     + the Modified Version filling the role of the Document, thus
4408     + licensing distribution and modification of the Modified Version to
4409     + whoever possesses a copy of it. In addition, you must do these
4410     + things in the Modified Version:
4411     +
4412     + A. Use in the Title Page (and on the covers, if any) a title
4413     + distinct from that of the Document, and from those of previous
4414     + versions (which should, if there were any, be listed in the
4415     + History section of the Document). You may use the same title
4416     + as a previous version if the original publisher of that version
4417     + gives permission.
4418     + B. List on the Title Page, as authors, one or more persons or
4419     + entities responsible for authorship of the modifications in the
4420     + Modified Version, together with at least five of the principal
4421     + authors of the Document (all of its principal authors, if it
4422     + has less than five).
4423     + C. State on the Title page the name of the publisher of the
4424     + Modified Version, as the publisher.
4425     + D. Preserve all the copyright notices of the Document.
4426     + E. Add an appropriate copyright notice for your modifications
4427     + adjacent to the other copyright notices.
4428     + F. Include, immediately after the copyright notices, a license
4429     + notice giving the public permission to use the Modified Version
4430     + under the terms of this License, in the form shown in the
4431     + Addendum below.
4432     + G. Preserve in that license notice the full lists of Invariant
4433     + Sections and required Cover Texts given in the Document's
4434     + license notice.
4435     + H. Include an unaltered copy of this License.
4436     + I. Preserve the section entitled "History", and its title, and add
4437     + to it an item stating at least the title, year, new authors, and
4438     + publisher of the Modified Version as given on the Title Page.
4439     + If there is no section entitled "History" in the Document,
4440     + create one stating the title, year, authors, and publisher of
4441     + the Document as given on its Title Page, then add an item
4442     + describing the Modified Version as stated in the previous
4443     + sentence.
4444     + J. Preserve the network location, if any, given in the Document for
4445     + public access to a Transparent copy of the Document, and
4446     + likewise the network locations given in the Document for
4447     + previous versions it was based on. These may be placed in the
4448     + "History" section. You may omit a network location for a work
4449     + that was published at least four years before the Document
4450     + itself, or if the original publisher of the version it refers
4451     + to gives permission.
4452     + K. In any section entitled "Acknowledgements" or "Dedications",
4453     + preserve the section's title, and preserve in the section all the
4454     + substance and tone of each of the contributor acknowledgements
4455     + and/or dedications given therein.
4456     + L. Preserve all the Invariant Sections of the Document,
4457     + unaltered in their text and in their titles. Section numbers
4458     + or the equivalent are not considered part of the section titles.
4459     + M. Delete any section entitled "Endorsements." Such a section
4460     + may not be included in the Modified Version.
4461     + N. Do not retitle any existing section as "Endorsements" or to
4462     + conflict in title with any Invariant Section.
4463     +
4464     + If the Modified Version includes new front-matter sections or
4465     + appendices that qualify as Secondary Sections and contain no
4466     + material copied from the Document, you may at your option
4467     + designate some or all of these sections as invariant. To do this,
4468     + add their titles to the list of Invariant Sections in the Modified
4469     + Version's license notice. These titles must be distinct from any
4470     + other section titles.
4471     +
4472     + You may add a section entitled "Endorsements", provided it contains
4473     + nothing but endorsements of your Modified Version by various
4474     + parties-for example, statements of peer review or that the text has
4475     + been approved by an organization as the authoritative definition
4476     + of a standard.
4477     +
4478     + You may add a passage of up to five words as a Front-Cover Text,
4479     + and a passage of up to 25 words as a Back-Cover Text, to the end
4480     + of the list of Cover Texts in the Modified Version. Only one
4481     + passage of Front-Cover Text and one of Back-Cover Text may be
4482     + added by (or through arrangements made by) any one entity. If the
4483     + Document already includes a cover text for the same cover,
4484     + previously added by you or by arrangement made by the same entity
4485     + you are acting on behalf of, you may not add another; but you may
4486     + replace the old one, on explicit permission from the previous
4487     + publisher that added the old one.
4488     +
4489     + The author(s) and publisher(s) of the Document do not by this
4490     + License give permission to use their names for publicity for or to
4491     + assert or imply endorsement of any Modified Version.
4492     +
4493     + 5. COMBINING DOCUMENTS
4494     +
4495     + You may combine the Document with other documents released under
4496     + this License, under the terms defined in section 4 above for
4497     + modified versions, provided that you include in the combination
4498     + all of the Invariant Sections of all of the original documents,
4499     + unmodified, and list them all as Invariant Sections of your
4500     + combined work in its license notice.
4501     +
4502     + The combined work need only contain one copy of this License, and
4503     + multiple identical Invariant Sections may be replaced with a single
4504     + copy. If there are multiple Invariant Sections with the same name
4505     + but different contents, make the title of each such section unique
4506     + by adding at the end of it, in parentheses, the name of the
4507     + original author or publisher of that section if known, or else a
4508     + unique number. Make the same adjustment to the section titles in
4509     + the list of Invariant Sections in the license notice of the
4510     + combined work.
4511     +
4512     + In the combination, you must combine any sections entitled
4513     + "History" in the various original documents, forming one section
4514     + entitled "History"; likewise combine any sections entitled
4515     + "Acknowledgements", and any sections entitled "Dedications." You
4516     + must delete all sections entitled "Endorsements."
4517     +
4518     + 6. COLLECTIONS OF DOCUMENTS
4519     +
4520     + You may make a collection consisting of the Document and other
4521     + documents released under this License, and replace the individual
4522     + copies of this License in the various documents with a single copy
4523     + that is included in the collection, provided that you follow the
4524     + rules of this License for verbatim copying of each of the
4525     + documents in all other respects.
4526     +
4527     + You may extract a single document from such a collection, and
4528     + distribute it individually under this License, provided you insert
4529     + a copy of this License into the extracted document, and follow
4530     + this License in all other respects regarding verbatim copying of
4531     + that document.
4532     +
4533     + 7. AGGREGATION WITH INDEPENDENT WORKS
4534     +
4535     + A compilation of the Document or its derivatives with other
4536     + separate and independent documents or works, in or on a volume of
4537     + a storage or distribution medium, does not as a whole count as a
4538     + Modified Version of the Document, provided no compilation
4539     + copyright is claimed for the compilation. Such a compilation is
4540     + called an "aggregate", and this License does not apply to the
4541     + other self-contained works thus compiled with the Document, on
4542     + account of their being thus compiled, if they are not themselves
4543     + derivative works of the Document.
4544     +
4545     + If the Cover Text requirement of section 3 is applicable to these
4546     + copies of the Document, then if the Document is less than one
4547     + quarter of the entire aggregate, the Document's Cover Texts may be
4548     + placed on covers that surround only the Document within the
4549     + aggregate. Otherwise they must appear on covers around the whole
4550     + aggregate.
4551     +
4552     + 8. TRANSLATION
4553     +
4554     + Translation is considered a kind of modification, so you may
4555     + distribute translations of the Document under the terms of section
4556     + 4. Replacing Invariant Sections with translations requires special
4557     + permission from their copyright holders, but you may include
4558     + translations of some or all Invariant Sections in addition to the
4559     + original versions of these Invariant Sections. You may include a
4560     + translation of this License provided that you also include the
4561     + original English version of this License. In case of a
4562     + disagreement between the translation and the original English
4563     + version of this License, the original English version will prevail.
4564     +
4565     + 9. TERMINATION
4566     +
4567     + You may not copy, modify, sublicense, or distribute the Document
4568     + except as expressly provided for under this License. Any other
4569     + attempt to copy, modify, sublicense or distribute the Document is
4570     + void, and will automatically terminate your rights under this
4571     + License. However, parties who have received copies, or rights,
4572     + from you under this License will not have their licenses
4573     + terminated so long as such parties remain in full compliance.
4574     +
4575     + 10. FUTURE REVISIONS OF THIS LICENSE
4576     +
4577     + The Free Software Foundation may publish new, revised versions of
4578     + the GNU Free Documentation License from time to time. Such new
4579     + versions will be similar in spirit to the present version, but may
4580     + differ in detail to address new problems or concerns. See
4581     + http://www.gnu.org/copyleft/.
4582     +
4583     + Each version of the License is given a distinguishing version
4584     + number. If the Document specifies that a particular numbered
4585     + version of this License "or any later version" applies to it, you
4586     + have the option of following the terms and conditions either of
4587     + that specified version or of any later version that has been
4588     + published (not as a draft) by the Free Software Foundation. If
4589     + the Document does not specify a version number of this License,
4590     + you may choose any version ever published (not as a draft) by the
4591     + Free Software Foundation.
4592     +
4593     +
4594     +ADDENDUM: How to use this License for your documents
4595     +====================================================
4596     +
4597     +To use this License in a document you have written, include a copy of
4598     +the License in the document and put the following copyright and license
4599     +notices just after the title page:
4600     +
4601     + Copyright (C) YEAR YOUR NAME.
4602     + Permission is granted to copy, distribute and/or modify this document
4603     + under the terms of the GNU Free Documentation License, Version 1.1
4604     + or any later version published by the Free Software Foundation;
4605     + with the Invariant Sections being LIST THEIR TITLES, with the
4606     + Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
4607     + A copy of the license is included in the section entitled "GNU
4608     + Free Documentation License."
4609     +
4610     + If you have no Invariant Sections, write "with no Invariant Sections"
4611     +instead of saying which ones are invariant. If you have no Front-Cover
4612     +Texts, write "no Front-Cover Texts" instead of "Front-Cover Texts being
4613     +LIST"; likewise for Back-Cover Texts.
4614     +
4615     + If your document contains nontrivial examples of program code, we
4616     +recommend releasing these examples in parallel under your choice of
4617     +free software license, such as the GNU General Public License, to
4618     +permit their use in free software.
4619     --- gdb-6.4.orig/debian/rules
4620     +++ gdb-6.4/debian/rules
4621     @@ -0,0 +1,128 @@
4622     +#!/usr/bin/make -f
4623     +
4624     +DEB_BUILDDIR := $(shell pwd)/objdir
4625     +
4626     +# This implements the .deb package creation using debhelper.
4627     +include /usr/share/cdbs/1/rules/debhelper.mk
4628     +
4629     +# This implements building using a configure script and Makefile.
4630     +include /usr/share/cdbs/1/class/autotools.mk
4631     +
4632     +# Quilt-based patches in debian/patches.
4633     +include /usr/share/cdbs/1/rules/patchsys-quilt.mk
4634     +
4635     +
4636     +install = /usr/bin/install -p
4637     +
4638     +# Rather paranoid than sorry. Make the shell exit with an error if an
4639     +# untested command fails.
4640     +SHELL += -e
4641     +
4642     +DEB_HOST_GNU_SYSTEM := $(shell dpkg-architecture -qDEB_HOST_GNU_SYSTEM)
4643     +DEB_HOST_GNU_CPU := $(shell dpkg-architecture -qDEB_HOST_GNU_CPU)
4644     +DEB_HOST_GNU_TYPE := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
4645     +
4646     +run_tests := yes
4647     +run_thread_tests := yes
4648     +
4649     +ifneq ($(DEB_HOST_GNU_SYSTEM),linux-gnu)
4650     + run_tests := no
4651     +endif
4652     +
4653     +ifeq ($(filter $(DEB_HOST_GNU_CPU),alpha i486 hppa ia64 powerpc s390 sparc x86_64),)
4654     + run_tests := no
4655     +endif
4656     +
4657     +ifeq ($(DEB_HOST_GNU_CPU),ia64)
4658     + arch_config_args := --with-libunwind
4659     +endif
4660     +
4661     +INSTALL = $(install)
4662     +export INSTALL
4663     +
4664     +# We pass srcdir explicitly to avoid an extra '/.' at the end of it. That
4665     +# causes a harmless, but ugly, testsuite failure in maint.exp.
4666     +DEB_CONFIGURE_EXTRA_FLAGS := $(DEB_HOST_GNU_TYPE) --disable-gdbtk \
4667     + --disable-shared --enable-tui --srcdir=$(shell pwd) \
4668     + $(arch_config_args)
4669     +
4670     +DEB_MAKE_BUILD_TARGET = all info
4671     +
4672     +post-patches::
4673     + if ! test -f gdb/version.in.backup; then \
4674     + mv -f gdb/version.in gdb/version.in.backup; \
4675     + sed -e 's/$$/-debian/' < gdb/version.in.backup > gdb/version.in; \
4676     + fi
4677     +
4678     +# This should probably be common-post-build-arch, but that runs during
4679     +# install, under fakeroot, in CDBS 0.4.21.
4680     +build/gdb:: check-stamp
4681     + $(MAKE) -C objdir/gdb/doc refcard.dvi refcard.ps
4682     +
4683     +check-stamp:
4684     +ifeq ($(run_tests),yes)
4685     +ifeq ($(run_thread_tests),no)
4686     + echo " $(foreach exp,$(wildcard gdb/testsuite/gdb.threads/*.exp),mv $(exp) $(exp).disabled;)"
4687     + $(foreach exp,$(wildcard gdb/testsuite/gdb.threads/*.exp),mv $(exp) $(exp).disabled;)
4688     +endif
4689     + -ulimit -c unlimited; \
4690     + $(MAKE) -C objdir/gdb check \
4691     + 2>&1 | tee objdir/check.log
4692     +ifeq ($(run_thread_tests),no)
4693     + $(foreach exp,$(wildcard gdb/testsuite/gdb.threads/*.exp.disabled),mv $(exp) $(subst .disabled,,$(exp);))
4694     +endif
4695     +endif
4696     + touch $@
4697     +
4698     +clean::
4699     + rm -rf objdir
4700     +
4701     + if test -f gdb/version.in.backup; then \
4702     + mv -f gdb/version.in.backup gdb/version.in; \
4703     + fi
4704     +
4705     +# # For snapshots this is appropriate; careful of release tarballs
4706     +# # which include .gmo files.
4707     +# find -type f -name '*.gmo' | xargs rm -f
4708     +
4709     + # Prevent gratuitous rebuilds of the BFD documentation, since it
4710     + # updates the copy in the source directory.
4711     + find bfd -name bfd.info\* | xargs --no-run-if-empty touch
4712     +
4713     + rm -f check-stamp
4714     +
4715     +binary-post-install/gdb ::
4716     + if [ -x debian/gdb/usr/bin/run ]; then \
4717     + mv debian/gdb/usr/bin/run \
4718     + debian/gdb/usr/bin/$(DEB_HOST_GNU_TYPE)-run; \
4719     + mv debian/gdb/usr/share/man/man1/run.1 \
4720     + debian/gdb/usr/share/man/man1/$(DEB_HOST_GNU_TYPE)-run.1; \
4721     + fi
4722     +ifeq ($(run_tests),yes)
4723     + install -d debian/gdb/usr/share/doc/gdb
4724     + install -m 644 objdir/check.log \
4725     + debian/gdb/usr/share/doc/gdb/check.log
4726     +endif
4727     +
4728     + $(INSTALL) -m 755 -o root -g root \
4729     + gdb/gdb_gcore.sh debian/gdb/usr/bin/gcore
4730     +
4731     + rm -rf debian/gdb/usr/include \
4732     + debian/gdb/usr/lib/lib*.* \
4733     + debian/gdb/usr/share/info/annotate.info* \
4734     + debian/gdb/usr/share/info/bfd.info* \
4735     + debian/gdb/usr/share/info/configure.info* \
4736     + debian/gdb/usr/share/info/mmalloc.info* \
4737     + debian/gdb/usr/share/info/standards.info* \
4738     + debian/gdb/usr/share/locale
4739     +
4740     +#debian/control:: debian/control.in
4741     +# cat debian/control.in \
4742     +# | sed "s/@kfreebsd@/`type-handling any kfreebsd-gnu`/g" \
4743     +# | sed "s/@gnu@/`type-handling any gnu`/g" \
4744     +# > debian/control
4745     +
4746     +DEB_INSTALL_DOCS_gdb = gdb/NEWS gdb/README gdb/doc/refcard.tex \
4747     + objdir/gdb/doc/refcard.dvi objdir/gdb/doc/refcard.ps
4748     +
4749     +DEB_INSTALL_CHANGELOGS_gdb = gdb/ChangeLog