[gdb] Disable -lmcheck in the development builds.

Jan Kratochvil jankratochvil at fedoraproject.org
Wed Jun 6 17:23:09 UTC 2012


commit c3820813604eee00b6418f350b31ff1ab2123845
Author: Jan Kratochvil <jan.kratochvil at redhat.com>
Date:   Wed Jun 6 19:23:02 2012 +0200

    Disable -lmcheck in the development builds.
    
    - Fix assertion on some files as glibc-2.15.90-8.fc18 (Doug Evans).

 gdb-disable-mcheck.patch |   24 ++++++++++++++++++
 gdb-index-assert.patch   |   60 ++++++++++++++++++++++++++++++++++++++++++++++
 gdb-upstream.patch       |   54 +++++++++++++++++++++++++++++++++++++++++
 gdb.spec                 |   14 ++++++++++-
 4 files changed, 151 insertions(+), 1 deletions(-)
---
diff --git a/gdb-disable-mcheck.patch b/gdb-disable-mcheck.patch
new file mode 100644
index 0000000..74f0230
--- /dev/null
+++ b/gdb-disable-mcheck.patch
@@ -0,0 +1,24 @@
+diff -dup -rup gdb-7.4.50.20120603-orig/gdb/configure gdb-7.4.50.20120603/gdb/configure
+--- gdb-7.4.50.20120603-orig/gdb/configure	2012-06-06 19:08:32.824824699 +0200
++++ gdb-7.4.50.20120603/gdb/configure	2012-06-06 19:12:12.346992423 +0200
+@@ -2706,7 +2706,7 @@ fi
+ # Provide more thorough testing by -lmcheck.
+ # Set it to 'true' for development snapshots, 'false' for releases or
+ # pre-releases.
+-development=true
++development=false
+ 
+ ac_ext=c
+ ac_cpp='$CPP $CPPFLAGS'
+diff -dup -rup gdb-7.4.50.20120603-orig/gdb/configure.ac gdb-7.4.50.20120603/gdb/configure.ac
+--- gdb-7.4.50.20120603-orig/gdb/configure.ac	2012-06-06 19:08:32.817824693 +0200
++++ gdb-7.4.50.20120603/gdb/configure.ac	2012-06-06 19:12:05.545987227 +0200
+@@ -26,7 +26,7 @@ AM_MAINTAINER_MODE
+ # Provide more thorough testing by -lmcheck.
+ # Set it to 'true' for development snapshots, 'false' for releases or
+ # pre-releases.
+-development=true
++development=false
+ 
+ AC_PROG_CC
+ AC_USE_SYSTEM_EXTENSIONS
diff --git a/gdb-index-assert.patch b/gdb-index-assert.patch
new file mode 100644
index 0000000..66bb106
--- /dev/null
+++ b/gdb-index-assert.patch
@@ -0,0 +1,60 @@
+http://sourceware.org/ml/gdb-patches/2012-06/msg00109.html
+Subject: [RFA] Fix inconsistency in blockvector addrmap vs non-addrmap handling
+
+Hi.
+
+I was seeing the assert in dw2_find_pc_sect_psymtab trigger
+and traced it to the fact that when pending_addrmap_interesting gets
+set blockvector.map is used instead of blockvector.block.
+The difference is that blockvector.block contains entries for the global
+and static blocks whereas pending_addrmap doesn't.
+
+This patch fixes this by making them consistent.
+I suspect more work is necessary (e.g. can symtabs "overlap" even though
+the individual pieces do not?).
+But I first want to fix the regression introduced by the change
+to dw2_find_pc_sect_psymtab: There is more code in a symtab than is
+documented by function and lexical block pc ranges (e.g. C++ method thunks).
+
+Regression tested on amd64-linux, and by verifying the assert no longer
+triggers in the testcase I was using.
+
+Ok to commit?
+
+Note that this obviates the need for the patch in:
+http://sourceware.org/ml/gdb-patches/2012-05/msg00958.html
+
+Also note that this accompanies this patch:
+http://sourceware.org/ml/gdb-patches/2012-06/msg00105.html
+
+2012-06-04  Doug Evans  <dje at google.com>
+
+	* buildsym.c (end_symtab): Add the range of the static block to
+	the pending addrmap.
+
+Index: buildsym.c
+===================================================================
+RCS file: /cvs/src/src/gdb/buildsym.c,v
+retrieving revision 1.97
+diff -u -p -r1.97 buildsym.c
+--- ./gdb/buildsym.c	29 May 2012 20:23:17 -0000	1.97
++++ ./gdb/buildsym.c	5 Jun 2012 00:26:01 -0000
+@@ -1024,8 +1027,15 @@ end_symtab (CORE_ADDR end_addr, struct o
+     {
+       /* Define the STATIC_BLOCK & GLOBAL_BLOCK, and build the
+          blockvector.  */
+-      finish_block (0, &file_symbols, 0, last_source_start_addr,
+-		    end_addr, objfile);
++      struct block *static_block;
++
++      static_block = finish_block (0, &file_symbols, 0,
++				   last_source_start_addr, end_addr,
++				   objfile);
++      /* Mark the range of the static block so that if we end up using
++	 blockvector.map then find_block_in_blockvector behaves identically
++	 regardless of whether the addrmap is present.  */
++      record_block_range (static_block, last_source_start_addr, end_addr - 1);
+       finish_block_internal (0, &global_symbols, 0, last_source_start_addr,
+ 			     end_addr, objfile, 1);
+       blockvector = make_blockvector (objfile);
+
diff --git a/gdb-upstream.patch b/gdb-upstream.patch
index 1594acd..64ee72e 100644
--- a/gdb-upstream.patch
+++ b/gdb-upstream.patch
@@ -237,3 +237,57 @@ http://sourceware.org/ml/gdb-cvs/2012-06/msg00012.html
      not_null_var_address my_global_symbol
      not_null_var_address my_static_symbol
      not_null_var_address my_global_func
+
+
+
+http://sourceware.org/ml/gdb-cvs/2012-06/msg00047.html
+
+### src/gdb/ChangeLog	2012/06/06 06:04:42	1.14330
+### src/gdb/ChangeLog	2012/06/06 16:57:34	1.14331
+## -1,3 +1,8 @@
++2012-06-06  Jan Kratochvil  <jan.kratochvil at redhat.com>
++
++	* configure.ac: Move development=true below AC_INIT.
++	* configure: Regenerate.
++
+ 2012-06-05  Stan Shebs  <stan at codesourcery.com>
+ 
+ 	* mi/mi-interp.c (mi_interpreter_init): Set raw_stdout from
+--- src/gdb/configure	2012/06/01 18:20:18	1.366
++++ src/gdb/configure	2012/06/06 16:57:36	1.367
+@@ -2683,6 +2683,11 @@
+ 
+ 
+ 
++# Provide more thorough testing by -lmcheck.
++# Set it to 'true' for development snapshots, 'false' for releases or
++# pre-releases.
++development=true
++
+ ac_ext=c
+ ac_cpp='$CPP $CPPFLAGS'
+ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+--- src/gdb/configure.ac	2012/06/01 18:20:18	1.177
++++ src/gdb/configure.ac	2012/06/06 16:57:38	1.178
+@@ -18,16 +18,16 @@
+ 
+ dnl Process this file with autoconf to produce a configure script.
+ 
+-dnl Provide more thorough testing by -lmcheck.
+-dnl Set it to 'true' for development snapshots, 'false' for releases or
+-dnl pre-releases.
+-development=true
+-
+ AC_PREREQ(2.59)dnl
+ AC_INIT(main.c)
+ AC_CONFIG_HEADER(config.h:config.in)
+ AM_MAINTAINER_MODE
+ 
++# Provide more thorough testing by -lmcheck.
++# Set it to 'true' for development snapshots, 'false' for releases or
++# pre-releases.
++development=true
++
+ AC_PROG_CC
+ AC_USE_SYSTEM_EXTENSIONS
+ ACX_LARGEFILE
diff --git a/gdb.spec b/gdb.spec
index fe920e1..facb54b 100644
--- a/gdb.spec
+++ b/gdb.spec
@@ -35,7 +35,7 @@ Version: 7.4.50.%{snap}
 
 # The release always contains a leading reserved number, start it at 1.
 # `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
-Release: 2%{?dist}
+Release: 3%{?dist}
 
 License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and BSD and Public Domain
 Group: Development/Debuggers
@@ -561,6 +561,12 @@ Patch692: gdb-dejagnu-go.patch
 # Revert recent breakage of UNIX objfiles order for symbols lookup.
 Patch693: gdb-objfile-order.patch
 
+# Disable -lmcheck in the development builds.
+Patch694: gdb-disable-mcheck.patch
+
+# Fix assertion on some files as glibc-2.15.90-8.fc18 (Doug Evans).
+Patch695: gdb-index-assert.patch
+
 %if 0%{!?rhel:1} || 0%{?rhel} > 6
 # RL_STATE_FEDORA_GDB would not be found for:
 # Patch642: gdb-readline62-ask-more-rh.patch
@@ -847,6 +853,8 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc-exp.c gdb/p-exp.c
 %patch690 -p1
 %patch692 -p1
 %patch693 -p1
+%patch694 -p1
+%patch695 -p1
 
 %patch393 -p1
 %if 0%{!?el5:1} || 0%{?scl:1}
@@ -1336,6 +1344,10 @@ fi
 %endif # 0%{!?el5:1} || "%{_target_cpu}" == "noarch"
 
 %changelog
+* Wed Jun  6 2012 Jan Kratochvil <jan.kratochvil at redhat.com> - 7.4.50.20120603-3.fc18
+- Disable -lmcheck in the development builds.
+- Fix assertion on some files as glibc-2.15.90-8.fc18 (Doug Evans).
+
 * Sun Jun  3 2012 Jan Kratochvil <jan.kratochvil at redhat.com> - 7.4.50.20120603-2.fc18
 - Fix Release.
 - Make yum --enablerepo compatible with at least mock-1.1.21-1.fc16 Rawhide cfg.


More information about the scm-commits mailing list