From 324d13e10b94e9e2dd354db5c2cddf38854e4176 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20R=C4=99korajski?= Date: Mon, 7 Sep 2015 20:53:41 +0200 Subject: [PATCH] - updated to 7.10 and patches from fedora --- buildid-locate-rpm-pld.patch | 9 +- gdb-6.6-buildid-locate-core-as-arg.patch | 44 +- ...warning-missing-debuginfo-rhbz981154.patch | 38 +- gdb-6.6-buildid-locate-rpm.patch | 110 ++-- ...6.6-buildid-locate-solib-missing-ids.patch | 30 +- gdb-6.6-buildid-locate.patch | 229 +++++---- gdb-vla-intel-stringbt-fix.patch | 40 +- gdb-vla-intel.patch | 478 ++++++++---------- gdb.spec | 6 +- 9 files changed, 499 insertions(+), 485 deletions(-) diff --git a/buildid-locate-rpm-pld.patch b/buildid-locate-rpm-pld.patch index 5bef82d..a571282 100644 --- a/buildid-locate-rpm-pld.patch +++ b/buildid-locate-rpm-pld.patch @@ -1,11 +1,16 @@ --- gdb-7.7.1/gdb/build-id.c.old 2014-06-05 14:31:11.000000000 +0200 +++ gdb-7.7.1/gdb/build-id.c 2014-06-05 14:33:12.248235380 +0200 -@@ -1190,8 +1190,8 @@ +@@ -1190,13 +1190,8 @@ fprintf_unfiltered (gdb_stdlog, _("Missing separate debuginfo for %s\n"), binary); if (debug != NULL) - fprintf_unfiltered (gdb_stdlog, _("Try: %s %s\n"), -- "yum --enablerepo='*debug*' install", debug); +-#ifdef DNF_DEBUGINFO_INSTALL +- "dnf" +-#else +- "yum" +-#endif +- " --enablerepo='*debug*' install", debug); + fprintf_unfiltered (gdb_stdlog, _("Try to install package that provides `%s' file\n"), + debug); } diff --git a/gdb-6.6-buildid-locate-core-as-arg.patch b/gdb-6.6-buildid-locate-core-as-arg.patch index c98e686..523b7e0 100644 --- a/gdb-6.6-buildid-locate-core-as-arg.patch +++ b/gdb-6.6-buildid-locate-core-as-arg.patch @@ -58,10 +58,10 @@ Http://sourceware.org/ml/gdb-patches/2010-01/msg00517.html * exec.c (exec_file_attach): Print a more useful error message if the user did "gdb core". -Index: gdb-7.8.50.20141228/gdb/exec.c +Index: gdb-7.9.50.20150531/gdb/exec.c =================================================================== ---- gdb-7.8.50.20141228.orig/gdb/exec.c 2015-01-03 23:18:38.097427908 +0100 -+++ gdb-7.8.50.20141228/gdb/exec.c 2015-01-03 23:19:02.448556391 +0100 +--- gdb-7.9.50.20150531.orig/gdb/exec.c 2015-05-31 03:48:29.000000000 +0200 ++++ gdb-7.9.50.20150531/gdb/exec.c 2015-05-31 20:07:35.092878685 +0200 @@ -35,6 +35,7 @@ #include "progspace.h" #include "gdb_bfd.h" @@ -70,7 +70,7 @@ Index: gdb-7.8.50.20141228/gdb/exec.c #include #include "readline/readline.h" -@@ -222,12 +223,27 @@ exec_file_attach (const char *filename, +@@ -298,12 +299,27 @@ exec_file_attach (const char *filename, if (!bfd_check_format_matches (exec_bfd, bfd_object, &matching)) { @@ -101,11 +101,11 @@ Index: gdb-7.8.50.20141228/gdb/exec.c } if (build_section_table (exec_bfd, §ions, §ions_end)) -Index: gdb-7.8.50.20141228/gdb/main.c +Index: gdb-7.9.50.20150531/gdb/main.c =================================================================== ---- gdb-7.8.50.20141228.orig/gdb/main.c 2015-01-03 23:18:38.098427913 +0100 -+++ gdb-7.8.50.20141228/gdb/main.c 2015-01-03 23:22:10.157546792 +0100 -@@ -426,6 +426,36 @@ typedef struct cmdarg { +--- gdb-7.9.50.20150531.orig/gdb/main.c 2015-05-31 20:07:34.183872824 +0200 ++++ gdb-7.9.50.20150531/gdb/main.c 2015-05-31 20:10:05.095845935 +0200 +@@ -435,6 +435,37 @@ typedef struct cmdarg { /* Define type VEC (cmdarg_s). */ DEF_VEC_O (cmdarg_s); @@ -120,11 +120,11 @@ Index: gdb-7.8.50.20141228/gdb/main.c + + gdb_assert (exec_bfd == NULL); + -+ TRY_CATCH (e, RETURN_MASK_ALL) ++ TRY + { + exec_file_attach (filename, from_tty); + } -+ if (e.reason < 0) ++ CATCH (e, RETURN_MASK_ALL) + { + if (e.error == IS_CORE_ERROR) + { @@ -137,12 +137,13 @@ Index: gdb-7.8.50.20141228/gdb/main.c + } + throw_exception (e); + } ++ END_CATCH +} + static int captured_main (void *data) { -@@ -910,6 +940,8 @@ captured_main (void *data) +@@ -923,6 +954,8 @@ captured_main (void *data) { symarg = argv[optind]; execarg = argv[optind]; @@ -151,7 +152,7 @@ Index: gdb-7.8.50.20141228/gdb/main.c optind++; } -@@ -1069,11 +1101,26 @@ captured_main (void *data) +@@ -1080,11 +1113,25 @@ captured_main (void *data) && symarg != NULL && strcmp (execarg, symarg) == 0) { @@ -171,23 +172,22 @@ Index: gdb-7.8.50.20141228/gdb/main.c open it, better only print one error message. - catch_command_errors returns non-zero on success! */ - if (catch_command_errors_const (exec_file_attach, execarg, -- !batch_flag, RETURN_MASK_ALL)) +- !batch_flag)) + catch_command_errors returns non-zero on success! + Do not load EXECARG as a symbol file if it has been already processed + as a core file. */ -+ if (catch_command_errors_const (func, execarg, !batch_flag, -+ RETURN_MASK_ALL) ++ if (catch_command_errors_const (func, execarg, !batch_flag) + && core_bfd == NULL) catch_command_errors_const (symbol_file_add_main, symarg, - !batch_flag, RETURN_MASK_ALL); + !batch_flag); } -Index: gdb-7.8.50.20141228/gdb/common/common-exceptions.h +Index: gdb-7.9.50.20150531/gdb/common/common-exceptions.h =================================================================== ---- gdb-7.8.50.20141228.orig/gdb/common/common-exceptions.h 2015-01-03 23:18:38.097427908 +0100 -+++ gdb-7.8.50.20141228/gdb/common/common-exceptions.h 2015-01-03 23:19:02.449556396 +0100 -@@ -99,6 +99,9 @@ enum errors { - /* Requested feature, method, mechanism, etc. is not supported. */ - NOT_SUPPORTED_ERROR, +--- gdb-7.9.50.20150531.orig/gdb/common/common-exceptions.h 2015-05-31 03:48:29.000000000 +0200 ++++ gdb-7.9.50.20150531/gdb/common/common-exceptions.h 2015-05-31 20:07:35.093878692 +0200 +@@ -105,6 +105,9 @@ enum errors { + "_ERROR" is appended to the name. */ + MAX_COMPLETIONS_REACHED_ERROR, + /* Attempt to load a core file as executable. */ + IS_CORE_ERROR, diff --git a/gdb-6.6-buildid-locate-misleading-warning-missing-debuginfo-rhbz981154.patch b/gdb-6.6-buildid-locate-misleading-warning-missing-debuginfo-rhbz981154.patch index 044a408..b3750cd 100644 --- a/gdb-6.6-buildid-locate-misleading-warning-missing-debuginfo-rhbz981154.patch +++ b/gdb-6.6-buildid-locate-misleading-warning-missing-debuginfo-rhbz981154.patch @@ -15,10 +15,10 @@ Comments by Sergio Durigan Junior : NULL after it is free'd, otherwise the code below thinks that it is still valid and doesn't print the necessary warning ("Try: yum install ..."). -Index: gdb-7.7/gdb/testsuite/gdb.base/rhbz981154-misleading-yum-install-warning.exp +Index: gdb-7.9.90.20150709/gdb/testsuite/gdb.base/rhbz981154-misleading-yum-install-warning.exp =================================================================== ---- /dev/null -+++ gdb-7.7/gdb/testsuite/gdb.base/rhbz981154-misleading-yum-install-warning.exp +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ gdb-7.9.90.20150709/gdb/testsuite/gdb.base/rhbz981154-misleading-yum-install-warning.exp 2015-07-09 22:22:26.278304653 +0200 @@ -0,0 +1,97 @@ +# Copyright (C) 2014 Free Software Foundation, Inc. + @@ -75,7 +75,7 @@ Index: gdb-7.7/gdb/testsuite/gdb.base/rhbz981154-misleading-yum-install-warning. +# Move the binfile to a temporary name +remote_exec build "mv $binfile ${binfile}.old" + -+# Reinitialize GDB and see if we get a yum warning ++# Reinitialize GDB and see if we get a yum/dnf warning +gdb_exit +gdb_start +gdb_reinitialize_dir $srcdir/$subdir @@ -88,8 +88,8 @@ Index: gdb-7.7/gdb/testsuite/gdb.base/rhbz981154-misleading-yum-install-warning. + "set debug-file-directory" + + gdb_test "core-file ${objdir}/${subdir}/gcore.test" \ -+ "Missing separate debuginfo for the main executable file\r\nTry: yum --enablerepo='\\*debug\\*' install $objdir/$subdir/$build_id_without_debug\r\n.*" \ -+ "test first yum warning" ++ "Missing separate debuginfo for the main executable file\r\nTry: (yum|dnf) --enablerepo='\\*debug\\*' install $objdir/$subdir/$build_id_without_debug\r\n.*" \ ++ "test first yum/dnf warning" +} + +# Now we define and create our .build-id @@ -98,7 +98,7 @@ Index: gdb-7.7/gdb/testsuite/gdb.base/rhbz981154-misleading-yum-install-warning. +# exist. +remote_exec build "ln -s $binfile ${objdir}/${subdir}/${build_id_without_debug}" + -+# Reinitialize GDB to get the second yum warning ++# Reinitialize GDB to get the second yum/dnf warning +gdb_exit +gdb_start +gdb_reinitialize_dir $srcdir/$subdir @@ -111,21 +111,25 @@ Index: gdb-7.7/gdb/testsuite/gdb.base/rhbz981154-misleading-yum-install-warning. + "set debug-file-directory" + + gdb_test "core-file ${objdir}/${subdir}/gcore.test" \ -+ "Missing separate debuginfo for the main executable file\r\nTry: yum --enablerepo='\\*debug\\*' install $binfile\r\n.*" \ -+ "test second yum warning" ++ "Missing separate debuginfo for the main executable file\r\nTry: (yum|dnf) --enablerepo='\\*debug\\*' install $binfile\r\n.*" \ ++ "test second yum/dnf warning" +} + +# Leaving the link there will cause breakage in the next run. +remote_exec build "rm -f ${objdir}/${subdir}/${build_id_without_debug}" -Index: gdb-7.7/gdb/build-id.c +Index: gdb-7.9.90.20150709/gdb/build-id.c =================================================================== ---- gdb-7.7.orig/gdb/build-id.c -+++ gdb-7.7/gdb/build-id.c -@@ -588,6 +588,7 @@ build_id_to_debug_bfd (size_t build_id_l +--- gdb-7.9.90.20150709.orig/gdb/build-id.c 2015-07-09 22:22:26.278304653 +0200 ++++ gdb-7.9.90.20150709/gdb/build-id.c 2015-07-09 22:22:51.398502329 +0200 +@@ -589,7 +589,10 @@ build_id_to_debug_bfd (size_t build_id_l + do_cleanups (inner); + if (abfd == NULL) - { - xfree (filename); +- continue; ++ { + filename = NULL; - continue; - } ++ continue; ++ } + if (build_id_verify (abfd, build_id_len, build_id)) + break; diff --git a/gdb-6.6-buildid-locate-rpm.patch b/gdb-6.6-buildid-locate-rpm.patch index 8dc4bcc..9e850dd 100644 --- a/gdb-6.6-buildid-locate-rpm.patch +++ b/gdb-6.6-buildid-locate-rpm.patch @@ -1,7 +1,7 @@ -Index: gdb-7.8.50.20141228/gdb/event-top.c +Index: gdb-7.9.90.20150717/gdb/event-top.c =================================================================== ---- gdb-7.8.50.20141228.orig/gdb/event-top.c 2015-01-01 17:12:24.881489087 +0100 -+++ gdb-7.8.50.20141228/gdb/event-top.c 2015-01-01 17:12:28.821486803 +0100 +--- gdb-7.9.90.20150717.orig/gdb/event-top.c 2015-07-17 03:59:12.000000000 +0200 ++++ gdb-7.9.90.20150717/gdb/event-top.c 2015-08-01 20:07:15.822993674 +0200 @@ -37,6 +37,7 @@ #include "gdbcmd.h" /* for dont_repeat() */ #include "annotate.h" @@ -28,24 +28,24 @@ Index: gdb-7.8.50.20141228/gdb/event-top.c old_chain = make_cleanup (free_current_contents, &actual_gdb_prompt); /* Do not call the python hook on an explicit prompt change as -Index: gdb-7.8.50.20141228/gdb/symfile.h +Index: gdb-7.9.90.20150717/gdb/symfile.h =================================================================== ---- gdb-7.8.50.20141228.orig/gdb/symfile.h 2015-01-01 17:12:24.881489087 +0100 -+++ gdb-7.8.50.20141228/gdb/symfile.h 2015-01-01 17:12:28.822486802 +0100 -@@ -577,6 +577,8 @@ void map_symbol_filenames (symbol_filena +--- gdb-7.9.90.20150717.orig/gdb/symfile.h 2015-08-01 20:07:15.787993404 +0200 ++++ gdb-7.9.90.20150717/gdb/symfile.h 2015-08-01 20:07:15.822993674 +0200 +@@ -587,6 +587,8 @@ void map_symbol_filenames (symbol_filena /* build-id support. */ - extern struct elf_build_id *build_id_addr_get (CORE_ADDR addr); + extern struct bfd_build_id *build_id_addr_get (CORE_ADDR addr); extern void debug_print_missing (const char *binary, const char *debug); +extern void debug_flush_missing (void); +#define BUILD_ID_MAIN_EXECUTABLE_FILENAME _("the main executable file") /* From dwarf2read.c */ -Index: gdb-7.8.50.20141228/gdb/testsuite/lib/gdb.exp +Index: gdb-7.9.90.20150717/gdb/testsuite/lib/gdb.exp =================================================================== ---- gdb-7.8.50.20141228.orig/gdb/testsuite/lib/gdb.exp 2015-01-01 17:12:24.883489085 +0100 -+++ gdb-7.8.50.20141228/gdb/testsuite/lib/gdb.exp 2015-01-01 17:12:28.823486801 +0100 -@@ -1522,7 +1522,7 @@ proc default_gdb_start { } { +--- gdb-7.9.90.20150717.orig/gdb/testsuite/lib/gdb.exp 2015-08-01 20:07:15.789993420 +0200 ++++ gdb-7.9.90.20150717/gdb/testsuite/lib/gdb.exp 2015-08-01 20:07:15.824993689 +0200 +@@ -1573,7 +1573,7 @@ proc default_gdb_start { } { warning "Couldn't set the width to 0." } } @@ -54,10 +54,10 @@ Index: gdb-7.8.50.20141228/gdb/testsuite/lib/gdb.exp send_gdb "set build-id-verbose 0\n" gdb_expect 10 { -re "$gdb_prompt $" { -Index: gdb-7.8.50.20141228/gdb/testsuite/lib/mi-support.exp +Index: gdb-7.9.90.20150717/gdb/testsuite/lib/mi-support.exp =================================================================== ---- gdb-7.8.50.20141228.orig/gdb/testsuite/lib/mi-support.exp 2015-01-01 17:12:24.884489085 +0100 -+++ gdb-7.8.50.20141228/gdb/testsuite/lib/mi-support.exp 2015-01-01 17:12:28.823486801 +0100 +--- gdb-7.9.90.20150717.orig/gdb/testsuite/lib/mi-support.exp 2015-08-01 20:07:15.789993420 +0200 ++++ gdb-7.9.90.20150717/gdb/testsuite/lib/mi-support.exp 2015-08-01 20:07:15.824993689 +0200 @@ -214,7 +214,7 @@ proc default_mi_gdb_start { args } { warning "Couldn't set the width to 0." } @@ -67,10 +67,10 @@ Index: gdb-7.8.50.20141228/gdb/testsuite/lib/mi-support.exp send_gdb "190-gdb-set build-id-verbose 0\n" gdb_expect 10 { -re ".*190-gdb-set build-id-verbose 0\r\n190\\\^done\r\n$mi_gdb_prompt$" { -Index: gdb-7.8.50.20141228/gdb/tui/tui-interp.c +Index: gdb-7.9.90.20150717/gdb/tui/tui-interp.c =================================================================== ---- gdb-7.8.50.20141228.orig/gdb/tui/tui-interp.c 2015-01-01 17:12:28.824486801 +0100 -+++ gdb-7.8.50.20141228/gdb/tui/tui-interp.c 2015-01-01 17:12:43.240478444 +0100 +--- gdb-7.9.90.20150717.orig/gdb/tui/tui-interp.c 2015-07-17 03:59:13.000000000 +0200 ++++ gdb-7.9.90.20150717/gdb/tui/tui-interp.c 2015-08-01 20:07:15.825993697 +0200 @@ -31,6 +31,7 @@ #include "tui/tui-io.h" #include "infrun.h" @@ -79,10 +79,10 @@ Index: gdb-7.8.50.20141228/gdb/tui/tui-interp.c static struct ui_out *tui_ui_out (struct interp *self); -Index: gdb-7.8.50.20141228/gdb/aclocal.m4 +Index: gdb-7.9.90.20150717/gdb/aclocal.m4 =================================================================== ---- gdb-7.8.50.20141228.orig/gdb/aclocal.m4 2015-01-01 17:12:24.885489084 +0100 -+++ gdb-7.8.50.20141228/gdb/aclocal.m4 2015-01-01 17:12:28.824486801 +0100 +--- gdb-7.9.90.20150717.orig/gdb/aclocal.m4 2015-07-17 03:59:12.000000000 +0200 ++++ gdb-7.9.90.20150717/gdb/aclocal.m4 2015-08-01 20:07:15.825993697 +0200 @@ -11,6 +11,221 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @@ -305,10 +305,10 @@ Index: gdb-7.8.50.20141228/gdb/aclocal.m4 # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. -Index: gdb-7.8.50.20141228/gdb/config.in +Index: gdb-7.9.90.20150717/gdb/config.in =================================================================== ---- gdb-7.8.50.20141228.orig/gdb/config.in 2015-01-01 17:12:24.885489084 +0100 -+++ gdb-7.8.50.20141228/gdb/config.in 2015-01-01 17:12:28.824486801 +0100 +--- gdb-7.9.90.20150717.orig/gdb/config.in 2015-07-17 03:59:12.000000000 +0200 ++++ gdb-7.9.90.20150717/gdb/config.in 2015-08-01 20:07:15.826993704 +0200 @@ -33,6 +33,9 @@ /* Define to BFD's default target vector. */ #undef DEFAULT_BFD_VEC @@ -319,7 +319,7 @@ Index: gdb-7.8.50.20141228/gdb/config.in /* Define to 1 if translation of program messages to the user's native language is requested. */ #undef ENABLE_NLS -@@ -207,6 +210,9 @@ +@@ -258,6 +261,9 @@ /* Define if Python 2.7 is being used. */ #undef HAVE_LIBPYTHON2_7 @@ -329,11 +329,11 @@ Index: gdb-7.8.50.20141228/gdb/config.in /* Define to 1 if you have the header file. */ #undef HAVE_LIBUNWIND_IA64_H -Index: gdb-7.8.50.20141228/gdb/configure +Index: gdb-7.9.90.20150717/gdb/configure =================================================================== ---- gdb-7.8.50.20141228.orig/gdb/configure 2015-01-01 17:12:24.891489081 +0100 -+++ gdb-7.8.50.20141228/gdb/configure 2015-01-01 17:12:28.828486798 +0100 -@@ -698,6 +698,11 @@ PKGVERSION +--- gdb-7.9.90.20150717.orig/gdb/configure 2015-07-17 03:59:12.000000000 +0200 ++++ gdb-7.9.90.20150717/gdb/configure 2015-08-01 20:07:15.830993735 +0200 +@@ -703,6 +703,11 @@ PKGVERSION HAVE_NATIVE_GCORE_TARGET TARGET_OBS subdirs @@ -345,7 +345,7 @@ Index: gdb-7.8.50.20141228/gdb/configure GDB_DATADIR DEBUGDIR MAKEINFO_EXTRA_FLAGS -@@ -801,6 +806,7 @@ with_gdb_datadir +@@ -811,6 +816,7 @@ with_gdb_datadir with_relocated_sources with_auto_load_dir with_auto_load_safe_path @@ -353,7 +353,7 @@ Index: gdb-7.8.50.20141228/gdb/configure enable_targets enable_64_bit_bfd enable_gdbcli -@@ -852,6 +858,11 @@ CPPFLAGS +@@ -867,6 +873,11 @@ CCC CPP MAKEINFO MAKEINFOFLAGS @@ -365,7 +365,7 @@ Index: gdb-7.8.50.20141228/gdb/configure YACC YFLAGS XMKMF' -@@ -1522,6 +1533,8 @@ Optional Packages: +@@ -1538,6 +1549,8 @@ Optional Packages: [--with-auto-load-dir] --without-auto-load-safe-path do not restrict auto-loaded files locations @@ -374,7 +374,7 @@ Index: gdb-7.8.50.20141228/gdb/configure --with-libunwind-ia64 use libunwind frame unwinding for ia64 targets --with-curses use the curses library instead of the termcap library -@@ -1571,6 +1584,13 @@ Some influential environment variables: +@@ -1592,6 +1605,13 @@ Some influential environment variables: MAKEINFO Parent configure detects if it is of sufficient version. MAKEINFOFLAGS Parameters for MAKEINFO. @@ -388,7 +388,7 @@ Index: gdb-7.8.50.20141228/gdb/configure YACC The `Yet Another C Compiler' implementation to use. Defaults to the first program found out of: `bison -y', `byacc', `yacc'. YFLAGS The list of arguments that will be passed by default to $YACC. -@@ -5267,6 +5287,491 @@ _ACEOF +@@ -5608,6 +5628,491 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_auto_load_safe_path" >&5 $as_echo "$with_auto_load_safe_path" >&6; } @@ -880,11 +880,11 @@ Index: gdb-7.8.50.20141228/gdb/configure subdirs="$subdirs testsuite" -Index: gdb-7.8.50.20141228/gdb/configure.ac +Index: gdb-7.9.90.20150717/gdb/configure.ac =================================================================== ---- gdb-7.8.50.20141228.orig/gdb/configure.ac 2015-01-01 17:12:24.893489079 +0100 -+++ gdb-7.8.50.20141228/gdb/configure.ac 2015-01-01 17:12:28.829486798 +0100 -@@ -172,6 +172,199 @@ AC_DEFINE_DIR(AUTO_LOAD_SAFE_PATH, escap +--- gdb-7.9.90.20150717.orig/gdb/configure.ac 2015-07-17 03:59:12.000000000 +0200 ++++ gdb-7.9.90.20150717/gdb/configure.ac 2015-08-01 20:07:15.831993743 +0200 +@@ -177,6 +177,199 @@ AC_DEFINE_DIR(AUTO_LOAD_SAFE_PATH, escap [Directories safe to hold auto-loaded files.]) AC_MSG_RESULT([$with_auto_load_safe_path]) @@ -1084,10 +1084,10 @@ Index: gdb-7.8.50.20141228/gdb/configure.ac AC_CONFIG_SUBDIRS(testsuite) # Check whether to support alternative target configurations -Index: gdb-7.8.50.20141228/gdb/corelow.c +Index: gdb-7.9.90.20150717/gdb/corelow.c =================================================================== ---- gdb-7.8.50.20141228.orig/gdb/corelow.c 2015-01-01 17:12:24.894489079 +0100 -+++ gdb-7.8.50.20141228/gdb/corelow.c 2015-01-01 17:12:28.829486798 +0100 +--- gdb-7.9.90.20150717.orig/gdb/corelow.c 2015-08-01 20:07:15.775993312 +0200 ++++ gdb-7.9.90.20150717/gdb/corelow.c 2015-08-01 20:07:15.831993743 +0200 @@ -310,7 +310,7 @@ build_id_locate_exec (int from_tty) symfile_objfile->flags |= OBJF_BUILD_ID_CORE_LOADED; } @@ -1097,19 +1097,19 @@ Index: gdb-7.8.50.20141228/gdb/corelow.c do_cleanups (back_to); -Index: gdb-7.8.50.20141228/gdb/build-id.c +Index: gdb-7.9.90.20150717/gdb/build-id.c =================================================================== ---- gdb-7.8.50.20141228.orig/gdb/build-id.c 2015-01-01 17:12:24.894489079 +0100 -+++ gdb-7.8.50.20141228/gdb/build-id.c 2015-01-01 17:12:28.830486797 +0100 -@@ -31,6 +31,7 @@ - #include "gdbcmd.h" - #include "observer.h" +--- gdb-7.9.90.20150717.orig/gdb/build-id.c 2015-08-01 20:07:15.791993435 +0200 ++++ gdb-7.9.90.20150717/gdb/build-id.c 2015-08-01 20:08:27.735546630 +0200 +@@ -35,6 +35,7 @@ + #include "elf/common.h" + #include "elf-bfd.h" #include +#include "elf/external.h" #define BUILD_ID_VERBOSE_NONE 0 #define BUILD_ID_VERBOSE_FILENAMES 1 -@@ -664,8 +665,360 @@ build_id_to_filename (const struct elf_b +@@ -665,8 +666,363 @@ build_id_to_filename (const struct bfd_b return result; } @@ -1409,6 +1409,9 @@ Index: gdb-7.8.50.20141228/gdb/build-id.c + (int (*) (const void *, const void *)) missing_rpm_list_compar); + + printf_unfiltered (_("Missing separate debuginfos, use: %s"), ++#ifdef DNF_DEBUGINFO_INSTALL ++ "dnf " ++#endif + "debuginfo-install"); + for (array_iter = array; array_iter < array + missing_rpm_list_entries; + array_iter++) @@ -1471,7 +1474,7 @@ Index: gdb-7.8.50.20141228/gdb/build-id.c avoidance. */ struct missing_filepair -@@ -719,11 +1072,17 @@ missing_filepair_change (void) +@@ -720,11 +1076,17 @@ missing_filepair_change (void) /* All their memory came just from missing_filepair_OBSTACK. */ missing_filepair_hash = NULL; } @@ -1489,7 +1492,7 @@ Index: gdb-7.8.50.20141228/gdb/build-id.c missing_filepair_change (); } -@@ -790,14 +1149,34 @@ debug_print_missing (const char *binary, +@@ -791,14 +1153,39 @@ debug_print_missing (const char *binary, *slot = missing_filepair; @@ -1526,7 +1529,12 @@ Index: gdb-7.8.50.20141228/gdb/build-id.c + _("Missing separate debuginfo for %s\n"), binary); + if (debug != NULL) + fprintf_unfiltered (gdb_stdlog, _("Try: %s %s\n"), -+ "yum --enablerepo='*debug*' install", debug); ++#ifdef DNF_DEBUGINFO_INSTALL ++ "dnf" ++#else ++ "yum" ++#endif ++ " --enablerepo='*debug*' install", debug); + } } diff --git a/gdb-6.6-buildid-locate-solib-missing-ids.patch b/gdb-6.6-buildid-locate-solib-missing-ids.patch index 9ad7fcb..a89893c 100644 --- a/gdb-6.6-buildid-locate-solib-missing-ids.patch +++ b/gdb-6.6-buildid-locate-solib-missing-ids.patch @@ -1,20 +1,20 @@ -Index: gdb-7.5.50.20130310/gdb/solib-svr4.c +Index: gdb-7.9.90.20150709/gdb/solib-svr4.c =================================================================== ---- gdb-7.5.50.20130310.orig/gdb/solib-svr4.c 2013-03-10 16:37:49.000000000 +0100 -+++ gdb-7.5.50.20130310/gdb/solib-svr4.c 2013-03-10 16:43:45.498585091 +0100 -@@ -1225,14 +1225,27 @@ svr4_read_so_list (CORE_ADDR lm, struct +--- gdb-7.9.90.20150709.orig/gdb/solib-svr4.c 2015-07-09 18:18:54.526417766 +0200 ++++ gdb-7.9.90.20150709/gdb/solib-svr4.c 2015-07-09 18:19:33.074746586 +0200 +@@ -1381,14 +1381,27 @@ svr4_read_so_list (CORE_ADDR lm, CORE_AD } { -- struct elf_build_id *build_id; -+ struct elf_build_id *build_id = NULL; +- struct bfd_build_id *build_id; ++ struct bfd_build_id *build_id = NULL; - strncpy (new->so_original_name, buffer, SO_NAME_MAX_PATH_SIZE - 1); - new->so_original_name[SO_NAME_MAX_PATH_SIZE - 1] = '\0'; + strncpy (newobj->so_original_name, buffer, SO_NAME_MAX_PATH_SIZE - 1); + newobj->so_original_name[SO_NAME_MAX_PATH_SIZE - 1] = '\0'; /* May get overwritten below. */ - strcpy (new->so_name, new->so_original_name); + strcpy (newobj->so_name, newobj->so_original_name); -- build_id = build_id_addr_get (new->lm_info->l_ld); +- build_id = build_id_addr_get (newobj->lm_info->l_ld); + /* In the case the main executable was found according to its build-id + (from a core file) prevent loading a different build of a library + with accidentally the same SO_NAME. @@ -28,16 +28,16 @@ Index: gdb-7.5.50.20130310/gdb/solib-svr4.c + to the only existing file loaded that time - the executable. */ + if (symfile_objfile != NULL + && (symfile_objfile->flags & OBJF_BUILD_ID_CORE_LOADED) != 0) -+ build_id = build_id_addr_get (new->lm_info->l_ld); ++ build_id = build_id_addr_get (newobj->lm_info->l_ld); if (build_id != NULL) { char *name, *build_id_filename; -@@ -1247,23 +1260,7 @@ svr4_read_so_list (CORE_ADDR lm, struct +@@ -1403,23 +1416,7 @@ svr4_read_so_list (CORE_ADDR lm, CORE_AD xfree (name); } else - { -- debug_print_missing (new->so_name, build_id_filename); +- debug_print_missing (newobj->so_name, build_id_filename); - - /* In the case the main executable was found according to - its build-id (from a core file) prevent loading @@ -51,9 +51,9 @@ Index: gdb-7.5.50.20130310/gdb/solib-svr4.c - if (symfile_objfile != NULL - && (symfile_objfile->flags - & OBJF_BUILD_ID_CORE_LOADED) != 0) -- new->so_name[0] = 0; +- newobj->so_name[0] = 0; - } -+ debug_print_missing (new->so_name, build_id_filename); ++ debug_print_missing (newobj->so_name, build_id_filename); xfree (build_id_filename); xfree (build_id); diff --git a/gdb-6.6-buildid-locate.patch b/gdb-6.6-buildid-locate.patch index 71de4d0..dc05c39 100644 --- a/gdb-6.6-buildid-locate.patch +++ b/gdb-6.6-buildid-locate.patch @@ -1,7 +1,7 @@ -Index: gdb-7.8.50.20141228/gdb/corelow.c +Index: gdb-7.9.90.20150709/gdb/corelow.c =================================================================== ---- gdb-7.8.50.20141228.orig/gdb/corelow.c 2015-01-03 23:11:54.018270090 +0100 -+++ gdb-7.8.50.20141228/gdb/corelow.c 2015-01-03 23:12:08.691349454 +0100 +--- gdb-7.9.90.20150709.orig/gdb/corelow.c 2015-07-09 22:05:20.988044312 +0200 ++++ gdb-7.9.90.20150709/gdb/corelow.c 2015-07-09 22:05:42.057222722 +0200 @@ -45,6 +45,10 @@ #include "gdb_bfd.h" #include "completer.h" @@ -23,7 +23,7 @@ Index: gdb-7.8.50.20141228/gdb/corelow.c +build_id_locate_exec (int from_tty) +{ + CORE_ADDR at_entry; -+ struct elf_build_id *build_id; ++ struct bfd_build_id *build_id; + char *execfilename, *debug_filename; + char *build_id_filename; + struct cleanup *back_to; @@ -67,7 +67,7 @@ Index: gdb-7.8.50.20141228/gdb/corelow.c /* This routine opens and sets up the core file bfd. */ static void -@@ -405,6 +456,14 @@ core_open (const char *arg, int from_tty +@@ -404,6 +455,14 @@ core_open (const char *arg, int from_tty switch_to_thread (thread->ptid); } @@ -82,7 +82,7 @@ Index: gdb-7.8.50.20141228/gdb/corelow.c post_create_inferior (&core_ops, from_tty); /* Now go through the target stack looking for threads since there -@@ -1035,4 +1094,11 @@ _initialize_corelow (void) +@@ -1058,4 +1117,11 @@ _initialize_corelow (void) init_core_ops (); add_target_with_completer (&core_ops, filename_completer); @@ -94,11 +94,11 @@ Index: gdb-7.8.50.20141228/gdb/corelow.c + NULL, NULL, NULL, + &setlist, &showlist); } -Index: gdb-7.8.50.20141228/gdb/doc/gdb.texinfo +Index: gdb-7.9.90.20150709/gdb/doc/gdb.texinfo =================================================================== ---- gdb-7.8.50.20141228.orig/gdb/doc/gdb.texinfo 2015-01-03 23:11:54.018270090 +0100 -+++ gdb-7.8.50.20141228/gdb/doc/gdb.texinfo 2015-01-03 23:12:08.701349509 +0100 -@@ -17930,6 +17930,27 @@ information files. +--- gdb-7.9.90.20150709.orig/gdb/doc/gdb.texinfo 2015-07-09 22:05:20.988044312 +0200 ++++ gdb-7.9.90.20150709/gdb/doc/gdb.texinfo 2015-07-09 22:05:42.067222806 +0200 +@@ -18304,6 +18304,27 @@ information files. @end table @@ -126,10 +126,10 @@ Index: gdb-7.8.50.20141228/gdb/doc/gdb.texinfo @cindex @code{.gnu_debuglink} sections @cindex debug link sections A debug link is a special section of the executable file named -Index: gdb-7.8.50.20141228/gdb/solib-svr4.c +Index: gdb-7.9.90.20150709/gdb/solib-svr4.c =================================================================== ---- gdb-7.8.50.20141228.orig/gdb/solib-svr4.c 2015-01-03 23:11:54.018270090 +0100 -+++ gdb-7.8.50.20141228/gdb/solib-svr4.c 2015-01-03 23:12:08.702349514 +0100 +--- gdb-7.9.90.20150709.orig/gdb/solib-svr4.c 2015-07-09 22:05:20.988044312 +0200 ++++ gdb-7.9.90.20150709/gdb/solib-svr4.c 2015-07-09 22:05:42.068222815 +0200 @@ -45,6 +45,7 @@ #include "auxv.h" #include "gdb_bfd.h" @@ -138,22 +138,22 @@ Index: gdb-7.8.50.20141228/gdb/solib-svr4.c static struct link_map_offsets *svr4_fetch_link_map_offsets (void); static int svr4_have_link_map_offsets (void); -@@ -1366,9 +1367,52 @@ svr4_read_so_list (CORE_ADDR lm, CORE_AD +@@ -1379,9 +1380,52 @@ svr4_read_so_list (CORE_ADDR lm, CORE_AD continue; } -- strncpy (new->so_name, buffer, SO_NAME_MAX_PATH_SIZE - 1); -- new->so_name[SO_NAME_MAX_PATH_SIZE - 1] = '\0'; -- strcpy (new->so_original_name, new->so_name); +- strncpy (newobj->so_name, buffer, SO_NAME_MAX_PATH_SIZE - 1); +- newobj->so_name[SO_NAME_MAX_PATH_SIZE - 1] = '\0'; +- strcpy (newobj->so_original_name, newobj->so_name); + { -+ struct elf_build_id *build_id; ++ struct bfd_build_id *build_id; + -+ strncpy (new->so_original_name, buffer, SO_NAME_MAX_PATH_SIZE - 1); -+ new->so_original_name[SO_NAME_MAX_PATH_SIZE - 1] = '\0'; ++ strncpy (newobj->so_original_name, buffer, SO_NAME_MAX_PATH_SIZE - 1); ++ newobj->so_original_name[SO_NAME_MAX_PATH_SIZE - 1] = '\0'; + /* May get overwritten below. */ -+ strcpy (new->so_name, new->so_original_name); ++ strcpy (newobj->so_name, newobj->so_original_name); + -+ build_id = build_id_addr_get (new->lm_info->l_ld); ++ build_id = build_id_addr_get (newobj->lm_info->l_ld); + if (build_id != NULL) + { + char *name, *build_id_filename; @@ -163,13 +163,13 @@ Index: gdb-7.8.50.20141228/gdb/solib-svr4.c + name = build_id_to_filename (build_id, &build_id_filename); + if (name != NULL) + { -+ strncpy (new->so_name, name, SO_NAME_MAX_PATH_SIZE - 1); -+ new->so_name[SO_NAME_MAX_PATH_SIZE - 1] = '\0'; ++ strncpy (newobj->so_name, name, SO_NAME_MAX_PATH_SIZE - 1); ++ newobj->so_name[SO_NAME_MAX_PATH_SIZE - 1] = '\0'; + xfree (name); + } + else + { -+ debug_print_missing (new->so_name, build_id_filename); ++ debug_print_missing (newobj->so_name, build_id_filename); + + /* In the case the main executable was found according to + its build-id (from a core file) prevent loading @@ -183,7 +183,7 @@ Index: gdb-7.8.50.20141228/gdb/solib-svr4.c + if (symfile_objfile != NULL + && (symfile_objfile->flags + & OBJF_BUILD_ID_CORE_LOADED) != 0) -+ new->so_name[0] = 0; ++ newobj->so_name[0] = 0; + } + + xfree (build_id_filename); @@ -194,11 +194,11 @@ Index: gdb-7.8.50.20141228/gdb/solib-svr4.c xfree (buffer); /* If this entry has no name, or its name matches the name -Index: gdb-7.8.50.20141228/gdb/elfread.c +Index: gdb-7.9.90.20150709/gdb/elfread.c =================================================================== ---- gdb-7.8.50.20141228.orig/gdb/elfread.c 2015-01-03 23:11:54.018270090 +0100 -+++ gdb-7.8.50.20141228/gdb/elfread.c 2015-01-03 23:12:08.703349519 +0100 -@@ -1339,9 +1339,10 @@ elf_symfile_read (struct objfile *objfil +--- gdb-7.9.90.20150709.orig/gdb/elfread.c 2015-07-09 22:05:20.988044312 +0200 ++++ gdb-7.9.90.20150709/gdb/elfread.c 2015-07-09 22:05:42.068222815 +0200 +@@ -1250,9 +1250,10 @@ elf_symfile_read (struct objfile *objfil && objfile->separate_debug_objfile == NULL && objfile->separate_debug_objfile_backlink == NULL) { @@ -211,7 +211,7 @@ Index: gdb-7.8.50.20141228/gdb/elfread.c if (debugfile == NULL) debugfile = find_separate_debug_file_by_debuglink (objfile); -@@ -1355,6 +1356,12 @@ elf_symfile_read (struct objfile *objfil +@@ -1266,6 +1267,12 @@ elf_symfile_read (struct objfile *objfil symbol_file_add_separate (abfd, debugfile, symfile_flags, objfile); do_cleanups (cleanup); } @@ -224,26 +224,26 @@ Index: gdb-7.8.50.20141228/gdb/elfread.c } } -Index: gdb-7.8.50.20141228/gdb/symfile.h +Index: gdb-7.9.90.20150709/gdb/symfile.h =================================================================== ---- gdb-7.8.50.20141228.orig/gdb/symfile.h 2015-01-03 23:11:54.018270090 +0100 -+++ gdb-7.8.50.20141228/gdb/symfile.h 2015-01-03 23:12:08.703349519 +0100 -@@ -574,6 +574,10 @@ void expand_symtabs_matching (expand_sym +--- gdb-7.9.90.20150709.orig/gdb/symfile.h 2015-07-09 22:05:20.988044312 +0200 ++++ gdb-7.9.90.20150709/gdb/symfile.h 2015-07-09 22:05:42.068222815 +0200 +@@ -584,6 +584,10 @@ void expand_symtabs_matching (expand_sym void map_symbol_filenames (symbol_filename_ftype *fun, void *data, int need_fullname); +/* build-id support. */ -+extern struct elf_build_id *build_id_addr_get (CORE_ADDR addr); ++extern struct bfd_build_id *build_id_addr_get (CORE_ADDR addr); +extern void debug_print_missing (const char *binary, const char *debug); + /* From dwarf2read.c */ /* Names for a dwarf2 debugging section. The field NORMAL is the normal -Index: gdb-7.8.50.20141228/gdb/testsuite/lib/gdb.exp +Index: gdb-7.9.90.20150709/gdb/testsuite/lib/gdb.exp =================================================================== ---- gdb-7.8.50.20141228.orig/gdb/testsuite/lib/gdb.exp 2015-01-03 23:11:54.018270090 +0100 -+++ gdb-7.8.50.20141228/gdb/testsuite/lib/gdb.exp 2015-01-03 23:12:08.704349525 +0100 -@@ -1522,6 +1522,16 @@ proc default_gdb_start { } { +--- gdb-7.9.90.20150709.orig/gdb/testsuite/lib/gdb.exp 2015-07-09 22:05:20.988044312 +0200 ++++ gdb-7.9.90.20150709/gdb/testsuite/lib/gdb.exp 2015-07-09 22:05:42.070222832 +0200 +@@ -1573,6 +1573,16 @@ proc default_gdb_start { } { warning "Couldn't set the width to 0." } } @@ -260,10 +260,10 @@ Index: gdb-7.8.50.20141228/gdb/testsuite/lib/gdb.exp return 0 } -Index: gdb-7.8.50.20141228/gdb/testsuite/lib/mi-support.exp +Index: gdb-7.9.90.20150709/gdb/testsuite/lib/mi-support.exp =================================================================== ---- gdb-7.8.50.20141228.orig/gdb/testsuite/lib/mi-support.exp 2015-01-03 23:11:54.018270090 +0100 -+++ gdb-7.8.50.20141228/gdb/testsuite/lib/mi-support.exp 2015-01-03 23:12:08.705349530 +0100 +--- gdb-7.9.90.20150709.orig/gdb/testsuite/lib/mi-support.exp 2015-07-09 22:05:20.988044312 +0200 ++++ gdb-7.9.90.20150709/gdb/testsuite/lib/mi-support.exp 2015-07-09 22:05:42.070222832 +0200 @@ -214,6 +214,16 @@ proc default_mi_gdb_start { args } { warning "Couldn't set the width to 0." } @@ -281,10 +281,10 @@ Index: gdb-7.8.50.20141228/gdb/testsuite/lib/mi-support.exp # If allowing the inferior to have its own PTY then assign the inferior # its own terminal device here. if { $separate_inferior_pty } { -Index: gdb-7.8.50.20141228/gdb/objfiles.h +Index: gdb-7.9.90.20150709/gdb/objfiles.h =================================================================== ---- gdb-7.8.50.20141228.orig/gdb/objfiles.h 2015-01-03 23:11:54.018270090 +0100 -+++ gdb-7.8.50.20141228/gdb/objfiles.h 2015-01-03 23:12:08.705349530 +0100 +--- gdb-7.9.90.20150709.orig/gdb/objfiles.h 2015-07-09 22:05:20.988044312 +0200 ++++ gdb-7.9.90.20150709/gdb/objfiles.h 2015-07-09 22:05:42.071222840 +0200 @@ -459,6 +459,10 @@ struct objfile #define OBJF_NOT_FILENAME (1 << 6) @@ -296,10 +296,10 @@ Index: gdb-7.8.50.20141228/gdb/objfiles.h /* Declarations for functions defined in objfiles.c */ extern struct objfile *allocate_objfile (bfd *, const char *name, int); -Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.base/corefile.exp +Index: gdb-7.9.90.20150709/gdb/testsuite/gdb.base/corefile.exp =================================================================== ---- gdb-7.8.50.20141228.orig/gdb/testsuite/gdb.base/corefile.exp 2015-01-03 23:11:54.018270090 +0100 -+++ gdb-7.8.50.20141228/gdb/testsuite/gdb.base/corefile.exp 2015-01-03 23:12:08.705349530 +0100 +--- gdb-7.9.90.20150709.orig/gdb/testsuite/gdb.base/corefile.exp 2015-07-09 22:05:20.988044312 +0200 ++++ gdb-7.9.90.20150709/gdb/testsuite/gdb.base/corefile.exp 2015-07-09 22:05:42.071222840 +0200 @@ -293,3 +293,33 @@ gdb_test_multiple "core-file $corefile" pass $test } @@ -334,18 +334,22 @@ Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.base/corefile.exp + gdb_test "info files" "Local exec file:\r\n\[ \t\]*`[string_to_regexp $debugdir/$buildid]', file type .*" + pass $wholetest +} -Index: gdb-7.8.50.20141228/gdb/build-id.c +Index: gdb-7.9.90.20150709/gdb/build-id.c =================================================================== ---- gdb-7.8.50.20141228.orig/gdb/build-id.c 2015-01-03 23:11:54.018270090 +0100 -+++ gdb-7.8.50.20141228/gdb/build-id.c 2015-01-03 23:12:40.792523085 +0100 -@@ -26,11 +26,64 @@ - #include "symfile.h" +--- gdb-7.9.90.20150709.orig/gdb/build-id.c 2015-07-09 22:05:20.988044312 +0200 ++++ gdb-7.9.90.20150709/gdb/build-id.c 2015-07-09 22:19:35.022957009 +0200 +@@ -26,11 +26,67 @@ #include "objfiles.h" #include "filenames.h" + #include "gdbcore.h" +#include "libbfd.h" +#include "gdbcore.h" +#include "gdbcmd.h" +#include "observer.h" ++#include "elf/external.h" ++#include "elf/internal.h" ++#include "elf/common.h" ++#include "elf-bfd.h" +#include + +#define BUILD_ID_VERBOSE_NONE 0 @@ -359,12 +363,10 @@ Index: gdb-7.8.50.20141228/gdb/build-id.c + fprintf_filtered (file, _("Verbosity level of the build-id locator is %s.\n"), + value); +} - --/* See build-id.h. */ +/* Locate NT_GNU_BUILD_ID and return its matching debug filename. + FIXME: NOTE decoding should be unified with the BFD core notes decoding. */ + -+static struct elf_build_id * ++static struct bfd_build_id * +build_id_buf_get (bfd *templ, gdb_byte *buf, bfd_size_type size) +{ + bfd_byte *p; @@ -384,41 +386,41 @@ Index: gdb-7.8.50.20141228/gdb/build-id.c + { + size_t size = descsz; + gdb_byte *data = (void *) descdata; -+ struct elf_build_id *retval; ++ struct bfd_build_id *retval; + + retval = xmalloc (sizeof *retval - 1 + size); + retval->size = size; + memcpy (retval->data, data, size); - ++ + return retval; + } + p = descdata + BFD_ALIGN (descsz, 4); + } + return NULL; +} -+ -+/* See build-id.h. */ -+ - const struct elf_build_id * + + /* See build-id.h. */ + + const struct bfd_build_id * -build_id_bfd_get (bfd *abfd) +build_id_bfd_shdr_get (bfd *abfd) { - if (!bfd_check_format (abfd, bfd_object) - || bfd_get_flavour (abfd) != bfd_target_elf_flavour -@@ -44,6 +97,348 @@ build_id_bfd_get (bfd *abfd) - return elf_tdata (abfd)->build_id; + if (!bfd_check_format (abfd, bfd_object)) + return NULL; +@@ -42,6 +98,348 @@ build_id_bfd_get (bfd *abfd) + return NULL; } +/* Core files may have missing (corrupt) SHDR but PDHR is correct there. + bfd_elf_bfd_from_remote_memory () has too much overhead by + allocating/reading all the available ELF PT_LOADs. */ + -+static struct elf_build_id * ++static struct bfd_build_id * +build_id_phdr_get (bfd *templ, bfd_vma loadbase, unsigned e_phnum, + Elf_Internal_Phdr *i_phdr) +{ + int i; -+ struct elf_build_id *retval = NULL; ++ struct bfd_build_id *retval = NULL; + + for (i = 0; i < e_phnum; i++) + if (i_phdr[i].p_type == PT_NOTE && i_phdr[i].p_filesz > 0) @@ -705,11 +707,11 @@ Index: gdb-7.8.50.20141228/gdb/build-id.c + } +} + -+struct elf_build_id * ++struct bfd_build_id * +build_id_addr_get (CORE_ADDR addr) +{ + struct build_id_addr_sect *candidate; -+ struct elf_build_id *retval = NULL; ++ struct bfd_build_id *retval = NULL; + Elf_Internal_Phdr *i_phdr = NULL; + bfd_vma loadbase = 0; + unsigned e_phnum = 0; @@ -754,8 +756,8 @@ Index: gdb-7.8.50.20141228/gdb/build-id.c /* See build-id.h. */ int -@@ -52,7 +447,7 @@ build_id_verify (bfd *abfd, size_t check - const struct elf_build_id *found; +@@ -50,7 +448,7 @@ build_id_verify (bfd *abfd, size_t check + const struct bfd_build_id *found; int retval = 0; - found = build_id_bfd_get (abfd); @@ -763,7 +765,7 @@ Index: gdb-7.8.50.20141228/gdb/build-id.c if (found == NULL) warning (_("File \"%s\" has no build-id, file skipped"), -@@ -67,20 +462,56 @@ build_id_verify (bfd *abfd, size_t check +@@ -65,20 +463,56 @@ build_id_verify (bfd *abfd, size_t check return retval; } @@ -824,12 +826,13 @@ Index: gdb-7.8.50.20141228/gdb/build-id.c /* Keep backward compatibility so that DEBUG_FILE_DIRECTORY being "" will cause "/.build-id/..." lookups. */ -@@ -93,8 +524,11 @@ build_id_to_debug_bfd (size_t build_id_l +@@ -91,9 +525,12 @@ build_id_to_debug_bfd (size_t build_id_l size_t debugdir_len = strlen (debugdir); const gdb_byte *data = build_id; size_t size = build_id_len; - char *s; char *filename = NULL; + struct cleanup *inner; + unsigned seqno; + struct stat statbuf_trash; + /* Initialize it just to avoid a GCC false warning. */ @@ -837,7 +840,7 @@ Index: gdb-7.8.50.20141228/gdb/build-id.c memcpy (link, debugdir, debugdir_len); s = &link[debugdir_len]; -@@ -108,44 +542,282 @@ build_id_to_debug_bfd (size_t build_id_l +@@ -107,47 +544,281 @@ build_id_to_debug_bfd (size_t build_id_l *s++ = '/'; while (size-- > 0) s += sprintf (s, "%02x", (unsigned) *data++); @@ -884,20 +887,22 @@ Index: gdb-7.8.50.20141228/gdb/build-id.c + continue; + + /* We expect to be silent on the non-existing files. */ -+ abfd = gdb_bfd_open_maybe_remote (filename); -+ if (abfd == NULL) -+ { -+ xfree (filename); -+ continue; -+ } ++ inner = make_cleanup (xfree, filename); ++ abfd = gdb_bfd_open (filename, gnutarget, -1); ++ do_cleanups (inner); - if (filename == NULL) - continue; ++ if (abfd == NULL) ++ continue; + +- /* We expect to be silent on the non-existing files. */ +- inner = make_cleanup (xfree, filename); +- abfd = gdb_bfd_open (filename, gnutarget, -1); +- do_cleanups (inner); + if (build_id_verify (abfd, build_id_len, build_id)) + break; -- /* We expect to be silent on the non-existing files. */ -- abfd = gdb_bfd_open_maybe_remote (filename); - if (abfd == NULL) - continue; + gdb_bfd_unref (abfd); @@ -905,7 +910,6 @@ Index: gdb-7.8.50.20141228/gdb/build-id.c - if (build_id_verify (abfd, build_id_len, build_id)) - break; -+ xfree (filename); + filename = NULL; + } @@ -963,7 +967,7 @@ Index: gdb-7.8.50.20141228/gdb/build-id.c } +char * -+build_id_to_filename (const struct elf_build_id *build_id, char **link_return) ++build_id_to_filename (const struct bfd_build_id *build_id, char **link_return) +{ + bfd *abfd; + char *result; @@ -1120,7 +1124,7 @@ Index: gdb-7.8.50.20141228/gdb/build-id.c +find_separate_debug_file_by_buildid (struct objfile *objfile, + char **build_id_filename_return) { - const struct elf_build_id *build_id; + const struct bfd_build_id *build_id; - build_id = build_id_bfd_get (objfile->obfd); + if (build_id_filename_return) @@ -1137,7 +1141,7 @@ Index: gdb-7.8.50.20141228/gdb/build-id.c /* Prevent looping on a stripped .debug file. */ if (abfd != NULL && filename_cmp (bfd_get_filename (abfd), -@@ -165,3 +837,21 @@ find_separate_debug_file_by_buildid (str +@@ -167,3 +838,21 @@ find_separate_debug_file_by_buildid (str } return NULL; } @@ -1159,10 +1163,10 @@ Index: gdb-7.8.50.20141228/gdb/build-id.c + + observer_attach_executable_changed (debug_print_executable_changed); +} -Index: gdb-7.8.50.20141228/gdb/build-id.h +Index: gdb-7.9.90.20150709/gdb/build-id.h =================================================================== ---- gdb-7.8.50.20141228.orig/gdb/build-id.h 2015-01-03 23:11:54.018270090 +0100 -+++ gdb-7.8.50.20141228/gdb/build-id.h 2015-01-03 23:12:08.706349536 +0100 +--- gdb-7.9.90.20150709.orig/gdb/build-id.h 2015-07-09 22:05:20.988044312 +0200 ++++ gdb-7.9.90.20150709/gdb/build-id.h 2015-07-09 22:05:42.072222849 +0200 @@ -20,9 +20,10 @@ #ifndef BUILD_ID_H #define BUILD_ID_H @@ -1171,8 +1175,8 @@ Index: gdb-7.8.50.20141228/gdb/build-id.h +/* Separate debuginfo files have corrupted PHDR but SHDR is correct there. + Locate NT_GNU_BUILD_ID from ABFD and return its content. */ --extern const struct elf_build_id *build_id_bfd_get (bfd *abfd); -+extern const struct elf_build_id *build_id_bfd_shdr_get (bfd *abfd); +-extern const struct bfd_build_id *build_id_bfd_get (bfd *abfd); ++extern const struct bfd_build_id *build_id_bfd_shdr_get (bfd *abfd); /* Return true if ABFD has NT_GNU_BUILD_ID matching the CHECK value. Otherwise, issue a warning and return false. */ @@ -1184,7 +1188,7 @@ Index: gdb-7.8.50.20141228/gdb/build-id.h + const bfd_byte *build_id, char **link_return, + int add_debug_suffix); + -+extern char *build_id_to_filename (const struct elf_build_id *build_id, ++extern char *build_id_to_filename (const struct bfd_build_id *build_id, + char **link_return); /* Find the separate debug file for OBJFILE, by using the build-id @@ -1197,11 +1201,11 @@ Index: gdb-7.8.50.20141228/gdb/build-id.h + char **build_id_filename_return); #endif /* BUILD_ID_H */ -Index: gdb-7.8.50.20141228/gdb/dwarf2read.c +Index: gdb-7.9.90.20150709/gdb/dwarf2read.c =================================================================== ---- gdb-7.8.50.20141228.orig/gdb/dwarf2read.c 2015-01-03 23:11:54.018270090 +0100 -+++ gdb-7.8.50.20141228/gdb/dwarf2read.c 2015-01-03 23:12:08.711349563 +0100 -@@ -2443,7 +2443,7 @@ dwarf2_get_dwz_file (void) +--- gdb-7.9.90.20150709.orig/gdb/dwarf2read.c 2015-07-09 22:05:20.988044312 +0200 ++++ gdb-7.9.90.20150709/gdb/dwarf2read.c 2015-07-09 22:05:42.077222891 +0200 +@@ -2507,7 +2507,7 @@ dwarf2_get_dwz_file (void) } if (dwz_bfd == NULL) @@ -1210,20 +1214,20 @@ Index: gdb-7.8.50.20141228/gdb/dwarf2read.c if (dwz_bfd == NULL) error (_("could not find '.gnu_debugaltlink' file for %s"), -Index: gdb-7.8.50.20141228/gdb/python/py-objfile.c +Index: gdb-7.9.90.20150709/gdb/python/py-objfile.c =================================================================== ---- gdb-7.8.50.20141228.orig/gdb/python/py-objfile.c 2015-01-03 23:11:54.018270090 +0100 -+++ gdb-7.8.50.20141228/gdb/python/py-objfile.c 2015-01-03 23:12:08.712349568 +0100 -@@ -118,7 +118,7 @@ objfpy_get_build_id (PyObject *self, voi +--- gdb-7.9.90.20150709.orig/gdb/python/py-objfile.c 2015-07-09 22:05:20.988044312 +0200 ++++ gdb-7.9.90.20150709/gdb/python/py-objfile.c 2015-07-09 22:05:42.077222891 +0200 +@@ -139,7 +139,7 @@ objfpy_get_build_id (PyObject *self, voi - TRY_CATCH (except, RETURN_MASK_ALL) + TRY { - build_id = build_id_bfd_get (objfile->obfd); + build_id = build_id_bfd_shdr_get (objfile->obfd); } - GDB_PY_HANDLE_EXCEPTION (except); - -@@ -467,7 +467,7 @@ objfpy_lookup_objfile_by_build_id (const + CATCH (except, RETURN_MASK_ALL) + { +@@ -548,7 +548,7 @@ objfpy_lookup_objfile_by_build_id (const /* Don't return separate debug files. */ if (objfile->separate_debug_objfile_backlink != NULL) continue; @@ -1232,3 +1236,16 @@ Index: gdb-7.8.50.20141228/gdb/python/py-objfile.c if (obfd_build_id == NULL) continue; if (objfpy_build_id_matches (obfd_build_id, build_id)) +Index: gdb-7.9.90.20150709/gdb/coffread.c +=================================================================== +--- gdb-7.9.90.20150709.orig/gdb/coffread.c 2015-07-09 22:05:20.988044312 +0200 ++++ gdb-7.9.90.20150709/gdb/coffread.c 2015-07-09 22:05:42.078222899 +0200 +@@ -739,7 +739,7 @@ coff_symfile_read (struct objfile *objfi + { + char *debugfile; + +- debugfile = find_separate_debug_file_by_buildid (objfile); ++ debugfile = find_separate_debug_file_by_buildid (objfile, NULL); + + if (debugfile == NULL) + debugfile = find_separate_debug_file_by_debuglink (objfile); diff --git a/gdb-vla-intel-stringbt-fix.patch b/gdb-vla-intel-stringbt-fix.patch index 67850f3..56ceff2 100644 --- a/gdb-vla-intel-stringbt-fix.patch +++ b/gdb-vla-intel-stringbt-fix.patch @@ -31,30 +31,30 @@ Jan Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename="vlastringonly.patch" -Index: gdb-7.8.50.20141228/gdb/gdbtypes.c +Index: gdb-7.9.50.20150520/gdb/gdbtypes.c =================================================================== ---- gdb-7.8.50.20141228.orig/gdb/gdbtypes.c 2015-01-08 18:15:18.475682523 +0100 -+++ gdb-7.8.50.20141228/gdb/gdbtypes.c 2015-01-08 18:39:01.423134700 +0100 -@@ -1684,6 +1684,7 @@ is_dynamic_type_internal (struct type *t - return !has_static_range (TYPE_RANGE_DATA (type)); +--- gdb-7.9.50.20150520.orig/gdb/gdbtypes.c 2015-05-31 16:14:04.164533833 +0200 ++++ gdb-7.9.50.20150520/gdb/gdbtypes.c 2015-05-31 16:14:05.844545344 +0200 +@@ -1851,6 +1851,7 @@ is_dynamic_type_internal (struct type *t + } case TYPE_CODE_ARRAY: + case TYPE_CODE_STRING: { gdb_assert (TYPE_NFIELDS (type) == 1); -@@ -1992,6 +1993,7 @@ resolve_dynamic_type_internal (struct ty +@@ -2192,6 +2193,7 @@ resolve_dynamic_type_internal (struct ty } case TYPE_CODE_ARRAY: + case TYPE_CODE_STRING: - resolved_type = resolve_dynamic_array (type, addr); + resolved_type = resolve_dynamic_array (type, addr_stack); break; -Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/dynamic-other-frame-stub.f90 +Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/dynamic-other-frame-stub.f90 =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/dynamic-other-frame-stub.f90 2015-01-08 18:15:18.897684435 +0100 ++++ gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/dynamic-other-frame-stub.f90 2015-05-31 16:14:05.844545344 +0200 @@ -0,0 +1,24 @@ +! Copyright 2010 Free Software Foundation, Inc. +! @@ -80,10 +80,10 @@ Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/dynamic-other-frame-stub.f9 + real :: dummy + dummy = 1 +end subroutine bar -Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/dynamic-other-frame.exp +Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/dynamic-other-frame.exp =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/dynamic-other-frame.exp 2015-01-08 18:15:18.897684435 +0100 ++++ gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/dynamic-other-frame.exp 2015-05-31 16:14:05.845545351 +0200 @@ -0,0 +1,39 @@ +# Copyright 2010 Free Software Foundation, Inc. + @@ -124,10 +124,10 @@ Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/dynamic-other-frame.exp +} + +gdb_test "bt" {foo \(string='hello'.*} -Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/dynamic-other-frame.f90 +Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/dynamic-other-frame.f90 =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/dynamic-other-frame.f90 2015-01-08 18:15:18.897684435 +0100 ++++ gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/dynamic-other-frame.f90 2015-05-31 16:14:05.845545351 +0200 @@ -0,0 +1,36 @@ +! Copyright 2010 Free Software Foundation, Inc. +! @@ -165,3 +165,17 @@ Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/dynamic-other-frame.f90 + end interface + call foo ('hello') +end +Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-strings.exp +=================================================================== +--- gdb-7.9.50.20150520.orig/gdb/testsuite/gdb.fortran/vla-strings.exp 2015-05-31 16:14:04.167533854 +0200 ++++ gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-strings.exp 2015-05-31 16:14:31.073718201 +0200 +@@ -33,9 +33,6 @@ gdb_continue_to_breakpoint "var_char-all + gdb_test "print var_char" \ + " = \\(PTR TO -> \\( character\\*10 \\)\\) ${hex}" \ + "print var_char after allocated first time" +-gdb_test "print *var_char" \ +- " = '\\\\000\\\\000\\\\000\\\\000\\\\000\\\\000\\\\000\\\\000\\\\000\\\\000'" \ +- "print *var_char after allocated first time" + gdb_test "whatis var_char" "type = PTR TO -> \\( character\\*10 \\)" \ + "whatis var_char first time" + gdb_test "ptype var_char" "type = PTR TO -> \\( character\\*10 \\)" \ diff --git a/gdb-vla-intel.patch b/gdb-vla-intel.patch index 9b86bde..85c0364 100644 --- a/gdb-vla-intel.patch +++ b/gdb-vla-intel.patch @@ -6,10 +6,10 @@ GIT snapshot: commit 511bff520372ffc10fa2ff569c176bdf1e6e475d -Index: gdb-7.8.90.20150126/gdb/c-valprint.c +Index: gdb-7.9.50.20150520/gdb/c-valprint.c =================================================================== ---- gdb-7.8.90.20150126.orig/gdb/c-valprint.c 2015-01-26 07:47:25.832758314 +0100 -+++ gdb-7.8.90.20150126/gdb/c-valprint.c 2015-01-26 07:47:42.394829861 +0100 +--- gdb-7.9.50.20150520.orig/gdb/c-valprint.c 2015-05-29 08:27:02.657717326 +0200 ++++ gdb-7.9.50.20150520/gdb/c-valprint.c 2015-05-29 08:27:06.253740209 +0200 @@ -537,7 +537,16 @@ c_value_print (struct value *val, struct { /* normal case */ @@ -28,12 +28,12 @@ Index: gdb-7.8.90.20150126/gdb/c-valprint.c fprintf_filtered (stream, ") "); } } -Index: gdb-7.8.90.20150126/gdb/dwarf2loc.h +Index: gdb-7.9.50.20150520/gdb/dwarf2loc.h =================================================================== ---- gdb-7.8.90.20150126.orig/gdb/dwarf2loc.h 2015-01-26 07:47:25.832758314 +0100 -+++ gdb-7.8.90.20150126/gdb/dwarf2loc.h 2015-01-26 07:47:42.395829865 +0100 -@@ -111,6 +111,11 @@ int dwarf2_evaluate_property (const stru - CORE_ADDR address, +--- gdb-7.9.50.20150520.orig/gdb/dwarf2loc.h 2015-05-29 08:27:02.658717333 +0200 ++++ gdb-7.9.50.20150520/gdb/dwarf2loc.h 2015-05-29 08:27:06.253740209 +0200 +@@ -131,6 +131,11 @@ int dwarf2_evaluate_property (const stru + struct property_addr_info *addr_stack, CORE_ADDR *value); +/* Checks if a dwarf location definition is valid. @@ -44,11 +44,11 @@ Index: gdb-7.8.90.20150126/gdb/dwarf2loc.h /* A helper for the compiler interface that compiles a single dynamic property to C code. -Index: gdb-7.8.90.20150126/gdb/dwarf2read.c +Index: gdb-7.9.50.20150520/gdb/dwarf2read.c =================================================================== ---- gdb-7.8.90.20150126.orig/gdb/dwarf2read.c 2015-01-26 07:47:25.845758371 +0100 -+++ gdb-7.8.90.20150126/gdb/dwarf2read.c 2015-01-26 07:48:05.833931116 +0100 -@@ -1855,6 +1855,12 @@ static void process_cu_includes (void); +--- gdb-7.9.50.20150520.orig/gdb/dwarf2read.c 2015-05-29 08:27:02.676717447 +0200 ++++ gdb-7.9.50.20150520/gdb/dwarf2read.c 2015-05-29 10:04:52.272600212 +0200 +@@ -1868,6 +1868,12 @@ static void process_cu_includes (void); static void check_producer (struct dwarf2_cu *cu); static void free_line_header_voidp (void *arg); @@ -61,7 +61,7 @@ Index: gdb-7.8.90.20150126/gdb/dwarf2read.c /* Various complaints about symbol reading that don't abort the process. */ -@@ -14354,29 +14360,92 @@ read_tag_string_type (struct die_info *d +@@ -14431,29 +14437,92 @@ read_tag_string_type (struct die_info *d struct gdbarch *gdbarch = get_objfile_arch (objfile); struct type *type, *range_type, *index_type, *char_type; struct attribute *attr; @@ -161,7 +161,7 @@ Index: gdb-7.8.90.20150126/gdb/dwarf2read.c char_type = language_string_char_type (cu->language_defn, gdbarch); type = create_string_type (NULL, char_type, range_type); -@@ -14693,13 +14762,15 @@ read_base_type (struct die_info *die, st +@@ -14776,13 +14845,15 @@ read_base_type (struct die_info *die, st return set_die_type (die, type, cu); } @@ -178,7 +178,7 @@ Index: gdb-7.8.90.20150126/gdb/dwarf2read.c { struct dwarf2_property_baton *baton; struct obstack *obstack = &cu->objfile->objfile_obstack; -@@ -14712,8 +14783,25 @@ attr_to_dynamic_prop (const struct attri +@@ -14795,8 +14866,25 @@ attr_to_dynamic_prop (const struct attri baton = obstack_alloc (obstack, sizeof (*baton)); baton->referenced_type = NULL; baton->locexpr.per_cu = cu->per_cu; @@ -206,38 +206,38 @@ Index: gdb-7.8.90.20150126/gdb/dwarf2read.c prop->data.baton = baton; prop->kind = PROP_LOCEXPR; gdb_assert (prop->data.baton != NULL); -@@ -14743,8 +14831,28 @@ attr_to_dynamic_prop (const struct attri - baton = obstack_alloc (obstack, sizeof (*baton)); - baton->referenced_type = die_type (target_die, target_cu); - baton->locexpr.per_cu = cu->per_cu; -- baton->locexpr.size = DW_BLOCK (target_attr)->size; -- baton->locexpr.data = DW_BLOCK (target_attr)->data; -+ -+ if (additional_data != NULL && additional_data_size > 0) -+ { -+ gdb_byte *data; -+ -+ data = obstack_alloc (&cu->objfile->objfile_obstack, -+ DW_BLOCK (target_attr)->size + additional_data_size); -+ memcpy (data, DW_BLOCK (target_attr)->data, -+ DW_BLOCK (target_attr)->size); -+ memcpy (data + DW_BLOCK (target_attr)->size, -+ additional_data, additional_data_size); -+ -+ baton->locexpr.data = data; -+ baton->locexpr.size = (DW_BLOCK (target_attr)->size -+ + additional_data_size); -+ } -+ else -+ { -+ baton->locexpr.data = DW_BLOCK (target_attr)->data; -+ baton->locexpr.size = DW_BLOCK (target_attr)->size; -+ } -+ - prop->data.baton = baton; - prop->kind = PROP_LOCEXPR; - gdb_assert (prop->data.baton != NULL); -@@ -14779,7 +14887,7 @@ read_subrange_type (struct die_info *die +@@ -14832,8 +14920,28 @@ attr_to_dynamic_prop (const struct attri + baton = obstack_alloc (obstack, sizeof (*baton)); + baton->referenced_type = die_type (target_die, target_cu); + baton->locexpr.per_cu = cu->per_cu; +- baton->locexpr.size = DW_BLOCK (target_attr)->size; +- baton->locexpr.data = DW_BLOCK (target_attr)->data; ++ ++ if (additional_data != NULL && additional_data_size > 0) ++ { ++ gdb_byte *data; ++ ++ data = obstack_alloc (&cu->objfile->objfile_obstack, ++ DW_BLOCK (target_attr)->size + additional_data_size); ++ memcpy (data, DW_BLOCK (target_attr)->data, ++ DW_BLOCK (target_attr)->size); ++ memcpy (data + DW_BLOCK (target_attr)->size, ++ additional_data, additional_data_size); ++ ++ baton->locexpr.data = data; ++ baton->locexpr.size = (DW_BLOCK (target_attr)->size ++ + additional_data_size); ++ } ++ else ++ { ++ baton->locexpr.data = DW_BLOCK (target_attr)->data; ++ baton->locexpr.size = DW_BLOCK (target_attr)->size; ++ } ++ + prop->data.baton = baton; + prop->kind = PROP_LOCEXPR; + gdb_assert (prop->data.baton != NULL); +@@ -14887,7 +14995,7 @@ read_subrange_type (struct die_info *die struct type *base_type, *orig_base_type; struct type *range_type; struct attribute *attr; @@ -246,7 +246,7 @@ Index: gdb-7.8.90.20150126/gdb/dwarf2read.c int low_default_is_valid; int high_bound_is_count = 0; const char *name; -@@ -14799,7 +14907,9 @@ read_subrange_type (struct die_info *die +@@ -14907,7 +15015,9 @@ read_subrange_type (struct die_info *die low.kind = PROP_CONST; high.kind = PROP_CONST; @@ -256,7 +256,7 @@ Index: gdb-7.8.90.20150126/gdb/dwarf2read.c /* Set LOW_DEFAULT_IS_VALID if current language and DWARF version allow omitting DW_AT_lower_bound. */ -@@ -14832,19 +14942,26 @@ read_subrange_type (struct die_info *die +@@ -14940,19 +15050,26 @@ read_subrange_type (struct die_info *die break; } @@ -286,7 +286,7 @@ Index: gdb-7.8.90.20150126/gdb/dwarf2read.c { /* If bounds are constant do the final calculation here. */ if (low.kind == PROP_CONST && high.kind == PROP_CONST) -@@ -14908,7 +15025,7 @@ read_subrange_type (struct die_info *die +@@ -15016,7 +15133,7 @@ read_subrange_type (struct die_info *die && !TYPE_UNSIGNED (base_type) && (high.data.const_val & negative_mask)) high.data.const_val |= negative_mask; @@ -295,18 +295,10 @@ Index: gdb-7.8.90.20150126/gdb/dwarf2read.c if (high_bound_is_count) TYPE_RANGE_DATA (range_type)->flag_upper_bound_is_count = 1; -@@ -21994,7 +22111,44 @@ set_die_type (struct die_info *die, stru +@@ -22128,9 +22245,37 @@ set_die_type (struct die_info *die, stru + && !HAVE_GNAT_AUX_INFO (type)) + INIT_GNAT_SPECIFIC (type); - /* Read DW_AT_data_location and set in type. */ - attr = dwarf2_attr (die, DW_AT_data_location, cu); -- if (attr_to_dynamic_prop (attr, die, cu, &prop)) -+ if (attr_to_dynamic_prop (attr, die, cu, &prop, NULL, 0)) -+ { -+ TYPE_DATA_LOCATION (type) -+ = obstack_alloc (&objfile->objfile_obstack, sizeof (prop)); -+ *TYPE_DATA_LOCATION (type) = prop; -+ } -+ + /* Read DW_AT_allocated and set in type. */ + attr = dwarf2_attr (die, DW_AT_allocated, cu); + if (attr_form_is_block (attr)) @@ -335,16 +327,17 @@ Index: gdb-7.8.90.20150126/gdb/dwarf2read.c + } + } + -+ /* Read DW_AT_data_location and set in type. */ -+ attr = dwarf2_attr (die, DW_AT_data_location, cu); + /* Read DW_AT_data_location and set in type. */ + attr = dwarf2_attr (die, DW_AT_data_location, cu); +- if (attr_to_dynamic_prop (attr, die, cu, &prop)) + if (attr_to_dynamic_prop (attr, die, cu, &prop, NULL, 0)) - { - TYPE_DATA_LOCATION (type) - = obstack_alloc (&objfile->objfile_obstack, sizeof (prop)); -Index: gdb-7.8.90.20150126/gdb/f-typeprint.c + add_dyn_prop (DYN_PROP_DATA_LOCATION, prop, type, objfile); + + if (dwarf2_per_objfile->die_type_hash == NULL) +Index: gdb-7.9.50.20150520/gdb/f-typeprint.c =================================================================== ---- gdb-7.8.90.20150126.orig/gdb/f-typeprint.c 2015-01-26 07:47:25.846758375 +0100 -+++ gdb-7.8.90.20150126/gdb/f-typeprint.c 2015-01-26 07:47:42.402829895 +0100 +--- gdb-7.9.50.20150520.orig/gdb/f-typeprint.c 2015-05-29 08:27:02.678717460 +0200 ++++ gdb-7.9.50.20150520/gdb/f-typeprint.c 2015-05-29 08:27:06.261740260 +0200 @@ -30,6 +30,7 @@ #include "gdbcore.h" #include "target.h" @@ -429,10 +422,10 @@ Index: gdb-7.8.90.20150126/gdb/f-typeprint.c if (arrayprint_recurse_level == 1) fprintf_filtered (stream, ")"); else -Index: gdb-7.8.90.20150126/gdb/f-valprint.c +Index: gdb-7.9.50.20150520/gdb/f-valprint.c =================================================================== ---- gdb-7.8.90.20150126.orig/gdb/f-valprint.c 2015-01-26 07:47:25.847758379 +0100 -+++ gdb-7.8.90.20150126/gdb/f-valprint.c 2015-01-26 07:47:42.403829900 +0100 +--- gdb-7.9.50.20150520.orig/gdb/f-valprint.c 2015-05-29 08:26:49.567634019 +0200 ++++ gdb-7.9.50.20150520/gdb/f-valprint.c 2015-05-29 08:27:06.262740266 +0200 @@ -36,8 +36,6 @@ extern void _initialize_f_valprint (void); @@ -619,11 +612,11 @@ Index: gdb-7.8.90.20150126/gdb/f-valprint.c if (index != TYPE_NFIELDS (type) - 1) fputs_filtered (", ", stream); } -Index: gdb-7.8.90.20150126/gdb/gdbtypes.c +Index: gdb-7.9.50.20150520/gdb/gdbtypes.c =================================================================== ---- gdb-7.8.90.20150126.orig/gdb/gdbtypes.c 2015-01-26 07:47:25.850758392 +0100 -+++ gdb-7.8.90.20150126/gdb/gdbtypes.c 2015-01-26 07:47:42.404829904 +0100 -@@ -815,7 +815,8 @@ allocate_stub_method (struct type *type) +--- gdb-7.9.50.20150520.orig/gdb/gdbtypes.c 2015-05-29 08:27:02.683717492 +0200 ++++ gdb-7.9.50.20150520/gdb/gdbtypes.c 2015-05-29 10:54:36.236498749 +0200 +@@ -824,7 +824,8 @@ allocate_stub_method (struct type *type) struct type * create_range_type (struct type *result_type, struct type *index_type, const struct dynamic_prop *low_bound, @@ -633,7 +626,7 @@ Index: gdb-7.8.90.20150126/gdb/gdbtypes.c { if (result_type == NULL) result_type = alloc_type_copy (index_type); -@@ -830,6 +831,7 @@ create_range_type (struct type *result_t +@@ -839,6 +840,7 @@ create_range_type (struct type *result_t TYPE_ZALLOC (result_type, sizeof (struct range_bounds)); TYPE_RANGE_DATA (result_type)->low = *low_bound; TYPE_RANGE_DATA (result_type)->high = *high_bound; @@ -641,7 +634,7 @@ Index: gdb-7.8.90.20150126/gdb/gdbtypes.c if (low_bound->kind == PROP_CONST && low_bound->data.const_val >= 0) TYPE_UNSIGNED (result_type) = 1; -@@ -858,7 +860,7 @@ struct type * +@@ -867,7 +869,7 @@ struct type * create_static_range_type (struct type *result_type, struct type *index_type, LONGEST low_bound, LONGEST high_bound) { @@ -650,7 +643,7 @@ Index: gdb-7.8.90.20150126/gdb/gdbtypes.c low.kind = PROP_CONST; low.data.const_val = low_bound; -@@ -866,7 +868,11 @@ create_static_range_type (struct type *r +@@ -875,7 +877,11 @@ create_static_range_type (struct type *r high.kind = PROP_CONST; high.data.const_val = high_bound; @@ -663,7 +656,7 @@ Index: gdb-7.8.90.20150126/gdb/gdbtypes.c return result_type; } -@@ -1020,18 +1026,24 @@ create_array_type_with_stride (struct ty +@@ -1068,18 +1074,24 @@ create_array_type_with_stride (struct ty TYPE_CODE (result_type) = TYPE_CODE_ARRAY; TYPE_TARGET_TYPE (result_type) = element_type; @@ -690,7 +683,7 @@ Index: gdb-7.8.90.20150126/gdb/gdbtypes.c else if (bit_stride > 0) TYPE_LENGTH (result_type) = (bit_stride * (high_bound - low_bound + 1) + 7) / 8; -@@ -1630,12 +1642,31 @@ stub_noname_complaint (void) +@@ -1789,12 +1801,31 @@ stub_noname_complaint (void) static int is_dynamic_type_internal (struct type *type, int top_level) { @@ -722,7 +715,7 @@ Index: gdb-7.8.90.20150126/gdb/gdbtypes.c /* Types that have a dynamic TYPE_DATA_LOCATION are considered dynamic, even if the type itself is statically defined. From a user's point of view, this may appear counter-intuitive; -@@ -1656,11 +1687,19 @@ is_dynamic_type_internal (struct type *t +@@ -1823,11 +1854,19 @@ is_dynamic_type_internal (struct type *t { gdb_assert (TYPE_NFIELDS (type) == 1); @@ -745,14 +738,15 @@ Index: gdb-7.8.90.20150126/gdb/gdbtypes.c } case TYPE_CODE_STRUCT: -@@ -1673,6 +1712,17 @@ is_dynamic_type_internal (struct type *t +@@ -1840,6 +1879,18 @@ is_dynamic_type_internal (struct type *t && is_dynamic_type_internal (TYPE_FIELD_TYPE (type, i), 0)) return 1; } + case TYPE_CODE_PTR: + { + if (TYPE_TARGET_TYPE (type) -+ && TYPE_CODE (TYPE_TARGET_TYPE (type)) == TYPE_CODE_STRING) ++ && (TYPE_CODE (TYPE_TARGET_TYPE (type)) == TYPE_CODE_STRING ++ || TYPE_CODE (TYPE_TARGET_TYPE (type)) == TYPE_CODE_ARRAY)) + return is_dynamic_type (check_typedef (TYPE_TARGET_TYPE (type))); + + return 0; @@ -763,8 +757,8 @@ Index: gdb-7.8.90.20150126/gdb/gdbtypes.c break; } -@@ -1701,7 +1751,8 @@ resolve_dynamic_range (struct type *dyn_ - struct type *static_range_type; +@@ -1869,7 +1920,8 @@ resolve_dynamic_range (struct type *dyn_ + struct type *static_range_type, *static_target_type; const struct dynamic_prop *prop; const struct dwarf2_locexpr_baton *baton; - struct dynamic_prop low_bound, high_bound; @@ -773,28 +767,30 @@ Index: gdb-7.8.90.20150126/gdb/gdbtypes.c gdb_assert (TYPE_CODE (dyn_range_type) == TYPE_CODE_RANGE); -@@ -1732,10 +1783,17 @@ resolve_dynamic_range (struct type *dyn_ - high_bound.kind = PROP_UNDEFINED; +@@ -1901,12 +1953,19 @@ resolve_dynamic_range (struct type *dyn_ high_bound.data.const_val = 0; } -+ + + prop = &TYPE_RANGE_DATA (dyn_range_type)->stride; -+ if (dwarf2_evaluate_property (prop, addr, &value)) ++ if (dwarf2_evaluate_property (prop, addr_stack, &value)) + { + stride.kind = PROP_CONST; + stride.data.const_val = value; + } - ++ + static_target_type +- = resolve_dynamic_type_internal (TYPE_TARGET_TYPE (dyn_range_type), ++ = resolve_dynamic_type_internal (TYPE_TARGET_TYPE (range_copy), + addr_stack, 0); - static_range_type = create_range_type (copy_type (dyn_range_type), -- TYPE_TARGET_TYPE (dyn_range_type), -- &low_bound, &high_bound); + static_range_type = create_range_type (range_copy, -+ TYPE_TARGET_TYPE (range_copy), + static_target_type, +- &low_bound, &high_bound); + &low_bound, &high_bound, &stride); TYPE_RANGE_DATA (static_range_type)->flag_bound_evaluated = 1; return static_range_type; } -@@ -1751,23 +1809,46 @@ resolve_dynamic_array (struct type *type +@@ -1923,23 +1982,47 @@ resolve_dynamic_array (struct type *type struct type *elt_type; struct type *range_type; struct type *ary_dim; @@ -807,17 +803,17 @@ Index: gdb-7.8.90.20150126/gdb/gdbtypes.c elt_type = type; range_type = check_typedef (TYPE_INDEX_TYPE (elt_type)); - range_type = resolve_dynamic_range (range_type, addr); + range_type = resolve_dynamic_range (range_type, addr_stack); + prop = TYPE_ALLOCATED_PROP (type); -+ if (dwarf2_evaluate_property (prop, addr, &value)) ++ if (dwarf2_evaluate_property (prop, addr_stack, &value)) + { + TYPE_ALLOCATED_PROP (copy)->kind = PROP_CONST; + TYPE_ALLOCATED_PROP (copy)->data.const_val = value; + } + + prop = TYPE_ASSOCIATED_PROP (type); -+ if (dwarf2_evaluate_property (prop, addr, &value)) ++ if (dwarf2_evaluate_property (prop, addr_stack, &value)) + { + TYPE_ASSOCIATED_PROP (copy)->kind = PROP_CONST; + TYPE_ASSOCIATED_PROP (copy)->data.const_val = value; @@ -826,64 +822,32 @@ Index: gdb-7.8.90.20150126/gdb/gdbtypes.c ary_dim = check_typedef (TYPE_TARGET_TYPE (elt_type)); - if (ary_dim != NULL && TYPE_CODE (ary_dim) == TYPE_CODE_ARRAY) -- elt_type = resolve_dynamic_array (TYPE_TARGET_TYPE (type), addr); +- elt_type = resolve_dynamic_array (TYPE_TARGET_TYPE (type), addr_stack); + if (ary_dim != NULL && (TYPE_CODE (ary_dim) == TYPE_CODE_ARRAY + || TYPE_CODE (ary_dim) == TYPE_CODE_STRING)) -+ elt_type = resolve_dynamic_array (TYPE_TARGET_TYPE (copy), addr); ++ elt_type = resolve_dynamic_array (TYPE_TARGET_TYPE (copy), addr_stack); else elt_type = TYPE_TARGET_TYPE (type); -- return create_array_type (copy_type (type), -- elt_type, -- range_type); -+ if (TYPE_CODE (type) == TYPE_CODE_STRING) +- return create_array_type_with_stride (copy_type (type), +- elt_type, range_type, +- TYPE_FIELD_BITSIZE (type, 0)); ++ if (TYPE_CODE (type) == TYPE_CODE_STRING ++ && TYPE_FIELD_BITSIZE (type, 0) == 0) + return create_string_type (copy, + elt_type, + range_type); + else -+ return create_array_type (copy, ++ return create_array_type_with_stride (copy, + elt_type, -+ range_type); ++ range_type, TYPE_FIELD_BITSIZE (type, 0)); } /* Resolve dynamic bounds of members of the union TYPE to static -@@ -1938,6 +2019,25 @@ resolve_dynamic_type_internal (struct ty - else - TYPE_DATA_LOCATION (resolved_type) = NULL; +@@ -4453,6 +4536,20 @@ copy_type_recursive (struct objfile *obj + TYPE_DYN_PROP_LIST (type)); -+ /* Resolve data_location attribute. */ -+ prop = TYPE_DATA_LOCATION (resolved_type); -+ if (dwarf2_evaluate_property (prop, addr, &value)) -+ { -+ struct type *range_type = TYPE_INDEX_TYPE (resolved_type); -+ -+ /* Adjust the data location with the value of byte stride if set, which -+ can describe the separation between successive elements along the -+ dimension. */ -+ if (TYPE_BYTE_STRIDE (range_type) < 0) -+ value += (TYPE_HIGH_BOUND (range_type) - TYPE_LOW_BOUND (range_type)) -+ * TYPE_BYTE_STRIDE (range_type); -+ -+ TYPE_DATA_LOCATION_ADDR (resolved_type) = value; -+ TYPE_DATA_LOCATION_KIND (resolved_type) = PROP_CONST; -+ } -+ else -+ TYPE_DATA_LOCATION (resolved_type) = NULL; -+ - return resolved_type; - } -@@ -4174,6 +4274,27 @@ copy_type_recursive (struct objfile *obj - sizeof (struct dynamic_prop)); - } - -+ /* Copy the data location information. */ -+ if (TYPE_DATA_LOCATION (type) != NULL) -+ { -+ TYPE_DATA_LOCATION (new_type) = xmalloc (sizeof (struct dynamic_prop)); -+ *TYPE_DATA_LOCATION (new_type) = *TYPE_DATA_LOCATION (type); -+ } -+ + /* Copy allocated information. */ + if (TYPE_ALLOCATED_PROP (type) != NULL) + { @@ -901,8 +865,8 @@ Index: gdb-7.8.90.20150126/gdb/gdbtypes.c /* Copy pointers to other types. */ if (TYPE_TARGET_TYPE (type)) TYPE_TARGET_TYPE (new_type) = -@@ -4227,6 +4348,44 @@ copy_type (const struct type *type) - sizeof (struct dynamic_prop)); +@@ -4494,6 +4591,35 @@ copy_type_recursive (struct objfile *obj + gdb_assert_not_reached ("bad type_specific_kind"); } + if (TYPE_ALLOCATED_PROP (type)) @@ -923,15 +887,6 @@ Index: gdb-7.8.90.20150126/gdb/gdbtypes.c + sizeof (struct dynamic_prop)); + } + -+ if (TYPE_DATA_LOCATION (type)) -+ { -+ TYPE_DATA_LOCATION (new_type) -+ = OBSTACK_ZALLOC (&TYPE_OWNER (type).objfile->objfile_obstack, -+ struct dynamic_prop); -+ memcpy (TYPE_DATA_LOCATION (new_type), TYPE_DATA_LOCATION (type), -+ sizeof (struct dynamic_prop)); -+ } -+ + if (TYPE_NFIELDS (type)) + { + int nfields = TYPE_NFIELDS (type); @@ -945,26 +900,41 @@ Index: gdb-7.8.90.20150126/gdb/gdbtypes.c + return new_type; } - -Index: gdb-7.8.90.20150126/gdb/gdbtypes.h + +@@ -4519,6 +4645,14 @@ copy_type (const struct type *type) + TYPE_DYN_PROP_LIST (new_type) + = copy_dynamic_prop_list (&TYPE_OBJFILE (type) -> objfile_obstack, + TYPE_DYN_PROP_LIST (type)); ++ if (TYPE_ALLOCATED_PROP (type) != NULL) ++ TYPE_ALLOCATED_PROP (new_type) = obstack_copy ++ (&TYPE_OBJFILE (type)->objfile_obstack, TYPE_ALLOCATED_PROP (type), ++ sizeof (*TYPE_ALLOCATED_PROP (type))); ++ if (TYPE_ASSOCIATED_PROP (type) != NULL) ++ TYPE_ASSOCIATED_PROP (new_type) = obstack_copy ++ (&TYPE_OBJFILE (type)->objfile_obstack, TYPE_ASSOCIATED_PROP (type), ++ sizeof (*TYPE_ASSOCIATED_PROP (type))); + + return new_type; + } +Index: gdb-7.9.50.20150520/gdb/gdbtypes.h =================================================================== ---- gdb-7.8.90.20150126.orig/gdb/gdbtypes.h 2015-01-26 07:47:25.852758401 +0100 -+++ gdb-7.8.90.20150126/gdb/gdbtypes.h 2015-01-26 07:47:42.405829908 +0100 -@@ -660,6 +660,10 @@ struct main_type +--- gdb-7.9.50.20150520.orig/gdb/gdbtypes.h 2015-05-29 08:27:02.685717504 +0200 ++++ gdb-7.9.50.20150520/gdb/gdbtypes.h 2015-05-29 08:46:08.862924052 +0200 +@@ -569,6 +569,10 @@ struct range_bounds - struct dynamic_prop high; + struct dynamic_prop high; -+ /* * Stride of range. */ ++ /* * Stride of range. */ + -+ struct dynamic_prop stride; ++ struct dynamic_prop stride; + - /* True if HIGH range bound contains the number of elements in the - subrange. This affects how the final hight bound is computed. */ + /* True if HIGH range bound contains the number of elements in the + subrange. This affects how the final hight bound is computed. */ -@@ -720,6 +724,18 @@ struct main_type - this field yields to the location of the data for an object. */ +@@ -741,6 +745,18 @@ struct main_type - struct dynamic_prop *data_location; + /* * Contains all dynamic type properties. */ + struct dynamic_prop_list *dyn_prop_list; + + /* Structure for DW_AT_allocated. + The presence of this attribute indicates that the object of the type @@ -980,7 +950,7 @@ Index: gdb-7.8.90.20150126/gdb/gdbtypes.h }; /* * A ``struct type'' describes a particular instance of a type, with -@@ -1198,6 +1214,39 @@ extern void allocate_gnat_aux_type (stru +@@ -1255,6 +1271,15 @@ extern void allocate_gnat_aux_type (stru TYPE_RANGE_DATA(range_type)->high.kind #define TYPE_LOW_BOUND_KIND(range_type) \ TYPE_RANGE_DATA(range_type)->low.kind @@ -993,16 +963,13 @@ Index: gdb-7.8.90.20150126/gdb/gdbtypes.h +#define TYPE_BYTE_STRIDE_KIND(range_type) \ + TYPE_RANGE_DATA(range_type)->stride.kind + -+ -+/* Attribute accessors for the type data location. */ -+#define TYPE_DATA_LOCATION(thistype) \ -+ TYPE_MAIN_TYPE(thistype)->data_location -+#define TYPE_DATA_LOCATION_BATON(thistype) \ -+ TYPE_DATA_LOCATION (thistype)->data.baton -+#define TYPE_DATA_LOCATION_ADDR(thistype) \ -+ TYPE_DATA_LOCATION (thistype)->data.const_val -+#define TYPE_DATA_LOCATION_KIND(thistype) \ -+ TYPE_DATA_LOCATION (thistype)->kind + + /* Property accessors for the type data location. */ + #define TYPE_DATA_LOCATION(thistype) \ +@@ -1265,6 +1290,20 @@ extern void allocate_gnat_aux_type (stru + TYPE_DATA_LOCATION (thistype)->data.const_val + #define TYPE_DATA_LOCATION_KIND(thistype) \ + TYPE_DATA_LOCATION (thistype)->kind +#define TYPE_ALLOCATED_PROP(thistype) TYPE_MAIN_TYPE(thistype)->allocated +#define TYPE_ASSOCIATED_PROP(thistype) TYPE_MAIN_TYPE(thistype)->associated + @@ -1018,9 +985,9 @@ Index: gdb-7.8.90.20150126/gdb/gdbtypes.h + && TYPE_ASSOCIATED_PROP (t)->kind == PROP_CONST \ + && !TYPE_ASSOCIATED_PROP (t)->data.const_val) - /* Attribute accessors for the type data location. */ - #define TYPE_DATA_LOCATION(thistype) \ -@@ -1215,6 +1264,9 @@ extern void allocate_gnat_aux_type (stru + /* Attribute accessors for dynamic properties. */ + #define TYPE_DYN_PROP_LIST(thistype) \ +@@ -1283,6 +1322,9 @@ extern void allocate_gnat_aux_type (stru TYPE_HIGH_BOUND_UNDEFINED(TYPE_INDEX_TYPE(arraytype)) #define TYPE_ARRAY_LOWER_BOUND_IS_UNDEFINED(arraytype) \ TYPE_LOW_BOUND_UNDEFINED(TYPE_INDEX_TYPE(arraytype)) @@ -1030,7 +997,7 @@ Index: gdb-7.8.90.20150126/gdb/gdbtypes.h #define TYPE_ARRAY_UPPER_BOUND_VALUE(arraytype) \ (TYPE_HIGH_BOUND(TYPE_INDEX_TYPE((arraytype)))) -@@ -1685,6 +1737,7 @@ extern struct type *create_array_type_wi +@@ -1764,6 +1806,7 @@ extern struct type *create_array_type_wi extern struct type *create_range_type (struct type *, struct type *, const struct dynamic_prop *, @@ -1038,10 +1005,10 @@ Index: gdb-7.8.90.20150126/gdb/gdbtypes.h const struct dynamic_prop *); extern struct type *create_array_type (struct type *, struct type *, -Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp +Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp 2015-01-26 07:47:42.405829908 +0100 ++++ gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp 2015-05-29 08:27:06.266740292 +0200 @@ -0,0 +1,65 @@ +# Copyright 2014 Free Software Foundation, Inc. + @@ -1108,10 +1075,10 @@ Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp +gdb_continue_to_breakpoint "vla2-deallocated" +gdb_test "print l" " = \\.FALSE\\." "print vla2 deallocated" +gdb_test "print vla2" " = " "print deallocated vla2" -Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-datatypes.exp +Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-datatypes.exp =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-datatypes.exp 2015-01-26 07:47:42.405829908 +0100 ++++ gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-datatypes.exp 2015-05-29 08:27:06.266740292 +0200 @@ -0,0 +1,82 @@ +# Copyright 2014 Free Software Foundation, Inc. + @@ -1195,10 +1162,10 @@ Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-datatypes.exp + "print logicalvla(5,5,5) (2nd)" +gdb_test "print charactervla(5,5,5)" " = 'X'" \ + "print charactervla(5,5,5) (2nd)" -Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-datatypes.f90 +Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-datatypes.f90 =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-datatypes.f90 2015-01-26 07:47:42.405829908 +0100 ++++ gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-datatypes.f90 2015-05-29 08:27:06.266740292 +0200 @@ -0,0 +1,51 @@ +! Copyright 2014 Free Software Foundation, Inc. +! @@ -1251,10 +1218,10 @@ Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-datatypes.f90 + ! dummy statement for bp + l = .FALSE. ! vlas-modified +end program vla_primitives -Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-func.exp +Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-func.exp =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-func.exp 2015-01-26 07:47:42.406829913 +0100 ++++ gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-func.exp 2015-05-29 08:27:06.266740292 +0200 @@ -0,0 +1,61 @@ +# Copyright 2014 Free Software Foundation, Inc. + @@ -1317,10 +1284,10 @@ Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-func.exp + "print vla3 (after func2)" +gdb_test "ptype vla3" "type = integer\\\(kind=4\\\) \\\(10\\\)" \ + "ptype vla3 (after func2)" -Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-func.f90 +Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-func.f90 =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-func.f90 2015-01-26 07:47:42.406829913 +0100 ++++ gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-func.f90 2015-05-29 08:27:06.267740298 +0200 @@ -0,0 +1,71 @@ +! Copyright 2014 Free Software Foundation, Inc. +! @@ -1393,10 +1360,10 @@ Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-func.f90 + + ret = .TRUE. ! func2-returned +end program vla_func -Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-history.exp +Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-history.exp =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-history.exp 2015-01-26 07:47:42.406829913 +0100 ++++ gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-history.exp 2015-05-29 08:27:06.267740298 +0200 @@ -0,0 +1,62 @@ +# Copyright 2014 Free Software Foundation, Inc. + @@ -1460,10 +1427,10 @@ Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-history.exp +# Try to access history values for vla values. +gdb_test "print \$9" " = 1311" "print \$9" +gdb_test "print \$10" " = 1001" "print \$10" -Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-ptype-sub.exp +Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-ptype-sub.exp =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-ptype-sub.exp 2015-01-26 07:47:42.406829913 +0100 ++++ gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-ptype-sub.exp 2015-05-29 08:27:06.267740298 +0200 @@ -0,0 +1,87 @@ +# Copyright 2014 Free Software Foundation, Inc. + @@ -1552,10 +1519,10 @@ Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-ptype-sub.exp + "ptype array1(100) (arbitrary length)" +gdb_test "ptype array2(4,100)" "type = integer\\\(kind=4\\\)" \ + "ptype array2(4,100) (arbitrary length)" -Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-ptype.exp +Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-ptype.exp =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-ptype.exp 2015-01-26 07:47:42.406829913 +0100 ++++ gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-ptype.exp 2015-05-29 08:27:06.267740298 +0200 @@ -0,0 +1,96 @@ +# Copyright 2014 Free Software Foundation, Inc. + @@ -1653,10 +1620,10 @@ Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-ptype.exp +gdb_test "ptype vla2(5, 45, 20)" \ + "no such vector element because not allocated" \ + "ptype vla2(5, 45, 20) not allocated" -Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-sizeof.exp +Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-sizeof.exp =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-sizeof.exp 2015-01-26 07:47:42.406829913 +0100 ++++ gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-sizeof.exp 2015-05-29 08:27:06.267740298 +0200 @@ -0,0 +1,46 @@ +# Copyright 2014 Free Software Foundation, Inc. + @@ -1704,10 +1671,10 @@ Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-sizeof.exp +gdb_breakpoint [gdb_get_line_number "pvla-associated"] +gdb_continue_to_breakpoint "pvla-associated" +gdb_test "print sizeof(pvla)" " = 4000" "print sizeof associated pvla" -Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-stride.exp +Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-stride.exp =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-stride.exp 2015-01-26 07:47:42.407829917 +0100 ++++ gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-stride.exp 2015-05-29 08:27:06.267740298 +0200 @@ -0,0 +1,44 @@ +# Copyright 2014 Free Software Foundation, Inc. + @@ -1753,10 +1720,10 @@ Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-stride.exp +gdb_continue_to_breakpoint "single-element" +gdb_test "print pvla" " = \\\(5\\\)" "print single-element" +gdb_test "print pvla(1)" " = 5" "print one single-element" -Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-stride.f90 +Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-stride.f90 =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-stride.f90 2015-01-26 07:47:42.407829917 +0100 ++++ gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-stride.f90 2015-05-29 08:27:06.268740305 +0200 @@ -0,0 +1,30 @@ +! Copyright 2014 Free Software Foundation, Inc. +! @@ -1788,10 +1755,10 @@ Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-stride.f90 + + pvla => null() ! single-element +end program vla_stride -Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-strings.exp +Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-strings.exp =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-strings.exp 2015-01-26 07:47:42.407829917 +0100 ++++ gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-strings.exp 2015-05-29 08:27:06.268740305 +0200 @@ -0,0 +1,104 @@ +# Copyright 2014 Free Software Foundation, Inc. + @@ -1897,10 +1864,10 @@ Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-strings.exp + "whatis var_char_p after associated" +gdb_test "ptype var_char_p" "type = PTR TO -> \\( character\\*7 \\)" \ + "ptype var_char_p after associated" -Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-strings.f90 +Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-strings.f90 =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-strings.f90 2015-01-26 07:47:42.407829917 +0100 ++++ gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-strings.f90 2015-05-31 15:25:01.305615755 +0200 @@ -0,0 +1,40 @@ +! Copyright 2014 Free Software Foundation, Inc. +! @@ -1942,10 +1909,10 @@ Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-strings.f90 + var_char_p => null() + l = associated(var_char_p) ! var_char_p-not-associated +end program vla_strings -Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-sub.f90 +Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-sub.f90 =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-sub.f90 2015-01-26 07:47:42.407829917 +0100 ++++ gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-sub.f90 2015-05-29 08:27:06.268740305 +0200 @@ -0,0 +1,82 @@ +! Copyright 2014 Free Software Foundation, Inc. +! @@ -2029,10 +1996,10 @@ Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-sub.f90 + + call bar(sub_arr3, sub_arr1) +end program vla_sub -Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp +Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp 2015-01-26 07:47:42.407829917 +0100 ++++ gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp 2015-05-29 08:27:06.268740305 +0200 @@ -0,0 +1,35 @@ +# Copyright 2014 Free Software Foundation, Inc. + @@ -2069,10 +2036,10 @@ Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp +gdb_test "p array1(100)" " = 100" "print arbitary array1(100)" +gdb_test "p array2(4,10)" " = 1" "print arbitary array2(4,10)" +gdb_test "p array2(4,100)" " = 1" "print arbitary array2(4,100)" -Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp +Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp 2015-01-26 07:47:42.407829917 +0100 ++++ gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp 2015-05-29 08:27:06.268740305 +0200 @@ -0,0 +1,49 @@ +# Copyright 2014 Free Software Foundation, Inc. + @@ -2123,10 +2090,10 @@ Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp +gdb_test "p sub_arr2(1, 1, 1)" " = 30" "sub_arr2(1, 1, 1) after finish" +gdb_test "p sub_arr2(2, 1, 1)" " = 20" "sub_arr2(2, 1, 1) after finish" + -Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-value-sub.exp +Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-value-sub.exp =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-value-sub.exp 2015-01-26 07:47:42.408829922 +0100 ++++ gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-value-sub.exp 2015-05-29 08:27:06.269740311 +0200 @@ -0,0 +1,90 @@ +# Copyright 2014 Free Software Foundation, Inc. + @@ -2218,10 +2185,10 @@ Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-value-sub.exp + "set array(2,2,2) to 20 in subroutine (passed vla)" +gdb_test "print array2" " = \\( *\\( *\\( *30, *20, *3,\[()3, .\]*\\)" \ + "print array2 in foo after it was mofified in debugger (passed vla)" -Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-value.exp +Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-value.exp =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-value.exp 2015-01-26 07:47:42.408829922 +0100 ++++ gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla-value.exp 2015-05-29 08:27:06.269740311 +0200 @@ -0,0 +1,148 @@ +# Copyright 2014 Free Software Foundation, Inc. + @@ -2371,10 +2338,10 @@ Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla-value.exp +gdb_continue_to_breakpoint "pvla-deassociated" +gdb_test "print \$mypvar(1,3,8)" " = 1001" \ + "print \$mypvar(1,3,8) after deallocated" -Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla.f90 +Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla.f90 =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla.f90 2015-01-26 07:47:42.408829922 +0100 ++++ gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/vla.f90 2015-05-29 08:27:06.269740311 +0200 @@ -0,0 +1,56 @@ +! Copyright 2014 Free Software Foundation, Inc. +! @@ -2432,11 +2399,11 @@ Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.fortran/vla.f90 + allocate (vla3 (2,2)) ! vla2-deallocated + vla3(:,:) = 13 +end program vla -Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.mi/mi-vla-fortran.exp +Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.mi/mi-vla-fortran.exp =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gdb-7.8.90.20150126/gdb/testsuite/gdb.mi/mi-vla-fortran.exp 2015-01-26 07:47:42.408829922 +0100 -@@ -0,0 +1,182 @@ ++++ gdb-7.9.50.20150520/gdb/testsuite/gdb.mi/mi-vla-fortran.exp 2015-05-29 11:13:53.951656591 +0200 +@@ -0,0 +1,181 @@ +# Copyright 2014 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify @@ -2507,8 +2474,7 @@ Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.mi/mi-vla-fortran.exp +mi_run_cmd +mi_expect_stop "breakpoint-hit" "vla" "" ".*vla.f90" "$bp_lineno" \ + { "" "disp=\"del\"" } "run to breakpoint at line $bp_lineno" -+mi_gdb_test "510-data-evaluate-expression vla1" \ -+ "510\\^done,value=\"\\(0, 0, 0, 0, 0\\)\"" "evaluate allocated vla" ++# Content of 'vla1' is uninitialized here. + +mi_create_varobj_checked vla1_allocated vla1 "real\\\(kind=4\\\) \\\(5\\\)" \ + "create local variable vla1_allocated" @@ -2619,10 +2585,10 @@ Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.mi/mi-vla-fortran.exp + +mi_gdb_exit +return 0 -Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.mi/vla.f90 +Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.mi/vla.f90 =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gdb-7.8.90.20150126/gdb/testsuite/gdb.mi/vla.f90 2015-01-26 07:47:42.409829926 +0100 ++++ gdb-7.9.50.20150520/gdb/testsuite/gdb.mi/vla.f90 2015-05-29 08:27:06.270740317 +0200 @@ -0,0 +1,42 @@ +! Copyright 2014 Free Software Foundation, Inc. +! @@ -2666,11 +2632,11 @@ Index: gdb-7.8.90.20150126/gdb/testsuite/gdb.mi/vla.f90 + pvla2 => null() + l = associated(pvla2) ! pvla2-set-to-null +end program vla -Index: gdb-7.8.90.20150126/gdb/typeprint.c +Index: gdb-7.9.50.20150520/gdb/typeprint.c =================================================================== ---- gdb-7.8.90.20150126.orig/gdb/typeprint.c 2015-01-26 07:47:25.856758418 +0100 -+++ gdb-7.8.90.20150126/gdb/typeprint.c 2015-01-26 07:47:42.409829926 +0100 -@@ -456,6 +456,13 @@ whatis_exp (char *exp, int show) +--- gdb-7.9.50.20150520.orig/gdb/typeprint.c 2015-05-29 08:27:02.688717523 +0200 ++++ gdb-7.9.50.20150520/gdb/typeprint.c 2015-05-29 08:27:06.270740317 +0200 +@@ -458,6 +458,13 @@ whatis_exp (char *exp, int show) type = value_type (val); @@ -2684,10 +2650,10 @@ Index: gdb-7.8.90.20150126/gdb/typeprint.c get_user_print_options (&opts); if (opts.objectprint) { -Index: gdb-7.8.90.20150126/gdb/valarith.c +Index: gdb-7.9.50.20150520/gdb/valarith.c =================================================================== ---- gdb-7.8.90.20150126.orig/gdb/valarith.c 2015-01-26 07:47:25.857758422 +0100 -+++ gdb-7.8.90.20150126/gdb/valarith.c 2015-01-26 07:47:42.409829926 +0100 +--- gdb-7.9.50.20150520.orig/gdb/valarith.c 2015-05-29 08:27:02.689717530 +0200 ++++ gdb-7.9.50.20150520/gdb/valarith.c 2015-05-29 08:27:06.271740324 +0200 @@ -193,12 +193,31 @@ value_subscripted_rvalue (struct value * struct type *array_type = check_typedef (value_type (array)); struct type *elt_type = check_typedef (TYPE_TARGET_TYPE (array_type)); @@ -2722,10 +2688,10 @@ Index: gdb-7.8.90.20150126/gdb/valarith.c if (VALUE_LVAL (array) == lval_memory && value_lazy (array)) v = allocate_value_lazy (elt_type); -Index: gdb-7.8.90.20150126/gdb/valprint.c +Index: gdb-7.9.50.20150520/gdb/valprint.c =================================================================== ---- gdb-7.8.90.20150126.orig/gdb/valprint.c 2015-01-26 07:47:25.858758427 +0100 -+++ gdb-7.8.90.20150126/gdb/valprint.c 2015-01-26 07:47:42.410829930 +0100 +--- gdb-7.9.50.20150520.orig/gdb/valprint.c 2015-05-29 08:27:02.690717536 +0200 ++++ gdb-7.9.50.20150520/gdb/valprint.c 2015-05-29 08:27:06.271740324 +0200 @@ -303,6 +303,18 @@ valprint_check_validity (struct ui_file { CHECK_TYPEDEF (type); @@ -2764,7 +2730,7 @@ Index: gdb-7.8.90.20150126/gdb/valprint.c /* A generic val_print that is suitable for use by language implementations of the la_val_print method. This function can handle most type codes, though not all, notably exception -@@ -800,12 +824,16 @@ static int +@@ -802,12 +826,16 @@ static int value_check_printable (struct value *val, struct ui_file *stream, const struct value_print_options *options) { @@ -2781,7 +2747,7 @@ Index: gdb-7.8.90.20150126/gdb/valprint.c if (value_entirely_optimized_out (val)) { if (options->summary && !val_print_scalar_type_p (value_type (val))) -@@ -831,6 +859,18 @@ value_check_printable (struct value *val +@@ -833,6 +861,18 @@ value_check_printable (struct value *val return 0; } @@ -2800,23 +2766,23 @@ Index: gdb-7.8.90.20150126/gdb/valprint.c return 1; } -Index: gdb-7.8.90.20150126/gdb/valprint.h +Index: gdb-7.9.50.20150520/gdb/valprint.h =================================================================== ---- gdb-7.8.90.20150126.orig/gdb/valprint.h 2015-01-26 07:47:25.859758431 +0100 -+++ gdb-7.8.90.20150126/gdb/valprint.h 2015-01-26 07:47:42.410829930 +0100 -@@ -217,4 +217,8 @@ extern void output_command_const (const - - extern int val_print_scalar_type_p (struct type *type); +--- gdb-7.9.50.20150520.orig/gdb/valprint.h 2015-05-29 08:27:02.691717543 +0200 ++++ gdb-7.9.50.20150520/gdb/valprint.h 2015-05-29 08:27:06.272740330 +0200 +@@ -232,4 +232,8 @@ extern void print_command_parse_format ( + struct format_data *fmtp); + extern void print_value (struct value *val, const struct format_data *fmtp); +extern void val_print_not_allocated (struct ui_file *stream); + +extern void val_print_not_associated (struct ui_file *stream); + #endif -Index: gdb-7.8.90.20150126/gdb/value.c +Index: gdb-7.9.50.20150520/gdb/value.c =================================================================== ---- gdb-7.8.90.20150126.orig/gdb/value.c 2015-01-26 07:47:25.860758435 +0100 -+++ gdb-7.8.90.20150126/gdb/value.c 2015-01-26 07:47:42.411829935 +0100 +--- gdb-7.9.50.20150520.orig/gdb/value.c 2015-05-29 08:27:02.693717555 +0200 ++++ gdb-7.9.50.20150520/gdb/value.c 2015-05-29 08:27:06.273740337 +0200 @@ -40,6 +40,7 @@ #include "tracepoint.h" #include "cp-abi.h" @@ -2825,7 +2791,7 @@ Index: gdb-7.8.90.20150126/gdb/value.c /* Prototypes for exported functions. */ -@@ -1755,6 +1756,25 @@ set_value_component_location (struct val +@@ -1776,6 +1777,25 @@ set_value_component_location (struct val if (funcs->copy_closure) component->location.computed.closure = funcs->copy_closure (whole); } @@ -2851,7 +2817,7 @@ Index: gdb-7.8.90.20150126/gdb/value.c } -@@ -3041,13 +3061,22 @@ value_primitive_field (struct value *arg +@@ -3080,13 +3100,22 @@ value_primitive_field (struct value *arg v = allocate_value_lazy (type); else { @@ -2880,7 +2846,7 @@ Index: gdb-7.8.90.20150126/gdb/value.c } set_value_component_location (v, arg1); VALUE_REGNUM (v) = VALUE_REGNUM (arg1); -@@ -3635,7 +3664,8 @@ readjust_indirect_value_type (struct val +@@ -3674,7 +3703,8 @@ readjust_indirect_value_type (struct val struct value *original_value) { /* Re-adjust type. */ @@ -2890,7 +2856,7 @@ Index: gdb-7.8.90.20150126/gdb/value.c /* Add embedding info. */ set_value_enclosing_type (value, enc_type); -@@ -3652,6 +3682,12 @@ coerce_ref (struct value *arg) +@@ -3691,6 +3721,12 @@ coerce_ref (struct value *arg) struct value *retval; struct type *enc_type; @@ -2903,7 +2869,7 @@ Index: gdb-7.8.90.20150126/gdb/value.c retval = coerce_ref_if_computed (arg); if (retval) return retval; -@@ -3786,8 +3822,14 @@ value_fetch_lazy (struct value *val) +@@ -3825,8 +3861,14 @@ value_fetch_lazy (struct value *val) } else if (VALUE_LVAL (val) == lval_memory) { @@ -2919,11 +2885,11 @@ Index: gdb-7.8.90.20150126/gdb/value.c if (TYPE_LENGTH (type)) read_value_memory (val, 0, value_stack (val), -Index: gdb-7.8.90.20150126/gdb/dwarf2loc.c +Index: gdb-7.9.50.20150520/gdb/dwarf2loc.c =================================================================== ---- gdb-7.8.90.20150126.orig/gdb/dwarf2loc.c 2015-01-26 07:47:25.862758444 +0100 -+++ gdb-7.8.90.20150126/gdb/dwarf2loc.c 2015-01-26 07:47:42.412829939 +0100 -@@ -2293,6 +2293,11 @@ dwarf2_evaluate_loc_desc_full (struct ty +--- gdb-7.9.50.20150520.orig/gdb/dwarf2loc.c 2015-05-29 08:27:02.694717562 +0200 ++++ gdb-7.9.50.20150520/gdb/dwarf2loc.c 2015-05-29 08:27:06.274740343 +0200 +@@ -2294,6 +2294,11 @@ dwarf2_evaluate_loc_desc_full (struct ty int in_stack_memory = dwarf_expr_fetch_in_stack_memory (ctx, 0); do_cleanups (value_chain); @@ -2935,7 +2901,7 @@ Index: gdb-7.8.90.20150126/gdb/dwarf2loc.c retval = value_at_lazy (type, address + byte_offset); if (in_stack_memory) set_value_stack (retval, 1); -@@ -2552,6 +2557,19 @@ dwarf2_compile_property_to_c (struct ui_ +@@ -2577,6 +2582,19 @@ dwarf2_compile_property_to_c (struct ui_ data, data + size, per_cu); } diff --git a/gdb.spec b/gdb.spec index 123150a..046fbd3 100644 --- a/gdb.spec +++ b/gdb.spec @@ -20,12 +20,12 @@ Summary(zh_CN.UTF-8): [开发]C和其他语言的调试器 Summary(zh_TW.UTF-8): [.-A開發]C和.$)B其.-A他語.$)B言的調試器 %define snap 20120926 Name: gdb -Version: 7.9 -Release: 3 +Version: 7.10 +Release: 1 License: GPL v3+ Group: Development/Debuggers Source0: http://ftp.gnu.org/gnu/gdb/%{name}-%{version}.tar.xz -# Source0-md5: e6279f26559d839f0b4218a482bcb43e +# Source0-md5: 2a35bac41fa8e10bf04f3a0dd7f7f363 Source1: http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/%{name}-non-english-man-pages.tar.bz2 # Source1-md5: 2e8a48939ae282c12bbacdd54e398247 Source3: %{name}-gstack.man -- 2.44.0