[packages/gdb] - updated to 7.10 and patches from fedora

baggins baggins at pld-linux.org
Mon Sep 7 20:54:11 CEST 2015


commit 324d13e10b94e9e2dd354db5c2cddf38854e4176
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Mon Sep 7 20:53:41 2015 +0200

    - updated to 7.10 and patches from fedora

 buildid-locate-rpm-pld.patch                       |   9 +-
 gdb-6.6-buildid-locate-core-as-arg.patch           |  44 +-
 ...ding-warning-missing-debuginfo-rhbz981154.patch |  38 +-
 gdb-6.6-buildid-locate-rpm.patch                   | 110 ++---
 gdb-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/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
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 <fcntl.h>
  #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, &sections, &sections_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 <sergiodj at redhat.com>:
   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 <libunwind-ia64.h> 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 <sys/stat.h>
 +#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 <sys/stat.h>
 +
 +#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" " = <not allocated>" "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);
  }
  
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/gdb.git/commitdiff/324d13e10b94e9e2dd354db5c2cddf38854e4176



More information about the pld-cvs-commit mailing list