Hello community,
here is the log from the commit of package gdb
checked in at Mon Apr 24 15:57:53 CEST 2006.
--------
--- gdb/gdb.changes 2006-04-04 21:49:05.000000000 +0200
+++ STABLE/gdb/gdb.changes 2006-04-23 16:42:54.000000000 +0200
@@ -1,0 +2,6 @@
+Sun Apr 23 16:05:38 CEST 2006 - schwab@suse.de
+
+- Add patch to avoid losing compilation directory.
+- Fix a parallel build problem.
+
+-------------------------------------------------------------------
New:
----
dwarf2-comp-dir.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gdb.spec ++++++
--- /var/tmp/diff_new_pack.E3IGQa/_old 2006-04-24 15:57:17.000000000 +0200
+++ /var/tmp/diff_new_pack.E3IGQa/_new 2006-04-24 15:57:17.000000000 +0200
@@ -21,7 +21,7 @@
Autoreqprov: on
PreReq: %{install_info_prereq}
Version: 6.4
-Release: 11
+Release: 15
%define gdb_version %(echo %version | sed s/_/-/)
Summary: The GNU Debugger
Source: gdb-%{gdb_version}.tar.bz2
@@ -35,6 +35,7 @@
Patch9: observer-notify-inferior-created.diff
Patch10: ppc-skip-prologue.patch
Patch11: pie-relocate.diff
+Patch12: dwarf2-comp-dir.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@@ -73,6 +74,7 @@
%patch9 -p1
%patch10 -p1
%patch11
+%patch12 -p1
%build
CFLAGS="$RPM_OPT_FLAGS" \
@@ -128,6 +130,9 @@
%endif
%changelog -n gdb
+* Sun Apr 23 2006 - schwab@suse.de
+- Add patch to avoid losing compilation directory.
+- Fix a parallel build problem.
* Tue Apr 04 2006 - schwab@suse.de
- Relocate PIEs.
* Mon Mar 27 2006 - schwab@suse.de
++++++ dwarf2-comp-dir.diff ++++++
2006-04-21 Frederic Riss
* dwarf2read.c (dwarf2_start_subfile): Change prototype to accept
compilation directory as last argument.
Always pass comp_dir as second argument to start_subfile and prepend
dirname to the filename when necessary.
Remove now superfluous search for pre-existing subfile.
(dwarf_decode_lines): Pass the compilation directory to
dwarf2_start_subfile.
===================================================================
RCS file: /cvs/src/src/gdb/dwarf2read.c,v
retrieving revision 1.193
retrieving revision 1.194
diff -u -r1.193 -r1.194
--- src/gdb/dwarf2read.c 2006/02/09 18:18:41 1.193
+++ src/gdb/dwarf2read.c 2006/04/21 20:26:07 1.194
@@ -846,7 +846,7 @@
static void dwarf_decode_lines (struct line_header *, char *, bfd *,
struct dwarf2_cu *, struct partial_symtab *);
-static void dwarf2_start_subfile (char *, char *);
+static void dwarf2_start_subfile (char *, char *, char *);
static struct symbol *new_symbol (struct die_info *, struct type *,
struct dwarf2_cu *);
@@ -6529,13 +6529,12 @@
directory and file name numbers in the statement program
are 1-based. */
struct file_entry *fe = &lh->file_names[file - 1];
- char *dir;
+ char *dir = NULL;
if (fe->dir_index)
dir = lh->include_dirs[fe->dir_index - 1];
- else
- dir = comp_dir;
- dwarf2_start_subfile (fe->name, dir);
+
+ dwarf2_start_subfile (fe->name, dir, comp_dir);
}
/* Decode the table. */
@@ -6627,17 +6626,16 @@
0-based, but the directory and file name numbers in
the statement program are 1-based. */
struct file_entry *fe;
- char *dir;
+ char *dir = NULL;
file = read_unsigned_leb128 (abfd, line_ptr, &bytes_read);
line_ptr += bytes_read;
fe = &lh->file_names[file - 1];
if (fe->dir_index)
dir = lh->include_dirs[fe->dir_index - 1];
- else
- dir = comp_dir;
+
if (!decode_for_pst_p)
- dwarf2_start_subfile (fe->name, dir);
+ dwarf2_start_subfile (fe->name, dir, comp_dir);
}
break;
case DW_LNS_set_column:
@@ -6717,7 +6715,8 @@
/* Start a subfile for DWARF. FILENAME is the name of the file and
DIRNAME the name of the source directory which contains FILENAME
- or NULL if not known.
+ or NULL if not known. COMP_DIR is the compilation directory for the
+ linetable's compilation unit or NULL if not known.
This routine tries to keep line numbers from identical absolute and
relative file names in a common subfile.
@@ -6733,31 +6732,35 @@
files.files[1].dir: /srcdir
The line number information for list0.c has to end up in a single
- subfile, so that `break /srcdir/list0.c:1' works as expected. */
-
-static void
-dwarf2_start_subfile (char *filename, char *dirname)
-{
- /* If the filename isn't absolute, try to match an existing subfile
- with the full pathname. */
+ subfile, so that `break /srcdir/list0.c:1' works as expected.
+ start_subfile will ensure that this happens provided that we pass the
+ concatenation of files.files[1].dir and files.files[1].name as the
+ subfile's name. */
+
+static void
+dwarf2_start_subfile (char *filename, char *dirname, char *comp_dir)
+{
+ char *fullname;
+
+ /* While reading the DIEs, we call start_symtab(DW_AT_name, DW_AT_comp_dir).
+ `start_symtab' will always pass the contents of DW_AT_comp_dir as
+ second argument to start_subfile. To be consistent, we do the
+ same here. In order not to lose the line information directory,
+ we concatenate it to the filename when it makes sense.
+ Note that the Dwarf3 standard says (speaking of filenames in line
+ information): ``The directory index is ignored for file names
+ that represent full path names''. Thus ignoring dirname in the
+ `else' branch below isn't an issue. */
if (!IS_ABSOLUTE_PATH (filename) && dirname != NULL)
- {
- struct subfile *subfile;
- char *fullname = concat (dirname, "/", filename, (char *)NULL);
+ fullname = concat (dirname, SLASH_STRING, filename, (char *)NULL);
+ else
+ fullname = filename;
- for (subfile = subfiles; subfile; subfile = subfile->next)
- {
- if (FILENAME_CMP (subfile->name, fullname) == 0)
- {
- current_subfile = subfile;
- xfree (fullname);
- return;
- }
- }
- xfree (fullname);
- }
- start_subfile (filename, dirname);
+ start_subfile (fullname, comp_dir);
+
+ if (fullname != filename)
+ xfree (fullname);
}
static void
++++++ gdb-misc.patch ++++++
--- /var/tmp/diff_new_pack.E3IGQa/_old 2006-04-24 15:57:18.000000000 +0200
+++ /var/tmp/diff_new_pack.E3IGQa/_new 2006-04-24 15:57:18.000000000 +0200
@@ -12,3 +12,14 @@
WARN_CFLAGS = @WARN_CFLAGS@
WERROR_CFLAGS = @WERROR_CFLAGS@
+--- sim/ppc/Makefile.in 2006/04/23 14:05:01 1.15
++++ sim/ppc/Makefile.in 2006/04/23 14:29:33
+@@ -756,7 +756,7 @@ tmp-ld-cache: ld-cache.o misc.o lf.o tab
+
+ ld-insn.o: ld-insn.c $(MISC_H) $(LF_H) $(TABLE_H) $(FILTER_H) $(LD_DECODE_H) $(LD_CACHE_H) $(LD_INSN_H) $(IGEN_H)
+ $(CC_FOR_BUILD) $(BUILD_CFLAGS) -c $(srcdir)/ld-insn.c
+-tmp-ld-insn: ld-insn.o misc.o lf.o table.o ld-decode.o filter_host.o filter.o
++tmp-ld-insn: ld-cache.o ld-insn.o misc.o lf.o table.o ld-decode.o filter_host.o filter.o
+ $(CC_FOR_BUILD) $(BUILD_CFLAGS) $(BUILD_LDFLAGS) -o tmp-ld-insn -DMAIN $(srcdir)/ld-insn.c ld-cache.o misc.o lf.o table.o ld-decode.o filter_host.o filter.o $(BUILD_LIBS)
+
+ gen-model.o: gen-model.c $(MISC_H) $(LF_H) $(TABLE_H) $(FILTER_H) $(LD_CACHE_H) $(LD_DECODE_H) $(LD_INSN_H) $(GEN_MODEL_H)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...