From 936befa814779ff731b3eb1634999fa2767cb61b Mon Sep 17 00:00:00 2001 From: Jan Kratochvil Date: Tue, 6 May 2014 20:16:56 +0200 Subject: [PATCH] Rebase to FSF GDB 7.7.1. --- .gitignore | 2 +- gcc-4.9-compat.patch | 179 ---------------------------- gdb-auto-load-lost-path-7.7.patch | 190 ------------------------------ gdb-python-stacksmash.patch | 65 ---------- gdb.spec | 19 +-- sources | 2 +- 6 files changed, 7 insertions(+), 450 deletions(-) delete mode 100644 gcc-4.9-compat.patch delete mode 100644 gdb-auto-load-lost-path-7.7.patch delete mode 100644 gdb-python-stacksmash.patch diff --git a/.gitignore b/.gitignore index 125df83..c6aa6dc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ /gdb-libstdc++-v3-python-r155978.tar.bz2 -/gdb-7.7.tar.bz2 +/gdb-7.7.1.tar.bz2 diff --git a/gcc-4.9-compat.patch b/gcc-4.9-compat.patch deleted file mode 100644 index 815c7f8..0000000 --- a/gcc-4.9-compat.patch +++ /dev/null @@ -1,179 +0,0 @@ -This patch fixes the build failures found when building with GCC 4.9. - - commit 27b829ee701e29804216b3803fbaeb629be27491 - Author: Nick Clifton - Date: Wed Jan 29 13:46:39 2014 +0000 - - Following up on Tom's suggestion I am checking in a patch to replace the various - bfd_xxx_set macros with static inline functions, so that we can avoid compile time - warnings about comma expressions with unused values. - - * bfd-in.h (bfd_set_section_vma): Delete. - (bfd_set_section_alignment): Delete. - (bfd_set_section_userdata): Delete. - (bfd_set_cacheable): Delete. - * bfd.c (bfd_set_cacheable): New static inline function. - * section.c (bfd_set_section_userdata): Likewise. - (bfd_set_section_vma): Likewise. - (bfd_set_section_alignment): Likewise. - * bfd-in2.h: Regenerate. - -Index: gdb-7.7/bfd/bfd-in.h -=================================================================== ---- gdb-7.7.orig/bfd/bfd-in.h -+++ gdb-7.7/bfd/bfd-in.h -@@ -292,9 +292,6 @@ typedef struct bfd_section *sec_ptr; - - #define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0) - --#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = TRUE), TRUE) --#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),TRUE) --#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),TRUE) - /* Find the address one past the end of SEC. */ - #define bfd_get_section_limit(bfd, sec) \ - (((bfd)->direction != write_direction && (sec)->rawsize != 0 \ -@@ -517,8 +514,6 @@ extern void warn_deprecated (const char - - #define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char) - --#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = bool), TRUE) -- - extern bfd_boolean bfd_cache_close - (bfd *abfd); - /* NB: This declaration should match the autogenerated one in libbfd.h. */ -Index: gdb-7.7/bfd/bfd-in2.h -=================================================================== ---- gdb-7.7.orig/bfd/bfd-in2.h -+++ gdb-7.7/bfd/bfd-in2.h -@@ -299,9 +299,6 @@ typedef struct bfd_section *sec_ptr; - - #define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0) - --#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = TRUE), TRUE) --#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),TRUE) --#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),TRUE) - /* Find the address one past the end of SEC. */ - #define bfd_get_section_limit(bfd, sec) \ - (((bfd)->direction != write_direction && (sec)->rawsize != 0 \ -@@ -524,8 +521,6 @@ extern void warn_deprecated (const char - - #define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char) - --#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = bool), TRUE) -- - extern bfd_boolean bfd_cache_close - (bfd *abfd); - /* NB: This declaration should match the autogenerated one in libbfd.h. */ -@@ -1029,7 +1024,7 @@ bfd *bfd_openr (const char *filename, co - - bfd *bfd_fdopenr (const char *filename, const char *target, int fd); - --bfd *bfd_openstreamr (const char *, const char *, void *); -+bfd *bfd_openstreamr (const char * filename, const char * target, void * stream); - - bfd *bfd_openr_iovec (const char *filename, const char *target, - void *(*open_func) (struct bfd *nbfd, -@@ -1596,6 +1591,32 @@ struct relax_table { - int size; - }; - -+/* Note: the following are provided as inline functions rather than macros -+ because not all callers use the return value. A macro implementation -+ would use a comma expression, eg: "((ptr)->foo = val, TRUE)" and some -+ compilers will complain about comma expressions that have no effect. */ -+static inline bfd_boolean -+bfd_set_section_userdata (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, void * val) -+{ -+ ptr->userdata = val; -+ return TRUE; -+} -+ -+static inline bfd_boolean -+bfd_set_section_vma (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, bfd_vma val) -+{ -+ ptr->vma = ptr->lma = val; -+ ptr->user_set_vma = TRUE; -+ return TRUE; -+} -+ -+static inline bfd_boolean -+bfd_set_section_alignment (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, unsigned int val) -+{ -+ ptr->alignment_power = val; -+ return TRUE; -+} -+ - /* These sections are global, and are managed by BFD. The application - and target back end are not permitted to change the values in - these sections. */ -@@ -6415,6 +6436,14 @@ struct bfd - unsigned int selective_search : 1; - }; - -+/* See note beside bfd_set_section_userdata. */ -+static inline bfd_boolean -+bfd_set_cacheable (bfd * abfd, bfd_boolean val) -+{ -+ abfd->cacheable = val; -+ return TRUE; -+} -+ - typedef enum bfd_error - { - bfd_error_no_error = 0, -Index: gdb-7.7/bfd/bfd.c -=================================================================== ---- gdb-7.7.orig/bfd/bfd.c -+++ gdb-7.7/bfd/bfd.c -@@ -311,6 +311,14 @@ CODE_FRAGMENT - . unsigned int selective_search : 1; - .}; - . -+.{* See note beside bfd_set_section_userdata. *} -+.static inline bfd_boolean -+.bfd_set_cacheable (bfd * abfd, bfd_boolean val) -+.{ -+. abfd->cacheable = val; -+. return TRUE; -+.} -+. - */ - - #include "sysdep.h" -Index: gdb-7.7/bfd/section.c -=================================================================== ---- gdb-7.7.orig/bfd/section.c -+++ gdb-7.7/bfd/section.c -@@ -542,6 +542,32 @@ CODE_FRAGMENT - . int size; - .}; - . -+.{* Note: the following are provided as inline functions rather than macros -+. because not all callers use the return value. A macro implementation -+. would use a comma expression, eg: "((ptr)->foo = val, TRUE)" and some -+. compilers will complain about comma expressions that have no effect. *} -+.static inline bfd_boolean -+.bfd_set_section_userdata (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, void * val) -+.{ -+. ptr->userdata = val; -+. return TRUE; -+.} -+. -+.static inline bfd_boolean -+.bfd_set_section_vma (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, bfd_vma val) -+.{ -+. ptr->vma = ptr->lma = val; -+. ptr->user_set_vma = TRUE; -+. return TRUE; -+.} -+. -+.static inline bfd_boolean -+.bfd_set_section_alignment (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, unsigned int val) -+.{ -+. ptr->alignment_power = val; -+. return TRUE; -+.} -+. - .{* These sections are global, and are managed by BFD. The application - . and target back end are not permitted to change the values in - . these sections. *} diff --git a/gdb-auto-load-lost-path-7.7.patch b/gdb-auto-load-lost-path-7.7.patch deleted file mode 100644 index 7675d06..0000000 --- a/gdb-auto-load-lost-path-7.7.patch +++ /dev/null @@ -1,190 +0,0 @@ -http://sourceware.org/ml/gdb-patches/2014-02/msg00712.html -Subject: [patch+7.7] Fix auto-load 7.7 regression [Re: [commit 2/2] Move processing of .debug_gdb_scripts to auto-load.c] - - ---6c2NcOVqGQ03X4Wi -Content-Type: text/plain; charset=us-ascii -Content-Disposition: inline - -Hi Doug, - -the regression affects any loading from /usr/share/gdb/auto-load . - -5b2bf9471f1499bee578fcd60c05afe85794e280 is the first bad commit -commit 5b2bf9471f1499bee578fcd60c05afe85794e280 -Author: Doug Evans -Date: Fri Nov 29 21:29:26 2013 -0800 - Move .debug_gdb_script processing to auto-load.c. - Simplify handling of auto-loaded objfile scripts. - -Fedora 20 x86_64 -$ gdb -q /usr/lib64/libgobject-2.0.so -Reading symbols from /usr/lib64/libglib-2.0.so.0.3800.2...Reading symbols from /usr/lib/debug/usr/lib64/libglib-2.0.so.0.3800.2.debug...done. -done. -(gdb) _ - -Fedora Rawhide x86_64 -$ gdb -q /usr/lib64/libgobject-2.0.so -Reading symbols from /usr/lib64/libglib-2.0.so...Reading symbols from /usr/lib/debug/usr/lib64/libglib-2.0.so.0.3990.0.debug...done. -done. -warning: File "/usr/lib64/libglib-2.0.so.0.3990.0-gdb.py" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load:/usr/bin/mono-gdb.py". -To enable execution of this file add - add-auto-load-safe-path /usr/lib64/libglib-2.0.so.0.3990.0-gdb.py -line to your configuration file "/home/jkratoch/.gdbinit". -To completely disable this security protection add - set auto-load safe-path / -line to your configuration file "/home/jkratoch/.gdbinit". -For more information about this security protection see the -"Auto-loading safe path" section in the GDB manual. E.g., run from the shell: - info "(gdb)Auto-loading safe path" -(gdb) _ - -That is it tries to load "forbidden" - /usr/lib64/libglib-2.0.so.0.3990.0-gdb.py -but it should load instead - /usr/share/gdb/auto-load/usr/lib64/libglib-2.0.so.0.3990.0-gdb.py* -Although that is also not exactly this way, there does not exist any - /usr/lib64/libglib-2.0.so.0.3990.0-gdb.py -despite regressed GDB says so. - - - -Regards, -Jan - ---6c2NcOVqGQ03X4Wi -Content-Type: text/plain; charset=us-ascii -Content-Disposition: inline; filename="autoload.patch" - -gdb/ -2014-02-23 Jan Kratochvil - - * auto-load.c (auto_load_objfile_script_1): Change filename to - debugfile. - -gdb/testsuite/ -2014-02-23 Jan Kratochvil - - * gdb.base/auto-load-script: New file. - * gdb.base/auto-load.c: New file. - * gdb.base/auto-load.exp: New file. - ---- gdb-7.7/gdb/auto-load.c-orig 2014-02-06 03:21:29.000000000 +0100 -+++ gdb-7.7/gdb/auto-load.c 2014-02-23 22:38:53.858374840 +0100 -@@ -791,17 +791,17 @@ auto_load_objfile_script_1 (struct objfi - make_cleanup_fclose (input); - - is_safe -- = file_is_auto_load_safe (filename, -+ = file_is_auto_load_safe (debugfile, - _("auto-load: Loading %s script \"%s\"" - " by extension for objfile \"%s\".\n"), -- language->name, filename, -+ language->name, debugfile, - objfile_name (objfile)); - - /* Add this script to the hash table too so - "info auto-load ${lang}-scripts" can print it. */ - pspace_info - = get_auto_load_pspace_data_for_loading (current_program_space); -- maybe_add_script (pspace_info, is_safe, filename, filename, language); -+ maybe_add_script (pspace_info, is_safe, debugfile, debugfile, language); - - /* To preserve existing behaviour we don't check for whether the - script was already in the table, and always load it. -diff --git a/gdb/testsuite/gdb.base/auto-load-script b/gdb/testsuite/gdb.base/auto-load-script -new file mode 100644 -index 0000000..d02bd1a ---- /dev/null -+++ b/gdb/testsuite/gdb.base/auto-load-script -@@ -0,0 +1,17 @@ -+# Copyright 2014 Free Software Foundation, Inc. -+ -+# This program is free software; you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 3 of the License, or -+# (at your option) any later version. -+# -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+# -+# You should have received a copy of the GNU General Public License -+# along with this program. If not, see . -+ -+echo script_loaded\n -+set $script_loaded=42 -diff --git a/gdb/testsuite/gdb.base/auto-load.c b/gdb/testsuite/gdb.base/auto-load.c -new file mode 100644 -index 0000000..4b94803 ---- /dev/null -+++ b/gdb/testsuite/gdb.base/auto-load.c -@@ -0,0 +1,22 @@ -+/* This testcase is part of GDB, the GNU debugger. -+ -+ Copyright 2014 Free Software Foundation, Inc. -+ -+ This program is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by -+ the Free Software Foundation; either version 3 of the License, or -+ (at your option) any later version. -+ -+ This program is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ GNU General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License -+ along with this program. If not, see . */ -+ -+int -+main (void) -+{ -+ return 0; -+} -diff --git a/gdb/testsuite/gdb.base/auto-load.exp b/gdb/testsuite/gdb.base/auto-load.exp -new file mode 100644 -index 0000000..9b8211d ---- /dev/null -+++ b/gdb/testsuite/gdb.base/auto-load.exp -@@ -0,0 +1,36 @@ -+# Copyright 2014 Free Software Foundation, Inc. -+ -+# This program is free software; you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 3 of the License, or -+# (at your option) any later version. -+# -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+# -+# You should have received a copy of the GNU General Public License -+# along with this program. If not, see . -+ -+standard_testfile -+ -+if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile}] } { -+ return -1 -+} -+ -+set targetdir "${binfile}.dir" -+set sourcescript "${binfile}-script" -+set targetscriptdir "${targetdir}/[file dirname ${sourcescript}]" -+set targetscript "${targetscriptdir}/${testfile}-gdb.gdb" -+ -+remote_exec host "rm -rf ${targetdir}" -+remote_exec host "mkdir -p ${targetscriptdir}" -+remote_exec host "cp ${sourcescript} ${targetscript}" -+ -+gdb_test_no_output "set auto-load scripts-directory ${targetdir}" "set auto-load scripts-directory" -+gdb_test_no_output "set auto-load safe-path ${targetscript}" "set auto-load safe-path" -+ -+gdb_load ${binfile} -+ -+gdb_test {print $script_loaded} " = 42" - ---6c2NcOVqGQ03X4Wi-- - diff --git a/gdb-python-stacksmash.patch b/gdb-python-stacksmash.patch deleted file mode 100644 index c36e65f..0000000 --- a/gdb-python-stacksmash.patch +++ /dev/null @@ -1,65 +0,0 @@ -http://sourceware.org/ml/gdb-patches/2014-02/msg00216.html -Subject: [patch] [python] Re: GDB crashing on gdb.python/py-linetable.exp - - ---7AUc2qLy4jB3hD7Z -Content-Type: text/plain; charset=us-ascii -Content-Disposition: inline - -On Fri, 07 Feb 2014 11:45:04 +0100, Phil Muldoon wrote: -> I've tried most of the morning to reproduce this on Fedora 19, with -> -lmcheck and after several thousand test runs I can't reproduce. - -Due to the requirement of specific stack layout I found it is reproducible for -me on Fedora 20 x86_64 with (it sure could be reduced): - -CFLAGS="-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic" LDFLAGS="-static-libstdc++ -static-libgcc -Wl,-z,relro" ./configure --with-system-readline;make -(ulimit -c unlimited;/usr/bin/runtest gdb.python/py-linetable.exp) - -The fix is obvious, I will check it in. - -- int py_line; -+ gdb_py_longest py_line; -[...] - - - -Regards, -Jan - ---7AUc2qLy4jB3hD7Z -Content-Type: text/plain; charset=us-ascii -Content-Disposition: inline; filename=1 - -gdb/ -2014-02-07 Jan Kratochvil - - Fix Python stack corruption. - * python/py-linetable.c (ltpy_get_pcs_for_line, ltpy_has_line): Use - gdb_py_longest. - -diff --git a/gdb/python/py-linetable.c b/gdb/python/py-linetable.c -index e83d46d..8b5362b 100644 ---- a/gdb/python/py-linetable.c -+++ b/gdb/python/py-linetable.c -@@ -168,7 +168,7 @@ static PyObject * - ltpy_get_pcs_for_line (PyObject *self, PyObject *args) - { - struct symtab *symtab; -- int py_line; -+ gdb_py_longest py_line; - struct linetable_entry *best_entry = NULL; - linetable_entry_object *result; - VEC (CORE_ADDR) *pcs = NULL; -@@ -200,7 +200,7 @@ static PyObject * - ltpy_has_line (PyObject *self, PyObject *args) - { - struct symtab *symtab; -- int py_line; -+ gdb_py_longest py_line; - int index; - - LTPY_REQUIRE_VALID (self, symtab); - ---7AUc2qLy4jB3hD7Z-- - diff --git a/gdb.spec b/gdb.spec index 6d27e79..86cfade 100644 --- a/gdb.spec +++ b/gdb.spec @@ -35,11 +35,11 @@ Name: %{?scl_prefix}gdb %global snapsrc 20140108 # See timestamp of source gnulib installed into gdb/gnulib/ . %global snapgnulib 20121213 -Version: 7.7 +Version: 7.7.1 # 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: 9%{?dist} +Release: 10%{?dist} License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and BSD and Public Domain and GFDL Group: Development/Debuggers @@ -527,23 +527,14 @@ Patch843: gdb-enable-count-crash.patch # Fix testsuite "ERROR: no fileid for". Patch846: gdb-testsuite-nohostid.patch -# Fix Python stack corruption. -Patch847: gdb-python-stacksmash.patch - # [rhel6] DTS backward Python compatibility API (BZ 1020004, Phil Muldoon). Patch848: gdb-dts-rhel6-python-compat.patch -# Fix gdb-7.7 auto-load from /usr/share/gdb/auto-load/ regression. -Patch849: gdb-auto-load-lost-path-7.7.patch - # Fix crash of -readnow /usr/lib/debug/usr/bin/gnatbind.debug (BZ 1069211). Patch850: gdb-gnat-dwarf-crash-1of3.patch Patch851: gdb-gnat-dwarf-crash-2of3.patch Patch852: gdb-gnat-dwarf-crash-3of3.patch -# Fix build failures for GCC 4.9 (Nick Clifton). -Patch864: gcc-4.9-compat.patch - # Fix TLS access for -static -pthread (BZ 1080660). Patch865: gdb-static-tls-1of2.patch Patch866: gdb-static-tls-2of2.patch @@ -842,13 +833,10 @@ find -name "*.info*"|xargs rm -f %patch832 -p1 %patch843 -p1 %patch846 -p1 -%patch847 -p1 -%patch849 -p1 %patch850 -p1 %patch851 -p1 %patch852 -p1 %patch863 -p1 -%patch864 -p1 %patch865 -p1 %patch866 -p1 @@ -1382,6 +1370,9 @@ fi %endif # 0%{!?el5:1} || "%{_target_cpu}" == "noarch" %changelog +* Tue May 6 2014 Sergio Durigan Junior - 7.7.1-10.fc21 +- Rebase to FSF GDB 7.7.1. + * Mon May 5 2014 Sergio Durigan Junior - 7.7-9.fc21 - Improve testcase message for RH BZ 981154. diff --git a/sources b/sources index 25660cf..93afe54 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ 4981307aa9619bbec5b73261e4e41c8d gdb-libstdc++-v3-python-r155978.tar.bz2 -271a18f41858a7e98b28ae4eb91287c9 gdb-7.7.tar.bz2 +77b20b515e7c25f032cb9732a66620fe gdb-7.7.1.tar.bz2