]> git.pld-linux.org Git - packages/gdb.git/commitdiff
- updated to 7.10 and patches from fedora auto/th/gdb-7.10-1
authorJan Rękorajski <baggins@pld-linux.org>
Mon, 7 Sep 2015 18:53:41 +0000 (20:53 +0200)
committerJan Rękorajski <baggins@pld-linux.org>
Mon, 7 Sep 2015 18:53:41 +0000 (20:53 +0200)
buildid-locate-rpm-pld.patch
gdb-6.6-buildid-locate-core-as-arg.patch
gdb-6.6-buildid-locate-misleading-warning-missing-debuginfo-rhbz981154.patch
gdb-6.6-buildid-locate-rpm.patch
gdb-6.6-buildid-locate-solib-missing-ids.patch
gdb-6.6-buildid-locate.patch
gdb-vla-intel-stringbt-fix.patch
gdb-vla-intel.patch
gdb.spec

index 5bef82d1b5367b05439dc7a794119db5d8ab7b18..a5712820f94e3982f338c72fee45fefcad2dcd01 100644 (file)
@@ -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);
        }
index c98e686899858608d61e498d5fed388e3a1a8b0f..523b7e0a865ce300af92d83924c40de45f5e1a21 100644 (file)
@@ -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,
index 044a408ef51a24d4e092a9b5877d7300fc342c79..b3750cd04c6827f62936b3bcd865d31ea3c3bd47 100644 (file)
@@ -15,10 +15,10 @@ Comments by Sergio Durigan Junior <sergiodj@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;
index 8dc4bccf4dc4e0868b7c6872c1344da94f4c2619..9e850ddb72436dca5619af925468a4df7bd690d3 100644 (file)
@@ -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);
 +      }
  }
  
index 9ad7fcbc82b6b7853aa0650bc828f51a93394182..a89893c987020d16e33e64d0329acd028632e7ed 100644 (file)
@@ -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);
index 71de4d0d6c4288086a0787793efbab2e9779cead..dc05c39ac2d9a7c7e3ead4a06f98838547d72921 100644 (file)
@@ -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);
index 67850f34c9494bd74be689a73eff816ee466b972..56ceff2054fbc0bde93df6169a24fe0929681344 100644 (file)
@@ -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 \\)" \
index 9b86bde7c80671185d44f61097a0ac1a13b0c25b..85c036476bac69a9459f9fa14e92d7d1bc2bc365 100644 (file)
@@ -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
  \f
  /* 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;
  }
\f
-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
  }
  
  \f
-@@ -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);
  }
  
index 123150a5e58a687c415816ce1c18866f13b67cff..046fbd3cee23e0162ef22a7fb24c7406d3288a61 100644 (file)
--- 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
This page took 0.358881 seconds and 4 git commands to generate.