public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/gdb] gdb-17.2-rebase-f44: Rebase to pre-7.9 snapshot 7.8.50.20150108.
@ 2026-06-27 23:56 Jan Kratochvil
  0 siblings, 0 replies; only message in thread
From: Jan Kratochvil @ 2026-06-27 23:56 UTC (permalink / raw)
  To: git-commits

            A new commit has been pushed.

            Repo   : rpms/gdb
            Branch : gdb-17.2-rebase-f44
            Commit : 2f7f533ae735c37ad823486c21ab39dde62aa772
            Author : Jan Kratochvil <jan.kratochvil@redhat.com>
            Date   : 2015-01-08T21:53:17+01:00
            Stats  : +2233/-3918 in 39 file(s)
            URL    : https://src.fedoraproject.org/rpms/gdb/c/2f7f533ae735c37ad823486c21ab39dde62aa772?branch=gdb-17.2-rebase-f44

            Log:
            Rebase to pre-7.9 snapshot 7.8.50.20150108.

- Fix jit-reader.h for multi-lib.

---
diff --git a/.gitignore b/.gitignore
index 6af48d5..d98d850 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,2 @@
 /gdb-libstdc++-v3-python-r155978.tar.bz2
-/gdb-7.8.1.20141228.tar.xz
+/gdb-7.8.50.20150108.tar.xz

diff --git a/gdb-6.3-bz231832-obstack-2gb.patch b/gdb-6.3-bz231832-obstack-2gb.patch
index 44971ae..1a19d34 100644
--- a/gdb-6.3-bz231832-obstack-2gb.patch
+++ b/gdb-6.3-bz231832-obstack-2gb.patch
@@ -1,29 +1,10 @@
 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=231832
 
 
-Index: gdb-7.5.50.20130118/gdb/symmisc.c
+Index: gdb-7.8.50.20141228/include/obstack.h
 ===================================================================
---- gdb-7.5.50.20130118.orig/gdb/symmisc.c	2013-01-18 23:54:57.478974289 +0100
-+++ gdb-7.5.50.20130118/gdb/symmisc.c	2013-01-18 23:55:41.650930254 +0100
-@@ -148,10 +148,10 @@ print_objfile_statistics (void)
-     if (OBJSTAT (objfile, sz_strtab) > 0)
-       printf_filtered (_("  Space used by a.out string tables: %d\n"),
- 		       OBJSTAT (objfile, sz_strtab));
--    printf_filtered (_("  Total memory used for objfile obstack: %d\n"),
--		     obstack_memory_used (&objfile->objfile_obstack));
--    printf_filtered (_("  Total memory used for BFD obstack: %d\n"),
--		     obstack_memory_used (&objfile->per_bfd->storage_obstack));
-+    printf_filtered (_("  Total memory used for objfile obstack: %ld\n"),
-+		     (long) obstack_memory_used (&objfile->objfile_obstack));
-+    printf_filtered (_("  Total memory used for BFD obstack: %ld\n"),
-+		     (long) obstack_memory_used (&objfile->per_bfd->storage_obstack));
-     printf_filtered (_("  Total memory used for psymbol cache: %d\n"),
- 		     bcache_memory_used (psymbol_bcache_get_bcache
- 		                          (objfile->psymbol_cache)));
-Index: gdb-7.5.50.20130118/include/obstack.h
-===================================================================
---- gdb-7.5.50.20130118.orig/include/obstack.h	2013-01-18 23:54:57.478974289 +0100
-+++ gdb-7.5.50.20130118/include/obstack.h	2013-01-18 23:55:10.256999188 +0100
+--- gdb-7.8.50.20141228.orig/include/obstack.h	2015-01-01 17:02:53.254820447 +0100
++++ gdb-7.8.50.20141228/include/obstack.h	2015-01-01 17:02:53.880820084 +0100
 @@ -188,31 +188,31 @@ struct obstack		/* control current objec
  
  /* Declare the external functions we use; they are in obstack.c.  */
@@ -129,10 +110,10 @@ Index: gdb-7.5.50.20130118/include/obstack.h
     if (__o->chunk_limit - __o->next_free < __len)			\
       _obstack_newchunk (__o, __len);					\
     obstack_blank_fast (__o, __len);					\
-Index: gdb-7.5.50.20130118/libiberty/obstack.c
+Index: gdb-7.8.50.20141228/libiberty/obstack.c
 ===================================================================
---- gdb-7.5.50.20130118.orig/libiberty/obstack.c	2013-01-18 23:54:57.478974289 +0100
-+++ gdb-7.5.50.20130118/libiberty/obstack.c	2013-01-18 23:55:10.256999188 +0100
+--- gdb-7.8.50.20141228.orig/libiberty/obstack.c	2015-01-01 17:02:53.254820447 +0100
++++ gdb-7.8.50.20141228/libiberty/obstack.c	2015-01-01 17:02:53.880820084 +0100
 @@ -44,9 +44,11 @@
  #if !defined (_LIBC) && defined (__GNU_LIBRARY__) && __GNU_LIBRARY__ > 1
  #include <gnu-versions.h>

diff --git a/gdb-6.3-readnever-20050907.patch b/gdb-6.3-readnever-20050907.patch
index 7ff1dc7..1e9addf 100644
--- a/gdb-6.3-readnever-20050907.patch
+++ b/gdb-6.3-readnever-20050907.patch
@@ -11,11 +11,11 @@
 
         * gdb.texinfo (File Options): Document --readnever.
 
-Index: gdb-7.6.90.20140127/gdb/doc/gdb.texinfo
+Index: gdb-7.8.50.20141228/gdb/doc/gdb.texinfo
 ===================================================================
---- gdb-7.6.90.20140127.orig/gdb/doc/gdb.texinfo	2014-01-27 22:42:53.150573603 +0100
-+++ gdb-7.6.90.20140127/gdb/doc/gdb.texinfo	2014-01-27 22:42:56.694576319 +0100
-@@ -1031,6 +1031,12 @@ Read each symbol file's entire symbol ta
+--- gdb-7.8.50.20141228.orig/gdb/doc/gdb.texinfo	2015-01-01 17:01:08.308881292 +0100
++++ gdb-7.8.50.20141228/gdb/doc/gdb.texinfo	2015-01-01 17:01:10.302880126 +0100
+@@ -1032,6 +1032,12 @@ Read each symbol file's entire symbol ta
  the default, which is to read it incrementally as it is needed.
  This makes startup slower, but makes future operations faster.
  
@@ -28,11 +28,11 @@ Index: gdb-7.6.90.20140127/gdb/doc/gdb.texinfo
  @end table
  
  @node Mode Options
-Index: gdb-7.6.90.20140127/gdb/main.c
+Index: gdb-7.8.50.20141228/gdb/main.c
 ===================================================================
---- gdb-7.6.90.20140127.orig/gdb/main.c	2014-01-27 22:42:53.153573606 +0100
-+++ gdb-7.6.90.20140127/gdb/main.c	2014-01-27 22:42:56.695576319 +0100
-@@ -473,6 +473,7 @@ captured_main (void *data)
+--- gdb-7.8.50.20141228.orig/gdb/main.c	2015-01-01 17:01:08.312881290 +0100
++++ gdb-7.8.50.20141228/gdb/main.c	2015-01-01 17:01:10.303880125 +0100
+@@ -590,6 +590,7 @@ captured_main (void *data)
        {"xdb", no_argument, &xdb_commands, 1},
        {"dbx", no_argument, &dbx_commands, 1},
        {"readnow", no_argument, &readnow_symbol_files, 1},
@@ -40,7 +40,7 @@ Index: gdb-7.6.90.20140127/gdb/main.c
        {"r", no_argument, &readnow_symbol_files, 1},
        {"quiet", no_argument, &quiet, 1},
        {"q", no_argument, &quiet, 1},
-@@ -1164,6 +1165,7 @@ Selection of debuggee and its files:\n\n
+@@ -1245,6 +1246,7 @@ Selection of debuggee and its files:\n\n
    --se=FILE          Use FILE as symbol file and executable file.\n\
    --symbols=SYMFILE  Read symbols from SYMFILE.\n\
    --readnow          Fully read symbol files on first access.\n\
@@ -48,11 +48,11 @@ Index: gdb-7.6.90.20140127/gdb/main.c
    --write            Set writing into executable and core files.\n\n\
  "), stream);
    fputs_unfiltered (_("\
-Index: gdb-7.6.90.20140127/gdb/symfile.c
+Index: gdb-7.8.50.20141228/gdb/symfile.c
 ===================================================================
---- gdb-7.6.90.20140127.orig/gdb/symfile.c	2014-01-27 22:42:53.154573607 +0100
-+++ gdb-7.6.90.20140127/gdb/symfile.c	2014-01-27 22:42:56.696576320 +0100
-@@ -82,6 +82,7 @@ static void clear_symtab_users_cleanup (
+--- gdb-7.8.50.20141228.orig/gdb/symfile.c	2015-01-01 17:01:08.313881289 +0100
++++ gdb-7.8.50.20141228/gdb/symfile.c	2015-01-01 17:01:10.304880125 +0100
+@@ -80,6 +80,7 @@ static void clear_symtab_users_cleanup (
  
  /* Global variables owned by this file.  */
  int readnow_symbol_files;	/* Read full symbols immediately.  */
@@ -60,19 +60,19 @@ Index: gdb-7.6.90.20140127/gdb/symfile.c
  
  /* Functions this file defines.  */
  
-Index: gdb-7.6.90.20140127/gdb/dwarf2read.c
+Index: gdb-7.8.50.20141228/gdb/dwarf2read.c
 ===================================================================
---- gdb-7.6.90.20140127.orig/gdb/dwarf2read.c	2014-01-27 22:42:56.700576323 +0100
-+++ gdb-7.6.90.20140127/gdb/dwarf2read.c	2014-01-27 22:44:21.915641560 +0100
-@@ -70,6 +70,7 @@
+--- gdb-7.8.50.20141228.orig/gdb/dwarf2read.c	2015-01-01 17:01:08.319881285 +0100
++++ gdb-7.8.50.20141228/gdb/dwarf2read.c	2015-01-01 17:01:26.888870511 +0100
+@@ -69,6 +69,7 @@
  #include "source.h"
  #include "filestuff.h"
  #include "build-id.h"
 +#include "top.h"
  
  #include <fcntl.h>
- #include <string.h>
-@@ -1975,7 +1976,8 @@ dwarf2_has_info (struct objfile *objfile
+ #include <sys/types.h>
+@@ -1989,7 +1990,8 @@ dwarf2_has_info (struct objfile *objfile
                               (void *) names);
        dwarf2_per_objfile->objfile = objfile;
      }
@@ -82,11 +82,11 @@ Index: gdb-7.6.90.20140127/gdb/dwarf2read.c
  	  && dwarf2_per_objfile->info.s.asection != NULL
  	  && !dwarf2_per_objfile->abbrev.is_virtual
  	  && dwarf2_per_objfile->abbrev.s.asection != NULL);
-Index: gdb-7.6.90.20140127/gdb/top.h
+Index: gdb-7.8.50.20141228/gdb/top.h
 ===================================================================
---- gdb-7.6.90.20140127.orig/gdb/top.h	2014-01-27 22:42:53.159573610 +0100
-+++ gdb-7.6.90.20140127/gdb/top.h	2014-01-27 22:42:56.701576324 +0100
-@@ -59,6 +59,7 @@ extern void set_prompt (const char *s);
+--- gdb-7.8.50.20141228.orig/gdb/top.h	2015-01-01 17:01:08.320881284 +0100
++++ gdb-7.8.50.20141228/gdb/top.h	2015-01-01 17:01:10.310880121 +0100
+@@ -67,6 +67,7 @@ extern void set_prompt (const char *s);
  
  /* From random places.  */
  extern int readnow_symbol_files;

diff --git a/gdb-6.3-test-pie-20050107.patch b/gdb-6.3-test-pie-20050107.patch
index 84195b8..1bd11ef 100644
--- a/gdb-6.3-test-pie-20050107.patch
+++ b/gdb-6.3-test-pie-20050107.patch
@@ -1,8 +1,8 @@
-Index: gdb-7.7.50.20140609/gdb/testsuite/configure.ac
+Index: gdb-7.8.50.20141228/gdb/testsuite/configure.ac
 ===================================================================
---- gdb-7.7.50.20140609.orig/gdb/testsuite/configure.ac	2014-06-13 20:05:33.058506817 +0200
-+++ gdb-7.7.50.20140609/gdb/testsuite/configure.ac	2014-06-13 20:05:59.991532595 +0200
-@@ -97,6 +97,6 @@ AC_OUTPUT([Makefile \
+--- gdb-7.8.50.20141228.orig/gdb/testsuite/configure.ac	2015-01-01 17:00:26.123908948 +0100
++++ gdb-7.8.50.20141228/gdb/testsuite/configure.ac	2015-01-01 17:00:43.168897773 +0100
+@@ -106,6 +106,6 @@ AC_OUTPUT([Makefile \
    gdb.hp/gdb.aCC/Makefile gdb.hp/gdb.compat/Makefile \
    gdb.hp/gdb.defects/Makefile gdb.guile/Makefile gdb.linespec/Makefile \
    gdb.mi/Makefile gdb.modula2/Makefile gdb.multi/Makefile \
@@ -10,20 +10,20 @@ Index: gdb-7.7.50.20140609/gdb/testsuite/configure.ac
 +  gdb.objc/Makefile gdb.opencl/Makefile gdb.opt/Makefile gdb.pascal/Makefile gdb.pie/Makefile \
    gdb.perf/Makefile gdb.python/Makefile gdb.reverse/Makefile gdb.stabs/Makefile \
    gdb.threads/Makefile gdb.trace/Makefile gdb.xml/Makefile])
-Index: gdb-7.7.50.20140609/gdb/testsuite/configure
+Index: gdb-7.8.50.20141228/gdb/testsuite/configure
 ===================================================================
---- gdb-7.7.50.20140609.orig/gdb/testsuite/configure	2014-06-13 20:05:29.956503899 +0200
-+++ gdb-7.7.50.20140609/gdb/testsuite/configure	2014-06-13 20:06:24.492555709 +0200
-@@ -3448,7 +3448,7 @@ done
+--- gdb-7.8.50.20141228.orig/gdb/testsuite/configure	2015-01-01 17:00:26.124908947 +0100
++++ gdb-7.8.50.20141228/gdb/testsuite/configure	2015-01-01 17:00:59.467887088 +0100
+@@ -3458,7 +3458,7 @@ if test "${build}" = "${host}" -a "${hos
+ fi
  
  
- 
--ac_config_files="$ac_config_files Makefile gdb.ada/Makefile gdb.arch/Makefile gdb.asm/Makefile gdb.base/Makefile gdb.btrace/Makefile gdb.cell/Makefile gdb.cp/Makefile gdb.disasm/Makefile gdb.dwarf2/Makefile gdb.dlang/Makefile gdb.fortran/Makefile gdb.gdb/Makefile gdb.go/Makefile gdb.server/Makefile gdb.java/Makefile gdb.hp/Makefile gdb.hp/gdb.objdbg/Makefile gdb.hp/gdb.base-hp/Makefile gdb.hp/gdb.aCC/Makefile gdb.hp/gdb.compat/Makefile gdb.hp/gdb.defects/Makefile gdb.guile/Makefile gdb.linespec/Makefile gdb.mi/Makefile gdb.modula2/Makefile gdb.multi/Makefile gdb.objc/Makefile gdb.opencl/Makefile gdb.opt/Makefile gdb.pascal/Makefile gdb.perf/Makefile gdb.python/Makefile gdb.reverse/Makefile gdb.stabs/Makefile gdb.threads/Makefile gdb.trace/Makefile gdb.xml/Makefile"
-+ac_config_files="$ac_config_files Makefile gdb.ada/Makefile gdb.arch/Makefile gdb.asm/Makefile gdb.base/Makefile gdb.btrace/Makefile gdb.cell/Makefile gdb.cp/Makefile gdb.disasm/Makefile gdb.dwarf2/Makefile gdb.dlang/Makefile gdb.fortran/Makefile gdb.gdb/Makefile gdb.go/Makefile gdb.server/Makefile gdb.java/Makefile gdb.hp/Makefile gdb.hp/gdb.objdbg/Makefile gdb.hp/gdb.base-hp/Makefile gdb.hp/gdb.aCC/Makefile gdb.hp/gdb.compat/Makefile gdb.hp/gdb.defects/Makefile gdb.guile/Makefile gdb.linespec/Makefile gdb.mi/Makefile gdb.modula2/Makefile gdb.multi/Makefile gdb.objc/Makefile gdb.opencl/Makefile gdb.opt/Makefile gdb.pascal/Makefile gdb.pie/Makefile gdb.perf/Makefile gdb.python/Makefile gdb.reverse/Makefile gdb.stabs/Makefile gdb.threads/Makefile gdb.trace/Makefile gdb.xml/Makefile"
+-ac_config_files="$ac_config_files Makefile gdb.ada/Makefile gdb.arch/Makefile gdb.asm/Makefile gdb.base/Makefile gdb.btrace/Makefile gdb.cell/Makefile gdb.compile/Makefile gdb.cp/Makefile gdb.disasm/Makefile gdb.dwarf2/Makefile gdb.dlang/Makefile gdb.fortran/Makefile gdb.gdb/Makefile gdb.go/Makefile gdb.server/Makefile gdb.java/Makefile gdb.hp/Makefile gdb.hp/gdb.objdbg/Makefile gdb.hp/gdb.base-hp/Makefile gdb.hp/gdb.aCC/Makefile gdb.hp/gdb.compat/Makefile gdb.hp/gdb.defects/Makefile gdb.guile/Makefile gdb.linespec/Makefile gdb.mi/Makefile gdb.modula2/Makefile gdb.multi/Makefile gdb.objc/Makefile gdb.opencl/Makefile gdb.opt/Makefile gdb.pascal/Makefile gdb.perf/Makefile gdb.python/Makefile gdb.reverse/Makefile gdb.stabs/Makefile gdb.threads/Makefile gdb.trace/Makefile gdb.xml/Makefile"
++ac_config_files="$ac_config_files Makefile gdb.ada/Makefile gdb.arch/Makefile gdb.asm/Makefile gdb.base/Makefile gdb.btrace/Makefile gdb.cell/Makefile gdb.compile/Makefile gdb.cp/Makefile gdb.disasm/Makefile gdb.dwarf2/Makefile gdb.dlang/Makefile gdb.fortran/Makefile gdb.gdb/Makefile gdb.go/Makefile gdb.server/Makefile gdb.java/Makefile gdb.hp/Makefile gdb.hp/gdb.objdbg/Makefile gdb.hp/gdb.base-hp/Makefile gdb.hp/gdb.aCC/Makefile gdb.hp/gdb.compat/Makefile gdb.hp/gdb.defects/Makefile gdb.guile/Makefile gdb.linespec/Makefile gdb.mi/Makefile gdb.modula2/Makefile gdb.multi/Makefile gdb.objc/Makefile gdb.opencl/Makefile gdb.opt/Makefile gdb.pascal/Makefile gdb.pie/Makefile gdb.perf/Makefile gdb.python/Makefile gdb.reverse/Makefile gdb.stabs/Makefile gdb.threads/Makefile gdb.trace/Makefile gdb.xml/Makefile"
  
  cat >confcache <<\_ACEOF
  # This file is a shell script that caches the results of configure
-@@ -4179,6 +4179,7 @@ do
+@@ -4190,6 +4190,7 @@ do
      "gdb.opencl/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.opencl/Makefile" ;;
      "gdb.opt/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.opt/Makefile" ;;
      "gdb.pascal/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.pascal/Makefile" ;;
@@ -31,10 +31,10 @@ Index: gdb-7.7.50.20140609/gdb/testsuite/configure
      "gdb.perf/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.perf/Makefile" ;;
      "gdb.python/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.python/Makefile" ;;
      "gdb.reverse/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.reverse/Makefile" ;;
-Index: gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/attach.c
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.pie/attach.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/attach.c	2014-06-13 20:05:33.060506819 +0200
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.pie/attach.c	2015-01-01 17:00:43.169897773 +0100
 @@ -0,0 +1,20 @@
 +/* This program is intended to be started outside of gdb, and then
 +   attached to by gdb.  Thus, it simply spins in a loop.  The loop
@@ -56,10 +56,10 @@ Index: gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/attach.c
 +    }
 +  return 0;
 +}
-Index: gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/attach2.c
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.pie/attach2.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/attach2.c	2014-06-13 20:05:33.060506819 +0200
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.pie/attach2.c	2015-01-01 17:00:43.170897772 +0100
 @@ -0,0 +1,24 @@
 +/* This program is intended to be started outside of gdb, and then
 +   attached to by gdb.  Thus, it simply spins in a loop.  The loop
@@ -85,10 +85,10 @@ Index: gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/attach2.c
 +    }
 +  return (0);
 +}
-Index: gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/break.c
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.pie/break.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/break.c	2014-06-13 20:05:33.061506820 +0200
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.pie/break.c	2015-01-01 17:00:43.170897772 +0100
 @@ -0,0 +1,146 @@
 +/* This testcase is part of GDB, the GNU debugger.
 +
@@ -236,10 +236,10 @@ Index: gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/break.c
 +    }
 +  return 0;
 +}
-Index: gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/break1.c
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.pie/break1.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/break1.c	2014-06-13 20:05:33.061506820 +0200
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.pie/break1.c	2015-01-01 17:00:43.170897772 +0100
 @@ -0,0 +1,44 @@
 +/* This testcase is part of GDB, the GNU debugger.
 +
@@ -285,10 +285,10 @@ Index: gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/break1.c
 +void marker3 (a, b) char *a, *b; {}	/* set breakpoint 18 here */
 +void marker4 (d) long d; {}		/* set breakpoint 13 here */
 +#endif
-Index: gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/coremaker.c
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.pie/coremaker.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/coremaker.c	2014-06-13 20:05:33.061506820 +0200
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.pie/coremaker.c	2015-01-01 17:00:43.170897772 +0100
 @@ -0,0 +1,142 @@
 +/* Copyright 1992, 1993, 1994, 1995, 1996, 1999
 +   Free Software Foundation, Inc.
@@ -432,10 +432,10 @@ Index: gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/coremaker.c
 +  return 0;
 +}
 +
-Index: gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/attach.exp
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.pie/attach.exp
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/attach.exp	2014-06-13 20:05:33.061506820 +0200
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.pie/attach.exp	2015-01-01 17:00:43.171897771 +0100
 @@ -0,0 +1,417 @@
 +#   Copyright 1997, 1999, 2002 Free Software Foundation, Inc.
 +
@@ -854,10 +854,10 @@ Index: gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/attach.exp
 +do_call_attach_tests
 +
 +return 0
-Index: gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/break.exp
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.pie/break.exp
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/break.exp	2014-06-13 20:05:33.062506821 +0200
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.pie/break.exp	2015-01-01 17:00:43.172897771 +0100
 @@ -0,0 +1,962 @@
 +#   Copyright 1988, 1990, 1991, 1992, 1994, 1995, 1996, 1997, 1998, 1999,
 +#   2000, 2002, 2003, 2004
@@ -1821,10 +1821,10 @@ Index: gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/break.exp
 +    send_gdb "set args main\n"
 +    gdb_expect -re ".*$gdb_prompt $" {}
 +}
-Index: gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/corefile.exp
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.pie/corefile.exp
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/corefile.exp	2014-06-13 20:05:33.063506822 +0200
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.pie/corefile.exp	2015-01-01 17:00:43.172897771 +0100
 @@ -0,0 +1,233 @@
 +# Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
 +# Free Software Foundation, Inc.
@@ -2059,10 +2059,10 @@ Index: gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/corefile.exp
 +gdb_test "up" "#\[0-9\]* *\[0-9xa-fH'\]* in .* \\(.*\\).*" "up in corefile.exp (reinit)"
 +
 +gdb_test "core" "No core file now."
-Index: gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/Makefile.in
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.pie/Makefile.in
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.7.50.20140609/gdb/testsuite/gdb.pie/Makefile.in	2014-06-13 20:05:33.063506822 +0200
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.pie/Makefile.in	2015-01-01 17:00:43.172897771 +0100
 @@ -0,0 +1,19 @@
 +VPATH = @srcdir@
 +srcdir = @srcdir@

diff --git a/gdb-6.5-bz216711-clone-is-outermost.patch b/gdb-6.5-bz216711-clone-is-outermost.patch
index 9fb23ed..a2c4b8f 100644
--- a/gdb-6.5-bz216711-clone-is-outermost.patch
+++ b/gdb-6.5-bz216711-clone-is-outermost.patch
@@ -23,11 +23,11 @@ instead.
 
 	Port to GDB-6.7.
 
-Index: gdb-7.6.90.20140127/gdb/amd64-linux-tdep.c
+Index: gdb-7.8.50.20141228/gdb/amd64-linux-tdep.c
 ===================================================================
---- gdb-7.6.90.20140127.orig/gdb/amd64-linux-tdep.c	2014-02-04 23:40:06.263483469 +0100
-+++ gdb-7.6.90.20140127/gdb/amd64-linux-tdep.c	2014-02-04 23:47:18.438009290 +0100
-@@ -289,6 +289,80 @@ amd64_linux_register_reggroup_p (struct
+--- gdb-7.8.50.20141228.orig/gdb/amd64-linux-tdep.c	2015-01-01 17:01:51.506856241 +0100
++++ gdb-7.8.50.20141228/gdb/amd64-linux-tdep.c	2015-01-01 17:01:54.769854349 +0100
+@@ -290,6 +290,80 @@ amd64_linux_register_reggroup_p (struct
  
  /* Set the program counter for process PTID to PC.  */
  
@@ -108,7 +108,7 @@ Index: gdb-7.6.90.20140127/gdb/amd64-linux-tdep.c
  static void
  amd64_linux_write_pc (struct regcache *regcache, CORE_ADDR pc)
  {
-@@ -1607,6 +1681,8 @@ amd64_linux_init_abi_common(struct gdbar
+@@ -1657,6 +1731,8 @@ amd64_linux_init_abi_common(struct gdbar
  
    tdep->xsave_xcr0_offset = I386_LINUX_XSAVE_XCR0_OFFSET;
  
@@ -117,11 +117,11 @@ Index: gdb-7.6.90.20140127/gdb/amd64-linux-tdep.c
    /* Add the %orig_rax register used for syscall restarting.  */
    set_gdbarch_write_pc (gdbarch, amd64_linux_write_pc);
  
-Index: gdb-7.6.90.20140127/gdb/amd64-tdep.c
+Index: gdb-7.8.50.20141228/gdb/amd64-tdep.c
 ===================================================================
---- gdb-7.6.90.20140127.orig/gdb/amd64-tdep.c	2014-02-04 23:40:06.265483471 +0100
-+++ gdb-7.6.90.20140127/gdb/amd64-tdep.c	2014-02-04 23:45:40.846891653 +0100
-@@ -2359,6 +2359,7 @@ amd64_frame_unwind_stop_reason (struct f
+--- gdb-7.8.50.20141228.orig/gdb/amd64-tdep.c	2015-01-01 17:01:51.507856240 +0100
++++ gdb-7.8.50.20141228/gdb/amd64-tdep.c	2015-01-01 17:01:54.770854349 +0100
+@@ -2492,6 +2492,7 @@ amd64_frame_unwind_stop_reason (struct f
  {
    struct amd64_frame_cache *cache =
      amd64_frame_cache (this_frame, this_cache);
@@ -129,7 +129,7 @@ Index: gdb-7.6.90.20140127/gdb/amd64-tdep.c
  
    if (!cache->base_p)
      return UNWIND_UNAVAILABLE;
-@@ -2367,6 +2368,10 @@ amd64_frame_unwind_stop_reason (struct f
+@@ -2500,6 +2501,10 @@ amd64_frame_unwind_stop_reason (struct f
    if (cache->base == 0)
      return UNWIND_OUTERMOST;
  
@@ -140,7 +140,7 @@ Index: gdb-7.6.90.20140127/gdb/amd64-tdep.c
    return UNWIND_NO_REASON;
  }
  
-@@ -2498,6 +2503,7 @@ amd64_sigtramp_frame_this_id (struct fra
+@@ -2631,6 +2636,7 @@ amd64_sigtramp_frame_this_id (struct fra
  {
    struct amd64_frame_cache *cache =
      amd64_sigtramp_frame_cache (this_frame, this_cache);
@@ -148,7 +148,7 @@ Index: gdb-7.6.90.20140127/gdb/amd64-tdep.c
  
    if (!cache->base_p)
      (*this_id) = frame_id_build_unavailable_stack (get_frame_pc (this_frame));
-@@ -2506,6 +2512,11 @@ amd64_sigtramp_frame_this_id (struct fra
+@@ -2639,6 +2645,11 @@ amd64_sigtramp_frame_this_id (struct fra
        /* This marks the outermost frame.  */
        return;
      }
@@ -160,11 +160,11 @@ Index: gdb-7.6.90.20140127/gdb/amd64-tdep.c
    else
      (*this_id) = frame_id_build (cache->base + 16, get_frame_pc (this_frame));
  }
-Index: gdb-7.6.90.20140127/gdb/i386-tdep.c
+Index: gdb-7.8.50.20141228/gdb/i386-tdep.c
 ===================================================================
---- gdb-7.6.90.20140127.orig/gdb/i386-tdep.c	2014-02-04 23:40:06.267483473 +0100
-+++ gdb-7.6.90.20140127/gdb/i386-tdep.c	2014-02-04 23:43:33.048734974 +0100
-@@ -7830,6 +7830,9 @@ i386_gdbarch_init (struct gdbarch_info i
+--- gdb-7.8.50.20141228.orig/gdb/i386-tdep.c	2015-01-01 17:01:51.509856239 +0100
++++ gdb-7.8.50.20141228/gdb/i386-tdep.c	2015-01-01 17:01:54.772854348 +0100
+@@ -8286,6 +8286,9 @@ i386_gdbarch_init (struct gdbarch_info i
  
    tdep->xsave_xcr0_offset = -1;
  
@@ -174,175 +174,24 @@ Index: gdb-7.6.90.20140127/gdb/i386-tdep.c
    tdep->record_regmap = i386_record_regmap;
  
    set_gdbarch_long_long_align_bit (gdbarch, 32);
-Index: gdb-7.6.90.20140127/gdb/i386-tdep.h
+Index: gdb-7.8.50.20141228/gdb/i386-tdep.h
 ===================================================================
---- gdb-7.6.90.20140127.orig/gdb/i386-tdep.h	2014-02-04 23:40:06.268483475 +0100
-+++ gdb-7.6.90.20140127/gdb/i386-tdep.h	2014-02-04 23:43:33.048734974 +0100
-@@ -192,6 +192,9 @@ struct gdbarch_tdep
-   int (*i386_sysenter_record) (struct regcache *regcache);
-   /* Parse syscall args.  */
-   int (*i386_syscall_record) (struct regcache *regcache);
+--- gdb-7.8.50.20141228.orig/gdb/i386-tdep.h	2015-01-01 17:01:54.772854348 +0100
++++ gdb-7.8.50.20141228/gdb/i386-tdep.h	2015-01-01 17:02:15.826842143 +0100
+@@ -240,6 +240,9 @@ struct gdbarch_tdep
+ 
+   /* Regsets. */
+   const struct regset *fpregset;
 +
 +  /* Detect OS dependent outermost frames; such as `clone'.  */
 +  int (*outermost_frame_p) (struct frame_info *this_frame);
  };
  
  /* Floating-point registers.  */
-Index: gdb-7.6.90.20140127/gdb/ia64-tdep.c
-===================================================================
---- gdb-7.6.90.20140127.orig/gdb/ia64-tdep.c	2014-02-04 23:40:06.270483477 +0100
-+++ gdb-7.6.90.20140127/gdb/ia64-tdep.c	2014-02-04 23:43:33.049734975 +0100
-@@ -2176,6 +2176,138 @@ static const struct frame_unwind ia64_fr
-   default_frame_sniffer
- };
- 
-+/* Detect the outermost frame; during unwind of
-+   	#6  0x2000000000347100 in __clone2 () from /lib/libc.so.6.1
-+   avoid the additional bogus frame
-+   	#7  0x0000000000000000 in ?? ()  */
-+
-+static char linux_clone2_code[] =
-+{
-+/* libc/sysdeps/unix/sysv/linux/ia64/clone2.S */
-+  0x09, 0x00, 0x20, 0x12, 0x90, 0x11, 0x00, 0x40,
-+  0x28, 0x20, 0x23, 0x00, 0x00, 0x00, 0x04, 0x00,
-+/*         st4 [r9]=r8 */
-+/*         st4 [r10]=r8 */
-+/*         ;; */
-+/* #endif */
-+  0x02, 0x50, 0x21, 0x40, 0x18, 0x14, 0x90, 0x02,
-+  0x90, 0x00, 0x42, 0x00, 0x00, 0x00, 0x04, 0x00,
-+/* 1:      ld8 out1=[in0],8        |* Retrieve code pointer.       *| */
-+/*         mov out0=in4            |* Pass proper argument to fn *| */
-+/*         ;; */
-+  0x11, 0x08, 0x00, 0x40, 0x18, 0x10, 0x60, 0x50,
-+  0x05, 0x80, 0x03, 0x00, 0x68, 0x00, 0x80, 0x12,
-+/*         ld8 gp=[in0]            |* Load function gp.            *| */
-+/*         mov b6=out1 */
-+/*         br.call.dptk.many rp=b6 |* Call fn(arg) in the child    *| */
-+/*         ;; */
-+  0x10, 0x48, 0x01, 0x10, 0x00, 0x21, 0x10, 0x00,
-+  0xa0, 0x00, 0x42, 0x00, 0x98, 0xdf, 0xf7, 0x5b,
-+/*         mov out0=r8             |* Argument to _exit            *| */
-+/*         mov gp=loc0 */
-+/*         .globl HIDDEN_JUMPTARGET(_exit) */
-+/*         br.call.dpnt.many rp=HIDDEN_JUMPTARGET(_exit) */
-+/*                                 |* call _exit with result from fn.      *| */
-+  0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
-+  0x00, 0x02, 0x00, 0x80, 0x00, 0x00, 0x84, 0x00
-+/*         ret                     |* Not reached.         *| */
-+};
-+
-+#define LINUX_CLONE_PRE_SLOTS 3	/* Number of slots before PC.  */
-+#define LINUX_CLONE_LEN (sizeof linux_clone2_code)
-+
-+static int
-+ia64_linux_clone2_running (struct frame_info *this_frame)
-+{
-+  CORE_ADDR pc = get_frame_pc (this_frame);
-+  char buf[LINUX_CLONE_LEN];
-+  struct minimal_symbol *minsym;
-+  long long instr;
-+
-+  if (!safe_frame_unwind_memory (this_frame, pc - LINUX_CLONE_PRE_SLOTS * 16,
-+				 buf, LINUX_CLONE_LEN))
-+    return 0;
-+
-+  if (memcmp (buf, linux_clone2_code, LINUX_CLONE_PRE_SLOTS * 16) != 0)
-+    return 0;
-+
-+  /* Adjust the expected "_exit" address.  */
-+  minsym = lookup_minimal_symbol_text ("_exit", NULL);
-+  if (minsym == NULL)
-+    return 0;
-+
-+  instr = slotN_contents (&linux_clone2_code[LINUX_CLONE_PRE_SLOTS * 16], 2);
-+  instr &= ~(((1L << 20) - 1) << 13);
-+  /* Address is relative to the jump instruction slot, not the next one.  */
-+  instr |= (((SYMBOL_VALUE_ADDRESS (minsym) - (pc & ~0xfL)) >> 4)
-+	    & ((1L << 20) - 1)) << 13;
-+  replace_slotN_contents (&linux_clone2_code[LINUX_CLONE_PRE_SLOTS * 16], instr,
-+			  2);
-+
-+  if (memcmp (&buf[LINUX_CLONE_PRE_SLOTS * 16],
-+              &linux_clone2_code[LINUX_CLONE_PRE_SLOTS * 16],
-+	      LINUX_CLONE_LEN - (LINUX_CLONE_PRE_SLOTS * 16)) != 0)
-+    return 0;
-+
-+  return 1;
-+}
-+
-+static int
-+ia64_outermost_frame (struct frame_info *this_frame)
-+{
-+  CORE_ADDR pc = get_frame_pc (this_frame);
-+  char *name;
-+
-+  find_pc_partial_function (pc, &name, NULL, NULL);
-+
-+  /* If we have NAME, we can optimize the search.
-+     `clone' NAME still needs to have the code checked as its name may be
-+     present in the user code.
-+     `__clone' NAME should not be present in the user code but in the initial
-+     parts of the `__clone' implementation the unwind still makes sense.
-+     More detailed unwinding decision would be too much sensitive to possible
-+     subtle changes in specific glibc revisions.  */
-+  if (name == NULL || strcmp (name, "clone2") == 0
-+      || strcmp ("__clone2", name) == 0)
-+    return (ia64_linux_clone2_running (this_frame) != 0);
-+
-+  return 0;
-+}
-+
-+static void
-+ia64_clone2_frame_this_id (struct frame_info *this_frame, void **this_cache,
-+			   struct frame_id *this_id)
-+{
-+  /* Leave the default outermost frame at *THIS_ID.  */
-+}
-+
-+static struct value *
-+ia64_clone2_frame_prev_register (struct frame_info *this_frame,
-+				 void **this_cache, int regnum)
-+{
-+  return frame_unwind_got_register (this_frame, regnum, regnum);
-+}
-+
-+static int
-+ia64_clone2_frame_sniffer (const struct frame_unwind *self,
-+			   struct frame_info *this_frame,
-+			   void **this_prologue_cache)
-+{
-+  if (ia64_outermost_frame (this_frame))
-+    return 1;
-+
-+  return 0;
-+}
-+
-+static const struct frame_unwind ia64_clone2_frame_unwind =
-+{
-+  NORMAL_FRAME,
-+  &ia64_clone2_frame_this_id,
-+  &ia64_clone2_frame_prev_register,
-+  NULL,
-+  &ia64_clone2_frame_sniffer
-+};
-+
- /* Signal trampolines.  */
- 
- static void
-@@ -4023,6 +4155,7 @@ ia64_gdbarch_init (struct gdbarch_info i
-   set_gdbarch_dummy_id (gdbarch, ia64_dummy_id);
- 
-   set_gdbarch_unwind_pc (gdbarch, ia64_unwind_pc);
-+  frame_unwind_append_unwinder (gdbarch, &ia64_clone2_frame_unwind);
- #ifdef HAVE_LIBUNWIND_IA64_H
-   frame_unwind_append_unwinder (gdbarch,
-                                 &ia64_libunwind_sigtramp_frame_unwind);
-Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.threads/bt-clone-stop.c
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.threads/bt-clone-stop.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.threads/bt-clone-stop.c	2014-02-04 23:43:33.050734976 +0100
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.threads/bt-clone-stop.c	2015-01-01 17:01:54.773854347 +0100
 @@ -0,0 +1,39 @@
 +/* This testcase is part of GDB, the GNU debugger.
 +
@@ -383,10 +232,10 @@ Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.threads/bt-clone-stop.c
 +	for (;;)
 +		pause();
 +}
-Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.threads/bt-clone-stop.exp
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.threads/bt-clone-stop.exp
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.threads/bt-clone-stop.exp	2014-02-04 23:43:33.050734976 +0100
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.threads/bt-clone-stop.exp	2015-01-01 17:01:54.774854346 +0100
 @@ -0,0 +1,61 @@
 +# Copyright 2006 Free Software Foundation, Inc.
 +

diff --git a/gdb-6.6-buildid-locate-core-as-arg.patch b/gdb-6.6-buildid-locate-core-as-arg.patch
index 1138658..c98e686 100644
--- a/gdb-6.6-buildid-locate-core-as-arg.patch
+++ b/gdb-6.6-buildid-locate-core-as-arg.patch
@@ -58,24 +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.7.50.20140609/gdb/exceptions.h
+Index: gdb-7.8.50.20141228/gdb/exec.c
 ===================================================================
---- gdb-7.7.50.20140609.orig/gdb/exceptions.h	2014-06-13 20:26:46.988804553 +0200
-+++ gdb-7.7.50.20140609/gdb/exceptions.h	2014-06-13 20:27:01.930820057 +0200
-@@ -100,6 +100,9 @@ enum errors {
-   /* Requested feature, method, mechanism, etc. is not supported.  */
-   NOT_SUPPORTED_ERROR,
- 
-+  /* Attempt to load a core file as executable.  */
-+  IS_CORE_ERROR,
-+
-   /* Add more errors here.  */
-   NR_ERRORS
- };
-Index: gdb-7.7.50.20140609/gdb/exec.c
-===================================================================
---- gdb-7.7.50.20140609.orig/gdb/exec.c	2014-06-13 20:26:44.831802315 +0200
-+++ gdb-7.7.50.20140609/gdb/exec.c	2014-06-13 20:27:17.282836454 +0200
+--- 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
 @@ -35,6 +35,7 @@
  #include "progspace.h"
  #include "gdb_bfd.h"
@@ -84,7 +70,7 @@ Index: gdb-7.7.50.20140609/gdb/exec.c
  
  #include <fcntl.h>
  #include "readline/readline.h"
-@@ -231,12 +232,27 @@ exec_file_attach (char *filename, int fr
+@@ -222,12 +223,27 @@ exec_file_attach (const char *filename,
  
        if (!bfd_check_format_matches (exec_bfd, bfd_object, &matching))
  	{
@@ -115,11 +101,11 @@ Index: gdb-7.7.50.20140609/gdb/exec.c
  	}
  
        if (build_section_table (exec_bfd, &sections, &sections_end))
-Index: gdb-7.7.50.20140609/gdb/main.c
+Index: gdb-7.8.50.20141228/gdb/main.c
 ===================================================================
---- gdb-7.7.50.20140609.orig/gdb/main.c	2014-06-13 20:26:44.831802315 +0200
-+++ gdb-7.7.50.20140609/gdb/main.c	2014-06-13 20:26:46.990804555 +0200
-@@ -341,6 +341,36 @@ typedef struct cmdarg {
+--- 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 {
  /* Define type VEC (cmdarg_s).  */
  DEF_VEC_O (cmdarg_s);
  
@@ -128,7 +114,7 @@ Index: gdb-7.7.50.20140609/gdb/main.c
 +   core_file_command failed to find a matching executable.  */
 +
 +static void
-+exec_or_core_file_attach (char *filename, int from_tty)
++exec_or_core_file_attach (const char *filename, int from_tty)
 +{
 +  volatile struct gdb_exception e;
 +
@@ -142,7 +128,7 @@ Index: gdb-7.7.50.20140609/gdb/main.c
 +    {
 +      if (e.error == IS_CORE_ERROR)
 +	{
-+	  core_file_command (filename, from_tty);
++	  core_file_command ((char *) filename, from_tty);
 +
 +	  /* Iff the core file found its executable suppress the error message
 +	     from exec_file_attach.  */
@@ -156,7 +142,7 @@ Index: gdb-7.7.50.20140609/gdb/main.c
  static int
  captured_main (void *data)
  {
-@@ -854,6 +884,8 @@ captured_main (void *data)
+@@ -910,6 +940,8 @@ captured_main (void *data)
  	{
  	  symarg = argv[optind];
  	  execarg = argv[optind];
@@ -165,11 +151,11 @@ Index: gdb-7.7.50.20140609/gdb/main.c
  	  optind++;
  	}
  
-@@ -1017,11 +1049,25 @@ captured_main (void *data)
+@@ -1069,11 +1101,26 @@ captured_main (void *data)
        && symarg != NULL
        && strcmp (execarg, symarg) == 0)
      {
-+      catch_command_errors_ftype *func;
++      catch_command_errors_const_ftype *func;
 +
 +      /* Call exec_or_core_file_attach only if the file was specified as
 +	 a command line argument (and not an a command line option).  */
@@ -184,13 +170,28 @@ Index: gdb-7.7.50.20140609/gdb/main.c
        /* The exec file and the symbol-file are the same.  If we can't
           open it, better only print one error message.
 -         catch_command_errors returns non-zero on success!  */
--      if (catch_command_errors (exec_file_attach, execarg,
--				!batch_flag, RETURN_MASK_ALL))
+-      if (catch_command_errors_const (exec_file_attach, execarg,
+-				      !batch_flag, RETURN_MASK_ALL))
 +         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 (func, execarg, !batch_flag, RETURN_MASK_ALL)
++      if (catch_command_errors_const (func, execarg, !batch_flag,
++				      RETURN_MASK_ALL)
 +	  && core_bfd == NULL)
  	catch_command_errors_const (symbol_file_add_main, symarg,
  				    !batch_flag, RETURN_MASK_ALL);
      }
+Index: gdb-7.8.50.20141228/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,
+ 
++  /* Attempt to load a core file as executable.  */
++  IS_CORE_ERROR,
++
+   /* Add more errors here.  */
+   NR_ERRORS
+ };

diff --git a/gdb-6.6-buildid-locate-rpm.patch b/gdb-6.6-buildid-locate-rpm.patch
index 746877f..8dc4bcc 100644
--- a/gdb-6.6-buildid-locate-rpm.patch
+++ b/gdb-6.6-buildid-locate-rpm.patch
@@ -1,8 +1,8 @@
-Index: gdb-7.7.50.20140609/gdb/event-top.c
+Index: gdb-7.8.50.20141228/gdb/event-top.c
 ===================================================================
---- gdb-7.7.50.20140609.orig/gdb/event-top.c	2014-06-13 20:10:19.632787642 +0200
-+++ gdb-7.7.50.20140609/gdb/event-top.c	2014-06-13 20:11:49.605878557 +0200
-@@ -38,6 +38,7 @@
+--- 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
+@@ -37,6 +37,7 @@
  #include "gdbcmd.h"		/* for dont_repeat() */
  #include "annotate.h"
  #include "maint.h"
@@ -10,7 +10,7 @@ Index: gdb-7.7.50.20140609/gdb/event-top.c
  
  /* readline include files.  */
  #include "readline/readline.h"
-@@ -176,6 +177,8 @@ rl_callback_read_char_wrapper (gdb_clien
+@@ -180,6 +181,8 @@ rl_callback_read_char_wrapper (gdb_clien
  void
  cli_command_loop (void *data)
  {
@@ -19,7 +19,7 @@ Index: gdb-7.7.50.20140609/gdb/event-top.c
    display_gdb_prompt (0);
  
    /* Now it's time to start the event loop.  */
-@@ -243,6 +246,8 @@ display_gdb_prompt (char *new_prompt)
+@@ -298,6 +301,8 @@ display_gdb_prompt (const char *new_prom
    /* Reset the nesting depth used when trace-commands is set.  */
    reset_command_nest_depth ();
  
@@ -28,11 +28,11 @@ Index: gdb-7.7.50.20140609/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.7.50.20140609/gdb/symfile.h
+Index: gdb-7.8.50.20141228/gdb/symfile.h
 ===================================================================
---- gdb-7.7.50.20140609.orig/gdb/symfile.h	2014-06-13 20:10:19.633787643 +0200
-+++ gdb-7.7.50.20140609/gdb/symfile.h	2014-06-13 20:10:31.066799158 +0200
-@@ -573,6 +573,8 @@ void map_symbol_filenames (symbol_filena
+--- 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
  /* build-id support.  */
  extern struct elf_build_id *build_id_addr_get (CORE_ADDR addr);
  extern void debug_print_missing (const char *binary, const char *debug);
@@ -41,11 +41,11 @@ Index: gdb-7.7.50.20140609/gdb/symfile.h
  
  /* From dwarf2read.c */
  
-Index: gdb-7.7.50.20140609/gdb/testsuite/lib/gdb.exp
+Index: gdb-7.8.50.20141228/gdb/testsuite/lib/gdb.exp
 ===================================================================
---- gdb-7.7.50.20140609.orig/gdb/testsuite/lib/gdb.exp	2014-06-13 20:10:19.634787644 +0200
-+++ gdb-7.7.50.20140609/gdb/testsuite/lib/gdb.exp	2014-06-13 20:10:31.067799159 +0200
-@@ -1492,7 +1492,7 @@ proc default_gdb_start { } {
+--- 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 { } {
  	    warning "Couldn't set the width to 0."
  	}
      }
@@ -54,11 +54,11 @@ Index: gdb-7.7.50.20140609/gdb/testsuite/lib/gdb.exp
      send_gdb "set build-id-verbose 0\n"
      gdb_expect 10 {
  	-re "$gdb_prompt $" {
-Index: gdb-7.7.50.20140609/gdb/testsuite/lib/mi-support.exp
+Index: gdb-7.8.50.20141228/gdb/testsuite/lib/mi-support.exp
 ===================================================================
---- gdb-7.7.50.20140609.orig/gdb/testsuite/lib/mi-support.exp	2014-06-13 20:10:19.635787645 +0200
-+++ gdb-7.7.50.20140609/gdb/testsuite/lib/mi-support.exp	2014-06-13 20:10:31.068799160 +0200
-@@ -212,7 +212,7 @@ proc default_mi_gdb_start { args } {
+--- 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
+@@ -214,7 +214,7 @@ proc default_mi_gdb_start { args } {
  	    warning "Couldn't set the width to 0."
  	}
      }
@@ -67,22 +67,22 @@ Index: gdb-7.7.50.20140609/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.7.50.20140609/gdb/tui/tui-interp.c
+Index: gdb-7.8.50.20141228/gdb/tui/tui-interp.c
 ===================================================================
---- gdb-7.7.50.20140609.orig/gdb/tui/tui-interp.c	2014-06-13 20:10:31.068799160 +0200
-+++ gdb-7.7.50.20140609/gdb/tui/tui-interp.c	2014-06-13 20:10:47.806816542 +0200
-@@ -32,6 +32,7 @@
- #include "exceptions.h"
+--- 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
+@@ -31,6 +31,7 @@
+ #include "tui/tui-io.h"
  #include "infrun.h"
  #include "observer.h"
 +#include "symfile.h"
  
  static struct ui_out *tui_ui_out (struct interp *self);
  
-Index: gdb-7.7.50.20140609/gdb/aclocal.m4
+Index: gdb-7.8.50.20141228/gdb/aclocal.m4
 ===================================================================
---- gdb-7.7.50.20140609.orig/gdb/aclocal.m4	2014-06-13 20:10:19.636787646 +0200
-+++ gdb-7.7.50.20140609/gdb/aclocal.m4	2014-06-13 20:10:31.069799161 +0200
+--- 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
 @@ -11,6 +11,221 @@
  # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
  # PARTICULAR PURPOSE.
@@ -305,10 +305,10 @@ Index: gdb-7.7.50.20140609/gdb/aclocal.m4
  # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
  
  # Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
-Index: gdb-7.7.50.20140609/gdb/config.in
+Index: gdb-7.8.50.20141228/gdb/config.in
 ===================================================================
---- gdb-7.7.50.20140609.orig/gdb/config.in	2014-06-13 20:10:19.637787647 +0200
-+++ gdb-7.7.50.20140609/gdb/config.in	2014-06-13 20:10:31.069799161 +0200
+--- 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
 @@ -33,6 +33,9 @@
  /* Define to BFD's default target vector. */
  #undef DEFAULT_BFD_VEC
@@ -319,7 +319,7 @@ Index: gdb-7.7.50.20140609/gdb/config.in
  /* Define to 1 if translation of program messages to the user's native
     language is requested. */
  #undef ENABLE_NLS
-@@ -210,6 +213,9 @@
+@@ -207,6 +210,9 @@
  /* Define if Python 2.7 is being used. */
  #undef HAVE_LIBPYTHON2_7
  
@@ -329,11 +329,11 @@ Index: gdb-7.7.50.20140609/gdb/config.in
  /* Define to 1 if you have the <libunwind-ia64.h> header file. */
  #undef HAVE_LIBUNWIND_IA64_H
  
-Index: gdb-7.7.50.20140609/gdb/configure
+Index: gdb-7.8.50.20141228/gdb/configure
 ===================================================================
---- gdb-7.7.50.20140609.orig/gdb/configure	2014-06-13 20:10:19.642787652 +0200
-+++ gdb-7.7.50.20140609/gdb/configure	2014-06-13 20:10:31.073799165 +0200
-@@ -692,6 +692,11 @@ PKGVERSION
+--- 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
  HAVE_NATIVE_GCORE_TARGET
  TARGET_OBS
  subdirs
@@ -345,7 +345,7 @@ Index: gdb-7.7.50.20140609/gdb/configure
  GDB_DATADIR
  DEBUGDIR
  MAKEINFO_EXTRA_FLAGS
-@@ -795,6 +800,7 @@ with_gdb_datadir
+@@ -801,6 +806,7 @@ with_gdb_datadir
  with_relocated_sources
  with_auto_load_dir
  with_auto_load_safe_path
@@ -353,7 +353,7 @@ Index: gdb-7.7.50.20140609/gdb/configure
  enable_targets
  enable_64_bit_bfd
  enable_gdbcli
-@@ -846,6 +852,11 @@ CPPFLAGS
+@@ -852,6 +858,11 @@ CPPFLAGS
  CPP
  MAKEINFO
  MAKEINFOFLAGS
@@ -365,7 +365,7 @@ Index: gdb-7.7.50.20140609/gdb/configure
  YACC
  YFLAGS
  XMKMF'
-@@ -1516,6 +1527,8 @@ Optional Packages:
+@@ -1522,6 +1533,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.7.50.20140609/gdb/configure
    --with-libunwind-ia64   use libunwind frame unwinding for ia64 targets
    --with-curses           use the curses library instead of the termcap
                            library
-@@ -1565,6 +1578,13 @@ Some influential environment variables:
+@@ -1571,6 +1584,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.7.50.20140609/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.
-@@ -5160,6 +5180,491 @@ _ACEOF
+@@ -5267,6 +5287,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.7.50.20140609/gdb/configure
  
  
  subdirs="$subdirs testsuite"
-Index: gdb-7.7.50.20140609/gdb/configure.ac
+Index: gdb-7.8.50.20141228/gdb/configure.ac
 ===================================================================
---- gdb-7.7.50.20140609.orig/gdb/configure.ac	2014-06-13 20:10:19.643787653 +0200
-+++ gdb-7.7.50.20140609/gdb/configure.ac	2014-06-13 20:10:31.074799166 +0200
-@@ -165,6 +165,199 @@ AC_DEFINE_DIR(AUTO_LOAD_SAFE_PATH, escap
+--- 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
  	      [Directories safe to hold auto-loaded files.])
  AC_MSG_RESULT([$with_auto_load_safe_path])
  
@@ -1084,11 +1084,11 @@ Index: gdb-7.7.50.20140609/gdb/configure.ac
  AC_CONFIG_SUBDIRS(testsuite)
  
  # Check whether to support alternative target configurations
-Index: gdb-7.7.50.20140609/gdb/corelow.c
+Index: gdb-7.8.50.20141228/gdb/corelow.c
 ===================================================================
---- gdb-7.7.50.20140609.orig/gdb/corelow.c	2014-06-13 20:10:19.644787654 +0200
-+++ gdb-7.7.50.20140609/gdb/corelow.c	2014-06-13 20:10:31.074799166 +0200
-@@ -316,7 +316,7 @@ build_id_locate_exec (int from_tty)
+--- 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
+@@ -310,7 +310,7 @@ build_id_locate_exec (int from_tty)
          symfile_objfile->flags |= OBJF_BUILD_ID_CORE_LOADED;
      }
    else
@@ -1097,11 +1097,11 @@ Index: gdb-7.7.50.20140609/gdb/corelow.c
  
    do_cleanups (back_to);
  
-Index: gdb-7.7.50.20140609/gdb/build-id.c
+Index: gdb-7.8.50.20141228/gdb/build-id.c
 ===================================================================
---- gdb-7.7.50.20140609.orig/gdb/build-id.c	2014-06-13 20:10:19.644787654 +0200
-+++ gdb-7.7.50.20140609/gdb/build-id.c	2014-06-13 20:10:31.075799167 +0200
-@@ -32,6 +32,7 @@
+--- 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"
  #include <sys/stat.h>
@@ -1109,7 +1109,7 @@ Index: gdb-7.7.50.20140609/gdb/build-id.c
  
  #define BUILD_ID_VERBOSE_NONE 0
  #define BUILD_ID_VERBOSE_FILENAMES 1
-@@ -666,8 +667,360 @@ build_id_to_filename (const struct elf_b
+@@ -664,8 +665,360 @@ build_id_to_filename (const struct elf_b
    return result;
  }
  
@@ -1471,7 +1471,7 @@ Index: gdb-7.7.50.20140609/gdb/build-id.c
     avoidance.  */
  
  struct missing_filepair
-@@ -721,11 +1074,17 @@ missing_filepair_change (void)
+@@ -719,11 +1072,17 @@ missing_filepair_change (void)
        /* All their memory came just from missing_filepair_OBSTACK.  */
        missing_filepair_hash = NULL;
      }
@@ -1489,7 +1489,7 @@ Index: gdb-7.7.50.20140609/gdb/build-id.c
    missing_filepair_change ();
  }
  
-@@ -792,14 +1151,34 @@ debug_print_missing (const char *binary,
+@@ -790,14 +1149,34 @@ debug_print_missing (const char *binary,
  
    *slot = missing_filepair;
  

diff --git a/gdb-6.6-buildid-locate.patch b/gdb-6.6-buildid-locate.patch
index eb4f1d3..71de4d0 100644
--- a/gdb-6.6-buildid-locate.patch
+++ b/gdb-6.6-buildid-locate.patch
@@ -1,8 +1,8 @@
-Index: gdb-7.7.50.20140609/gdb/corelow.c
+Index: gdb-7.8.50.20141228/gdb/corelow.c
 ===================================================================
---- gdb-7.7.50.20140609.orig/gdb/corelow.c	2014-06-13 20:09:37.369745221 +0200
-+++ gdb-7.7.50.20140609/gdb/corelow.c	2014-06-13 20:09:42.407750265 +0200
-@@ -49,6 +49,10 @@
+--- 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
+@@ -45,6 +45,10 @@
  #include "gdb_bfd.h"
  #include "completer.h"
  #include "filestuff.h"
@@ -13,7 +13,7 @@ Index: gdb-7.7.50.20140609/gdb/corelow.c
  
  #ifndef O_LARGEFILE
  #define O_LARGEFILE 0
-@@ -272,6 +276,53 @@ add_to_thread_list (bfd *abfd, asection
+@@ -266,6 +270,53 @@ add_to_thread_list (bfd *abfd, asection
      inferior_ptid = ptid;			/* Yes, make it current.  */
  }
  
@@ -67,7 +67,7 @@ Index: gdb-7.7.50.20140609/gdb/corelow.c
  /* This routine opens and sets up the core file bfd.  */
  
  static void
-@@ -410,6 +461,14 @@ core_open (char *filename, int from_tty)
+@@ -405,6 +456,14 @@ core_open (const char *arg, int from_tty
  	switch_to_thread (thread->ptid);
      }
  
@@ -82,7 +82,7 @@ Index: gdb-7.7.50.20140609/gdb/corelow.c
    post_create_inferior (&core_ops, from_tty);
  
    /* Now go through the target stack looking for threads since there
-@@ -1029,4 +1088,11 @@ _initialize_corelow (void)
+@@ -1035,4 +1094,11 @@ _initialize_corelow (void)
    init_core_ops ();
  
    add_target_with_completer (&core_ops, filename_completer);
@@ -94,11 +94,11 @@ Index: gdb-7.7.50.20140609/gdb/corelow.c
 +			   NULL, NULL, NULL,
 +			   &setlist, &showlist);
  }
-Index: gdb-7.7.50.20140609/gdb/doc/gdb.texinfo
+Index: gdb-7.8.50.20141228/gdb/doc/gdb.texinfo
 ===================================================================
---- gdb-7.7.50.20140609.orig/gdb/doc/gdb.texinfo	2014-06-13 20:09:37.380745232 +0200
-+++ gdb-7.7.50.20140609/gdb/doc/gdb.texinfo	2014-06-13 20:09:42.417750275 +0200
-@@ -17547,6 +17547,27 @@ information files.
+--- 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.
  
  @end table
  
@@ -126,19 +126,19 @@ Index: gdb-7.7.50.20140609/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.7.50.20140609/gdb/solib-svr4.c
+Index: gdb-7.8.50.20141228/gdb/solib-svr4.c
 ===================================================================
---- gdb-7.7.50.20140609.orig/gdb/solib-svr4.c	2014-06-13 20:09:37.382745234 +0200
-+++ gdb-7.7.50.20140609/gdb/solib-svr4.c	2014-06-13 20:09:42.418750276 +0200
-@@ -48,6 +48,7 @@
- #include "exceptions.h"
+--- 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
+@@ -45,6 +45,7 @@
+ #include "auxv.h"
  #include "gdb_bfd.h"
  #include "probe.h"
 +#include "build-id.h"
  
  static struct link_map_offsets *svr4_fetch_link_map_offsets (void);
  static int svr4_have_link_map_offsets (void);
-@@ -1369,9 +1370,52 @@ svr4_read_so_list (CORE_ADDR lm, CORE_AD
+@@ -1366,9 +1367,52 @@ svr4_read_so_list (CORE_ADDR lm, CORE_AD
  	  continue;
  	}
  
@@ -194,11 +194,11 @@ Index: gdb-7.7.50.20140609/gdb/solib-svr4.c
        xfree (buffer);
  
        /* If this entry has no name, or its name matches the name
-Index: gdb-7.7.50.20140609/gdb/elfread.c
+Index: gdb-7.8.50.20141228/gdb/elfread.c
 ===================================================================
---- gdb-7.7.50.20140609.orig/gdb/elfread.c	2014-06-13 20:09:37.383745235 +0200
-+++ gdb-7.7.50.20140609/gdb/elfread.c	2014-06-13 20:09:42.418750276 +0200
-@@ -1335,9 +1335,10 @@ elf_symfile_read (struct objfile *objfil
+--- 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
  	   && objfile->separate_debug_objfile == NULL
  	   && objfile->separate_debug_objfile_backlink == NULL)
      {
@@ -211,7 +211,7 @@ Index: gdb-7.7.50.20140609/gdb/elfread.c
  
        if (debugfile == NULL)
  	debugfile = find_separate_debug_file_by_debuglink (objfile);
-@@ -1351,6 +1352,12 @@ elf_symfile_read (struct objfile *objfil
+@@ -1355,6 +1356,12 @@ elf_symfile_read (struct objfile *objfil
  	  symbol_file_add_separate (abfd, debugfile, symfile_flags, objfile);
  	  do_cleanups (cleanup);
  	}
@@ -224,11 +224,11 @@ Index: gdb-7.7.50.20140609/gdb/elfread.c
      }
  }
  
-Index: gdb-7.7.50.20140609/gdb/symfile.h
+Index: gdb-7.8.50.20141228/gdb/symfile.h
 ===================================================================
---- gdb-7.7.50.20140609.orig/gdb/symfile.h	2014-06-13 20:09:42.419750277 +0200
-+++ gdb-7.7.50.20140609/gdb/symfile.h	2014-06-13 20:10:04.478772510 +0200
-@@ -570,6 +570,10 @@ void expand_symtabs_matching (expand_sym
+--- 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
  void map_symbol_filenames (symbol_filename_ftype *fun, void *data,
  			   int need_fullname);
  
@@ -239,11 +239,11 @@ Index: gdb-7.7.50.20140609/gdb/symfile.h
  /* From dwarf2read.c */
  
  /* Names for a dwarf2 debugging section.  The field NORMAL is the normal
-Index: gdb-7.7.50.20140609/gdb/testsuite/lib/gdb.exp
+Index: gdb-7.8.50.20141228/gdb/testsuite/lib/gdb.exp
 ===================================================================
---- gdb-7.7.50.20140609.orig/gdb/testsuite/lib/gdb.exp	2014-06-13 20:09:37.384745236 +0200
-+++ gdb-7.7.50.20140609/gdb/testsuite/lib/gdb.exp	2014-06-13 20:09:42.420750278 +0200
-@@ -1492,6 +1492,16 @@ proc default_gdb_start { } {
+--- 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 { } {
  	    warning "Couldn't set the width to 0."
  	}
      }
@@ -260,11 +260,11 @@ Index: gdb-7.7.50.20140609/gdb/testsuite/lib/gdb.exp
      return 0
  }
  
-Index: gdb-7.7.50.20140609/gdb/testsuite/lib/mi-support.exp
+Index: gdb-7.8.50.20141228/gdb/testsuite/lib/mi-support.exp
 ===================================================================
---- gdb-7.7.50.20140609.orig/gdb/testsuite/lib/mi-support.exp	2014-06-13 20:09:37.385745237 +0200
-+++ gdb-7.7.50.20140609/gdb/testsuite/lib/mi-support.exp	2014-06-13 20:09:42.421750279 +0200
-@@ -212,6 +212,16 @@ proc default_mi_gdb_start { args } {
+--- 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
+@@ -214,6 +214,16 @@ proc default_mi_gdb_start { args } {
  	    warning "Couldn't set the width to 0."
  	}
      }
@@ -281,11 +281,11 @@ Index: gdb-7.7.50.20140609/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.7.50.20140609/gdb/objfiles.h
+Index: gdb-7.8.50.20141228/gdb/objfiles.h
 ===================================================================
---- gdb-7.7.50.20140609.orig/gdb/objfiles.h	2014-06-13 20:09:37.385745237 +0200
-+++ gdb-7.7.50.20140609/gdb/objfiles.h	2014-06-13 20:09:42.421750279 +0200
-@@ -464,6 +464,10 @@ struct objfile
+--- 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
+@@ -459,6 +459,10 @@ struct objfile
  
  #define OBJF_NOT_FILENAME (1 << 6)
  
@@ -296,10 +296,10 @@ Index: gdb-7.7.50.20140609/gdb/objfiles.h
  /* Declarations for functions defined in objfiles.c */
  
  extern struct objfile *allocate_objfile (bfd *, const char *name, int);
-Index: gdb-7.7.50.20140609/gdb/testsuite/gdb.base/corefile.exp
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.base/corefile.exp
 ===================================================================
---- gdb-7.7.50.20140609.orig/gdb/testsuite/gdb.base/corefile.exp	2014-06-13 20:09:37.385745237 +0200
-+++ gdb-7.7.50.20140609/gdb/testsuite/gdb.base/corefile.exp	2014-06-13 20:09:42.421750279 +0200
+--- 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
 @@ -293,3 +293,33 @@ gdb_test_multiple "core-file $corefile"
  	pass $test
      }
@@ -334,11 +334,11 @@ Index: gdb-7.7.50.20140609/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.7.50.20140609/gdb/build-id.c
+Index: gdb-7.8.50.20141228/gdb/build-id.c
 ===================================================================
---- gdb-7.7.50.20140609.orig/gdb/build-id.c	2014-06-13 20:09:37.386745238 +0200
-+++ gdb-7.7.50.20140609/gdb/build-id.c	2014-06-13 20:09:42.422750280 +0200
-@@ -27,11 +27,65 @@
+--- 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"
  #include "objfiles.h"
  #include "filenames.h"
@@ -359,11 +359,11 @@ Index: gdb-7.7.50.20140609/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.  */
- 
--/* Locate NT_GNU_BUILD_ID from ABFD and return its content.  */
++
 +static struct elf_build_id *
 +build_id_buf_get (bfd *templ, gdb_byte *buf, bfd_size_type size)
 +{
@@ -389,24 +389,23 @@ Index: gdb-7.7.50.20140609/gdb/build-id.c
 +	  retval = xmalloc (sizeof *retval - 1 + size);
 +	  retval->size = size;
 +	  memcpy (retval->data, data, size);
-+
+ 
 +	  return retval;
 +	}
 +      p = descdata + BFD_ALIGN (descsz, 4);
 +    }
 +  return NULL;
 +}
- 
-+/* Separate debuginfo files have corrupted PHDR but SHDR is correct there.
-+   Locate NT_GNU_BUILD_ID from ABFD and return its content.  */
++
++/* See build-id.h.  */
 + 
- static const struct elf_build_id *
+ const struct elf_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
-@@ -45,6 +99,348 @@ build_id_bfd_get (bfd *abfd)
+@@ -44,6 +97,348 @@ build_id_bfd_get (bfd *abfd)
    return elf_tdata (abfd)->build_id;
  }
  
@@ -755,7 +754,7 @@ Index: gdb-7.7.50.20140609/gdb/build-id.c
  /* See build-id.h.  */
  
  int
-@@ -53,7 +449,7 @@ build_id_verify (bfd *abfd, size_t check
+@@ -52,7 +447,7 @@ build_id_verify (bfd *abfd, size_t check
    const struct elf_build_id *found;
    int retval = 0;
  
@@ -764,7 +763,7 @@ Index: gdb-7.7.50.20140609/gdb/build-id.c
  
    if (found == NULL)
      warning (_("File \"%s\" has no build-id, file skipped"),
-@@ -68,20 +464,56 @@ build_id_verify (bfd *abfd, size_t check
+@@ -67,20 +462,56 @@ build_id_verify (bfd *abfd, size_t check
    return retval;
  }
  
@@ -825,7 +824,7 @@ Index: gdb-7.7.50.20140609/gdb/build-id.c
  
    /* Keep backward compatibility so that DEBUG_FILE_DIRECTORY being "" will
       cause "/.build-id/..." lookups.  */
-@@ -94,8 +526,11 @@ build_id_to_debug_bfd (size_t build_id_l
+@@ -93,8 +524,11 @@ 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;
@@ -838,7 +837,7 @@ Index: gdb-7.7.50.20140609/gdb/build-id.c
  
        memcpy (link, debugdir, debugdir_len);
        s = &link[debugdir_len];
-@@ -109,44 +544,282 @@ build_id_to_debug_bfd (size_t build_id_l
+@@ -108,44 +542,282 @@ build_id_to_debug_bfd (size_t build_id_l
  	*s++ = '/';
        while (size-- > 0)
  	s += sprintf (s, "%02x", (unsigned) *data++);
@@ -909,7 +908,9 @@ Index: gdb-7.7.50.20140609/gdb/build-id.c
 +	  xfree (filename);
 +	  filename = NULL;
 +	}
-+
+ 
+-      gdb_bfd_unref (abfd);
+-      abfd = NULL;
 +      if (filename != NULL)
 +	{
 +	  /* LINK_ALL is not used below in this non-NULL FILENAME case.  */
@@ -935,9 +936,7 @@ Index: gdb-7.7.50.20140609/gdb/build-id.c
 +	  /* Use whitespace instead of DIRNAME_SEPARATOR to be compatible with
 +	     its possible use as an argument for installation command.  */
 +	  link_all[len_orig] = ' ';
- 
--      gdb_bfd_unref (abfd);
--      abfd = NULL;
++
 +	  strcpy (&link_all[len_orig + 1], link0_resolved);
 +	  xfree (link0_resolved);
 +	}
@@ -1138,7 +1137,7 @@ Index: gdb-7.7.50.20140609/gdb/build-id.c
        /* Prevent looping on a stripped .debug file.  */
        if (abfd != NULL
  	  && filename_cmp (bfd_get_filename (abfd),
-@@ -166,3 +839,21 @@ find_separate_debug_file_by_buildid (str
+@@ -165,3 +837,21 @@ find_separate_debug_file_by_buildid (str
      }
    return NULL;
  }
@@ -1160,11 +1159,24 @@ Index: gdb-7.7.50.20140609/gdb/build-id.c
 +
 +  observer_attach_executable_changed (debug_print_executable_changed);
 +}
-Index: gdb-7.7.50.20140609/gdb/build-id.h
+Index: gdb-7.8.50.20141228/gdb/build-id.h
 ===================================================================
---- gdb-7.7.50.20140609.orig/gdb/build-id.h	2014-06-13 20:09:37.386745238 +0200
-+++ gdb-7.7.50.20140609/gdb/build-id.h	2014-06-13 20:09:42.422750280 +0200
-@@ -32,13 +32,18 @@ extern int build_id_verify (bfd *abfd,
+--- 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
+@@ -20,9 +20,10 @@
+ #ifndef BUILD_ID_H
+ #define BUILD_ID_H
+ 
+-/* Locate NT_GNU_BUILD_ID from ABFD and return its content.  */
++/* 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);
+ 
+ /* Return true if ABFD has NT_GNU_BUILD_ID matching the CHECK value.
+    Otherwise, issue a warning and return false.  */
+@@ -36,13 +37,18 @@ extern int build_id_verify (bfd *abfd,
     the caller.  */
  
  extern bfd *build_id_to_debug_bfd (size_t build_id_len,
@@ -1185,11 +1197,11 @@ Index: gdb-7.7.50.20140609/gdb/build-id.h
 +					       char **build_id_filename_return);
  
  #endif /* BUILD_ID_H */
-Index: gdb-7.7.50.20140609/gdb/dwarf2read.c
+Index: gdb-7.8.50.20141228/gdb/dwarf2read.c
 ===================================================================
---- gdb-7.7.50.20140609.orig/gdb/dwarf2read.c	2014-06-13 20:09:37.389745241 +0200
-+++ gdb-7.7.50.20140609/gdb/dwarf2read.c	2014-06-13 20:09:42.425750283 +0200
-@@ -2446,7 +2446,7 @@ dwarf2_get_dwz_file (void)
+--- 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)
      }
  
    if (dwz_bfd == NULL)
@@ -1198,3 +1210,25 @@ Index: gdb-7.7.50.20140609/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
+===================================================================
+--- 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
+ 
+   TRY_CATCH (except, RETURN_MASK_ALL)
+     {
+-      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
+       /* Don't return separate debug files.  */
+       if (objfile->separate_debug_objfile_backlink != NULL)
+ 	continue;
+-      obfd_build_id = build_id_bfd_get (objfile->obfd);
++      obfd_build_id = build_id_bfd_shdr_get (objfile->obfd);
+       if (obfd_build_id == NULL)
+ 	continue;
+       if (objfpy_build_id_matches (obfd_build_id, build_id))

diff --git a/gdb-6.6-bz235197-fork-detach-info.patch b/gdb-6.6-bz235197-fork-detach-info.patch
index d6d9416..8df2924 100644
--- a/gdb-6.6-bz235197-fork-detach-info.patch
+++ b/gdb-6.6-bz235197-fork-detach-info.patch
@@ -3,23 +3,10 @@
 	Port to GDB-6.8pre.
 	Remove the `[' character from the GDB-6.8 default message.
 
-Index: gdb-7.6.90.20140127/gdb/linux-nat.c
-===================================================================
---- gdb-7.6.90.20140127.orig/gdb/linux-nat.c	2014-02-04 23:47:39.275034491 +0100
-+++ gdb-7.6.90.20140127/gdb/linux-nat.c	2014-02-04 23:48:11.943074132 +0100
-@@ -426,7 +426,7 @@ holding the child stopped.  Try \"set de
- 	      remove_breakpoints_pid (ptid_get_pid (inferior_ptid));
- 	    }
- 
--	  if (info_verbose || debug_linux_nat)
-+	  if (1 /* Fedora Bug 235197 */ || info_verbose || debug_linux_nat)
- 	    {
- 	      target_terminal_ours ();
- 	      fprintf_filtered (gdb_stdlog,
-Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.base/fork-detach.c
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.base/fork-detach.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.base/fork-detach.c	2014-02-04 23:47:39.275034491 +0100
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.base/fork-detach.c	2015-01-06 19:31:40.703988534 +0100
 @@ -0,0 +1,57 @@
 +/* This testcase is part of GDB, the GNU debugger.
 +
@@ -78,10 +65,10 @@ Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.base/fork-detach.c
 +    }
 +  return 0;
 +}
-Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.base/fork-detach.exp
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.base/fork-detach.exp
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.6.90.20140127/gdb/testsuite/gdb.base/fork-detach.exp	2014-02-04 23:47:39.276034493 +0100
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.base/fork-detach.exp	2015-01-06 19:31:40.704988538 +0100
 @@ -0,0 +1,36 @@
 +# Copyright 2007 Free Software Foundation, Inc.
 +
@@ -119,3 +106,16 @@ Index: gdb-7.6.90.20140127/gdb/testsuite/gdb.base/fork-detach.exp
 +gdb_test "" \
 +         "Detaching after fork from child process.*\\\[Inferior .* exited normally\\\]" \
 +         "Info message caught"
+Index: gdb-7.8.50.20141228/gdb/infrun.c
+===================================================================
+--- gdb-7.8.50.20141228.orig/gdb/infrun.c	2015-01-06 19:31:40.262986644 +0100
++++ gdb-7.8.50.20141228/gdb/infrun.c	2015-01-06 19:43:54.865219096 +0100
+@@ -456,7 +456,7 @@ holding the child stopped.  Try \"set de
+ 	      remove_breakpoints_pid (ptid_get_pid (inferior_ptid));
+ 	    }
+ 
+-	  if (info_verbose || debug_infrun)
++	  if (1 /* Fedora Bug 235197 */ || info_verbose || debug_infrun)
+ 	    {
+ 	      target_terminal_ours_for_output ();
+ 	      fprintf_filtered (gdb_stdlog,

diff --git a/gdb-6.6-scheduler_locking-step-sw-watchpoints2.patch b/gdb-6.6-scheduler_locking-step-sw-watchpoints2.patch
index 8ce8107..8c4162a 100644
--- a/gdb-6.6-scheduler_locking-step-sw-watchpoints2.patch
+++ b/gdb-6.6-scheduler_locking-step-sw-watchpoints2.patch
@@ -21,11 +21,11 @@
 
 	Port to GDB-6.8pre.
 
-Index: gdb-7.7.90.20140613/gdb/infrun.c
+Index: gdb-7.8.50.20141228/gdb/infrun.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/infrun.c	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/infrun.c	2014-06-13 21:36:43.637294782 +0200
-@@ -84,7 +84,7 @@ static int follow_fork (void);
+--- gdb-7.8.50.20141228.orig/gdb/infrun.c	2014-12-28 21:33:41.301547880 +0100
++++ gdb-7.8.50.20141228/gdb/infrun.c	2015-01-01 17:00:08.212920690 +0100
+@@ -86,7 +86,7 @@ static void follow_inferior_reset_breakp
  static void set_schedlock_func (char *args, int from_tty,
  				struct cmd_list_element *c);
  
@@ -34,17 +34,16 @@ Index: gdb-7.7.90.20140613/gdb/infrun.c
  
  static void xdb_handle_command (char *args, int from_tty);
  
-@@ -1742,7 +1742,8 @@ user_visible_resume_ptid (int step)
+@@ -1998,7 +1998,7 @@ user_visible_resume_ptid (int step)
+       resume_ptid = inferior_ptid;
      }
    else if ((scheduler_mode == schedlock_on)
- 	   || (scheduler_mode == schedlock_step
--	       && (step || singlestep_breakpoints_inserted_p)))
-+	       && (step == RESUME_STEP_USER
-+		   || singlestep_breakpoints_inserted_p)))
+-	   || (scheduler_mode == schedlock_step && step))
++	   || (scheduler_mode == schedlock_step && step == RESUME_STEP_USER))
      {
        /* User-settable 'scheduler' mode requires solo thread resume.  */
        resume_ptid = inferior_ptid;
-@@ -1760,7 +1761,7 @@ user_visible_resume_ptid (int step)
+@@ -2022,7 +2022,7 @@ user_visible_resume_ptid (int step)
     STEP nonzero if we should step (zero to continue instead).
     SIG is the signal to give the inferior (zero for none).  */
  void
@@ -53,7 +52,7 @@ Index: gdb-7.7.90.20140613/gdb/infrun.c
  {
    struct cleanup *old_cleanups = make_cleanup (resume_cleanups, 0);
    struct regcache *regcache = get_current_regcache ();
-@@ -1800,9 +1801,13 @@ resume (int step, enum gdb_signal sig)
+@@ -2064,9 +2064,13 @@ resume (int step, enum gdb_signal sig)
  
    if (debug_infrun)
      fprintf_unfiltered (gdb_stdlog,
@@ -69,7 +68,7 @@ Index: gdb-7.7.90.20140613/gdb/infrun.c
  			tp->control.trap_expected,
  			target_pid_to_str (inferior_ptid),
  			paddress (gdbarch, pc));
-@@ -2188,6 +2193,7 @@ proceed (CORE_ADDR addr, enum gdb_signal
+@@ -2543,6 +2547,7 @@ proceed (CORE_ADDR addr, enum gdb_signal
    struct thread_info *tp;
    CORE_ADDR pc;
    struct address_space *aspace;
@@ -77,7 +76,7 @@ Index: gdb-7.7.90.20140613/gdb/infrun.c
  
    /* If we're stopped at a fork/vfork, follow the branch set by the
       "set follow-fork-mode" command; otherwise, we'll just proceed
-@@ -2230,13 +2236,19 @@ proceed (CORE_ADDR addr, enum gdb_signal
+@@ -2586,13 +2591,19 @@ proceed (CORE_ADDR addr, enum gdb_signal
  	   Note, we don't do this in reverse, because we won't
  	   actually be executing the breakpoint insn anyway.
  	   We'll be (un-)executing the previous instruction.  */
@@ -97,7 +96,7 @@ Index: gdb-7.7.90.20140613/gdb/infrun.c
      }
    else
      {
-@@ -2288,6 +2300,7 @@ proceed (CORE_ADDR addr, enum gdb_signal
+@@ -2647,6 +2658,7 @@ proceed (CORE_ADDR addr, enum gdb_signal
  	  tp->prev_pc = regcache_read_pc (get_current_regcache ());
  	  switch_to_thread (step_over->ptid);
  	  tp = step_over;
@@ -105,9 +104,9 @@ Index: gdb-7.7.90.20140613/gdb/infrun.c
  	}
      }
  
-@@ -2375,9 +2388,13 @@ proceed (CORE_ADDR addr, enum gdb_signal
-   /* Reset to normal state.  */
-   init_infwait_state ();
+@@ -2699,9 +2711,13 @@ proceed (CORE_ADDR addr, enum gdb_signal
+      correctly when the inferior is stopped.  */
+   tp->prev_pc = regcache_read_pc (get_current_regcache ());
  
 +  if (tp->control.trap_expected || step)
 +    resume_step = RESUME_STEP_USER;
@@ -121,7 +120,7 @@ Index: gdb-7.7.90.20140613/gdb/infrun.c
  
    /* Wait for it to stop (if not standalone)
       and in any case decode why it stopped, and act accordingly.  */
-@@ -5359,13 +5376,16 @@ switch_back_to_stepped_thread (struct ex
+@@ -5674,14 +5690,16 @@ switch_back_to_stepped_thread (struct ex
  
  /* Is thread TP in the middle of single-stepping?  */
  
@@ -133,6 +132,7 @@ Index: gdb-7.7.90.20140613/gdb/infrun.c
 +  if     ((tp->control.step_range_end
  	   && tp->control.step_resume_breakpoint == NULL)
 -	  || tp->control.trap_expected
+-	  || tp->stepped_breakpoint
 -	  || bpstat_should_step ());
 +	  || tp->control.trap_expected)
 +    return RESUME_STEP_USER;
@@ -142,11 +142,11 @@ Index: gdb-7.7.90.20140613/gdb/infrun.c
  }
  
  /* Inferior has stepped into a subroutine call with source code that
-Index: gdb-7.7.90.20140613/gdb/linux-nat.c
+Index: gdb-7.8.50.20141228/gdb/linux-nat.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/linux-nat.c	2014-06-13 03:59:37.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/linux-nat.c	2014-06-13 21:31:19.449949814 +0200
-@@ -2709,7 +2709,11 @@ static int
+--- gdb-7.8.50.20141228.orig/gdb/linux-nat.c	2014-12-28 21:33:41.303547882 +0100
++++ gdb-7.8.50.20141228/gdb/linux-nat.c	2014-12-28 21:33:45.827551687 +0100
+@@ -2519,7 +2519,11 @@ static int
  select_singlestep_lwp_callback (struct lwp_info *lp, void *data)
  {
    if (lp->last_resume_kind == resume_step
@@ -159,10 +159,10 @@ Index: gdb-7.7.90.20140613/gdb/linux-nat.c
      return 1;
    else
      return 0;
-Index: gdb-7.7.90.20140613/gdb/linux-nat.h
+Index: gdb-7.8.50.20141228/gdb/linux-nat.h
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/linux-nat.h	2014-06-13 03:59:37.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/linux-nat.h	2014-06-13 21:31:19.449949814 +0200
+--- gdb-7.8.50.20141228.orig/gdb/linux-nat.h	2014-12-28 21:33:41.304547882 +0100
++++ gdb-7.8.50.20141228/gdb/linux-nat.h	2014-12-28 21:33:45.827551687 +0100
 @@ -18,6 +18,7 @@
     along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
  
@@ -182,11 +182,11 @@ Index: gdb-7.7.90.20140613/gdb/linux-nat.h
  
    /* STOPPED_BY_WATCHPOINT is non-zero if this LWP stopped with a data
       watchpoint trap.  */
-Index: gdb-7.7.90.20140613/gdb/infrun.h
+Index: gdb-7.8.50.20141228/gdb/infrun.h
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/infrun.h	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/infrun.h	2014-06-13 21:31:19.449949814 +0200
-@@ -89,7 +89,14 @@ extern void proceed (CORE_ADDR, enum gdb
+--- gdb-7.8.50.20141228.orig/gdb/infrun.h	2014-12-28 21:33:45.827551687 +0100
++++ gdb-7.8.50.20141228/gdb/infrun.h	2014-12-28 21:34:13.516574981 +0100
+@@ -92,7 +92,14 @@ extern void proceed (CORE_ADDR, enum gdb
  
  /* The `resume' routine should only be called in special circumstances.
     Normally, use `proceed', which handles a lot of bookkeeping.  */
@@ -200,12 +200,12 @@ Index: gdb-7.7.90.20140613/gdb/infrun.h
 +  };
 +extern void resume (enum resume_step, enum gdb_signal);
  
- extern ptid_t user_visible_resume_ptid (int step);
- 
-diff --git a/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp b/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp
-index 2a30604..ee1fd11 100644
---- a/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp
-+++ b/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp
+ /* Return a ptid representing the set of threads that we will proceed,
+    in the perspective of the user/frontend.  */
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp
+===================================================================
+--- gdb-7.8.50.20141228.orig/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp	2014-12-28 21:33:41.304547882 +0100
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp	2014-12-28 21:33:45.827551687 +0100
 @@ -97,7 +97,7 @@ gdb_test "set debug infrun 1"
  
  gdb_test \

diff --git a/gdb-6.8-attach-signalled-detach-stopped.patch b/gdb-6.8-attach-signalled-detach-stopped.patch
index 759dec8..bd5d09c 100644
--- a/gdb-6.8-attach-signalled-detach-stopped.patch
+++ b/gdb-6.8-attach-signalled-detach-stopped.patch
@@ -1,8 +1,8 @@
-Index: gdb-7.7.90.20140613/gdb/linux-nat.c
+Index: gdb-7.8.50.20141228/gdb/linux-nat.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/linux-nat.c	2014-06-13 23:03:34.364177614 +0200
-+++ gdb-7.7.90.20140613/gdb/linux-nat.c	2014-06-13 23:05:07.749279122 +0200
-@@ -178,6 +178,9 @@ blocked.  */
+--- gdb-7.8.50.20141228.orig/gdb/linux-nat.c	2015-01-05 22:52:01.115978026 +0100
++++ gdb-7.8.50.20141228/gdb/linux-nat.c	2015-01-05 22:52:23.147074710 +0100
+@@ -174,6 +174,9 @@ blocked.  */
  static struct target_ops *linux_ops;
  static struct target_ops linux_ops_saved;
  
@@ -12,23 +12,7 @@ Index: gdb-7.7.90.20140613/gdb/linux-nat.c
  /* The method to call, if any, when a new thread is attached.  */
  static void (*linux_nat_new_thread) (struct lwp_info *);
  
-@@ -683,7 +686,14 @@ holding the child stopped.  Try \"set de
- 	  parent_inf->waiting_for_vfork_done = 0;
- 	}
-       else if (detach_fork)
--	target_detach (NULL, 0);
-+	{
-+	  /* We should check PID_WAS_STOPPED and detach it stopped accordingly.
-+	     In this point of code it cannot be 1 as we would not get FORK
-+	     executed without CONTINUE first which resets PID_WAS_STOPPED.
-+	     We would have to first TARGET_STOP and WAITPID it as with running
-+	     inferior PTRACE_DETACH, SIGSTOP will ignore the signal.  */
-+	  target_detach (NULL, 0);
-+	}
- 
-       /* Note that the detach above makes PARENT_INF dangling.  */
- 
-@@ -1107,6 +1117,7 @@ linux_nat_post_attach_wait (ptid_t ptid,
+@@ -915,6 +918,7 @@ linux_nat_post_attach_wait (ptid_t ptid,
        if (debug_linux_nat)
  	fprintf_unfiltered (gdb_stdlog,
  			    "LNPAW: Attaching to a stopped process\n");
@@ -36,7 +20,7 @@ Index: gdb-7.7.90.20140613/gdb/linux-nat.c
  
        /* The process is definitely stopped.  It is in a job control
  	 stop, unless the kernel predates the TASK_STOPPED /
-@@ -1529,6 +1540,9 @@ get_pending_status (struct lwp_info *lp,
+@@ -1337,6 +1341,9 @@ get_pending_status (struct lwp_info *lp,
  			    gdb_signal_to_string (signo));
      }
  
@@ -46,7 +30,7 @@ Index: gdb-7.7.90.20140613/gdb/linux-nat.c
    return 0;
  }
  
-@@ -1642,6 +1656,8 @@ linux_nat_detach (struct target_ops *ops
+@@ -1450,6 +1457,8 @@ linux_nat_detach (struct target_ops *ops
      }
    else
      linux_ops->to_detach (ops, args, from_tty);
@@ -55,7 +39,7 @@ Index: gdb-7.7.90.20140613/gdb/linux-nat.c
  }
  
  /* Resume LP.  */
-@@ -1824,6 +1840,14 @@ linux_nat_resume (struct target_ops *ops
+@@ -1631,6 +1640,14 @@ linux_nat_resume (struct target_ops *ops
        return;
      }
  
@@ -70,7 +54,7 @@ Index: gdb-7.7.90.20140613/gdb/linux-nat.c
    if (resume_many)
      iterate_over_lwps (ptid, linux_nat_resume_callback, lp);
  
-@@ -3870,6 +3894,8 @@ linux_nat_mourn_inferior (struct target_
+@@ -3696,6 +3713,8 @@ linux_nat_mourn_inferior (struct target_
  
    /* Let the arch-specific native code know this process is gone.  */
    linux_nat_forget_process (pid);
@@ -79,10 +63,10 @@ Index: gdb-7.7.90.20140613/gdb/linux-nat.c
  }
  
  /* Convert a native/host siginfo object, into/from the siginfo in the
-Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.threads/attach-stopped.exp
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.threads/attach-stopped.exp
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/testsuite/gdb.threads/attach-stopped.exp	2014-06-13 23:03:34.365177615 +0200
-+++ gdb-7.7.90.20140613/gdb/testsuite/gdb.threads/attach-stopped.exp	2014-06-13 23:03:37.162180660 +0200
+--- gdb-7.8.50.20141228.orig/gdb/testsuite/gdb.threads/attach-stopped.exp	2015-01-05 22:52:01.115978026 +0100
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.threads/attach-stopped.exp	2015-01-05 22:52:23.148074714 +0100
 @@ -61,7 +61,65 @@ proc corefunc { threadtype } {
      gdb_reinitialize_dir $srcdir/$subdir
      gdb_load ${binfile}
@@ -150,3 +134,19 @@ Index: gdb-7.7.90.20140613/gdb/testsuite/gdb.threads/attach-stopped.exp
         
      set test "$threadtype: attach2 to stopped, after setting file"
      gdb_test_multiple "attach $testpid" "$test" {
+Index: gdb-7.8.50.20141228/gdb/infrun.c
+===================================================================
+--- gdb-7.8.50.20141228.orig/gdb/infrun.c	2015-01-05 22:42:48.773501429 +0100
++++ gdb-7.8.50.20141228/gdb/infrun.c	2015-01-05 22:53:47.274443903 +0100
+@@ -600,6 +600,11 @@ holding the child stopped.  Try \"set de
+ 				child_pid);
+ 	    }
+ 
++	  /* We should check PID_WAS_STOPPED and detach it stopped accordingly.
++	     In this point of code it cannot be 1 as we would not get FORK
++	     executed without CONTINUE first which resets PID_WAS_STOPPED.
++	     We would have to first TARGET_STOP and WAITPID it as with running
++	     inferior PTRACE_DETACH, SIGSTOP will ignore the signal.  */
+ 	  target_detach (NULL, 0);
+ 	}
+ 

diff --git a/gdb-6.8-bz457187-largefile-test-regression-fix.patch b/gdb-6.8-bz457187-largefile-test-regression-fix.patch
new file mode 100644
index 0000000..de1373a
--- /dev/null
+++ b/gdb-6.8-bz457187-largefile-test-regression-fix.patch
@@ -0,0 +1,49 @@
+http://sourceware.org/ml/gdb-patches/2015-01/msg00198.html
+Subject: [PATCH] [PR corefiles/17808] i386: Fix internal error when prstatus in core file is too big
+
+As reported in PR 17808, a test case with a forged (invalid) core file
+can crash GDB with an assertion failure.  In that particular case the
+prstatus of an i386 core file looks like that from an AMD64 core file,
+i.e., it is larger than GDB would expect.
+
+The patch replaces the assertion by a warning and skips the invalid
+core file register section.  In this way it is guaranteed that no
+bogus register values are read from the badly formatted section.
+
+Note that this behavior deviates from the default policy: In general, if
+some future kernel adds new registers to a register set, then a GDB
+unaware of this extension would read the known subset and just ignore
+the unknown bytes.
+
+gdb/ChangeLog:
+
+	PR corefiles/17808
+	* i386-tdep.c (i386_supply_gregset): Instead of yielding an
+	internal error on unexpected input buffer size, ignore the data
+	and emit a warning.
+
+---
+ gdb/i386-tdep.c |    7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c
+index 7d174c4..d02aaf2 100644
+--- a/gdb/i386-tdep.c
++++ b/gdb/i386-tdep.c
+@@ -3727,7 +3727,12 @@ i386_supply_gregset (const struct regset *regset, struct regcache *regcache,
+   const gdb_byte *regs = gregs;
+   int i;
+ 
+-  gdb_assert (len == tdep->sizeof_gregset);
++  if (len != tdep->sizeof_gregset)
++    {
++      /* Buffer has unknown size: assume wrong format.  */
++      warning (_("Bad size of general register section"));
++      return;
++    }
+ 
+   for (i = 0; i < tdep->gregset_num_regs; i++)
+     {
+-- 
+1.7.9.5
+

diff --git a/gdb-archer.patch b/gdb-archer.patch
index d6c8e38..c6b2cca 100644
--- a/gdb-archer.patch
+++ b/gdb-archer.patch
@@ -2,23 +2,24 @@ http://sourceware.org/gdb/wiki/ProjectArcher
 http://sourceware.org/gdb/wiki/ArcherBranchManagement
 
 GIT snapshot:
-commit b88230edf4e2da948d633c283ba0893bf22bd7ae
+commit ef5e5e4d5bfedecf54ef7f1380eaf89662b617d0
 
 tromey/python
 
 
-Index: gdb-7.8/README.archer
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.8/README.archer	2014-07-29 19:29:04.861982779 +0200
+diff --git a/README.archer b/README.archer
+new file mode 100644
+index 0000000..173b8ea
+--- /dev/null
++++ b/README.archer
 @@ -0,0 +1,2 @@
 +This branch originally held the Python code for gdb.  It still exists
 +because a small amount of code here has not yet been merged upstream.
-Index: gdb-7.8/gdb/Makefile.in
-===================================================================
---- gdb-7.8.orig/gdb/Makefile.in	2014-07-29 19:29:02.665979655 +0200
-+++ gdb-7.8/gdb/Makefile.in	2014-07-29 19:29:04.862982781 +0200
-@@ -1476,6 +1476,12 @@ stamp-h: $(srcdir)/config.in config.stat
+diff --git a/gdb/Makefile.in b/gdb/Makefile.in
+index be69b6f..a4483e4 100644
+--- a/gdb/Makefile.in
++++ b/gdb/Makefile.in
+@@ -1515,6 +1515,12 @@ stamp-h: $(srcdir)/config.in config.status
  	  CONFIG_LINKS= \
  	  $(SHELL) config.status
  
@@ -31,35 +32,34 @@ Index: gdb-7.8/gdb/Makefile.in
  config.status: $(srcdir)/configure configure.tgt configure.host ../bfd/development.sh
  	$(SHELL) config.status --recheck
  
-Index: gdb-7.8/gdb/data-directory/Makefile.in
-===================================================================
---- gdb-7.8.orig/gdb/data-directory/Makefile.in	2014-07-29 19:29:02.665979655 +0200
-+++ gdb-7.8/gdb/data-directory/Makefile.in	2014-07-29 19:29:33.053022486 +0200
-@@ -65,6 +65,8 @@ PYTHON_FILE_LIST = \
+diff --git a/gdb/data-directory/Makefile.in b/gdb/data-directory/Makefile.in
+index 00c70bb..f93ffdd 100644
+--- a/gdb/data-directory/Makefile.in
++++ b/gdb/data-directory/Makefile.in
+@@ -64,7 +64,10 @@ PYTHON_FILE_LIST = \
+ 	gdb/printing.py \
  	gdb/prompt.py \
  	gdb/xmethod.py \
++	gdb/types.py \
  	gdb/command/__init__.py \
 +	gdb/command/ignore_errors.py \
 +	gdb/command/pahole.py \
  	gdb/command/xmethods.py \
  	gdb/command/frame_filters.py \
  	gdb/command/type_printers.py \
-@@ -74,7 +76,10 @@ PYTHON_FILE_LIST = \
+@@ -74,6 +77,8 @@ PYTHON_FILE_LIST = \
  	gdb/function/__init__.py \
+ 	gdb/function/caller_is.py \
  	gdb/function/strfns.py \
- 	gdb/printer/__init__.py \
--	gdb/printer/bound_registers.py
-+	gdb/printer/bound_registers.py \
 +	gdb/function/caller_is.py \
 +	gdb/function/in_scope.py \
-+	gdb/types.py
+ 	gdb/printer/__init__.py \
+ 	gdb/printer/bound_registers.py
  
- @HAVE_PYTHON_TRUE@PYTHON_FILES = $(PYTHON_FILE_LIST)
- @HAVE_PYTHON_FALSE@PYTHON_FILES =
-Index: gdb-7.8/gdb/doc/gdb.texinfo
-===================================================================
---- gdb-7.8.orig/gdb/doc/gdb.texinfo	2014-07-29 19:29:02.675979669 +0200
-+++ gdb-7.8/gdb/doc/gdb.texinfo	2014-07-29 19:29:04.871982794 +0200
+diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
+index e086c33..5dfeb1d 100644
+--- a/gdb/doc/gdb.texinfo
++++ b/gdb/doc/gdb.texinfo
 @@ -1225,6 +1225,16 @@ for remote debugging.
  Run using @var{device} for your program's standard input and output.
  @c FIXME: kingdon thinks there is more to -tty.  Investigate.
@@ -77,10 +77,10 @@ Index: gdb-7.8/gdb/doc/gdb.texinfo
  @c resolve the situation of these eventually
  @item -tui
  @cindex @code{--tui}
-Index: gdb-7.8/gdb/doc/python.texi
-===================================================================
---- gdb-7.8.orig/gdb/doc/python.texi	2014-07-29 19:29:02.677979672 +0200
-+++ gdb-7.8/gdb/doc/python.texi	2014-07-29 19:29:04.872982795 +0200
+diff --git a/gdb/doc/python.texi b/gdb/doc/python.texi
+index 234ce5c..e940125 100644
+--- a/gdb/doc/python.texi
++++ b/gdb/doc/python.texi
 @@ -88,8 +88,6 @@ containing @code{end}.  For example:
  
  @smallexample
@@ -90,10 +90,10 @@ Index: gdb-7.8/gdb/doc/python.texi
  >print 23
  >end
  23
-Index: gdb-7.8/gdb/gdb-gdb.gdb.in
-===================================================================
---- gdb-7.8.orig/gdb/gdb-gdb.gdb.in	2014-07-29 19:29:02.677979672 +0200
-+++ gdb-7.8/gdb/gdb-gdb.gdb.in	2014-07-29 19:29:04.872982795 +0200
+diff --git a/gdb/gdb-gdb.gdb.in b/gdb/gdb-gdb.gdb.in
+index 05a38b2..9801fdf 100644
+--- a/gdb/gdb-gdb.gdb.in
++++ b/gdb/gdb-gdb.gdb.in
 @@ -1,5 +1,15 @@
  echo Setting up the environment for debugging gdb.\n
  
@@ -110,11 +110,11 @@ Index: gdb-7.8/gdb/gdb-gdb.gdb.in
  if !$gdb_init_done
    set variable $gdb_init_done = 1
  
-Index: gdb-7.8/gdb/main.c
-===================================================================
---- gdb-7.8.orig/gdb/main.c	2014-07-29 19:29:02.678979673 +0200
-+++ gdb-7.8/gdb/main.c	2014-07-29 19:29:04.872982795 +0200
-@@ -37,6 +37,7 @@
+diff --git a/gdb/main.c b/gdb/main.c
+index accd927..ed211f6 100644
+--- a/gdb/main.c
++++ b/gdb/main.c
+@@ -33,6 +33,7 @@
  
  #include "interps.h"
  #include "main.h"
@@ -122,7 +122,7 @@ Index: gdb-7.8/gdb/main.c
  #include "source.h"
  #include "cli/cli-cmds.h"
  #include "objfiles.h"
-@@ -417,6 +418,8 @@ captured_main (void *data)
+@@ -444,6 +445,8 @@ captured_main (void *data)
    char *cdarg = NULL;
    char *ttyarg = NULL;
  
@@ -131,7 +131,7 @@ Index: gdb-7.8/gdb/main.c
    /* These are static so that we can take their address in an
       initializer.  */
    static int print_help;
-@@ -624,10 +627,14 @@ captured_main (void *data)
+@@ -649,10 +652,14 @@ captured_main (void *data)
        {"args", no_argument, &set_args, 1},
        {"l", required_argument, 0, 'l'},
        {"return-child-result", no_argument, &return_child_result, 1},
@@ -147,7 +147,7 @@ Index: gdb-7.8/gdb/main.c
        {
  	int option_index;
  
-@@ -645,6 +652,9 @@ captured_main (void *data)
+@@ -670,6 +677,9 @@ captured_main (void *data)
  	  case 0:
  	    /* Long option that just sets a flag.  */
  	    break;
@@ -157,7 +157,7 @@ Index: gdb-7.8/gdb/main.c
  	  case OPT_SE:
  	    symarg = optarg;
  	    execarg = optarg;
-@@ -849,7 +859,31 @@ captured_main (void *data)
+@@ -851,7 +861,31 @@ captured_main (void *data)
  
    /* Now that gdb_init has created the initial inferior, we're in
       position to set args for that inferior.  */
@@ -190,7 +190,7 @@ Index: gdb-7.8/gdb/main.c
      {
        /* The remaining options are the command-line options for the
  	 inferior.  The first one is the sym/exec file, and the rest
-@@ -1135,7 +1169,8 @@ captured_main (void *data)
+@@ -1129,7 +1163,8 @@ captured_main (void *data)
  
    /* Read in the old history after all the command files have been
       read.  */
@@ -200,7 +200,7 @@ Index: gdb-7.8/gdb/main.c
  
    if (batch_flag)
      {
-@@ -1146,13 +1181,25 @@ captured_main (void *data)
+@@ -1140,13 +1175,25 @@ captured_main (void *data)
    /* Show time and/or space usage.  */
    do_cleanups (pre_stat_chain);
  
@@ -232,7 +232,7 @@ Index: gdb-7.8/gdb/main.c
      }
    /* No exit -- exit is through quit_command.  */
  }
-@@ -1186,6 +1233,12 @@ print_gdb_help (struct ui_file *stream)
+@@ -1180,6 +1227,12 @@ print_gdb_help (struct ui_file *stream)
    fputs_unfiltered (_("\
  This is the GNU debugger.  Usage:\n\n\
      gdb [options] [executable-file [core-file or process-id]]\n\
@@ -245,7 +245,7 @@ Index: gdb-7.8/gdb/main.c
      gdb [options] --args executable-file [inferior-arguments ...]\n\n\
  "), stream);
    fputs_unfiltered (_("\
-@@ -1231,6 +1284,13 @@ Output and user interface control:\n\n\
+@@ -1225,6 +1278,13 @@ Output and user interface control:\n\n\
    fputs_unfiltered (_("\
    --dbx              DBX compatibility mode.\n\
    --xdb              XDB compatibility mode.\n\
@@ -259,10 +259,11 @@ Index: gdb-7.8/gdb/main.c
    -q, --quiet, --silent\n\
                       Do not print version number on startup.\n\n\
  "), stream);
-Index: gdb-7.8/gdb/python/lib/gdb/command/ignore_errors.py
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.8/gdb/python/lib/gdb/command/ignore_errors.py	2014-07-29 19:29:04.872982795 +0200
+diff --git a/gdb/python/lib/gdb/command/ignore_errors.py b/gdb/python/lib/gdb/command/ignore_errors.py
+new file mode 100644
+index 0000000..6fa48ff
+--- /dev/null
++++ b/gdb/python/lib/gdb/command/ignore_errors.py
 @@ -0,0 +1,37 @@
 +# Ignore errors in user commands.
 +
@@ -301,10 +302,11 @@ Index: gdb-7.8/gdb/python/lib/gdb/command/ignore_errors.py
 +            pass
 +
 +IgnoreErrorsCommand ()
-Index: gdb-7.8/gdb/python/lib/gdb/command/pahole.py
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.8/gdb/python/lib/gdb/command/pahole.py	2014-07-29 19:29:04.873982797 +0200
+diff --git a/gdb/python/lib/gdb/command/pahole.py b/gdb/python/lib/gdb/command/pahole.py
+new file mode 100644
+index 0000000..636f99d
+--- /dev/null
++++ b/gdb/python/lib/gdb/command/pahole.py
 @@ -0,0 +1,81 @@
 +# pahole command for gdb
 +
@@ -387,73 +389,11 @@ Index: gdb-7.8/gdb/python/lib/gdb/command/pahole.py
 +        self.pahole (type, 0, '')
 +
 +Pahole()
-Index: gdb-7.8/gdb/python/lib/gdb/function/caller_is.py
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.8/gdb/python/lib/gdb/function/caller_is.py	2014-07-29 19:29:04.873982797 +0200
-@@ -0,0 +1,58 @@
-+# Caller-is functions.
-+
-+# Copyright (C) 2008 Free Software Foundation, Inc.
-+
-+# This program is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 3 of the License, or
-+# (at your option) any later version.
-+#
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+# GNU General Public License for more details.
-+#
-+# You should have received a copy of the GNU General Public License
-+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-+
-+import gdb
-+import re
-+
-+class CallerIs (gdb.Function):
-+    """Return True if the calling function's name is equal to a string.
-+This function takes one or two arguments.
-+The first argument is the name of a function; if the calling function's
-+name is equal to this argument, this function returns True.
-+The optional second argument tells this function how many stack frames
-+to traverse to find the calling function.  The default is 1."""
-+
-+    def __init__ (self):
-+        super (CallerIs, self).__init__ ("caller_is")
-+
-+    def invoke (self, name, nframes = 1):
-+        frame = gdb.selected_frame ()
-+        while nframes > 0:
-+            frame = frame.older ()
-+            nframes = nframes - 1
-+        return frame.name () == name.string ()
-+
-+class CallerMatches (gdb.Function):
-+    """Return True if the calling function's name matches a string.
-+This function takes one or two arguments.
-+The first argument is a regular expression; if the calling function's
-+name is matched by this argument, this function returns True.
-+The optional second argument tells this function how many stack frames
-+to traverse to find the calling function.  The default is 1."""
-+
-+    def __init__ (self):
-+        super (CallerMatches, self).__init__ ("caller_matches")
-+
-+    def invoke (self, name, nframes = 1):
-+        frame = gdb.selected_frame ()
-+        while nframes > 0:
-+            frame = frame.older ()
-+            nframes = nframes - 1
-+        return re.match (name.string (), frame.name ()) is not None
-+
-+CallerIs()
-+CallerMatches()
-Index: gdb-7.8/gdb/python/lib/gdb/function/in_scope.py
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.8/gdb/python/lib/gdb/function/in_scope.py	2014-07-29 19:29:04.873982797 +0200
+diff --git a/gdb/python/lib/gdb/function/in_scope.py b/gdb/python/lib/gdb/function/in_scope.py
+new file mode 100644
+index 0000000..debb3bb
+--- /dev/null
++++ b/gdb/python/lib/gdb/function/in_scope.py
 @@ -0,0 +1,47 @@
 +# In-scope function.
 +
@@ -502,11 +442,11 @@ Index: gdb-7.8/gdb/python/lib/gdb/function/in_scope.py
 +	return wanted == found
 +
 +InScope ()
-Index: gdb-7.8/gdb/python/python.c
-===================================================================
---- gdb-7.8.orig/gdb/python/python.c	2014-07-29 19:29:02.679979674 +0200
-+++ gdb-7.8/gdb/python/python.c	2014-07-29 19:29:04.873982797 +0200
-@@ -95,6 +95,8 @@ const struct extension_language_defn ext
+diff --git a/gdb/python/python.c b/gdb/python/python.c
+index b1d8283..8eb8afe 100644
+--- a/gdb/python/python.c
++++ b/gdb/python/python.c
+@@ -93,6 +93,8 @@ const struct extension_language_defn extension_language_python =
  #include "linespec.h"
  #include "source.h"
  #include "version.h"
@@ -515,7 +455,7 @@ Index: gdb-7.8/gdb/python/python.c
  #include "target.h"
  #include "gdbthread.h"
  #include "interps.h"
-@@ -1222,6 +1224,56 @@ gdbpy_print_stack (void)
+@@ -1220,6 +1222,56 @@ gdbpy_print_stack (void)
  
  /* Return the current Progspace.
     There always is one.  */
@@ -572,7 +512,7 @@ Index: gdb-7.8/gdb/python/python.c
  
  static PyObject *
  gdbpy_get_current_progspace (PyObject *unused1, PyObject *unused2)
-@@ -1910,6 +1962,8 @@ static PyMethodDef GdbMethods[] =
+@@ -1913,6 +1965,8 @@ static PyMethodDef GdbMethods[] =
  Evaluate command, a string, as a gdb CLI command.  Optionally returns\n\
  a Python String containing the output of the command if to_string is\n\
  set to True." },
@@ -581,10 +521,10 @@ Index: gdb-7.8/gdb/python/python.c
    { "parameter", gdbpy_parameter, METH_VARARGS,
      "Return a gdb parameter's value" },
  
-Index: gdb-7.8/gdb/python/python.h
-===================================================================
---- gdb-7.8.orig/gdb/python/python.h	2014-07-29 19:29:02.679979674 +0200
-+++ gdb-7.8/gdb/python/python.h	2014-07-29 19:29:04.873982797 +0200
+diff --git a/gdb/python/python.h b/gdb/python/python.h
+index 9e99992..c776e59 100644
+--- a/gdb/python/python.h
++++ b/gdb/python/python.h
 @@ -25,4 +25,6 @@
  /* This is all that python exports to gdb.  */
  extern const struct extension_language_defn extension_language_python;
@@ -592,10 +532,10 @@ Index: gdb-7.8/gdb/python/python.h
 +extern void run_python_script (int argc, char **argv);
 +
  #endif /* GDB_PYTHON_H */
-Index: gdb-7.8/gdb/testsuite/gdb.gdb/selftest.exp
-===================================================================
---- gdb-7.8.orig/gdb/testsuite/gdb.gdb/selftest.exp	2014-07-29 19:29:02.679979674 +0200
-+++ gdb-7.8/gdb/testsuite/gdb.gdb/selftest.exp	2014-07-29 19:29:04.874982798 +0200
+diff --git a/gdb/testsuite/gdb.gdb/selftest.exp b/gdb/testsuite/gdb.gdb/selftest.exp
+index 0b11e12..e35e829 100644
+--- a/gdb/testsuite/gdb.gdb/selftest.exp
++++ b/gdb/testsuite/gdb.gdb/selftest.exp
 @@ -92,6 +92,10 @@ proc do_steps_and_nexts {} {
  		set description "step over cmdarg_vec initialization"
  		set command "step"
@@ -607,21 +547,24 @@ Index: gdb-7.8/gdb/testsuite/gdb.gdb/selftest.exp
  	    -re ".*pre_stat_chain = make_command_stats_cleanup.*$gdb_prompt $" {
  		set description "next over make_command_stats_cleanup and everything it calls"
  		set command "next"
-Index: gdb-7.8/gdb/testsuite/gdb.python/py-frame.exp
-===================================================================
---- gdb-7.8.orig/gdb/testsuite/gdb.python/py-frame.exp	2014-07-29 19:29:02.680979676 +0200
-+++ gdb-7.8/gdb/testsuite/gdb.python/py-frame.exp	2014-07-29 19:29:04.874982798 +0200
-@@ -94,3 +94,5 @@ gdb_test "python print ('result = %s' %
- gdb_test "python print ('result = %s' % f0.read_var ('a'))" " = 1" "test Frame.read_var - success"
+diff --git a/gdb/testsuite/gdb.python/py-frame.exp b/gdb/testsuite/gdb.python/py-frame.exp
+index e47f340..a7e0a52 100644
+--- a/gdb/testsuite/gdb.python/py-frame.exp
++++ b/gdb/testsuite/gdb.python/py-frame.exp
+@@ -95,6 +95,8 @@ gdb_test "python print ('result = %s' % f0.read_var ('a'))" " = 1" "test Frame.r
  
  gdb_test "python print ('result = %s' % (gdb.selected_frame () == f1))" " = True" "test gdb.selected_frame"
-+
+ 
 +gdb_test "python print ('result = %s' % (f0.block ()))" "<gdb.Block object at 0x\[\[:xdigit:\]\]+>" "test Frame.block"
-Index: gdb-7.8/gdb/testsuite/gdb.python/py-value.exp
-===================================================================
---- gdb-7.8.orig/gdb/testsuite/gdb.python/py-value.exp	2014-07-29 19:29:02.680979676 +0200
-+++ gdb-7.8/gdb/testsuite/gdb.python/py-value.exp	2014-07-29 19:29:04.874982798 +0200
-@@ -385,6 +385,15 @@ proc test_value_after_death {} {
++
+ # Can read SP register.
+ gdb_test "python print ('result = %s' % (gdb.selected_frame ().read_register ('sp') == gdb.parse_and_eval ('\$sp')))" \
+   " = True" \
+diff --git a/gdb/testsuite/gdb.python/py-value.exp b/gdb/testsuite/gdb.python/py-value.exp
+index f081ff0..31b5910 100644
+--- a/gdb/testsuite/gdb.python/py-value.exp
++++ b/gdb/testsuite/gdb.python/py-value.exp
+@@ -388,6 +388,15 @@ proc test_value_after_death {} {
      "print value's type"
  }
  
@@ -637,7 +580,7 @@ Index: gdb-7.8/gdb/testsuite/gdb.python/py-value.exp
  # Regression test for invalid subscript operations.  The bug was that
  # the type of the value was not being checked before allowing a
  # subscript operation to proceed.
-@@ -514,6 +523,7 @@ test_value_in_inferior
+@@ -517,6 +526,7 @@ test_value_in_inferior
  test_inferior_function_call
  test_lazy_strings
  test_value_after_death

diff --git a/gdb-async-stopped-on-pid-arg-testsuite.patch b/gdb-async-stopped-on-pid-arg-testsuite.patch
deleted file mode 100644
index d516695..0000000
--- a/gdb-async-stopped-on-pid-arg-testsuite.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-http://sourceware.org/ml/gdb-patches/2014-09/msg00381.html
-Subject: [testsuite patch] runaway attach processes  [Re: Regression: GDB stopped on run with attached process (PR 17347)]
-
-
---RnlQjJ0d97Da+TV1
-Content-Type: text/plain; charset=us-ascii
-Content-Disposition: inline
-
-On Thu, 11 Sep 2014 14:35:53 +0200, Pedro Alves wrote:
-> Thanks, pushed to both master and 7.8.
-
-I have started seeing occasional runaway 'attach' processes these days.
-I cannot be certain it is really caused by this patch, for example
-grep 'FAIL.*cmdline attach run' does not show anything in my logs.
-
-But as I remember this 'attach' runaway process always happened in GDB (but
-I do not remember it in the past months) I think it would be most safe to just
-solve it forever by [attached].
-
-
-Jan
-
---RnlQjJ0d97Da+TV1
-Content-Type: text/plain; charset=us-ascii
-Content-Disposition: inline; filename=1
-
-gdb/testsuite/
-2014-09-12  Jan Kratochvil  <jan.kratochvil@redhat.com>
-
-	* gdb.base/attach.c: Include unistd.h.
-	(main): Call alarm.  Add label postloop.
-	* gdb.base/attach.exp (do_attach_tests): Use gdb_get_line_number,
-	gdb_breakpoint, gdb_continue_to_breakpoint.
-	(test_command_line_attach_run): Kill ${testpid} in one exit path.
-
-Index: gdb-7.8.1/gdb/testsuite/gdb.base/attach.c
-===================================================================
---- gdb-7.8.1.orig/gdb/testsuite/gdb.base/attach.c	2014-10-30 20:23:01.311595725 +0100
-+++ gdb-7.8.1/gdb/testsuite/gdb.base/attach.c	2014-10-30 20:23:38.653574999 +0100
-@@ -5,6 +5,7 @@
-    exit unless/until gdb sets the variable to non-zero.)
-    */
- #include <stdio.h>
-+#include <unistd.h>
- 
- int  should_exit = 0;
- 
-@@ -12,9 +13,11 @@ int main ()
- {
-   int  local_i = 0;
- 
-+  alarm (60);
-+
-   while (! should_exit)
-     {
-       local_i++;
-     }
--  return 0;
-+  return 0; /* postloop */
- }
-Index: gdb-7.8.1/gdb/testsuite/gdb.base/attach.exp
-===================================================================
---- gdb-7.8.1.orig/gdb/testsuite/gdb.base/attach.exp	2014-10-30 20:23:01.311595725 +0100
-+++ gdb-7.8.1/gdb/testsuite/gdb.base/attach.exp	2014-10-30 20:23:54.151562867 +0100
-@@ -256,11 +256,8 @@ proc do_attach_tests {} {
- 
-     # Verify that the modification really happened.
- 
--    gdb_test "tbreak 19" "Temporary breakpoint .*at.*$srcfile, line 19.*" \
--	"after attach2, set tbreak postloop"
--
--    gdb_test "continue" "main.*at.*$srcfile:19.*" \
--	"after attach2, reach tbreak postloop"
-+    gdb_breakpoint [gdb_get_line_number "postloop"] temporary
-+    gdb_continue_to_breakpoint "postloop" ".* postloop .*"
- 
-     # Allow the test process to exit, to cleanup after ourselves.
- 
-@@ -418,6 +415,7 @@ proc test_command_line_attach_run {} {
- 		     "-iex \"set height 0\" -iex \"set width 0\" --pid=$testpid -ex \"start\""]
- 	if { $res != 0} {
- 	    fail $test
-+	    remote_exec build "kill -9 ${testpid}"
- 	    return $res
- 	}
- 	gdb_test_multiple "" $test {

diff --git a/gdb-attach-fail-reasons-5of5.patch b/gdb-attach-fail-reasons-5of5.patch
index 75a7a5f..e6d9102 100644
--- a/gdb-attach-fail-reasons-5of5.patch
+++ b/gdb-attach-fail-reasons-5of5.patch
@@ -37,11 +37,11 @@ gdb/gdbserver/
 	(linux_create_inferior, linux_tracefork_child): Call it instead of
 	direct ptrace.
 
-Index: gdb-7.8.1/gdb/common/linux-ptrace.c
+Index: gdb-7.8.50.20141228/gdb/nat/linux-ptrace.c
 ===================================================================
---- gdb-7.8.1.orig/gdb/common/linux-ptrace.c	2014-10-30 18:33:37.271097644 +0100
-+++ gdb-7.8.1/gdb/common/linux-ptrace.c	2014-10-30 18:33:39.641092763 +0100
-@@ -32,6 +32,10 @@
+--- gdb-7.8.50.20141228.orig/gdb/nat/linux-ptrace.c	2015-01-01 21:38:14.691209094 +0100
++++ gdb-7.8.50.20141228/gdb/nat/linux-ptrace.c	2015-01-01 21:39:34.670157506 +0100
+@@ -25,6 +25,10 @@
  
  #include <stdint.h>
  
@@ -52,7 +52,7 @@ Index: gdb-7.8.1/gdb/common/linux-ptrace.c
  /* Stores the currently supported ptrace options.  A value of
     -1 means we did not check for features yet.  A value of 0 means
     there are no supported features.  */
-@@ -56,6 +60,8 @@ linux_ptrace_attach_fail_reason (pid_t p
+@@ -53,6 +57,8 @@ linux_ptrace_attach_fail_reason (pid_t p
      buffer_xml_printf (buffer, _("process %d is a zombie "
  				 "- the process has already terminated"),
  		       (int) pid);
@@ -61,11 +61,10 @@ Index: gdb-7.8.1/gdb/common/linux-ptrace.c
  }
  
  #if defined __i386__ || defined __x86_64__
-@@ -551,3 +557,19 @@ linux_ptrace_init_warnings (void)
- 
+@@ -568,6 +574,22 @@ linux_ptrace_init_warnings (void)
    linux_ptrace_test_ret_to_nx ();
  }
-+
+ 
 +/* Print all possible reasons we could fail to create a traced process.  */
 +
 +void
@@ -81,23 +80,27 @@ Index: gdb-7.8.1/gdb/common/linux-ptrace.c
 +			 "(gdb) shell sudo setsebool deny_ptrace=0"));
 +#endif /* HAVE_LIBSELINUX */
 +}
-Index: gdb-7.8.1/gdb/common/linux-ptrace.h
++
+ /* Set additional ptrace flags to use.  Some such flags may be checked
+    by the implementation above.  This function must be called before
+    any other function in this file; otherwise the flags may not take
+Index: gdb-7.8.50.20141228/gdb/nat/linux-ptrace.h
 ===================================================================
---- gdb-7.8.1.orig/gdb/common/linux-ptrace.h	2014-10-30 18:33:37.271097644 +0100
-+++ gdb-7.8.1/gdb/common/linux-ptrace.h	2014-10-30 18:33:39.642092761 +0100
-@@ -85,6 +85,7 @@ struct buffer;
+--- gdb-7.8.50.20141228.orig/gdb/nat/linux-ptrace.h	2015-01-01 21:38:21.280204844 +0100
++++ gdb-7.8.50.20141228/gdb/nat/linux-ptrace.h	2015-01-01 21:39:00.542179519 +0100
+@@ -90,6 +90,7 @@ struct buffer;
  
  extern void linux_ptrace_attach_fail_reason (pid_t pid, struct buffer *buffer);
  extern void linux_ptrace_init_warnings (void);
 +extern void linux_ptrace_create_warnings (struct buffer *buffer);
- extern void linux_enable_event_reporting (pid_t pid);
+ extern void linux_enable_event_reporting (pid_t pid, int attached);
  extern void linux_disable_event_reporting (pid_t pid);
  extern int linux_supports_tracefork (void);
-Index: gdb-7.8.1/gdb/configure.ac
+Index: gdb-7.8.50.20141228/gdb/configure.ac
 ===================================================================
---- gdb-7.8.1.orig/gdb/configure.ac	2014-10-30 18:33:37.272097642 +0100
-+++ gdb-7.8.1/gdb/configure.ac	2014-10-30 18:33:39.643092759 +0100
-@@ -2161,6 +2161,10 @@ case $host_os in
+--- gdb-7.8.50.20141228.orig/gdb/configure.ac	2015-01-01 21:38:14.692209094 +0100
++++ gdb-7.8.50.20141228/gdb/configure.ac	2015-01-01 21:38:21.281204843 +0100
+@@ -2116,6 +2116,10 @@ case $host_os in
  esac
  AC_DEFINE_UNQUOTED(GDBINIT,"$gdbinit",[The .gdbinit filename.])
  
@@ -108,11 +111,11 @@ Index: gdb-7.8.1/gdb/configure.ac
  dnl Handle optional features that can be enabled.
  
  # Support for --with-sysroot is a copy of GDB_AC_WITH_DIR,
-Index: gdb-7.8.1/gdb/gdbserver/configure.ac
+Index: gdb-7.8.50.20141228/gdb/gdbserver/configure.ac
 ===================================================================
---- gdb-7.8.1.orig/gdb/gdbserver/configure.ac	2014-10-30 18:33:37.273097640 +0100
-+++ gdb-7.8.1/gdb/gdbserver/configure.ac	2014-10-30 18:33:39.643092759 +0100
-@@ -454,6 +454,10 @@ if $want_ipa ; then
+--- gdb-7.8.50.20141228.orig/gdb/gdbserver/configure.ac	2015-01-01 21:38:14.693209093 +0100
++++ gdb-7.8.50.20141228/gdb/gdbserver/configure.ac	2015-01-01 21:38:21.281204843 +0100
+@@ -461,6 +461,10 @@ if $want_ipa ; then
     fi
  fi
  
@@ -123,11 +126,11 @@ Index: gdb-7.8.1/gdb/gdbserver/configure.ac
  AC_SUBST(GDBSERVER_DEPFILES)
  AC_SUBST(GDBSERVER_LIBS)
  AC_SUBST(srv_xmlbuiltin)
-Index: gdb-7.8.1/gdb/gdbserver/linux-low.c
+Index: gdb-7.8.50.20141228/gdb/gdbserver/linux-low.c
 ===================================================================
---- gdb-7.8.1.orig/gdb/gdbserver/linux-low.c	2014-10-30 18:33:37.275097636 +0100
-+++ gdb-7.8.1/gdb/gdbserver/linux-low.c	2014-10-30 18:33:39.644092757 +0100
-@@ -541,6 +541,29 @@ add_lwp (ptid_t ptid)
+--- gdb-7.8.50.20141228.orig/gdb/gdbserver/linux-low.c	2015-01-01 21:38:14.695209091 +0100
++++ gdb-7.8.50.20141228/gdb/gdbserver/linux-low.c	2015-01-01 21:38:21.282204843 +0100
+@@ -537,6 +537,29 @@ add_lwp (ptid_t ptid)
    return lwp;
  }
  
@@ -157,7 +160,7 @@ Index: gdb-7.8.1/gdb/gdbserver/linux-low.c
  /* Start an inferior process and returns its pid.
     ALLARGS is a vector of program-name and args. */
  
-@@ -582,7 +605,7 @@ linux_create_inferior (char *program, ch
+@@ -578,7 +601,7 @@ linux_create_inferior (char *program, ch
    if (pid == 0)
      {
        close_most_fds ();
@@ -166,11 +169,11 @@ Index: gdb-7.8.1/gdb/gdbserver/linux-low.c
  
  #ifndef __ANDROID__ /* Bionic doesn't use SIGRTMIN the way glibc does.  */
        signal (__SIGRTMIN + 1, SIG_DFL);
-Index: gdb-7.8.1/gdb/inf-ptrace.c
+Index: gdb-7.8.50.20141228/gdb/inf-ptrace.c
 ===================================================================
---- gdb-7.8.1.orig/gdb/inf-ptrace.c	2014-10-30 18:33:37.276097634 +0100
-+++ gdb-7.8.1/gdb/inf-ptrace.c	2014-10-30 18:33:39.645092755 +0100
-@@ -105,7 +105,15 @@ static void
+--- gdb-7.8.50.20141228.orig/gdb/inf-ptrace.c	2015-01-01 21:38:14.695209091 +0100
++++ gdb-7.8.50.20141228/gdb/inf-ptrace.c	2015-01-01 21:38:21.282204843 +0100
+@@ -66,7 +66,15 @@ static void
  inf_ptrace_me (void)
  {
    /* "Trace me, Dr. Memory!"  */
@@ -186,11 +189,11 @@ Index: gdb-7.8.1/gdb/inf-ptrace.c
  }
  
  /* Start a new inferior Unix child process.  EXEC_FILE is the file to
-Index: gdb-7.8.1/gdb/linux-nat.c
+Index: gdb-7.8.50.20141228/gdb/linux-nat.c
 ===================================================================
---- gdb-7.8.1.orig/gdb/linux-nat.c	2014-10-30 18:33:37.277097631 +0100
-+++ gdb-7.8.1/gdb/linux-nat.c	2014-10-30 18:33:39.646092753 +0100
-@@ -1291,6 +1291,7 @@ linux_nat_create_inferior (struct target
+--- gdb-7.8.50.20141228.orig/gdb/linux-nat.c	2015-01-01 21:38:14.697209090 +0100
++++ gdb-7.8.50.20141228/gdb/linux-nat.c	2015-01-01 21:38:21.283204842 +0100
+@@ -1099,6 +1099,7 @@ linux_nat_create_inferior (struct target
  #ifdef HAVE_PERSONALITY
    int personality_orig = 0, personality_set = 0;
  #endif /* HAVE_PERSONALITY */
@@ -198,7 +201,7 @@ Index: gdb-7.8.1/gdb/linux-nat.c
  
    /* The fork_child mechanism is synchronous and calls target_wait, so
       we have to mask the async mode.  */
-@@ -1315,7 +1316,10 @@ linux_nat_create_inferior (struct target
+@@ -1123,7 +1124,10 @@ linux_nat_create_inferior (struct target
    /* Make sure we report all signals during startup.  */
    linux_nat_pass_signals (ops, 0, NULL);
  
@@ -210,7 +213,7 @@ Index: gdb-7.8.1/gdb/linux-nat.c
  
  #ifdef HAVE_PERSONALITY
    if (personality_set)
-@@ -1327,6 +1331,24 @@ linux_nat_create_inferior (struct target
+@@ -1135,6 +1139,24 @@ linux_nat_create_inferior (struct target
  		 safe_strerror (errno));
      }
  #endif /* HAVE_PERSONALITY */
@@ -235,11 +238,11 @@ Index: gdb-7.8.1/gdb/linux-nat.c
  }
  
  static void
-Index: gdb-7.8.1/gdb/config.in
+Index: gdb-7.8.50.20141228/gdb/config.in
 ===================================================================
---- gdb-7.8.1.orig/gdb/config.in	2014-10-30 18:33:37.278097630 +0100
-+++ gdb-7.8.1/gdb/config.in	2014-10-30 18:34:36.165976366 +0100
-@@ -216,6 +216,9 @@
+--- gdb-7.8.50.20141228.orig/gdb/config.in	2015-01-01 21:38:14.697209090 +0100
++++ gdb-7.8.50.20141228/gdb/config.in	2015-01-01 21:38:21.284204842 +0100
+@@ -213,6 +213,9 @@
  /* Define if librpm library is being used. */
  #undef HAVE_LIBRPM
  
@@ -249,7 +252,7 @@ Index: gdb-7.8.1/gdb/config.in
  /* Define to 1 if you have the <libunwind-ia64.h> header file. */
  #undef HAVE_LIBUNWIND_IA64_H
  
-@@ -351,6 +354,9 @@
+@@ -342,6 +345,9 @@
  /* Define to 1 if you have the `scm_new_smob' function. */
  #undef HAVE_SCM_NEW_SMOB
  
@@ -259,11 +262,11 @@ Index: gdb-7.8.1/gdb/config.in
  /* Define to 1 if you have the `setlocale' function. */
  #undef HAVE_SETLOCALE
  
-Index: gdb-7.8.1/gdb/configure
+Index: gdb-7.8.50.20141228/gdb/configure
 ===================================================================
---- gdb-7.8.1.orig/gdb/configure	2014-10-30 18:33:37.281097623 +0100
-+++ gdb-7.8.1/gdb/configure	2014-10-30 18:33:39.649092747 +0100
-@@ -13400,6 +13400,64 @@ cat >>confdefs.h <<_ACEOF
+--- gdb-7.8.50.20141228.orig/gdb/configure	2015-01-01 21:38:14.701209087 +0100
++++ gdb-7.8.50.20141228/gdb/configure	2015-01-01 21:38:21.286204840 +0100
+@@ -13269,6 +13269,64 @@ cat >>confdefs.h <<_ACEOF
  _ACEOF
  
  
@@ -328,11 +331,11 @@ Index: gdb-7.8.1/gdb/configure
  
  # Support for --with-sysroot is a copy of GDB_AC_WITH_DIR,
  # except that the argument to --with-sysroot is optional.
-Index: gdb-7.8.1/gdb/gdbserver/config.in
+Index: gdb-7.8.50.20141228/gdb/gdbserver/config.in
 ===================================================================
---- gdb-7.8.1.orig/gdb/gdbserver/config.in	2014-10-30 18:33:37.282097621 +0100
-+++ gdb-7.8.1/gdb/gdbserver/config.in	2014-10-30 18:33:39.649092747 +0100
-@@ -81,6 +81,9 @@
+--- gdb-7.8.50.20141228.orig/gdb/gdbserver/config.in	2015-01-01 21:38:14.702209087 +0100
++++ gdb-7.8.50.20141228/gdb/gdbserver/config.in	2015-01-01 21:38:39.365193179 +0100
+@@ -75,6 +75,9 @@
  /* Define to 1 if you have the `mcheck' library (-lmcheck). */
  #undef HAVE_LIBMCHECK
  
@@ -342,9 +345,9 @@ Index: gdb-7.8.1/gdb/gdbserver/config.in
  /* Define if the target supports branch tracing. */
  #undef HAVE_LINUX_BTRACE
  
-@@ -154,6 +157,9 @@
- /* Define to 1 if you have the `readlink' function. */
- #undef HAVE_READLINK
+@@ -142,6 +145,9 @@
+ /* Define to 1 if you have the `pwrite' function. */
+ #undef HAVE_PWRITE
  
 +/* Define to 1 if you have the <selinux/selinux.h> header file. */
 +#undef HAVE_SELINUX_SELINUX_H
@@ -352,11 +355,11 @@ Index: gdb-7.8.1/gdb/gdbserver/config.in
  /* Define to 1 if you have the <sgtty.h> header file. */
  #undef HAVE_SGTTY_H
  
-Index: gdb-7.8.1/gdb/gdbserver/configure
+Index: gdb-7.8.50.20141228/gdb/gdbserver/configure
 ===================================================================
---- gdb-7.8.1.orig/gdb/gdbserver/configure	2014-10-30 18:33:37.283097619 +0100
-+++ gdb-7.8.1/gdb/gdbserver/configure	2014-10-30 18:33:39.650092745 +0100
-@@ -6170,6 +6170,64 @@ if $want_ipa ; then
+--- gdb-7.8.50.20141228.orig/gdb/gdbserver/configure	2015-01-01 21:38:14.704209086 +0100
++++ gdb-7.8.50.20141228/gdb/gdbserver/configure	2015-01-01 21:38:21.288204839 +0100
+@@ -6199,6 +6199,64 @@ if $want_ipa ; then
     fi
  fi
  

diff --git a/gdb-bz541866-rwatch-before-run.patch b/gdb-bz541866-rwatch-before-run.patch
index 7bfe411..95829f9 100644
--- a/gdb-bz541866-rwatch-before-run.patch
+++ b/gdb-bz541866-rwatch-before-run.patch
@@ -1,8 +1,8 @@
-Index: gdb-7.7.50.20140609/gdb/config/i386/linux64.mh
+Index: gdb-7.8.50.20141228/gdb/config/i386/linux64.mh
 ===================================================================
---- gdb-7.7.50.20140609.orig/gdb/config/i386/linux64.mh	2014-06-13 20:25:37.356732335 +0200
-+++ gdb-7.7.50.20140609/gdb/config/i386/linux64.mh	2014-06-13 20:26:07.984764098 +0200
-@@ -5,7 +5,7 @@ NATDEPFILES= inf-ptrace.o fork-child.o \
+--- gdb-7.8.50.20141228.orig/gdb/config/i386/linux64.mh	2015-01-01 17:12:53.965472227 +0100
++++ gdb-7.8.50.20141228/gdb/config/i386/linux64.mh	2015-01-01 17:12:55.367471414 +0100
+@@ -6,7 +6,7 @@ NATDEPFILES= inf-ptrace.o fork-child.o \
  	proc-service.o linux-thread-db.o linux-fork.o \
  	linux-procfs.o linux-ptrace.o linux-btrace.o \
  	linux-waitpid.o
@@ -11,22 +11,22 @@ Index: gdb-7.7.50.20140609/gdb/config/i386/linux64.mh
  NAT_CDEPS = $(srcdir)/proc-service.list
  
  # The dynamically loaded libthread_db needs access to symbols in the
-Index: gdb-7.7.50.20140609/gdb/config/i386/linux.mh
+Index: gdb-7.8.50.20141228/gdb/config/i386/linux.mh
 ===================================================================
---- gdb-7.7.50.20140609.orig/gdb/config/i386/linux.mh	2014-06-13 20:25:37.356732335 +0200
-+++ gdb-7.7.50.20140609/gdb/config/i386/linux.mh	2014-06-13 20:26:07.984764098 +0200
+--- gdb-7.8.50.20141228.orig/gdb/config/i386/linux.mh	2015-01-01 17:12:55.367471414 +0100
++++ gdb-7.8.50.20141228/gdb/config/i386/linux.mh	2015-01-01 17:13:07.568464342 +0100
 @@ -1,6 +1,6 @@
  # Host: Intel 386 running GNU/Linux.
  
 -NAT_FILE= config/nm-linux.h
 +NAT_FILE= nm-linux.h
  NATDEPFILES= inf-ptrace.o fork-child.o \
- 	i386-nat.o i386-linux-nat.o \
+ 	x86-nat.o x86-dregs.o i386-linux-nat.o x86-linux-nat.o \
  	proc-service.o linux-thread-db.o \
-Index: gdb-7.7.50.20140609/gdb/config/i386/nm-linux.h
+Index: gdb-7.8.50.20141228/gdb/config/i386/nm-linux.h
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.7.50.20140609/gdb/config/i386/nm-linux.h	2014-06-13 20:26:07.984764098 +0200
++++ gdb-7.8.50.20141228/gdb/config/i386/nm-linux.h	2015-01-01 17:12:55.368471414 +0100
 @@ -0,0 +1,28 @@
 +/* Native support for GNU/Linux i386.
 +
@@ -56,10 +56,10 @@ Index: gdb-7.7.50.20140609/gdb/config/i386/nm-linux.h
 +#define target_can_use_hardware_watchpoint(type, cnt, ot) 1
 +
 +#endif /* NM_LINUX64_H */
-Index: gdb-7.7.50.20140609/gdb/config/i386/nm-linux64.h
+Index: gdb-7.8.50.20141228/gdb/config/i386/nm-linux64.h
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.7.50.20140609/gdb/config/i386/nm-linux64.h	2014-06-13 20:26:07.984764098 +0200
++++ gdb-7.8.50.20141228/gdb/config/i386/nm-linux64.h	2015-01-01 17:12:55.368471414 +0100
 @@ -0,0 +1,28 @@
 +/* Native support for GNU/Linux amd64.
 +
@@ -89,11 +89,11 @@ Index: gdb-7.7.50.20140609/gdb/config/i386/nm-linux64.h
 +#define target_can_use_hardware_watchpoint(type, cnt, ot) 1
 +
 +#endif /* NM_LINUX64_H */
-Index: gdb-7.7.50.20140609/gdb/target.h
+Index: gdb-7.8.50.20141228/gdb/target.h
 ===================================================================
---- gdb-7.7.50.20140609.orig/gdb/target.h	2014-06-13 20:26:07.985764099 +0200
-+++ gdb-7.7.50.20140609/gdb/target.h	2014-06-13 20:26:34.915792095 +0200
-@@ -1728,9 +1728,11 @@ extern char *target_thread_name (struct
+--- gdb-7.8.50.20141228.orig/gdb/target.h	2015-01-01 17:12:53.967472226 +0100
++++ gdb-7.8.50.20141228/gdb/target.h	2015-01-01 17:12:55.368471414 +0100
+@@ -1754,9 +1754,11 @@ extern char *target_thread_name (struct
     bp_hardware_breakpoint.  CNT is the number of such watchpoints used so far
     (including this one?).  OTHERTYPE is who knows what...  */
  
@@ -105,10 +105,10 @@ Index: gdb-7.7.50.20140609/gdb/target.h
  
  /* Returns the number of debug registers needed to watch the given
     memory region, or zero if not supported.  */
-Index: gdb-7.7.50.20140609/gdb/testsuite/gdb.base/watchpoint-hw-before-run.exp
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.base/watchpoint-hw-before-run.exp
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.7.50.20140609/gdb/testsuite/gdb.base/watchpoint-hw-before-run.exp	2014-06-13 20:26:07.986764101 +0200
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.base/watchpoint-hw-before-run.exp	2015-01-01 17:12:55.369471413 +0100
 @@ -0,0 +1,40 @@
 +# Copyright 2009, 2010 Free Software Foundation, Inc.
 +

diff --git a/gdb-compile-warn_unused_result.patch b/gdb-compile-warn_unused_result.patch
new file mode 100644
index 0000000..4324004
--- /dev/null
+++ b/gdb-compile-warn_unused_result.patch
@@ -0,0 +1,11 @@
+--- gdb-7.8.50.20141228/gdb/compile/compile.c-orig	2014-12-28 02:48:43.000000000 +0100
++++ gdb-7.8.50.20141228/gdb/compile/compile.c	2015-01-05 23:03:33.383016039 +0100
+@@ -172,7 +172,7 @@ do_rmdir (void *arg)
+   
+   gdb_assert (strncmp (dir, TMP_PREFIX, strlen (TMP_PREFIX)) == 0);
+   zap = concat ("rm -rf ", dir, (char *) NULL);
+-  system (zap);
++  if (system (zap)) {}
+ }
+ 
+ /* Return the name of the temporary directory to use for .o files, and

diff --git a/gdb-dts-rhel6-python-compat.patch b/gdb-dts-rhel6-python-compat.patch
index a81e942..749e2cf 100644
--- a/gdb-dts-rhel6-python-compat.patch
+++ b/gdb-dts-rhel6-python-compat.patch
@@ -1,9 +1,9 @@
 https://bugzilla.redhat.com/show_bug.cgi?id=1020004
 
-Index: gdb-7.8/gdb/data-directory/Makefile.in
+Index: gdb-7.8.50.20141228/gdb/data-directory/Makefile.in
 ===================================================================
---- gdb-7.8.orig/gdb/data-directory/Makefile.in	2014-10-19 18:25:34.187110261 +0200
-+++ gdb-7.8/gdb/data-directory/Makefile.in	2014-10-19 18:25:51.092121706 +0200
+--- gdb-7.8.50.20141228.orig/gdb/data-directory/Makefile.in	2015-01-05 22:51:10.707756810 +0100
++++ gdb-7.8.50.20141228/gdb/data-directory/Makefile.in	2015-01-05 22:51:48.608923139 +0100
 @@ -60,6 +60,8 @@ PYTHON_FILE_LIST = \
  	gdb/frames.py \
  	gdb/FrameIterator.py \
@@ -13,18 +13,18 @@ Index: gdb-7.8/gdb/data-directory/Makefile.in
  	gdb/types.py \
  	gdb/printing.py \
  	gdb/prompt.py \
-@@ -73,6 +75,7 @@ PYTHON_FILE_LIST = \
+@@ -74,6 +76,7 @@ PYTHON_FILE_LIST = \
  	gdb/command/pretty_printers.py \
  	gdb/command/prompt.py \
  	gdb/command/explore.py \
 +	gdb/command/backtrace.py \
  	gdb/function/__init__.py \
+ 	gdb/function/caller_is.py \
  	gdb/function/strfns.py \
- 	gdb/printer/__init__.py \
-Index: gdb-7.8/gdb/python/lib/gdb/FrameWrapper.py
+Index: gdb-7.8.50.20141228/gdb/python/lib/gdb/FrameWrapper.py
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.8/gdb/python/lib/gdb/FrameWrapper.py	2014-10-19 18:25:36.808112031 +0200
++++ gdb-7.8.50.20141228/gdb/python/lib/gdb/FrameWrapper.py	2015-01-05 22:51:24.706818245 +0100
 @@ -0,0 +1,122 @@
 +# Wrapper API for frames.
 +
@@ -148,10 +148,10 @@ Index: gdb-7.8/gdb/python/lib/gdb/FrameWrapper.py
 +
 +    def __getattr__ (self, name):
 +        return getattr (self.frame, name)
-Index: gdb-7.8/gdb/python/lib/gdb/backtrace.py
+Index: gdb-7.8.50.20141228/gdb/python/lib/gdb/backtrace.py
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.8/gdb/python/lib/gdb/backtrace.py	2014-10-19 18:25:36.808112031 +0200
++++ gdb-7.8.50.20141228/gdb/python/lib/gdb/backtrace.py	2015-01-05 22:51:24.706818245 +0100
 @@ -0,0 +1,42 @@
 +# Filtering backtrace.
 +
@@ -195,10 +195,10 @@ Index: gdb-7.8/gdb/python/lib/gdb/backtrace.py
 +        return iter
 +    return old_frame_filter (iter)
 +
-Index: gdb-7.8/gdb/python/lib/gdb/command/backtrace.py
+Index: gdb-7.8.50.20141228/gdb/python/lib/gdb/command/backtrace.py
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.8/gdb/python/lib/gdb/command/backtrace.py	2014-10-19 18:25:36.808112031 +0200
++++ gdb-7.8.50.20141228/gdb/python/lib/gdb/command/backtrace.py	2015-01-05 22:51:24.707818249 +0100
 @@ -0,0 +1,106 @@
 +# New backtrace command.
 +

diff --git a/gdb-enable-count-crash.patch b/gdb-enable-count-crash.patch
index 9461ee9..4cdd5ba 100644
--- a/gdb-enable-count-crash.patch
+++ b/gdb-enable-count-crash.patch
@@ -37,20 +37,20 @@ gdb/testsuite/ChangeLog:
  gdb/testsuite/gdb.base/ena-dis-br.exp | 8 ++++++++
  2 files changed, 15 insertions(+), 2 deletions(-)
 
-diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
-index ccd05d9..5a0c5ab 100644
---- a/gdb/breakpoint.c
-+++ b/gdb/breakpoint.c
-@@ -14389,7 +14389,7 @@ map_breakpoint_numbers (char *args, void (*function) (struct breakpoint *,
+Index: gdb-7.8.50.20141228/gdb/breakpoint.c
+===================================================================
+--- gdb-7.8.50.20141228.orig/gdb/breakpoint.c	2015-01-05 22:21:47.631801558 +0100
++++ gdb-7.8.50.20141228/gdb/breakpoint.c	2015-01-05 22:26:13.165005049 +0100
+@@ -14849,7 +14849,7 @@ map_breakpoint_numbers (char *args, void
    int match;
    struct get_number_or_range_state state;
-
+ 
 -  if (args == 0)
 +  if (args == 0 || *args == '\0')
      error_no_arg (_("one or more breakpoint numbers"));
-
+ 
    init_number_or_range (&state, args);
-@@ -14713,7 +14713,12 @@ do_map_enable_count_breakpoint (struct breakpoint *bpt, void *countptr)
+@@ -15186,7 +15186,12 @@ do_map_enable_count_breakpoint (struct b
  static void
  enable_count_command (char *args, int from_tty)
  {
@@ -61,17 +61,17 @@ index ccd05d9..5a0c5ab 100644
 +    error_no_arg (_("hit count"));
 +
 +  count = get_number (&args);
-
+ 
    map_breakpoint_numbers (args, do_map_enable_count_breakpoint, &count);
  }
-diff --git a/gdb/testsuite/gdb.base/ena-dis-br.exp b/gdb/testsuite/gdb.base/ena-dis-br.exp
-index b08b709..82aef64 100644
---- a/gdb/testsuite/gdb.base/ena-dis-br.exp
-+++ b/gdb/testsuite/gdb.base/ena-dis-br.exp
-@@ -173,6 +173,14 @@ set bp [break_at $bp_location7 "line $bp_location7"]
-
- set bp2 [break_at marker1 " line ($bp_location15|$bp_location16)"]
-
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.base/ena-dis-br.exp
+===================================================================
+--- gdb-7.8.50.20141228.orig/gdb/testsuite/gdb.base/ena-dis-br.exp	2015-01-05 22:26:13.165005049 +0100
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.base/ena-dis-br.exp	2015-01-05 22:26:51.357178150 +0100
+@@ -151,6 +151,14 @@ set bp [break_at $bp_location7 "line $bp
+ 
+ set bp2 [break_at marker1 " line $bp_location15"]
+ 
 +gdb_test "enable count" \
 +    "Argument required \\(hit count\\)\\." \
 +    "enable count missing arguments"
@@ -81,6 +81,5 @@ index b08b709..82aef64 100644
 +    "enable count missing last argument"
 +
  gdb_test_no_output "enable count 2 $bp" "disable break with count"
-
+ 
  gdb_test "continue" \
-

diff --git a/gdb-jit-reader-multilib.patch b/gdb-jit-reader-multilib.patch
new file mode 100644
index 0000000..04aa397
--- /dev/null
+++ b/gdb-jit-reader-multilib.patch
@@ -0,0 +1,40 @@
+diff --git a/gdb/configure b/gdb/configure
+index 7ff74ba..00a5b5b 100755
+--- a/gdb/configure
++++ b/gdb/configure
+@@ -7382,10 +7382,12 @@ _ACEOF
+ 
+ 
+ 
+-if test "x${ac_cv_sizeof_unsigned_long}" = "x8"; then
+-  TARGET_PTR="unsigned long"
+-elif test "x${ac_cv_sizeof_unsigned_long_long}" = "x8"; then
++# Try to keep TARGET_PTR the same across archs so that jit-reader.h file
++# content is the same for multilib distributions.
++if test "x${ac_cv_sizeof_unsigned_long_long}" = "x8"; then
+   TARGET_PTR="unsigned long long"
++elif test "x${ac_cv_sizeof_unsigned_long}" = "x8"; then
++  TARGET_PTR="unsigned long"
+ elif test "x${ac_cv_sizeof_unsigned___int128}" = "x16"; then
+   TARGET_PTR="unsigned __int128"
+ else
+diff --git a/gdb/configure.ac b/gdb/configure.ac
+index ec776d7..c02ace9 100644
+--- a/gdb/configure.ac
++++ b/gdb/configure.ac
+@@ -648,10 +648,12 @@ AC_CHECK_SIZEOF(unsigned long long)
+ AC_CHECK_SIZEOF(unsigned long)
+ AC_CHECK_SIZEOF(unsigned __int128)
+ 
+-if test "x${ac_cv_sizeof_unsigned_long}" = "x8"; then
+-  TARGET_PTR="unsigned long"
+-elif test "x${ac_cv_sizeof_unsigned_long_long}" = "x8"; then
++# Try to keep TARGET_PTR the same across archs so that jit-reader.h file
++# content is the same for multilib distributions.
++if test "x${ac_cv_sizeof_unsigned_long_long}" = "x8"; then
+   TARGET_PTR="unsigned long long"
++elif test "x${ac_cv_sizeof_unsigned_long}" = "x8"; then
++  TARGET_PTR="unsigned long"
+ elif test "x${ac_cv_sizeof_unsigned___int128}" = "x16"; then
+   TARGET_PTR="unsigned __int128"
+ else

diff --git a/gdb-py-frame-rip-test-fix.patch b/gdb-py-frame-rip-test-fix.patch
new file mode 100644
index 0000000..57a930c
--- /dev/null
+++ b/gdb-py-frame-rip-test-fix.patch
@@ -0,0 +1,53 @@
+http://sourceware.org/ml/gdb-patches/2015-01/msg00110.html
+Subject: [testsuite patch] Fix new FAIL: py-frame.exp: test Frame.read_register(rip)
+
+
+--/04w6evG8XlLl3ft
+Content-Type: text/plain; charset=us-ascii
+Content-Disposition: inline
+
+Hi,
+
+for x86_64 -m32 run one gets:
+
++FAIL: gdb.python/py-frame.exp: test Frame.read_register(rip)
+
+I do not have x32 OS here but the %rip test should PASS there I think.
+
+OK for check-in?
+
+The code is there since:
+	commit 5f3b99cfed3803f0b099152f54aac7cb90a2b926
+	Author: Sasha Smundak <asmundak@google.com>
+	Date:   Wed Sep 3 16:34:47 2014 -0700
+	    Add support for reading frame registers to Python API.
+
+
+Jan
+
+--/04w6evG8XlLl3ft
+Content-Type: text/plain; charset=us-ascii
+Content-Disposition: inline; filename=1
+
+gdb/testsuite/
+2015-01-07  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* gdb.python/py-frame.exp (test Frame.read_register(rip)): Use
+	is_amd64_regs_target.
+
+diff --git a/gdb/testsuite/gdb.python/py-frame.exp b/gdb/testsuite/gdb.python/py-frame.exp
+index bf2e1ce..984acfc 100644
+--- a/gdb/testsuite/gdb.python/py-frame.exp
++++ b/gdb/testsuite/gdb.python/py-frame.exp
+@@ -106,7 +106,7 @@ gdb_test "python print ('result = %s' % (f0.read_register('pc') == f0.pc()))" \
+   "test Frame.read_register(pc)"
+ 
+ # On x86-64, PC is in $rip register.
+-if {[istarget x86_64-*]} {
++if {[is_amd64_regs_target]} {
+     gdb_test "python print ('result = %s' % (f0.read_register('pc') == f0.read_register('rip')))" \
+ 	" = True" \
+ 	"test Frame.read_register(rip)"
+
+--/04w6evG8XlLl3ft--
+

diff --git a/gdb-python-completer-1of2.patch b/gdb-python-completer-1of2.patch
deleted file mode 100644
index c078822..0000000
--- a/gdb-python-completer-1of2.patch
+++ /dev/null
@@ -1,747 +0,0 @@
-http://sourceware.org/ml/gdb-patches/2014-07/msg00002.html
-Subject: Re: [PATCH] PR python/16699: GDB Python command completion with overriden complete vs. completer class
-https://bugzilla.redhat.com/show_bug.cgi?id=1075199
-
-On Wednesday, May 21 2014, Doug Evans wrote:
-
-> Sergio Durigan Junior <sergiodj@redhat.com> writes:
->> [...]
->> Thanks.  WDYT of the following patch?
->
-> Hi.
->
-> fwiw it's too bad the ability to plug in different completers isn't more,
-> I dunno, parameterized (couldn't pick a better term, apologies -
-> I thought of "object oriented" but that carries its own baggage).
-> Performing completion obviously involves specifying more than a just
-> single function (witness the comparison of the completer with specific
-> functions).
-
-Thanks for the reply, and sorry for the long delay in answering.
-
-> Plus it's more than specifying brkchars.
-> Witness code like this:
->
-> 		      /* Many commands which want to complete on
-> 			 file names accept several file names, as
-> 			 in "run foo bar >>baz".  So we don't want
-> 			 to complete the entire text after the
-> 			 command, just the last word.  To this
-> 			 end, we need to find the beginning of the
-> 			 file name by starting at `word' and going
-> 			 backwards.  */
-> 		      for (p = word;
-> 			   p > tmp_command
-> 			     && strchr (gdb_completer_file_name_break_characters, p[-1]) == NULL;
-> 			   p--)
-> 			;
->
-> IWBN if a "completer" object described how to do all these three things.
-> Then the special case code for filename_completer (and location_completer)
-> in completer.c could disappear.  But maybe that's a patch for another day.
-
-While I agree with you that the completion mechanism could be better (I
-myself had a lot of trouble with it), I unfortunately don't have enough
-time to tackle this problem now.  So yeah, I think it will be a patch
-for another day...
-
-> Regarding the hack of using a static local to pass data from
-> handle_brkchars to handle_completion, I know it's a hacky pragmatic
-> choice.  To get the reference counting right the code assumes that
-> if the handle_brkchars phase is done then the handle_completion
-> phase will be done too, right?
-
-Yeah.  This is true for the current code (well, except maybe for the
-case you describe below...).
-
-> I wonder if a SIGINT could sneak in
-> there between the two passes (either today or tomorrow).
-> Maybe the code in cmdpy_completer_helper for handle_brkchars_p could
-> first check whether resultobj is already non-NULL, and decrement its
-> reference count before setting it to NULL?
-
-Yes, done (I think).  Thanks for raising this issue.
-
-> And cmdpy_completer_helper
-> could be defined to return a borrowed reference to resultobj?
-> Dunno, just thinking out loud.
-
-Done, I guess.
-
-> Something puzzles me though: If it's ok to cache the completion result from the
-> handle_brkchars pass to the handle_completion pass, why have two passes?
-> It feels like there must be a case where this caching of the result
-> in a static local from one pass to the next won't work.
-
-I'm not sure I follow.
-
-It's OK to cache the result because handle_brkchars and
-handle_completion work on the same set of data.  In fact, we wouldn't
-need to have two passes here; my previous patch didn't have two passes,
-and worked fine.  I just implemented it this way because Tom (correctly)
-raised the point that the completion itself might be time-consuming, and
-thus we could reuse its result in the two phases.
-
-> Another question:
-> I noticed complete_command doesn't do this two-phase dance
-> of handle_brkchars followed by handle_completions.  Should it?
-> It just goes straight to handle_completions.
-
-I don't think it should, because for complete_command (and
-complete_filename et al) the handle_brkchars is already defined
-internally by GDB.  See:
-
-    ...
-  /* Choose the default set of word break characters to break
-     completions.  If we later find out that we are doing completions
-     on command strings (as opposed to strings supplied by the
-     individual command completer functions, which can be any string)
-     then we will switch to the special word break set for command
-     strings, which leaves out the '-' character used in some
-     commands.  */
-  rl_completer_word_break_characters =
-    current_language->la_word_break_characters();
-    ...
-
-    /* It is a normal command; what comes after it is
-       completed by the command's completer function.  */
-    if (c->completer == filename_completer)
-      {
-        /* Many commands which want to complete on
-           file names accept several file names, as
-           in "run foo bar >>baz".  So we don't want
-           to complete the entire text after the
-           command, just the last word.  To this
-           end, we need to find the beginning of the
-           file name by starting at `word' and going
-           backwards.  */
-        for (p = word;
-             p > tmp_command
-               && strchr (gdb_completer_file_name_break_characters, p[-1]) == NULL;
-             p--)
-          ;
-        rl_completer_word_break_characters =
-          gdb_completer_file_name_break_characters;
-      }
-    else if (c->completer == location_completer)
-      {
-        /* Commands which complete on locations want to
-           see the entire argument.  */
-        for (p = word;
-             p > tmp_command
-               && p[-1] != ' ' && p[-1] != '\t';
-             p--)
-          ;
-      }
-    if (reason == handle_brkchars
-        && c->completer_handle_brkchars != NULL)
-      (*c->completer_handle_brkchars) (c, p, word);
-    if (reason != handle_brkchars && c->completer != NULL)
-      list = (*c->completer) (c, p, word);
-
-
-The complete_command function will only be called by the last "if"
-clause, when reason != handle_brkchars.  Otherwise,
-complete_line_internal will just deal with handle_brkchars.  And for
-complete_command, the right value for rl_completer_word_break_characters
-is what is attributed at the beginning of the function.
-
-My patch implements this "two-phase" dance for Python because in this
-specific case (i.e., a completion method defined in the Python script)
-there is no way to know the value of handle_brkchars before we actually
-do the completion itself.
-
-In fact, my patch could probably be "simplified" and be made to call
-cmdpy_completer directly (without any cmdpy_completer_handle_brkchars),
-assuming that this function took care of filling handle_brkchars
-correctly.  What I mean is: when dealing with the handle_brkchars case,
-the completer command can do anything it wants.
-
-> [Maybe that explains the difference from using TAB.  Dunno off hand.]
-> It seems like complete_command is trying to hand-code its own
-> handle_brkchars handling:
->
-> static void
-> complete_command (char *arg, int from_tty)
-> {
->   int argpoint;
->   char *point, *arg_prefix;
->   VEC (char_ptr) *completions;
->
->   dont_repeat ();
->
->   if (arg == NULL)
->     arg = "";
->   argpoint = strlen (arg);
->
->   /* complete_line assumes that its first argument is somewhere
->      within, and except for filenames at the beginning of, the word to
->      be completed.  The following crude imitation of readline's
->      word-breaking tries to accomodate this.  */
->   point = arg + argpoint;
->   while (point > arg)
->     {
->       if (strchr (rl_completer_word_break_characters, point[-1]) != 0)
->         break;
->       point--;
->     }
->
->   arg_prefix = alloca (point - arg + 1);
->   memcpy (arg_prefix, arg, point - arg);
->   arg_prefix[point - arg] = 0;
->
->   completions = complete_line (point, arg, argpoint);
->
->   ...
-> }
-
-Yes, it seems so, but I did not check further.
-
-> TAB and the complete command should work identically of course,
-> but for your testcase, maybe you should test both just to verify
-> both work reasonably well (even if not identically).
-> Given that complete_command doesn't do the two phase dance,
-> does it work with your patch?
-> Maybe it does, but IWBN to confirm that.
-
-The 'complete' command does not work as it should with my patch:
-
-  (gdb) complete completefileinit /hom
-  completefileinit /home
-  (gdb) complete completefilemethod /hom
-  completefilemethod /home
-
-But then, it also does not work without my patch either:
-
-  (gdb) complete file /hom
-  file /home
-
-So I am not extending the testcase for now, because this bug needs to be
-fixed first (and it is unrelated to the patch I am proposing).
-
-WDYT of this version?
-
-Thanks,
-
--- 
-Sergio
-GPG key ID: 65FC5E36
-Please send encrypted e-mail if possible
-http://blog.sergiodj.net/
-
-gdb/
-2014-06-30  Sergio Durigan Junior  <sergiodj@redhat.com>
-
-	PR python/16699
-	* cli/cli-decode.c (set_cmd_completer_handle_brkchars): New
-	function.
-	(add_cmd): Set "completer_handle_brkchars" to NULL.
-	* cli/cli-decode.h (struct cmd_list_element)
-	<completer_handle_brkchars>: New field.
-	* command.h (completer_ftype_void): New typedef.
-	(set_cmd_completer_handle_brkchars): New prototype.
-	* completer.c (set_gdb_completion_word_break_characters): New
-	function.
-	(complete_line_internal): Call "completer_handle_brkchars"
-	callback from command.
-	* completer.h: Include "command.h".
-	(set_gdb_completion_word_break_characters): New prototype.
-	* python/py-cmd.c (cmdpy_completer_helper): New function.
-	(cmdpy_completer_handle_brkchars): New function.
-	(cmdpy_completer): Adjust to use cmdpy_completer_helper.
-	(cmdpy_init): Set completer_handle_brkchars to
-	cmdpy_completer_handle_brkchars.
-
-gdb/testsuite/
-2014-06-30  Sergio Durigan Junior  <sergiodj@redhat.com>
-
-	PR python/16699
-	* gdb.python/py-completion.exp: New file.
-	* gdb.python/py-completion.py: Likewise.
-
-
-Index: gdb-7.7.90.20140627/gdb/cli/cli-decode.c
-===================================================================
---- gdb-7.7.90.20140627.orig/gdb/cli/cli-decode.c	2014-07-07 20:53:52.635106914 +0200
-+++ gdb-7.7.90.20140627/gdb/cli/cli-decode.c	2014-07-07 20:53:55.429110207 +0200
-@@ -164,6 +164,15 @@ set_cmd_completer (struct cmd_list_eleme
-   cmd->completer = completer; /* Ok.  */
- }
- 
-+/* See definition in commands.h.  */
-+
-+void
-+set_cmd_completer_handle_brkchars (struct cmd_list_element *cmd,
-+			       completer_ftype_void *completer_handle_brkchars)
-+{
-+  cmd->completer_handle_brkchars = completer_handle_brkchars;
-+}
-+
- /* Add element named NAME.
-    Space for NAME and DOC must be allocated by the caller.
-    CLASS is the top level category into which commands are broken down
-@@ -239,6 +248,7 @@ add_cmd (const char *name, enum command_
-   c->prefix = NULL;
-   c->abbrev_flag = 0;
-   set_cmd_completer (c, make_symbol_completion_list_fn);
-+  c->completer_handle_brkchars = NULL;
-   c->destroyer = NULL;
-   c->type = not_set_cmd;
-   c->var = NULL;
-Index: gdb-7.7.90.20140627/gdb/cli/cli-decode.h
-===================================================================
---- gdb-7.7.90.20140627.orig/gdb/cli/cli-decode.h	2014-07-07 20:53:52.636106915 +0200
-+++ gdb-7.7.90.20140627/gdb/cli/cli-decode.h	2014-07-07 20:53:55.429110207 +0200
-@@ -176,6 +176,15 @@ struct cmd_list_element
-        "baz/foo", return "baz/foobar".  */
-     completer_ftype *completer;
- 
-+    /* Handle the word break characters for this completer.  Usually
-+       this function need not be defined, but for some types of
-+       completers (e.g., Python completers declared as methods inside
-+       a class) the word break chars may need to be redefined
-+       depending on the completer type (e.g., for filename
-+       completers).  */
-+
-+    completer_ftype_void *completer_handle_brkchars;
-+
-     /* Destruction routine for this command.  If non-NULL, this is
-        called when this command instance is destroyed.  This may be
-        used to finalize the CONTEXT field, if needed.  */
-Index: gdb-7.7.90.20140627/gdb/command.h
-===================================================================
---- gdb-7.7.90.20140627.orig/gdb/command.h	2014-07-07 20:53:52.636106915 +0200
-+++ gdb-7.7.90.20140627/gdb/command.h	2014-07-07 20:53:55.430110208 +0200
-@@ -158,8 +158,16 @@ extern void set_cmd_sfunc (struct cmd_li
- typedef VEC (char_ptr) *completer_ftype (struct cmd_list_element *,
- 					 const char *, const char *);
- 
-+typedef void completer_ftype_void (struct cmd_list_element *,
-+				   const char *, const char *);
-+
- extern void set_cmd_completer (struct cmd_list_element *, completer_ftype *);
- 
-+/* Set the completer_handle_brkchars callback.  */
-+
-+extern void set_cmd_completer_handle_brkchars (struct cmd_list_element *,
-+					       completer_ftype_void *);
-+
- /* HACK: cagney/2002-02-23: Code, mostly in tracepoints.c, grubs
-    around in cmd objects to test the value of the commands sfunc().  */
- extern int cmd_cfunc_eq (struct cmd_list_element *cmd,
-Index: gdb-7.7.90.20140627/gdb/completer.c
-===================================================================
---- gdb-7.7.90.20140627.orig/gdb/completer.c	2014-07-07 20:53:52.637106916 +0200
-+++ gdb-7.7.90.20140627/gdb/completer.c	2014-07-07 20:53:55.430110208 +0200
-@@ -450,6 +450,21 @@ expression_completer (struct cmd_list_el
-   return location_completer (ignore, p, word);
- }
- 
-+/* See definition in completer.h.  */
-+
-+void
-+set_gdb_completion_word_break_characters (completer_ftype *fn)
-+{
-+  /* So far we are only interested in differentiating filename
-+     completers from everything else.  */
-+  if (fn == filename_completer)
-+    rl_completer_word_break_characters
-+      = gdb_completer_file_name_break_characters;
-+  else
-+    rl_completer_word_break_characters
-+      = gdb_completer_command_word_break_characters;
-+}
-+
- /* Here are some useful test cases for completion.  FIXME: These
-    should be put in the test suite.  They should be tested with both
-    M-? and TAB.
-@@ -678,6 +693,9 @@ complete_line_internal (const char *text
- 			   p--)
- 			;
- 		    }
-+		  if (reason == handle_brkchars
-+		      && c->completer_handle_brkchars != NULL)
-+		    (*c->completer_handle_brkchars) (c, p, word);
- 		  if (reason != handle_brkchars && c->completer != NULL)
- 		    list = (*c->completer) (c, p, word);
- 		}
-@@ -751,6 +769,9 @@ complete_line_internal (const char *text
- 		       p--)
- 		    ;
- 		}
-+	      if (reason == handle_brkchars
-+		  && c->completer_handle_brkchars != NULL)
-+		(*c->completer_handle_brkchars) (c, p, word);
- 	      if (reason != handle_brkchars && c->completer != NULL)
- 		list = (*c->completer) (c, p, word);
- 	    }
-Index: gdb-7.7.90.20140627/gdb/completer.h
-===================================================================
---- gdb-7.7.90.20140627.orig/gdb/completer.h	2014-07-07 20:53:52.637106916 +0200
-+++ gdb-7.7.90.20140627/gdb/completer.h	2014-07-07 20:54:13.297131831 +0200
-@@ -18,6 +18,7 @@
- #define COMPLETER_H 1
- 
- #include "gdb_vecs.h"
-+#include "command.h"
- 
- extern VEC (char_ptr) *complete_line (const char *text,
- 				      char *line_buffer,
-@@ -48,6 +49,13 @@ extern char *get_gdb_completer_quote_cha
- 
- extern char *gdb_completion_word_break_characters (void);
- 
-+/* Set the word break characters array to the corresponding set of
-+   chars, based on FN.  This function is useful for cases when the
-+   completer doesn't know the type of the completion until some
-+   calculation is done (e.g., for Python functions).  */
-+
-+extern void set_gdb_completion_word_break_characters (completer_ftype *fn);
-+
- /* Exported to linespec.c */
- 
- extern const char *skip_quoted_chars (const char *, const char *,
-Index: gdb-7.7.90.20140627/gdb/python/py-cmd.c
-===================================================================
---- gdb-7.7.90.20140627.orig/gdb/python/py-cmd.c	2014-07-07 20:53:52.637106916 +0200
-+++ gdb-7.7.90.20140627/gdb/python/py-cmd.c	2014-07-07 20:53:55.431110209 +0200
-@@ -208,45 +208,155 @@ cmdpy_function (struct cmd_list_element
-   do_cleanups (cleanup);
- }
- 
-+/* Helper function for the Python command completers (both "pure"
-+   completer and brkchar handler).  This function takes COMMAND, TEXT
-+   and WORD and tries to call the Python method for completion with
-+   these arguments.  It also takes HANDLE_BRKCHARS_P, an argument to
-+   identify whether it is being called from the brkchar handler or
-+   from the "pure" completer.  In the first case, it effectively calls
-+   the Python method for completion, and records the PyObject in a
-+   static variable (used as a "cache").  In the second case, it just
-+   returns that variable, without actually calling the Python method
-+   again.  This saves us one Python method call.
-+
-+   It is important to mention that this function is built on the
-+   assumption that the calls to cmdpy_completer_handle_brkchars and
-+   cmdpy_completer will be subsequent with nothing intervening.  This
-+   is true for our completer mechanism.
-+
-+   This function returns the PyObject representing the Python method
-+   call.  */
-+
-+static PyObject *
-+cmdpy_completer_helper (struct cmd_list_element *command,
-+			const char *text, const char *word,
-+			int handle_brkchars_p)
-+{
-+  cmdpy_object *obj = (cmdpy_object *) get_cmd_context (command);
-+  PyObject *textobj, *wordobj;
-+  /* This static variable will server as a "cache" for us, in order to
-+     store the PyObject that results from calling the Python
-+     function.  */
-+  static PyObject *resultobj = NULL;
-+
-+  if (handle_brkchars_p)
-+    {
-+      /* If we were called to handle brkchars, it means this is the
-+	 first function call of two that will happen in a row.
-+	 Therefore, we need to call the completer ourselves, and cache
-+	 the return value in the static variable RESULTOBJ.  Then, in
-+	 the second call, we can just use the value of RESULTOBJ to do
-+	 our job.  */
-+      if (resultobj != NULL)
-+	Py_DECREF (resultobj);
-+
-+      resultobj = NULL;
-+      if (!obj)
-+	error (_("Invalid invocation of Python command object."));
-+      if (!PyObject_HasAttr ((PyObject *) obj, complete_cst))
-+	{
-+	  /* If there is no complete method, don't error.  */
-+	  return NULL;
-+	}
-+
-+      textobj = PyUnicode_Decode (text, strlen (text), host_charset (), NULL);
-+      if (!textobj)
-+	error (_("Could not convert argument to Python string."));
-+      wordobj = PyUnicode_Decode (word, sizeof (word), host_charset (), NULL);
-+      if (!wordobj)
-+	{
-+	  Py_DECREF (textobj);
-+	  error (_("Could not convert argument to Python string."));
-+	}
-+
-+      resultobj = PyObject_CallMethodObjArgs ((PyObject *) obj, complete_cst,
-+					      textobj, wordobj, NULL);
-+      Py_DECREF (textobj);
-+      Py_DECREF (wordobj);
-+      if (!resultobj)
-+	{
-+	  /* Just swallow errors here.  */
-+	  PyErr_Clear ();
-+	}
-+
-+      Py_XINCREF (resultobj);
-+    }
-+
-+  return resultobj;
-+}
-+
-+/* Python function called to determine the break characters of a
-+   certain completer.  We are only interested in knowing if the
-+   completer registered by the user will return one of the integer
-+   codes (see COMPLETER_* symbols).  */
-+
-+static void
-+cmdpy_completer_handle_brkchars (struct cmd_list_element *command,
-+				 const char *text, const char *word)
-+{
-+  PyObject *resultobj = NULL;
-+  struct cleanup *cleanup;
-+
-+  cleanup = ensure_python_env (get_current_arch (), current_language);
-+
-+  /* Calling our helper to obtain the PyObject of the Python
-+     function.  */
-+  resultobj = cmdpy_completer_helper (command, text, word, 1);
-+
-+  /* Check if there was an error.  */
-+  if (resultobj == NULL)
-+    goto done;
-+
-+  if (PyInt_Check (resultobj))
-+    {
-+      /* User code may also return one of the completion constants,
-+	 thus requesting that sort of completion.  We are only
-+	 interested in this kind of return.  */
-+      long value;
-+
-+      if (!gdb_py_int_as_long (resultobj, &value))
-+	{
-+	  /* Ignore.  */
-+	  PyErr_Clear ();
-+	}
-+      else if (value >= 0 && value < (long) N_COMPLETERS)
-+	{
-+	  /* This is the core of this function.  Depending on which
-+	     completer type the Python function returns, we have to
-+	     adjust the break characters accordingly.  */
-+	  set_gdb_completion_word_break_characters
-+	    (completers[value].completer);
-+	}
-+    }
-+
-+ done:
-+
-+  /* We do not call Py_XDECREF here because RESULTOBJ will be used in
-+     the subsequent call to cmdpy_completer function.  */
-+  do_cleanups (cleanup);
-+}
-+
- /* Called by gdb for command completion.  */
- 
- static VEC (char_ptr) *
- cmdpy_completer (struct cmd_list_element *command,
- 		 const char *text, const char *word)
- {
--  cmdpy_object *obj = (cmdpy_object *) get_cmd_context (command);
--  PyObject *textobj, *wordobj, *resultobj = NULL;
-+  PyObject *resultobj = NULL;
-   VEC (char_ptr) *result = NULL;
-   struct cleanup *cleanup;
- 
-   cleanup = ensure_python_env (get_current_arch (), current_language);
- 
--  if (! obj)
--    error (_("Invalid invocation of Python command object."));
--  if (! PyObject_HasAttr ((PyObject *) obj, complete_cst))
--    {
--      /* If there is no complete method, don't error -- instead, just
--	 say that there are no completions.  */
--      goto done;
--    }
--
--  textobj = PyUnicode_Decode (text, strlen (text), host_charset (), NULL);
--  if (! textobj)
--    error (_("Could not convert argument to Python string."));
--  wordobj = PyUnicode_Decode (word, strlen (word), host_charset (), NULL);
--  if (! wordobj)
--    error (_("Could not convert argument to Python string."));
--
--  resultobj = PyObject_CallMethodObjArgs ((PyObject *) obj, complete_cst,
--					  textobj, wordobj, NULL);
--  Py_DECREF (textobj);
--  Py_DECREF (wordobj);
--  if (! resultobj)
--    {
--      /* Just swallow errors here.  */
--      PyErr_Clear ();
--      goto done;
--    }
-+  /* Calling our helper to obtain the PyObject of the Python
-+     function.  */
-+  resultobj = cmdpy_completer_helper (command, text, word, 0);
-+
-+  /* If the result object of calling the Python function is NULL, it
-+     means that there was an error.  In this case, just give up and
-+     return NULL.  */
-+  if (resultobj == NULL)
-+    goto done;
- 
-   result = NULL;
-   if (PyInt_Check (resultobj))
-@@ -302,7 +412,6 @@ cmdpy_completer (struct cmd_list_element
- 
-  done:
- 
--  Py_XDECREF (resultobj);
-   do_cleanups (cleanup);
- 
-   return result;
-@@ -548,6 +657,9 @@ cmdpy_init (PyObject *self, PyObject *ar
-       set_cmd_context (cmd, self);
-       set_cmd_completer (cmd, ((completetype == -1) ? cmdpy_completer
- 			       : completers[completetype].completer));
-+      if (completetype == -1)
-+	set_cmd_completer_handle_brkchars (cmd,
-+					   cmdpy_completer_handle_brkchars);
-     }
-   if (except.reason < 0)
-     {
-Index: gdb-7.7.90.20140627/gdb/testsuite/gdb.python/py-completion.exp
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.7.90.20140627/gdb/testsuite/gdb.python/py-completion.exp	2014-07-07 20:53:55.431110209 +0200
-@@ -0,0 +1,70 @@
-+# Copyright (C) 2014 Free Software Foundation, Inc.
-+
-+# This program is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 3 of the License, or
-+# (at your option) any later version.
-+#
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+# GNU General Public License for more details.
-+#
-+# You should have received a copy of the GNU General Public License
-+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-+
-+set testfile "py-completion"
-+
-+load_lib gdb-python.exp
-+
-+gdb_exit
-+gdb_start
-+
-+# Skip all tests if Python scripting is not enabled.
-+if { [skip_python_tests] } { continue }
-+
-+gdb_test_no_output "source ${srcdir}/${subdir}/${testfile}.py"
-+
-+# Create a temporary directory
-+set testdir "${objdir}/${subdir}/py-completion-testdir/"
-+set testdir_regex [string_to_regexp $testdir]
-+set testdir_complete "${objdir}/${subdir}/py-completion-test"
-+file mkdir $testdir
-+
-+# This one should always pass.
-+send_gdb "completefileinit ${testdir_complete}\t"
-+gdb_test_multiple "" "completefileinit completion" {
-+    -re "^completefileinit ${testdir_regex}$" {
-+        pass "completefileinit completion"
-+    }
-+}
-+
-+# Just discarding whatever we typed.
-+send_gdb "\n"
-+gdb_test "print" ".*"
-+
-+# This is the problematic one.
-+send_gdb "completefilemethod ${testdir_complete}\t"
-+gdb_test_multiple "" "completefilemethod completion" {
-+    -re "^completefilemethod ${testdir_regex} $" {
-+        fail "completefilemethod completion (completed filename as wrong command arg)"
-+    }
-+    -re "^completefilemethod ${testdir_regex}$" {
-+        pass "completefilemethod completion"
-+    }
-+}
-+
-+# Discarding again
-+send_gdb "\n"
-+gdb_test "print" ".*"
-+
-+# Another problematic
-+send_gdb "completefilecommandcond ${objdir}/${subdir}/py-completion-t\t"
-+gdb_test_multiple "" "completefilecommandcond completion" {
-+    -re "^completefilecommandcond ${testdir}$" {
-+	fail "completefilecommandcond completion (completed filename instead of command)"
-+    }
-+    -re "^completefilecommandcond ${objdir}/${subdir}/py-completion-t$" {
-+	pass "completefilecommandcond completion"
-+    }
-+}
-Index: gdb-7.7.90.20140627/gdb/testsuite/gdb.python/py-completion.py
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.7.90.20140627/gdb/testsuite/gdb.python/py-completion.py	2014-07-07 20:53:55.431110209 +0200
-@@ -0,0 +1,58 @@
-+# Copyright (C) 2014 Free Software Foundation, Inc.
-+
-+# This program is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 3 of the License, or
-+# (at your option) any later version.
-+#
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+# GNU General Public License for more details.
-+#
-+# You should have received a copy of the GNU General Public License
-+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-+
-+# This testcase tests PR python/16699
-+
-+import gdb
-+
-+class CompleteFileInit(gdb.Command):
-+	def __init__(self):
-+		gdb.Command.__init__(self,'completefileinit',gdb.COMMAND_USER,gdb.COMPLETE_FILENAME)
-+
-+	def invoke(self,argument,from_tty):
-+		raise gdb.GdbError('not implemented')
-+
-+class CompleteFileMethod(gdb.Command):
-+	def __init__(self):
-+		gdb.Command.__init__(self,'completefilemethod',gdb.COMMAND_USER)
-+
-+	def invoke(self,argument,from_tty):
-+		raise gdb.GdbError('not implemented')
-+
-+	def complete(self,text,word):
-+		return gdb.COMPLETE_FILENAME
-+
-+class CompleteFileCommandCond(gdb.Command):
-+	def __init__(self):
-+		gdb.Command.__init__(self,'completefilecommandcond',gdb.COMMAND_USER)
-+
-+	def invoke(self,argument,from_tty):
-+		raise gdb.GdbError('not implemented')
-+
-+	def complete(self,text,word):
-+		# This is a test made to know if the command
-+		# completion still works fine.  When the user asks to
-+		# complete something like "completefilecommandcond
-+		# /path/to/py-completion-t", it should not complete to
-+		# "/path/to/py-completion-test/", but instead just
-+		# wait for input.
-+		if "py-completion-t" in text:
-+			return gdb.COMPLETE_COMMAND
-+		else:
-+			return gdb.COMPLETE_FILENAME
-+
-+CompleteFileInit()
-+CompleteFileMethod()
-+CompleteFileCommandCond()

diff --git a/gdb-python-completer-2of2.patch b/gdb-python-completer-2of2.patch
deleted file mode 100644
index ec3c62f..0000000
--- a/gdb-python-completer-2of2.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-http://sourceware.org/ml/gdb-patches/2014-07/msg00154.html
-Subject: Re: [PATCH] PR python/16699: GDB Python command completion with overriden complete vs. completer class
-
-
---pWyiEgJYm5f9v55/
-Content-Type: text/plain; charset=us-ascii
-Content-Disposition: inline
-
-On Tue, 08 Jul 2014 17:32:21 +0200, Jan Kratochvil wrote:
-> -    -re "^completefilecommandcond ${objdir}/${subdir}/py-completion-t$" {
-> +    -re "^completefilecommandcond ${completion_regex}$" {
-
-There was a racy bug here - and even in the former test - here should be:
-  +    -re "^completefilecommandcond ${completion_regex}\007$" {
-
-Updated fix attached.
-
-
-Jan
-
---pWyiEgJYm5f9v55/
-Content-Type: text/plain; charset=us-ascii
-Content-Disposition: inline; filename="py-completion-race2.patch"
-
---- ./gdb/testsuite/gdb.python/py-completion.exp-orig	2014-07-07 21:32:17.891045058 +0200
-+++ ./gdb/testsuite/gdb.python/py-completion.exp	2014-07-08 20:14:57.189791928 +0200
-@@ -26,9 +26,9 @@ if { [skip_python_tests] } { continue }
- gdb_test_no_output "source ${srcdir}/${subdir}/${testfile}.py"
- 
- # Create a temporary directory
--set testdir "${objdir}/${subdir}/py-completion-testdir/"
-+set testdir "[standard_output_file "py-completion-testdir"]/"
- set testdir_regex [string_to_regexp $testdir]
--set testdir_complete "${objdir}/${subdir}/py-completion-test"
-+set testdir_complete [standard_output_file "py-completion-test"]
- file mkdir $testdir
- 
- # This one should always pass.
-@@ -40,8 +40,7 @@ gdb_test_multiple "" "completefileinit c
- }
- 
- # Just discarding whatever we typed.
--send_gdb "\n"
--gdb_test "print" ".*"
-+gdb_test " " ".*" "discard #1"
- 
- # This is the problematic one.
- send_gdb "completefilemethod ${testdir_complete}\t"
-@@ -55,16 +54,16 @@ gdb_test_multiple "" "completefilemethod
- }
- 
- # Discarding again
--send_gdb "\n"
--gdb_test "print" ".*"
-+gdb_test " " ".*" "discard #2"
- 
- # Another problematic
--send_gdb "completefilecommandcond ${objdir}/${subdir}/py-completion-t\t"
-+set completion_regex "[string_to_regexp [standard_output_file "py-completion-t"]]"
-+send_gdb "completefilecommandcond [standard_output_file "py-completion-t\t"]"
- gdb_test_multiple "" "completefilecommandcond completion" {
-     -re "^completefilecommandcond ${testdir}$" {
- 	fail "completefilecommandcond completion (completed filename instead of command)"
-     }
--    -re "^completefilecommandcond ${objdir}/${subdir}/py-completion-t$" {
-+    -re "^completefilecommandcond ${completion_regex}\007$" {
- 	pass "completefilecommandcond completion"
-     }
- }
-
---pWyiEgJYm5f9v55/--
-

diff --git a/gdb-readline-6.3.5.patch b/gdb-readline-6.3.5.patch
deleted file mode 100644
index b26ab3a..0000000
--- a/gdb-readline-6.3.5.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-http://sourceware.org/ml/gdb-patches/2014-06/msg00737.html
-Subject: [patch] Fix --with-system-readline with readline-6.3 patch 5
-
-
---BXVAT5kNtrzKuDFl
-Content-Type: text/plain; charset=us-ascii
-Content-Disposition: inline
-
-Hi,
-
-I have filed now:
-	--with-system-readline uses bundled readline include files
-	https://sourceware.org/bugzilla/show_bug.cgi?id=17077
-
-To see any effect of the patch below you have to do:
-	rm -rf readline
-Otherwise readline include files get used the bundled ones from GDB which are
-currently 6.2 while system readline may be 6.3 already.
-
-You also have to use system readline-6.3 including its upstream patch:
-	[Bug-readline] Readline-6.3 Official Patch 5
-	http://lists.gnu.org/archive/html/bug-readline/2014-04/msg00018.html
-	Message-ID: <140415125618.AA57598.SM@caleb.ins.cwru.edu>
-
-In short it happens on Fedora Rawhide since:
-	readline-6.3-1.fc21
-	https://koji.fedoraproject.org/koji/buildinfo?buildID=538941
-
-The error is:
-	https://kojipkgs.fedoraproject.org//work/tasks/9890/7059890/build.log
-	../../gdb/tui/tui-io.c:132:1: error: 'Function' is deprecated [-Werror=deprecated-declarations]
-	 static Function *tui_old_rl_getc_function;
-	 ^
-	../../gdb/tui/tui-io.c:133:1: error: 'VFunction' is deprecated [-Werror=deprecated-declarations]
-	 static VFunction *tui_old_rl_redisplay_function;
-	 ^
-	../../gdb/tui/tui-io.c:134:1: error: 'VFunction' is deprecated [-Werror=deprecated-declarations]
-	 static VFunction *tui_old_rl_prep_terminal;
-	 ^
-	../../gdb/tui/tui-io.c:135:1: error: 'VFunction' is deprecated [-Werror=deprecated-declarations]
-	 static VFunction *tui_old_rl_deprep_terminal;
-	 ^
-
-It is since bash change:
-lib/readline/rltypedefs.h
-       - remove old Function/VFunction/CPFunction/CPPFunction typedefs as
-         suggested by Tom Tromey <tromey@redhat.com>
-
-The new typedefs used below are present in readline/rltypedefs.h since:
-	git://git.savannah.gnu.org/bash.git
-	commit 28ef6c316f1aff914bb95ac09787a3c83c1815fd
-	Date:   Fri Apr 6 19:14:31 2001 +0000
-
-
-Jan
-
---BXVAT5kNtrzKuDFl
-Content-Type: text/plain; charset=us-ascii
-Content-Disposition: inline; filename="tuireadline.patch"
-
-gdb/
-2014-06-20  Jan Kratochvil  <jan.kratochvil@redhat.com>
-
-	Fix --with-system-readline with readline-6.3 patch 5.
-	* tui/tui-io.c (tui_old_rl_getc_function, tui_old_rl_redisplay_function)
-	(tui_old_rl_prep_terminal, tui_old_rl_deprep_terminal): Use rl_*_t
-	types.
-
-diff --git a/gdb/tui/tui-io.c b/gdb/tui/tui-io.c
-index 761d203..dcccb08 100644
---- a/gdb/tui/tui-io.c
-+++ b/gdb/tui/tui-io.c
-@@ -129,10 +129,10 @@ static struct ui_file *tui_old_stderr;
- struct ui_out *tui_old_uiout;
- 
- /* Readline previous hooks.  */
--static Function *tui_old_rl_getc_function;
--static VFunction *tui_old_rl_redisplay_function;
--static VFunction *tui_old_rl_prep_terminal;
--static VFunction *tui_old_rl_deprep_terminal;
-+static rl_getc_func_t *tui_old_rl_getc_function;
-+static rl_voidfunc_t *tui_old_rl_redisplay_function;
-+static rl_vintfunc_t *tui_old_rl_prep_terminal;
-+static rl_voidfunc_t *tui_old_rl_deprep_terminal;
- static int tui_old_rl_echoing_p;
- 
- /* Readline output stream.
-
---BXVAT5kNtrzKuDFl--
-

diff --git a/gdb-rhbz1163339-add-auto-load-scripts-directory.patch b/gdb-rhbz1163339-add-auto-load-scripts-directory.patch
deleted file mode 100644
index 2944017..0000000
--- a/gdb-rhbz1163339-add-auto-load-scripts-directory.patch
+++ /dev/null
@@ -1,136 +0,0 @@
-Date: Thu, 13 Nov 2014 16:26:37 +0100
-From: Jan Kratochvil <jan dot kratochvil at redhat dot com>
-To: gdb-patches at sourceware dot org
-Cc: Jakub Filak <jfilak at redhat dot com>
-Subject: [patch] Add add-auto-load-scripts-directory
-
---jho1yZJdad60DJr+
-Content-Type: text/plain; charset=us-ascii
-Content-Disposition: inline
-
-Hi,
-
-there is already "add-auto-load-safe-path" which works
-like "set auto-load safe-path" but in append mode.
-
-There was missing an append equivalent for "set auto-load scripts-directory".
-
-ABRT has directory /var/cache/abrt-di/ as an alternative one
-to /usr/lib/debug/ . Therefore ABRT needs to use -iex parameters to add this
-/var/cache/abrt-di/ directory as a first-class debuginfo directory.
-Using absolute "set auto-load scripts-directory" would hard-code the path
-possibly overriding local system directory additions; besides it would not be
-nice anyway.
-
-No regressions on {x86_64,x86_64-m32,i686}-fedora21-linux-gnu; although I have
-seen some heavy regressions there today unrelated to this patch.
-
-
-Thanks,
-Jan
-
---jho1yZJdad60DJr+
-Content-Type: text/plain; charset=us-ascii
-Content-Disposition: inline; filename="addautoload.patch"
-
-gdb/
-2014-11-13  Jan Kratochvil  <jan.kratochvil@redhat.com>
-
-	Add add-auto-load-scripts-directory.
-	* NEWS (Changes since GDB 7.8): Add add-auto-load-scripts-directory.
-	* auto-load.c (add_auto_load_dir): New function.
-	(_initialize_auto_load): Install it.
-
-gdb/doc/
-2014-11-13  Jan Kratochvil  <jan.kratochvil@redhat.com>
-
-	Add add-auto-load-scripts-directory.
-	* gdb.texinfo (Auto-loading): Add add-auto-load-scripts-directory link.
-	(objfile-gdbdotext file): Add add-auto-load-scripts-directory.
-
-Index: gdb-7.6.1/gdb/NEWS
-===================================================================
---- gdb-7.6.1.orig/gdb/NEWS
-+++ gdb-7.6.1/gdb/NEWS
-@@ -1,6 +1,12 @@
- 		What has changed in GDB?
- 	     (Organized release by release)
- 
-+* New commands:
-+
-+add-auto-load-scripts-directory directory
-+  Add entries to the list of directories from which to load auto-loaded
-+  scripts.
-+
- *** Changes in GDB 7.8
- 
- * New command line options
-Index: gdb-7.6.1/gdb/auto-load.c
-===================================================================
---- gdb-7.6.1.orig/gdb/auto-load.c
-+++ gdb-7.6.1/gdb/auto-load.c
-@@ -298,6 +298,22 @@ Use 'set auto-load safe-path /' for disa
-   auto_load_safe_path_vec_update ();
- }
- 
-+/* "add-auto-load-scripts-directory" command for the auto_load_dir configuration
-+   variable.  */
-+
-+static void
-+add_auto_load_dir (char *args, int from_tty)
-+{
-+  char *s;
-+
-+  if (args == NULL || *args == 0)
-+    error (_("Directory argument required."));
-+
-+  s = xstrprintf ("%s%c%s", auto_load_dir, DIRNAME_SEPARATOR, args);
-+  xfree (auto_load_dir);
-+  auto_load_dir = s;
-+}
-+
- /* Implementation for filename_is_in_pattern overwriting the caller's FILENAME
-    and PATTERN.  */
- 
-@@ -1295,6 +1311,15 @@ access the current full list setting."),
- 		 &cmdlist);
-   set_cmd_completer (cmd, filename_completer);
- 
-+  cmd = add_cmd ("add-auto-load-scripts-directory", class_support,
-+		 add_auto_load_dir,
-+		 _("Add entries to the list of directories from which to load "
-+		   "auto-loaded scripts.\n\
-+See the commands 'set auto-load scripts-directory' and\n\
-+'show auto-load scripts-directory' to access the current full list setting."),
-+		 &cmdlist);
-+  set_cmd_completer (cmd, filename_completer);
-+
-   add_setshow_boolean_cmd ("auto-load", class_maintenance,
- 			   &debug_auto_load, _("\
- Set auto-load verifications debugging."), _("\
-Index: gdb-7.6.1/gdb/doc/gdb.texinfo
-===================================================================
---- gdb-7.6.1.orig/gdb/doc/gdb.texinfo
-+++ gdb-7.6.1/gdb/doc/gdb.texinfo
-@@ -21929,6 +21929,8 @@ These are @value{GDBN} control commands
- @tab Control for @value{GDBN} auto-loaded scripts location.
- @item @xref{show auto-load scripts-directory}.
- @tab Show @value{GDBN} auto-loaded scripts location.
-+@item @xref{add-auto-load-scripts-directory}.
-+@tab Add directory for auto-loaded scripts location list.
- @item @xref{set auto-load local-gdbinit}.
- @tab Control for init file in the current directory.
- @item @xref{show auto-load local-gdbinit}.
-@@ -27213,6 +27215,12 @@ to the @env{PATH} environment variable.
- @kindex show auto-load scripts-directory
- @item show auto-load scripts-directory
- Show @value{GDBN} auto-loaded scripts location.
-+
-+@anchor{add-auto-load-scripts-directory}
-+@kindex add-auto-load-scripts-directory
-+@item add-auto-load-scripts-directory @r{[}@var{directories}@r{]}
-+Add an entry (or list of entries) to the list of auto-loaded scripts locations.
-+Multiple entries may be delimited by the host platform path separator in use.
- @end table
- 
- @value{GDBN} does not track which files it has already auto-loaded this way.

diff --git a/gdb-rhbz795424-bitpos-20of25.patch b/gdb-rhbz795424-bitpos-20of25.patch
index 19c547d..28e6abc 100644
--- a/gdb-rhbz795424-bitpos-20of25.patch
+++ b/gdb-rhbz795424-bitpos-20of25.patch
@@ -463,11 +463,11 @@ Content-Type: text/x-patch
 Content-Transfer-Encoding: 7bit
 Content-Disposition: attachment; filename=bitpos-main.patch
 
-Index: gdb-7.7.90.20140613/gdb/ada-lang.c
+Index: gdb-7.8.50.20141228/gdb/ada-lang.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/ada-lang.c	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/ada-lang.c	2014-06-24 16:07:27.245986875 +0200
-@@ -78,7 +78,7 @@ static struct type *desc_bounds_type (st
+--- gdb-7.8.50.20141228.orig/gdb/ada-lang.c	2015-01-06 22:44:41.508318717 +0100
++++ gdb-7.8.50.20141228/gdb/ada-lang.c	2015-01-06 22:44:43.164326752 +0100
+@@ -74,7 +74,7 @@ static struct type *desc_bounds_type (st
  
  static struct value *desc_bounds (struct value *);
  
@@ -476,7 +476,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
  
  static int fat_pntr_bounds_bitsize (struct type *);
  
-@@ -86,13 +86,13 @@ static struct type *desc_data_target_typ
+@@ -82,13 +82,13 @@ static struct type *desc_data_target_typ
  
  static struct value *desc_data (struct value *);
  
@@ -492,7 +492,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
  
  static int desc_bound_bitsize (struct type *, int, int);
  
-@@ -172,7 +172,7 @@ static struct type *static_unwrap_type (
+@@ -168,7 +168,7 @@ static struct type *static_unwrap_type (
  
  static struct value *unwrap_value (struct value *);
  
@@ -501,7 +501,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
  
  static struct type *decode_constrained_packed_array_type (struct type *);
  
-@@ -187,7 +187,8 @@ static int ada_is_unconstrained_packed_a
+@@ -183,7 +183,8 @@ static int ada_is_unconstrained_packed_a
  static struct value *value_subscript_packed (struct value *, int,
                                               struct value **);
  
@@ -511,7 +511,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
  
  static struct value *coerce_unspec_val_to_type (struct value *,
                                                  struct type *);
-@@ -215,14 +216,14 @@ static struct value *value_val_atr (stru
+@@ -211,14 +212,14 @@ static struct value *value_val_atr (stru
  static struct symbol *standard_lookup (const char *, const struct block *,
                                         domain_enum);
  
@@ -530,16 +530,16 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
  
  static struct value *ada_to_fixed_value_create (struct type *, CORE_ADDR,
                                                  struct value *);
-@@ -238,7 +239,7 @@ static void ada_language_arch_info (stru
- 
- static void check_size (const struct type *);
+@@ -232,7 +233,7 @@ static int ada_is_direct_array_type (str
+ static void ada_language_arch_info (struct gdbarch *,
+ 				    struct language_arch_info *);
  
 -static struct value *ada_index_struct_field (int, struct value *, int,
 +static struct value *ada_index_struct_field (LONGEST, struct value *, LONGEST,
  					     struct type *);
  
  static struct value *assign_aggregate (struct value *, struct value *, 
-@@ -694,7 +695,7 @@ coerce_unspec_val_to_type (struct value
+@@ -695,7 +696,7 @@ coerce_unspec_val_to_type (struct value
  }
  
  static const gdb_byte *
@@ -548,7 +548,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
  {
    if (valaddr == NULL)
      return NULL;
-@@ -703,7 +704,7 @@ cond_offset_host (const gdb_byte *valadd
+@@ -704,7 +705,7 @@ cond_offset_host (const gdb_byte *valadd
  }
  
  static CORE_ADDR
@@ -557,7 +557,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
  {
    if (address == 0)
      return 0;
-@@ -1711,7 +1712,7 @@ desc_bounds (struct value *arr)
+@@ -1712,7 +1713,7 @@ desc_bounds (struct value *arr)
  /* If TYPE is the type of an array-descriptor (fat pointer),  the bit
     position of the field containing the address of the bounds data.  */
  
@@ -566,7 +566,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
  fat_pntr_bounds_bitpos (struct type *type)
  {
    return TYPE_FIELD_BITPOS (desc_base_type (type), 1);
-@@ -1777,7 +1778,7 @@ desc_data (struct value *arr)
+@@ -1778,7 +1779,7 @@ desc_data (struct value *arr)
  /* If TYPE is the type of an array-descriptor (fat pointer), the bit
     position of the field containing the address of the data.  */
  
@@ -575,7 +575,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
  fat_pntr_data_bitpos (struct type *type)
  {
    return TYPE_FIELD_BITPOS (desc_base_type (type), 0);
-@@ -1812,7 +1813,7 @@ desc_one_bound (struct value *bounds, in
+@@ -1813,7 +1814,7 @@ desc_one_bound (struct value *bounds, in
     of the Ith lower bound stored in it, if WHICH is 0, and the Ith upper
     bound, if WHICH is 1.  The first bound is I=1.  */
  
@@ -584,7 +584,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
  desc_bound_bitpos (struct type *type, int i, int which)
  {
    return TYPE_FIELD_BITPOS (desc_base_type (type), 2 * i + which - 2);
-@@ -2002,7 +2003,7 @@ ada_type_of_array (struct value *arr, in
+@@ -2003,7 +2004,7 @@ ada_type_of_array (struct value *arr, in
  	         zero, and does not need to be recomputed.  */
  	      if (lo < hi)
  		{
@@ -593,8 +593,8 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
  		        (hi - lo + 1) * TYPE_FIELD_BITSIZE (elt_type, 0);
  
  		  TYPE_LENGTH (array_type) = (array_bitsize + 7) / 8;
-@@ -2154,7 +2155,7 @@ decode_packed_array_bitsize (struct type
-    in bits.  */
+@@ -2163,7 +2164,7 @@ decode_packed_array_bitsize (struct type
+    the length is arbitrary.  */
  
  static struct type *
 -constrained_packed_array_type (struct type *type, long *elt_bits)
@@ -602,7 +602,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
  {
    struct type *new_elt_type;
    struct type *new_type;
-@@ -2206,7 +2207,7 @@ decode_constrained_packed_array_type (st
+@@ -2217,7 +2218,7 @@ decode_constrained_packed_array_type (st
    char *name;
    const char *tail;
    struct type *shadow_type;
@@ -611,7 +611,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
  
    if (!raw_name)
      raw_name = ada_type_name (desc_base_type (type));
-@@ -2277,7 +2278,8 @@ decode_constrained_packed_array (struct
+@@ -2288,7 +2289,8 @@ decode_constrained_packed_array (struct
   	 array with no wrapper.  In order to interpret the value through
   	 the (left-justified) packed array type we just built, we must
   	 first left-justify it.  */
@@ -621,7 +621,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
        ULONGEST mod;
  
        mod = ada_modulus (value_type (arr)) - 1;
-@@ -2378,15 +2380,16 @@ has_negatives (struct type *type)
+@@ -2389,15 +2391,16 @@ has_negatives (struct type *type)
  
  struct value *
  ada_value_primitive_packed_val (struct value *obj, const gdb_byte *valaddr,
@@ -644,7 +644,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
                                     byte of source that are unused */
      accumSize;                  /* Number of meaningful bits in accum */
    unsigned char *bytes;         /* First byte containing data to unpack */
-@@ -2420,7 +2423,7 @@ ada_value_primitive_packed_val (struct v
+@@ -2431,7 +2434,7 @@ ada_value_primitive_packed_val (struct v
  
    if (obj != NULL)
      {
@@ -653,7 +653,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
  
        set_value_component_location (v, obj);
        set_value_bitpos (v, bit_offset + value_bitpos (obj));
-@@ -2536,7 +2539,7 @@ ada_value_primitive_packed_val (struct v
+@@ -2547,7 +2550,7 @@ ada_value_primitive_packed_val (struct v
     not overlap.  */
  static void
  move_bits (gdb_byte *target, int targ_offset, const gdb_byte *source,
@@ -662,7 +662,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
  {
    unsigned int accum, mask;
    int accum_bits, chunk_size;
-@@ -2626,7 +2629,7 @@ ada_value_assign (struct value *toval, s
+@@ -2637,7 +2640,7 @@ ada_value_assign (struct value *toval, s
      {
        int len = (value_bitpos (toval)
  		 + bits + HOST_CHAR_BIT - 1) / HOST_CHAR_BIT;
@@ -671,7 +671,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
        gdb_byte *buffer = alloca (len);
        struct value *val;
        CORE_ADDR to_addr = value_address (toval);
-@@ -2671,7 +2674,7 @@ value_assign_to_component (struct value
+@@ -2682,7 +2685,7 @@ value_assign_to_component (struct value
      (LONGEST)  (value_address (component) - value_address (container));
    int bit_offset_in_container = 
      value_bitpos (component) - value_bitpos (container);
@@ -680,7 +680,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
    
    val = value_cast (value_type (component), val);
  
-@@ -4196,7 +4199,7 @@ ensure_lval (struct value *val)
+@@ -4219,7 +4222,7 @@ ensure_lval (struct value *val)
    if (VALUE_LVAL (val) == not_lval
        || VALUE_LVAL (val) == lval_internalvar)
      {
@@ -689,7 +689,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
        const CORE_ADDR addr =
          value_as_long (value_allocate_space_in_inferior (len));
  
-@@ -4270,7 +4273,7 @@ static CORE_ADDR
+@@ -4293,7 +4296,7 @@ static CORE_ADDR
  value_pointer (struct value *value, struct type *type)
  {
    struct gdbarch *gdbarch = get_type_arch (type);
@@ -698,7 +698,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
    gdb_byte *buf = alloca (len);
    CORE_ADDR addr;
  
-@@ -6374,7 +6377,7 @@ value_tag_from_contents_and_address (str
+@@ -6405,7 +6408,7 @@ value_tag_from_contents_and_address (str
  				     const gdb_byte *valaddr,
                                       CORE_ADDR address)
  {
@@ -707,7 +707,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
    struct type *tag_type;
  
    if (find_struct_field ("_tag", type, 0, &tag_type, &tag_byte_offset,
-@@ -6839,7 +6842,7 @@ ada_in_variant (LONGEST val, struct type
+@@ -6870,7 +6873,7 @@ ada_in_variant (LONGEST val, struct type
     only in that it can handle packed values of arbitrary type.  */
  
  static struct value *
@@ -716,7 +716,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
                             struct type *arg_type)
  {
    struct type *type;
-@@ -6851,7 +6854,7 @@ ada_value_primitive_field (struct value
+@@ -6882,7 +6885,7 @@ ada_value_primitive_field (struct value
  
    if (TYPE_FIELD_BITSIZE (arg_type, fieldno) != 0)
      {
@@ -725,7 +725,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
        int bit_size = TYPE_FIELD_BITSIZE (arg_type, fieldno);
  
        return ada_value_primitive_packed_val (arg1, value_contents (arg1),
-@@ -6878,9 +6881,9 @@ ada_value_primitive_field (struct value
+@@ -6909,9 +6912,9 @@ ada_value_primitive_field (struct value
     Returns 1 if found, 0 otherwise.  */
  
  static int
@@ -737,7 +737,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
  		   int *index_p)
  {
    int i;
-@@ -6898,8 +6901,8 @@ find_struct_field (const char *name, str
+@@ -6929,8 +6932,8 @@ find_struct_field (const char *name, str
  
    for (i = 0; i < TYPE_NFIELDS (type); i += 1)
      {
@@ -748,7 +748,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
        const char *t_field_name = TYPE_FIELD_NAME (type, i);
  
        if (t_field_name == NULL)
-@@ -6969,7 +6972,7 @@ num_visible_fields (struct type *type)
+@@ -7000,7 +7003,7 @@ num_visible_fields (struct type *type)
     Searches recursively through wrapper fields (e.g., '_parent').  */
  
  static struct value *
@@ -757,7 +757,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
                           struct type *type)
  {
    int i;
-@@ -7002,7 +7005,7 @@ ada_search_struct_field (char *name, str
+@@ -7033,7 +7036,7 @@ ada_search_struct_field (char *name, str
            int j;
            struct type *field_type = ada_check_typedef (TYPE_FIELD_TYPE (type,
  									i));
@@ -766,7 +766,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
  
            for (j = 0; j < TYPE_NFIELDS (field_type); j += 1)
              {
-@@ -7020,8 +7023,8 @@ ada_search_struct_field (char *name, str
+@@ -7051,8 +7054,8 @@ ada_search_struct_field (char *name, str
    return NULL;
  }
  
@@ -777,7 +777,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
  
  
  /* Return field #INDEX in ARG, where the index is that returned by
-@@ -7030,7 +7033,7 @@ static struct value *ada_index_struct_fi
+@@ -7061,7 +7064,7 @@ static struct value *ada_index_struct_fi
   * If found, return value, else return NULL.  */
  
  static struct value *
@@ -786,7 +786,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
  			struct type *type)
  {
    return ada_index_struct_field_1 (&index, arg, offset, type);
-@@ -7042,7 +7045,7 @@ ada_index_struct_field (int index, struc
+@@ -7073,7 +7076,7 @@ ada_index_struct_field (int index, struc
   * *INDEX_P.  */
  
  static struct value *
@@ -795,7 +795,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
  			  struct type *type)
  {
    int i;
-@@ -7132,7 +7135,8 @@ ada_value_struct_elt (struct value *arg,
+@@ -7163,7 +7166,8 @@ ada_value_struct_elt (struct value *arg,
      v = ada_search_struct_field (name, arg, 0, t);
    else
      {
@@ -805,7 +805,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
        struct type *field_type;
        CORE_ADDR address;
  
-@@ -7449,8 +7453,8 @@ ada_coerce_ref (struct value *val0)
+@@ -7480,8 +7484,8 @@ ada_coerce_ref (struct value *val0)
  /* Return OFF rounded upward if necessary to a multiple of
     ALIGNMENT (a power of 2).  */
  
@@ -816,7 +816,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
  {
    return (off + alignment - 1) & ~(alignment - 1);
  }
-@@ -7832,10 +7836,9 @@ ada_template_to_fixed_record_type_1 (str
+@@ -7863,10 +7867,9 @@ ada_template_to_fixed_record_type_1 (str
    struct value *mark = value_mark ();
    struct value *dval;
    struct type *rtype;
@@ -829,7 +829,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
    int f;
  
    /* Compute the number of fields in this record type that are going
-@@ -7913,7 +7916,7 @@ ada_template_to_fixed_record_type_1 (str
+@@ -7944,7 +7947,7 @@ ada_template_to_fixed_record_type_1 (str
  	     that follow this one.  */
  	  if (ada_is_aligner_type (field_type))
  	    {
@@ -838,7 +838,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
  
  	      field_valaddr = cond_offset_host (field_valaddr, field_offset);
  	      field_address = cond_offset_target (field_address, field_offset);
-@@ -8049,11 +8052,11 @@ ada_template_to_fixed_record_type_1 (str
+@@ -8080,11 +8083,11 @@ ada_template_to_fixed_record_type_1 (str
    if (TYPE_LENGTH (type) <= 0)
      {
        if (TYPE_NAME (rtype))
@@ -854,7 +854,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
      }
    else
      {
-@@ -8393,7 +8396,8 @@ to_fixed_array_type (struct type *type0,
+@@ -8508,7 +8511,8 @@ to_fixed_array_type (struct type *type0,
  	 type was a regular (non-packed) array type.  As a result, the
  	 bitsize of the array elements needs to be set again, and the array
  	 length needs to be recomputed based on that bitsize.  */
@@ -864,11 +864,11 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.c
        int elt_bitsize = TYPE_FIELD_BITSIZE (type0, 0);
  
        TYPE_FIELD_BITSIZE (result, 0) = TYPE_FIELD_BITSIZE (type0, 0);
-Index: gdb-7.7.90.20140613/gdb/ada-lang.h
+Index: gdb-7.8.50.20141228/gdb/ada-lang.h
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/ada-lang.h	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/ada-lang.h	2014-06-24 16:07:27.245986875 +0200
-@@ -181,7 +181,7 @@ extern void ada_print_type (struct type
+--- gdb-7.8.50.20141228.orig/gdb/ada-lang.h	2015-01-06 22:44:41.509318722 +0100
++++ gdb-7.8.50.20141228/gdb/ada-lang.h	2015-01-06 22:44:43.164326752 +0100
+@@ -179,7 +179,7 @@ extern void ada_print_type (struct type
  extern void ada_print_typedef (struct type *type, struct symbol *new_symbol,
  			       struct ui_file *stream);
  
@@ -877,7 +877,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.h
  			   struct ui_file *, int,
  			   const struct value *,
  			   const struct value_print_options *);
-@@ -196,7 +196,7 @@ extern void ada_emit_char (int, struct t
+@@ -194,7 +194,7 @@ extern void ada_emit_char (int, struct t
  extern void ada_printchar (int, struct type *, struct ui_file *);
  
  extern void ada_printstr (struct ui_file *, struct type *, const gdb_byte *,
@@ -886,7 +886,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.h
  			  const struct value_print_options *);
  
  struct value *ada_convert_actual (struct value *actual,
-@@ -267,7 +267,7 @@ extern int ada_is_constrained_packed_arr
+@@ -265,7 +265,7 @@ extern int ada_is_constrained_packed_arr
  
  extern struct value *ada_value_primitive_packed_val (struct value *,
  						     const gdb_byte *,
@@ -895,11 +895,11 @@ Index: gdb-7.7.90.20140613/gdb/ada-lang.h
                                                       struct type *);
  
  extern struct type *ada_coerce_to_simple_array_type (struct type *);
-Index: gdb-7.7.90.20140613/gdb/ada-typeprint.c
+Index: gdb-7.8.50.20141228/gdb/ada-typeprint.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/ada-typeprint.c	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/ada-typeprint.c	2014-06-24 16:07:27.245986875 +0200
-@@ -865,8 +865,8 @@ ada_print_type (struct type *type0, cons
+--- gdb-7.8.50.20141228.orig/gdb/ada-typeprint.c	2015-01-06 22:44:41.509318722 +0100
++++ gdb-7.8.50.20141228/gdb/ada-typeprint.c	2015-01-06 22:44:43.165326757 +0100
+@@ -883,8 +883,8 @@ ada_print_type (struct type *type0, cons
  	    const char *name = ada_type_name (type);
  
  	    if (!ada_is_range_type_name (name))
@@ -910,7 +910,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-typeprint.c
  	    else
  	      {
  		fprintf_filtered (stream, "range ");
-@@ -887,7 +887,8 @@ ada_print_type (struct type *type0, cons
+@@ -905,7 +905,8 @@ ada_print_type (struct type *type0, cons
  	  }
  	break;
        case TYPE_CODE_FLT:
@@ -920,11 +920,11 @@ Index: gdb-7.7.90.20140613/gdb/ada-typeprint.c
  	break;
        case TYPE_CODE_ENUM:
  	if (show < 0)
-Index: gdb-7.7.90.20140613/gdb/ada-valprint.c
+Index: gdb-7.8.50.20141228/gdb/ada-valprint.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/ada-valprint.c	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/ada-valprint.c	2014-06-24 16:07:27.246986876 +0200
-@@ -35,11 +35,11 @@
+--- gdb-7.8.50.20141228.orig/gdb/ada-valprint.c	2015-01-06 22:44:41.510318727 +0100
++++ gdb-7.8.50.20141228/gdb/ada-valprint.c	2015-01-06 22:44:43.165326757 +0100
+@@ -33,11 +33,11 @@
  #include "objfiles.h"
  
  static int print_field_values (struct type *, const gdb_byte *,
@@ -938,7 +938,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-valprint.c
  			       const struct language_defn *);
  \f
  
-@@ -131,7 +131,7 @@ val_print_packed_array_elements (struct
+@@ -129,7 +129,7 @@ val_print_packed_array_elements (struct
    unsigned int things_printed = 0;
    unsigned len;
    struct type *elttype, *index_type;
@@ -947,7 +947,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-valprint.c
    unsigned long bitsize = TYPE_FIELD_BITSIZE (type, 0);
    struct value *mark = value_mark ();
    LONGEST low = 0;
-@@ -280,7 +280,7 @@ ada_emit_char (int c, struct type *type,
+@@ -278,7 +278,7 @@ ada_emit_char (int c, struct type *type,
     of a character.  */
  
  static int
@@ -956,7 +956,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-valprint.c
  	 enum bfd_endian byte_order)
  {
    if (type_len == 1)
-@@ -442,11 +442,11 @@ ada_print_scalar (struct type *type, LON
+@@ -440,11 +440,11 @@ ada_print_scalar (struct type *type, LON
  
  static void
  printstr (struct ui_file *stream, struct type *elttype, const gdb_byte *string,
@@ -970,7 +970,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-valprint.c
    unsigned int things_printed = 0;
    int in_quotes = 0;
    int need_comma = 0;
-@@ -461,9 +461,9 @@ printstr (struct ui_file *stream, struct
+@@ -459,9 +459,9 @@ printstr (struct ui_file *stream, struct
      {
        /* Position of the character we are examining
           to see whether it is repeated.  */
@@ -982,7 +982,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-valprint.c
  
        QUIT;
  
-@@ -494,7 +494,8 @@ printstr (struct ui_file *stream, struct
+@@ -492,7 +492,8 @@ printstr (struct ui_file *stream, struct
  	  ada_emit_char (char_at (string, i, type_len, byte_order),
  			 elttype, stream, '\'', type_len);
  	  fputs_filtered ("'", stream);
@@ -992,7 +992,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-valprint.c
  	  i = rep1 - 1;
  	  things_printed += options->repeat_count_threshold;
  	  need_comma = 1;
-@@ -522,7 +523,7 @@ printstr (struct ui_file *stream, struct
+@@ -520,7 +521,7 @@ printstr (struct ui_file *stream, struct
  
  void
  ada_printstr (struct ui_file *stream, struct type *type,
@@ -1001,7 +1001,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-valprint.c
  	      const char *encoding, int force_ellipses,
  	      const struct value_print_options *options)
  {
-@@ -532,12 +533,12 @@ ada_printstr (struct ui_file *stream, st
+@@ -530,12 +531,12 @@ ada_printstr (struct ui_file *stream, st
  
  static int
  print_variant_part (struct type *type, int field_num,
@@ -1016,7 +1016,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-valprint.c
  		    const struct language_defn *language)
  {
    struct type *var_type = TYPE_FIELD_TYPE (type, field_num);
-@@ -573,11 +574,11 @@ print_variant_part (struct type *type, i
+@@ -571,11 +572,11 @@ print_variant_part (struct type *type, i
  
  static int
  print_field_values (struct type *type, const gdb_byte *valaddr,
@@ -1030,7 +1030,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-valprint.c
  		    const struct language_defn *language)
  {
    int i, len;
-@@ -644,7 +645,7 @@ print_field_values (struct type *type, c
+@@ -642,7 +643,7 @@ print_field_values (struct type *type, c
  	    }
  	  else
  	    {
@@ -1039,7 +1039,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-valprint.c
  	      int bit_size = TYPE_FIELD_BITSIZE (type, i);
  	      struct value_print_options opts;
  
-@@ -690,8 +691,8 @@ ada_val_print_string (struct type *type,
+@@ -688,8 +689,8 @@ ada_val_print_string (struct type *type,
  {
    enum bfd_endian byte_order = gdbarch_byte_order (get_type_arch (type));
    struct type *elttype = TYPE_TARGET_TYPE (type);
@@ -1050,7 +1050,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-valprint.c
  
    /* We know that ELTTYPE cannot possibly be null, because we assume
       that we're called only when TYPE is a string-like type.
-@@ -710,7 +711,7 @@ ada_val_print_string (struct type *type,
+@@ -708,7 +709,7 @@ ada_val_print_string (struct type *type,
       elements up to it.  */
    if (options->stop_print_at_null)
      {
@@ -1059,7 +1059,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-valprint.c
  
        /* Look for a NULL char.  */
        for (temp_len = 0;
-@@ -1069,7 +1070,7 @@ ada_val_print_ref (struct type *type, co
+@@ -1073,7 +1074,7 @@ ada_val_print_ref (struct type *type, co
  
  static void
  ada_val_print_1 (struct type *type, const gdb_byte *valaddr,
@@ -1068,7 +1068,7 @@ Index: gdb-7.7.90.20140613/gdb/ada-valprint.c
  		 struct ui_file *stream, int recurse,
  		 const struct value *original_value,
  		 const struct value_print_options *options,
-@@ -1150,7 +1151,7 @@ ada_val_print_1 (struct type *type, cons
+@@ -1154,7 +1155,7 @@ ada_val_print_1 (struct type *type, cons
  
  void
  ada_val_print (struct type *type, const gdb_byte *valaddr,
@@ -1077,11 +1077,11 @@ Index: gdb-7.7.90.20140613/gdb/ada-valprint.c
  	       struct ui_file *stream, int recurse,
  	       const struct value *val,
  	       const struct value_print_options *options)
-Index: gdb-7.7.90.20140613/gdb/annotate.c
+Index: gdb-7.8.50.20141228/gdb/annotate.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/annotate.c	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/annotate.c	2014-06-24 16:07:27.246986876 +0200
-@@ -524,21 +524,21 @@ annotate_frame_end (void)
+--- gdb-7.8.50.20141228.orig/gdb/annotate.c	2015-01-06 22:44:41.510318727 +0100
++++ gdb-7.8.50.20141228/gdb/annotate.c	2015-01-06 22:44:43.165326757 +0100
+@@ -542,21 +542,21 @@ annotate_frame_end (void)
  }
  \f
  void
@@ -1107,10 +1107,10 @@ Index: gdb-7.7.90.20140613/gdb/annotate.c
  }
  
  void
-Index: gdb-7.7.90.20140613/gdb/annotate.h
+Index: gdb-7.8.50.20141228/gdb/annotate.h
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/annotate.h	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/annotate.h	2014-06-24 16:07:27.246986876 +0200
+--- gdb-7.8.50.20141228.orig/gdb/annotate.h	2015-01-06 22:44:41.510318727 +0100
++++ gdb-7.8.50.20141228/gdb/annotate.h	2015-01-06 22:44:43.165326757 +0100
 @@ -92,8 +92,8 @@ extern void annotate_frame_source_end (v
  extern void annotate_frame_where (void);
  extern void annotate_frame_end (void);
@@ -1122,11 +1122,11 @@ Index: gdb-7.7.90.20140613/gdb/annotate.h
  extern void annotate_elt_rep_end (void);
  extern void annotate_elt (void);
  extern void annotate_array_section_end (void);
-Index: gdb-7.7.90.20140613/gdb/arm-linux-nat.c
+Index: gdb-7.8.50.20141228/gdb/arm-linux-nat.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/arm-linux-nat.c	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/arm-linux-nat.c	2014-06-24 16:07:27.246986876 +0200
-@@ -1187,7 +1187,7 @@ arm_linux_remove_hw_breakpoint (struct t
+--- gdb-7.8.50.20141228.orig/gdb/arm-linux-nat.c	2015-01-06 22:44:41.511318732 +0100
++++ gdb-7.8.50.20141228/gdb/arm-linux-nat.c	2015-01-06 22:44:43.166326762 +0100
+@@ -1186,7 +1186,7 @@ arm_linux_remove_hw_breakpoint (struct t
     ADDR?  */
  static int
  arm_linux_region_ok_for_hw_watchpoint (struct target_ops *self,
@@ -1135,11 +1135,11 @@ Index: gdb-7.7.90.20140613/gdb/arm-linux-nat.c
  {
    const struct arm_linux_hwbp_cap *cap = arm_linux_get_hwbp_cap ();
    CORE_ADDR max_wp_length, aligned_addr;
-Index: gdb-7.7.90.20140613/gdb/ax-gdb.c
+Index: gdb-7.8.50.20141228/gdb/ax-gdb.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/ax-gdb.c	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/ax-gdb.c	2014-06-24 16:07:27.247986877 +0200
-@@ -83,12 +83,12 @@ static void gen_traced_pop (struct gdbar
+--- gdb-7.8.50.20141228.orig/gdb/ax-gdb.c	2015-01-06 22:44:41.512318737 +0100
++++ gdb-7.8.50.20141228/gdb/ax-gdb.c	2015-01-06 22:44:43.166326762 +0100
+@@ -82,12 +82,12 @@ static void gen_traced_pop (struct gdbar
  static void gen_sign_extend (struct agent_expr *, struct type *);
  static void gen_extend (struct agent_expr *, struct type *);
  static void gen_fetch (struct agent_expr *, struct type *);
@@ -1154,7 +1154,7 @@ Index: gdb-7.7.90.20140613/gdb/ax-gdb.c
  static void gen_sym_offset (struct agent_expr *, struct symbol *);
  static void gen_var_ref (struct gdbarch *, struct agent_expr *ax,
  			 struct axs_value *value, struct symbol *var);
-@@ -136,15 +136,16 @@ static void gen_deref (struct agent_expr
+@@ -135,15 +135,16 @@ static void gen_deref (struct agent_expr
  static void gen_address_of (struct agent_expr *, struct axs_value *);
  static void gen_bitfield_ref (struct expression *exp, struct agent_expr *ax,
  			      struct axs_value *value,
@@ -1174,7 +1174,7 @@ Index: gdb-7.7.90.20140613/gdb/ax-gdb.c
  				     struct type *type);
  static void gen_struct_ref (struct expression *exp, struct agent_expr *ax,
  			    struct axs_value *value,
-@@ -539,7 +540,7 @@ gen_fetch (struct agent_expr *ax, struct
+@@ -538,7 +539,7 @@ gen_fetch (struct agent_expr *ax, struct
     right shift it by -DISTANCE bits if DISTANCE < 0.  This generates
     unsigned (logical) right shifts.  */
  static void
@@ -1183,7 +1183,7 @@ Index: gdb-7.7.90.20140613/gdb/ax-gdb.c
  {
    if (distance > 0)
      {
-@@ -593,7 +594,7 @@ gen_frame_locals_address (struct gdbarch
+@@ -592,7 +593,7 @@ gen_frame_locals_address (struct gdbarch
     programming in ML, it would be clearer why these are the same
     thing.  */
  static void
@@ -1192,7 +1192,7 @@ Index: gdb-7.7.90.20140613/gdb/ax-gdb.c
  {
    /* It would suffice to simply push the offset and add it, but this
       makes it easier to read positive and negative offsets in the
-@@ -1249,7 +1250,7 @@ gen_address_of (struct agent_expr *ax, s
+@@ -1248,7 +1249,7 @@ gen_address_of (struct agent_expr *ax, s
  static void
  gen_bitfield_ref (struct expression *exp, struct agent_expr *ax,
  		  struct axs_value *value, struct type *type,
@@ -1201,7 +1201,7 @@ Index: gdb-7.7.90.20140613/gdb/ax-gdb.c
  {
    /* Note that ops[i] fetches 8 << i bits.  */
    static enum agent_op ops[]
-@@ -1284,13 +1285,13 @@ gen_bitfield_ref (struct expression *exp
+@@ -1283,13 +1284,13 @@ gen_bitfield_ref (struct expression *exp
  
    /* The first and one-after-last bits in the field, but rounded down
       and up to byte boundaries.  */
@@ -1220,7 +1220,7 @@ Index: gdb-7.7.90.20140613/gdb/ax-gdb.c
  
    /* The index in ops of the opcode we're considering.  */
    int op;
-@@ -1409,7 +1410,7 @@ gen_bitfield_ref (struct expression *exp
+@@ -1408,7 +1409,7 @@ gen_bitfield_ref (struct expression *exp
  static void
  gen_primitive_field (struct expression *exp,
  		     struct agent_expr *ax, struct axs_value *value,
@@ -1229,7 +1229,7 @@ Index: gdb-7.7.90.20140613/gdb/ax-gdb.c
  {
    /* Is this a bitfield?  */
    if (TYPE_FIELD_PACKED (type, fieldno))
-@@ -1434,7 +1435,7 @@ gen_primitive_field (struct expression *
+@@ -1433,7 +1434,7 @@ gen_primitive_field (struct expression *
  static int
  gen_struct_ref_recursive (struct expression *exp, struct agent_expr *ax,
  			  struct axs_value *value,
@@ -1238,11 +1238,11 @@ Index: gdb-7.7.90.20140613/gdb/ax-gdb.c
  {
    int i, rslt;
    int nbases = TYPE_N_BASECLASSES (type);
-Index: gdb-7.7.90.20140613/gdb/ax-general.c
+Index: gdb-7.8.50.20141228/gdb/ax-general.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/ax-general.c	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/ax-general.c	2014-06-24 16:07:27.247986877 +0200
-@@ -195,7 +195,7 @@ ax_zero_ext (struct agent_expr *x, int n
+--- gdb-7.8.50.20141228.orig/gdb/ax-general.c	2015-01-06 22:44:41.512318737 +0100
++++ gdb-7.8.50.20141228/gdb/ax-general.c	2015-01-06 22:44:43.167326767 +0100
+@@ -193,7 +193,7 @@ ax_zero_ext (struct agent_expr *x, int n
  
  /* Append a trace_quick instruction to EXPR, to record N bytes.  */
  void
@@ -1251,10 +1251,10 @@ Index: gdb-7.7.90.20140613/gdb/ax-general.c
  {
    /* N must fit in a byte.  */
    if (n < 0 || n > 255)
-Index: gdb-7.7.90.20140613/gdb/ax.h
+Index: gdb-7.8.50.20141228/gdb/ax.h
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/ax.h	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/ax.h	2014-06-24 16:07:27.247986877 +0200
+--- gdb-7.8.50.20141228.orig/gdb/ax.h	2015-01-06 22:44:41.512318737 +0100
++++ gdb-7.8.50.20141228/gdb/ax.h	2015-01-06 22:44:43.167326767 +0100
 @@ -207,7 +207,7 @@ extern void ax_ext (struct agent_expr *E
  extern void ax_zero_ext (struct agent_expr *EXPR, int N);
  
@@ -1264,11 +1264,23 @@ Index: gdb-7.7.90.20140613/gdb/ax.h
  
  /* Append a goto op to EXPR.  OP is the actual op (must be aop_goto or
     aop_if_goto).  We assume we don't know the target offset yet,
-Index: gdb-7.7.90.20140613/gdb/breakpoint.c
+Index: gdb-7.8.50.20141228/gdb/breakpoint.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/breakpoint.c	2014-06-24 16:07:27.070986681 +0200
-+++ gdb-7.7.90.20140613/gdb/breakpoint.c	2014-06-24 16:07:27.249986879 +0200
-@@ -6930,7 +6930,7 @@ breakpoint_address_match (struct address
+--- gdb-7.8.50.20141228.orig/gdb/breakpoint.c	2015-01-06 22:44:41.516318756 +0100
++++ gdb-7.8.50.20141228/gdb/breakpoint.c	2015-01-06 22:44:43.170326781 +0100
+@@ -2191,9 +2191,9 @@ should_be_inserted (struct bp_location *
+ 	{
+ 	  fprintf_unfiltered (gdb_stdlog,
+ 			      "infrun: stepping past non-steppable watchpoint. "
+-			      "skipping watchpoint at %s:%d\n",
++			      "skipping watchpoint at %s:%s\n",
+ 			      paddress (bl->gdbarch, bl->address),
+-			      bl->length);
++			      plongest (bl->length));
+ 	}
+       return 0;
+     }
+@@ -6943,7 +6943,7 @@ breakpoint_address_match (struct address
  
  static int
  breakpoint_address_match_range (struct address_space *aspace1, CORE_ADDR addr1,
@@ -1277,7 +1289,7 @@ Index: gdb-7.7.90.20140613/gdb/breakpoint.c
  				CORE_ADDR addr2)
  {
    return ((gdbarch_has_global_breakpoints (target_gdbarch ())
-@@ -11542,7 +11542,7 @@ can_use_hardware_watchpoint (struct valu
+@@ -11667,7 +11667,7 @@ can_use_hardware_watchpoint (struct valu
  		      && TYPE_CODE (vtype) != TYPE_CODE_ARRAY))
  		{
  		  CORE_ADDR vaddr = value_address (v);
@@ -1286,11 +1298,11 @@ Index: gdb-7.7.90.20140613/gdb/breakpoint.c
  		  int num_regs;
  
  		  len = (target_exact_watchpoints
-Index: gdb-7.7.90.20140613/gdb/breakpoint.h
+Index: gdb-7.8.50.20141228/gdb/breakpoint.h
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/breakpoint.h	2014-06-24 16:07:27.036986643 +0200
-+++ gdb-7.7.90.20140613/gdb/breakpoint.h	2014-06-24 16:07:27.250986881 +0200
-@@ -244,7 +244,7 @@ struct bp_target_info
+--- gdb-7.8.50.20141228.orig/gdb/breakpoint.h	2015-01-06 22:44:41.517318761 +0100
++++ gdb-7.8.50.20141228/gdb/breakpoint.h	2015-01-06 22:44:43.170326781 +0100
+@@ -236,7 +236,7 @@ struct bp_target_info
  
    /* If this is a ranged breakpoint, then this field contains the
       length of the range that will be watched for execution.  */
@@ -1299,7 +1311,7 @@ Index: gdb-7.7.90.20140613/gdb/breakpoint.h
  
    /* If the breakpoint lives in memory and reading that memory would
       give back the breakpoint, instead of the original contents, then
-@@ -413,7 +413,7 @@ struct bp_location
+@@ -412,7 +412,7 @@ struct bp_location
    /* For hardware watchpoints, the size of the memory region being
       watched.  For hardware ranged breakpoints, the size of the
       breakpoint range.  */
@@ -1308,11 +1320,11 @@ Index: gdb-7.7.90.20140613/gdb/breakpoint.h
  
    /* Type of hardware watchpoint.  */
    enum target_hw_bp_type watchpoint_type;
-Index: gdb-7.7.90.20140613/gdb/c-lang.c
+Index: gdb-7.8.50.20141228/gdb/c-lang.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/c-lang.c	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/c-lang.c	2014-06-24 16:07:27.250986881 +0200
-@@ -190,7 +190,7 @@ c_printchar (int c, struct type *type, s
+--- gdb-7.8.50.20141228.orig/gdb/c-lang.c	2015-01-06 22:44:41.518318766 +0100
++++ gdb-7.8.50.20141228/gdb/c-lang.c	2015-01-06 22:44:43.170326781 +0100
+@@ -187,7 +187,7 @@ c_printchar (int c, struct type *type, s
  
  void
  c_printstr (struct ui_file *stream, struct type *type, 
@@ -1321,7 +1333,7 @@ Index: gdb-7.7.90.20140613/gdb/c-lang.c
  	    const char *user_encoding, int force_ellipses,
  	    const struct value_print_options *options)
  {
-@@ -679,7 +679,7 @@ evaluate_subexp_c (struct type *expect_t
+@@ -676,7 +676,7 @@ evaluate_subexp_c (struct type *expect_t
  	  }
  	else
  	  {
@@ -1330,7 +1342,7 @@ Index: gdb-7.7.90.20140613/gdb/c-lang.c
  
  	    /* Write the terminating character.  */
  	    for (i = 0; i < TYPE_LENGTH (type); ++i)
-@@ -688,7 +688,7 @@ evaluate_subexp_c (struct type *expect_t
+@@ -685,7 +685,7 @@ evaluate_subexp_c (struct type *expect_t
  	    if (satisfy_expected)
  	      {
  		LONGEST low_bound, high_bound;
@@ -1339,10 +1351,10 @@ Index: gdb-7.7.90.20140613/gdb/c-lang.c
  
  		if (get_discrete_bounds (TYPE_INDEX_TYPE (expect_type),
  					 &low_bound, &high_bound) < 0)
-Index: gdb-7.7.90.20140613/gdb/c-lang.h
+Index: gdb-7.8.50.20141228/gdb/c-lang.h
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/c-lang.h	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/c-lang.h	2014-06-24 16:07:27.250986881 +0200
+--- gdb-7.8.50.20141228.orig/gdb/c-lang.h	2015-01-06 22:44:41.518318766 +0100
++++ gdb-7.8.50.20141228/gdb/c-lang.h	2015-01-06 22:44:43.171326786 +0100
 @@ -74,7 +74,7 @@ extern void c_print_typedef (struct type
  			     struct ui_file *);
  
@@ -1378,11 +1390,11 @@ Index: gdb-7.7.90.20140613/gdb/c-lang.h
  					struct ui_file *, int,
  					const struct value *,
  					const struct value_print_options *,
-Index: gdb-7.7.90.20140613/gdb/c-valprint.c
+Index: gdb-7.8.50.20141228/gdb/c-valprint.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/c-valprint.c	2014-06-24 16:07:26.285985810 +0200
-+++ gdb-7.7.90.20140613/gdb/c-valprint.c	2014-06-24 16:07:27.250986881 +0200
-@@ -133,7 +133,7 @@ static const struct generic_val_print_de
+--- gdb-7.8.50.20141228.orig/gdb/c-valprint.c	2015-01-06 22:44:41.518318766 +0100
++++ gdb-7.8.50.20141228/gdb/c-valprint.c	2015-01-06 22:44:43.171326786 +0100
+@@ -132,7 +132,7 @@ static const struct generic_val_print_de
  
  void
  c_val_print (struct type *type, const gdb_byte *valaddr,
@@ -1391,7 +1403,7 @@ Index: gdb-7.7.90.20140613/gdb/c-valprint.c
  	     struct ui_file *stream, int recurse,
  	     const struct value *original_value,
  	     const struct value_print_options *options)
-@@ -144,7 +144,7 @@ c_val_print (struct type *type, const gd
+@@ -143,7 +143,7 @@ c_val_print (struct type *type, const gd
    unsigned len;
    struct type *elttype, *unresolved_elttype;
    struct type *unresolved_type = type;
@@ -1400,7 +1412,7 @@ Index: gdb-7.7.90.20140613/gdb/c-valprint.c
    CORE_ADDR addr;
  
    CHECK_TYPEDEF (type);
-@@ -380,9 +380,9 @@ c_val_print (struct type *type, const gd
+@@ -379,9 +379,9 @@ c_val_print (struct type *type, const gd
  	  /* Print vtable entry - we only get here if NOT using
  	     -fvtable_thunks.  (Otherwise, look under
  	     TYPE_CODE_PTR.)  */
@@ -1413,7 +1425,7 @@ Index: gdb-7.7.90.20140613/gdb/c-valprint.c
  	  struct type *field_type = TYPE_FIELD_TYPE (type,
  						     VTBL_FNADDR_OFFSET);
  	  CORE_ADDR addr
-@@ -461,7 +461,8 @@ c_value_print (struct value *val, struct
+@@ -460,7 +460,8 @@ c_value_print (struct value *val, struct
  	       const struct value_print_options *options)
  {
    struct type *type, *real_type, *val_type;
@@ -1423,11 +1435,11 @@ Index: gdb-7.7.90.20140613/gdb/c-valprint.c
    struct value_print_options opts = *options;
  
    opts.deref_ref = 1;
-Index: gdb-7.7.90.20140613/gdb/cp-abi.c
+Index: gdb-7.8.50.20141228/gdb/cp-abi.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/cp-abi.c	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/cp-abi.c	2014-06-24 16:07:27.250986881 +0200
-@@ -68,13 +68,13 @@ is_operator_name (const char *name)
+--- gdb-7.8.50.20141228.orig/gdb/cp-abi.c	2015-01-06 22:44:41.518318766 +0100
++++ gdb-7.8.50.20141228/gdb/cp-abi.c	2015-01-06 22:44:43.171326786 +0100
+@@ -64,13 +64,13 @@ is_operator_name (const char *name)
    return (*current_cp_abi.is_operator_name) (name);
  }
  
@@ -1444,7 +1456,7 @@ Index: gdb-7.7.90.20140613/gdb/cp-abi.c
  
    gdb_assert (current_cp_abi.baseclass_offset != NULL);
  
-@@ -98,7 +98,7 @@ baseclass_offset (struct type *type, int
+@@ -94,7 +94,7 @@ baseclass_offset (struct type *type, int
  struct value *
  value_virtual_fn_field (struct value **arg1p,
  			struct fn_field *f, int j,
@@ -1453,7 +1465,7 @@ Index: gdb-7.7.90.20140613/gdb/cp-abi.c
  {
    if ((current_cp_abi.virtual_fn_field) == NULL)
      return NULL;
-@@ -108,7 +108,7 @@ value_virtual_fn_field (struct value **a
+@@ -104,7 +104,7 @@ value_virtual_fn_field (struct value **a
  
  struct type *
  value_rtti_type (struct value *v, int *full,
@@ -1462,10 +1474,10 @@ Index: gdb-7.7.90.20140613/gdb/cp-abi.c
  {
    struct type *ret = NULL;
    volatile struct gdb_exception e;
-Index: gdb-7.7.90.20140613/gdb/cp-abi.h
+Index: gdb-7.8.50.20141228/gdb/cp-abi.h
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/cp-abi.h	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/cp-abi.h	2014-06-24 16:07:27.251986882 +0200
+--- gdb-7.8.50.20141228.orig/gdb/cp-abi.h	2015-01-06 22:44:41.519318770 +0100
++++ gdb-7.8.50.20141228/gdb/cp-abi.h	2015-01-06 22:44:43.171326786 +0100
 @@ -108,7 +108,7 @@ extern struct value *value_virtual_fn_fi
  					     struct fn_field *f,
  					     int j,
@@ -1520,11 +1532,11 @@ Index: gdb-7.7.90.20140613/gdb/cp-abi.h
    void (*print_method_ptr) (const gdb_byte *contents,
  			    struct type *type,
  			    struct ui_file *stream);
-Index: gdb-7.7.90.20140613/gdb/cp-valprint.c
+Index: gdb-7.8.50.20141228/gdb/cp-valprint.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/cp-valprint.c	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/cp-valprint.c	2014-06-24 16:07:27.251986882 +0200
-@@ -82,7 +82,7 @@ static void cp_print_static_field (struc
+--- gdb-7.8.50.20141228.orig/gdb/cp-valprint.c	2015-01-06 22:44:41.519318770 +0100
++++ gdb-7.8.50.20141228/gdb/cp-valprint.c	2015-01-06 22:44:43.172326791 +0100
+@@ -80,7 +80,7 @@ static void cp_print_static_field (struc
  				   const struct value_print_options *);
  
  static void cp_print_value (struct type *, struct type *,
@@ -1533,7 +1545,7 @@ Index: gdb-7.7.90.20140613/gdb/cp-valprint.c
  			    CORE_ADDR, struct ui_file *,
  			    int, const struct value *,
  			    const struct value_print_options *,
-@@ -156,7 +156,7 @@ cp_is_vtbl_member (struct type *type)
+@@ -154,7 +154,7 @@ cp_is_vtbl_member (struct type *type)
  
  void
  cp_print_value_fields (struct type *type, struct type *real_type,
@@ -1542,7 +1554,7 @@ Index: gdb-7.7.90.20140613/gdb/cp-valprint.c
  		       CORE_ADDR address, struct ui_file *stream,
  		       int recurse, const struct value *val,
  		       const struct value_print_options *options,
-@@ -339,7 +339,7 @@ cp_print_value_fields (struct type *type
+@@ -331,7 +331,7 @@ cp_print_value_fields (struct type *type
  		}
  	      else if (i == vptr_fieldno && type == vptr_basetype)
  		{
@@ -1551,7 +1563,7 @@ Index: gdb-7.7.90.20140613/gdb/cp-valprint.c
  		  struct type *i_type = TYPE_FIELD_TYPE (type, i);
  
  		  if (valprint_check_validity (stream, i_type, i_offset, val))
-@@ -422,7 +422,7 @@ cp_print_value_fields (struct type *type
+@@ -414,7 +414,7 @@ cp_print_value_fields (struct type *type
  
  void
  cp_print_value_fields_rtti (struct type *type,
@@ -1560,8 +1572,8 @@ Index: gdb-7.7.90.20140613/gdb/cp-valprint.c
  			    CORE_ADDR address,
  			    struct ui_file *stream, int recurse,
  			    const struct value *val,
-@@ -438,7 +438,8 @@ cp_print_value_fields_rtti (struct type
- 			TARGET_CHAR_BIT * TYPE_LENGTH (type)))
+@@ -431,7 +431,8 @@ cp_print_value_fields_rtti (struct type
+ 				     TARGET_CHAR_BIT * TYPE_LENGTH (type)))
      {
        struct value *value;
 -      int full, top, using_enc;
@@ -1570,7 +1582,7 @@ Index: gdb-7.7.90.20140613/gdb/cp-valprint.c
  
        /* Ugh, we have to convert back to a value here.  */
        value = value_from_contents_and_address (type, valaddr + offset,
-@@ -463,7 +464,7 @@ cp_print_value_fields_rtti (struct type
+@@ -456,7 +457,7 @@ cp_print_value_fields_rtti (struct type
  
  static void
  cp_print_value (struct type *type, struct type *real_type,
@@ -1579,7 +1591,7 @@ Index: gdb-7.7.90.20140613/gdb/cp-valprint.c
  		CORE_ADDR address, struct ui_file *stream,
  		int recurse, const struct value *val,
  		const struct value_print_options *options,
-@@ -473,7 +474,7 @@ cp_print_value (struct type *type, struc
+@@ -466,7 +467,7 @@ cp_print_value (struct type *type, struc
      = (struct type **) obstack_next_free (&dont_print_vb_obstack);
    struct obstack tmp_obstack = dont_print_vb_obstack;
    int i, n_baseclasses = TYPE_N_BASECLASSES (type);
@@ -1588,7 +1600,7 @@ Index: gdb-7.7.90.20140613/gdb/cp-valprint.c
    struct type *thistype;
  
    if (dont_print_vb == 0)
-@@ -487,7 +488,7 @@ cp_print_value (struct type *type, struc
+@@ -480,7 +481,7 @@ cp_print_value (struct type *type, struc
  
    for (i = 0; i < n_baseclasses; i++)
      {
@@ -1597,11 +1609,11 @@ Index: gdb-7.7.90.20140613/gdb/cp-valprint.c
        int skip;
        struct type *baseclass = check_typedef (TYPE_BASECLASS (type, i));
        const char *basename = TYPE_NAME (baseclass);
-Index: gdb-7.7.90.20140613/gdb/d-lang.h
+Index: gdb-7.8.50.20141228/gdb/d-lang.h
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/d-lang.h	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/d-lang.h	2014-06-24 16:07:27.251986882 +0200
-@@ -69,7 +69,7 @@ extern const char *d_parse_symbol (struc
+--- gdb-7.8.50.20141228.orig/gdb/d-lang.h	2015-01-06 22:44:41.519318770 +0100
++++ gdb-7.8.50.20141228/gdb/d-lang.h	2015-01-06 22:44:43.172326791 +0100
+@@ -71,7 +71,7 @@ extern const struct builtin_d_type *buil
  /* Defined in d-valprint.c  */
  
  extern void d_val_print (struct type *type, const gdb_byte *valaddr,
@@ -1610,10 +1622,10 @@ Index: gdb-7.7.90.20140613/gdb/d-lang.h
  			 struct ui_file *stream, int recurse,
  			 const struct value *val,
  			 const struct value_print_options *options);
-Index: gdb-7.7.90.20140613/gdb/d-valprint.c
+Index: gdb-7.8.50.20141228/gdb/d-valprint.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/d-valprint.c	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/d-valprint.c	2014-06-24 16:07:27.251986882 +0200
+--- gdb-7.8.50.20141228.orig/gdb/d-valprint.c	2015-01-06 22:44:41.519318770 +0100
++++ gdb-7.8.50.20141228/gdb/d-valprint.c	2015-01-06 22:44:43.172326791 +0100
 @@ -29,7 +29,7 @@
  
  static int
@@ -1623,7 +1635,7 @@ Index: gdb-7.7.90.20140613/gdb/d-valprint.c
  		    struct ui_file *stream, int recurse,
  		    const struct value *val,
  		    const struct value_print_options *options)
-@@ -72,9 +72,9 @@ dynamic_array_type (struct type *type, c
+@@ -73,9 +73,9 @@ dynamic_array_type (struct type *type, c
  
  /* Implements the la_val_print routine for language D.  */
  void
@@ -1636,11 +1648,11 @@ Index: gdb-7.7.90.20140613/gdb/d-valprint.c
               const struct value_print_options *options)
  {
    int ret;
-Index: gdb-7.7.90.20140613/gdb/doublest.c
+Index: gdb-7.8.50.20141228/gdb/doublest.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/doublest.c	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/doublest.c	2014-06-24 16:07:27.251986882 +0200
-@@ -767,7 +767,7 @@ floatformat_from_doublest (const struct
+--- gdb-7.8.50.20141228.orig/gdb/doublest.c	2015-01-06 22:44:41.520318775 +0100
++++ gdb-7.8.50.20141228/gdb/doublest.c	2015-01-06 22:44:43.172326791 +0100
+@@ -765,7 +765,7 @@ floatformat_from_doublest (const struct
     but not passed on by GDB.  This should be fixed.  */
  
  static const struct floatformat *
@@ -1649,7 +1661,7 @@ Index: gdb-7.7.90.20140613/gdb/doublest.c
  {
    const struct floatformat *format;
  
-@@ -795,8 +795,8 @@ floatformat_from_length (struct gdbarch
+@@ -793,8 +793,8 @@ floatformat_from_length (struct gdbarch
    else
      format = NULL;
    if (format == NULL)
@@ -1660,11 +1672,11 @@ Index: gdb-7.7.90.20140613/gdb/doublest.c
    return format;
  }
  
-Index: gdb-7.7.90.20140613/gdb/dwarf2loc.c
+Index: gdb-7.8.50.20141228/gdb/dwarf2loc.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/dwarf2loc.c	2014-06-24 16:07:26.387985923 +0200
-+++ gdb-7.7.90.20140613/gdb/dwarf2loc.c	2014-06-24 16:07:27.252986883 +0200
-@@ -1572,19 +1572,19 @@ insert_bits (unsigned int datum,
+--- gdb-7.8.50.20141228.orig/gdb/dwarf2loc.c	2015-01-06 22:44:41.522318785 +0100
++++ gdb-7.8.50.20141228/gdb/dwarf2loc.c	2015-01-06 22:44:43.173326796 +0100
+@@ -1557,19 +1557,19 @@ insert_bits (unsigned int datum,
     BITS_BIG_ENDIAN is taken directly from gdbarch.  */
  
  static void
@@ -1690,7 +1702,7 @@ Index: gdb-7.7.90.20140613/gdb/dwarf2loc.c
  
    dest_avail = 8 - dest_offset_bits % 8;
  
-@@ -1622,13 +1622,13 @@ static void
+@@ -1607,13 +1607,13 @@ static void
  read_pieced_value (struct value *v)
  {
    int i;
@@ -1706,7 +1718,7 @@ Index: gdb-7.7.90.20140613/gdb/dwarf2loc.c
    size_t buffer_size = 0;
    gdb_byte *buffer = NULL;
    struct cleanup *cleanup;
-@@ -1655,8 +1655,8 @@ read_pieced_value (struct value *v)
+@@ -1640,8 +1640,8 @@ read_pieced_value (struct value *v)
    for (i = 0; i < c->n_pieces && offset < type_len; i++)
      {
        struct dwarf_expr_piece *p = &c->pieces[i];
@@ -1717,7 +1729,7 @@ Index: gdb-7.7.90.20140613/gdb/dwarf2loc.c
        const gdb_byte *intermediate_buffer;
  
        /* Compute size, source, and destination offsets for copying, in
-@@ -1805,13 +1805,13 @@ static void
+@@ -1790,13 +1790,13 @@ static void
  write_pieced_value (struct value *to, struct value *from)
  {
    int i;
@@ -1733,7 +1745,7 @@ Index: gdb-7.7.90.20140613/gdb/dwarf2loc.c
    size_t buffer_size = 0;
    gdb_byte *buffer = NULL;
    struct cleanup *cleanup;
-@@ -1839,8 +1839,8 @@ write_pieced_value (struct value *to, st
+@@ -1824,8 +1824,8 @@ write_pieced_value (struct value *to, st
    for (i = 0; i < c->n_pieces && offset < type_len; i++)
      {
        struct dwarf_expr_piece *p = &c->pieces[i];
@@ -1744,18 +1756,18 @@ Index: gdb-7.7.90.20140613/gdb/dwarf2loc.c
        int need_bitwise;
        const gdb_byte *source_buffer;
  
-@@ -1970,8 +1970,8 @@ write_pieced_value (struct value *to, st
-    implicit pointer.  */
+@@ -1953,8 +1953,8 @@ write_pieced_value (struct value *to, st
+    a synthetic pointer.  */
  
  static int
--check_pieced_value_bits (const struct value *value, int bit_offset,
--			 int bit_length,
-+check_pieced_value_bits (const struct value *value, LONGEST bit_offset,
-+			 LONGEST bit_length,
- 			 enum dwarf_value_location check_for)
+-check_pieced_synthetic_pointer (const struct value *value, int bit_offset,
+-				int bit_length)
++check_pieced_synthetic_pointer (const struct value *value, LONGEST bit_offset,
++				LONGEST bit_length)
  {
    struct piece_closure *c
-@@ -1987,7 +1987,7 @@ check_pieced_value_bits (const struct va
+     = (struct piece_closure *) value_computed_closure (value);
+@@ -1967,7 +1967,7 @@ check_pieced_synthetic_pointer (const st
    for (i = 0; i < c->n_pieces && bit_length > 0; i++)
      {
        struct dwarf_expr_piece *p = &c->pieces[i];
@@ -1764,29 +1776,7 @@ Index: gdb-7.7.90.20140613/gdb/dwarf2loc.c
  
        if (bit_offset > 0)
  	{
-@@ -2025,8 +2025,8 @@ check_pieced_value_bits (const struct va
- }
- 
- static int
--check_pieced_value_validity (const struct value *value, int bit_offset,
--			     int bit_length)
-+check_pieced_value_validity (const struct value *value, LONGEST bit_offset,
-+			     LONGEST bit_length)
- {
-   return check_pieced_value_bits (value, bit_offset, bit_length,
- 				  DWARF_VALUE_MEMORY);
-@@ -2044,8 +2044,8 @@ check_pieced_value_invalid (const struct
-    a synthetic pointer.  */
- 
- static int
--check_pieced_synthetic_pointer (const struct value *value, int bit_offset,
--				int bit_length)
-+check_pieced_synthetic_pointer (const struct value *value, LONGEST bit_offset,
-+				LONGEST bit_length)
- {
-   return check_pieced_value_bits (value, bit_offset, bit_length,
- 				  DWARF_VALUE_IMPLICIT_POINTER);
-@@ -2070,9 +2070,10 @@ indirect_pieced_value (struct value *val
+@@ -2009,9 +2009,10 @@ indirect_pieced_value (struct value *val
    struct type *type;
    struct frame_info *frame;
    struct dwarf2_locexpr_baton baton;
@@ -1799,7 +1789,7 @@ Index: gdb-7.7.90.20140613/gdb/dwarf2loc.c
  
    type = check_typedef (value_type (value));
    if (TYPE_CODE (type) != TYPE_CODE_PTR)
-@@ -2086,7 +2087,7 @@ indirect_pieced_value (struct value *val
+@@ -2025,7 +2026,7 @@ indirect_pieced_value (struct value *val
    for (i = 0; i < c->n_pieces && bit_length > 0; i++)
      {
        struct dwarf_expr_piece *p = &c->pieces[i];
@@ -1808,7 +1798,7 @@ Index: gdb-7.7.90.20140613/gdb/dwarf2loc.c
  
        if (bit_offset > 0)
  	{
-@@ -2357,7 +2358,7 @@ dwarf2_evaluate_loc_desc_full (struct ty
+@@ -2303,7 +2304,7 @@ dwarf2_evaluate_loc_desc_full (struct ty
  	    struct value *value = dwarf_expr_fetch (ctx, 0);
  	    gdb_byte *contents;
  	    const gdb_byte *val_bytes;
@@ -1817,11 +1807,11 @@ Index: gdb-7.7.90.20140613/gdb/dwarf2loc.c
  
  	    if (byte_offset + TYPE_LENGTH (type) > n)
  	      invalid_synthetic_pointer ();
-Index: gdb-7.7.90.20140613/gdb/dwarf2read.c
+Index: gdb-7.8.50.20141228/gdb/dwarf2read.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/dwarf2read.c	2014-06-24 16:07:27.219986846 +0200
-+++ gdb-7.7.90.20140613/gdb/dwarf2read.c	2014-06-24 16:07:27.255986886 +0200
-@@ -1889,12 +1889,12 @@ dwarf2_complex_location_expr_complaint (
+--- gdb-7.8.50.20141228.orig/gdb/dwarf2read.c	2015-01-06 22:44:41.526318805 +0100
++++ gdb-7.8.50.20141228/gdb/dwarf2read.c	2015-01-06 22:44:43.177326815 +0100
+@@ -1883,12 +1883,12 @@ dwarf2_complex_location_expr_complaint (
  }
  
  static void
@@ -1838,7 +1828,7 @@ Index: gdb-7.7.90.20140613/gdb/dwarf2read.c
  }
  
  static void
-@@ -12326,8 +12326,8 @@ dwarf2_add_field (struct field_info *fip
+@@ -12370,8 +12370,8 @@ dwarf2_add_field (struct field_info *fip
  	         object, and then subtract off the number of bits of
  	         the field itself.  The result is the bit offset of
  	         the LSB of the field.  */
@@ -1849,11 +1839,11 @@ Index: gdb-7.7.90.20140613/gdb/dwarf2read.c
  
  	      attr = dwarf2_attr (die, DW_AT_byte_size, cu);
  	      if (attr)
-Index: gdb-7.7.90.20140613/gdb/eval.c
+Index: gdb-7.8.50.20141228/gdb/eval.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/eval.c	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/eval.c	2014-06-24 16:07:27.256986887 +0200
-@@ -297,7 +297,8 @@ evaluate_struct_tuple (struct value *str
+--- gdb-7.8.50.20141228.orig/gdb/eval.c	2015-01-06 22:44:41.528318814 +0100
++++ gdb-7.8.50.20141228/gdb/eval.c	2015-01-06 22:44:43.178326820 +0100
+@@ -314,7 +314,8 @@ evaluate_struct_tuple (struct value *str
    while (--nargs >= 0)
      {
        struct value *val = NULL;
@@ -1863,7 +1853,7 @@ Index: gdb-7.7.90.20140613/gdb/eval.c
        bfd_byte *addr;
  
        fieldno++;
-@@ -359,7 +360,7 @@ init_array_element (struct value *array,
+@@ -375,7 +376,7 @@ init_array_element (struct value *array,
  		    enum noside noside, LONGEST low_bound, LONGEST high_bound)
  {
    LONGEST index;
@@ -1905,7 +1895,7 @@ Index: gdb-7.7.90.20140613/gdb/eval.c
  	  LONGEST low_bound, high_bound, index;
  
  	  if (get_discrete_bounds (range_type, &low_bound, &high_bound) < 0)
-@@ -1903,7 +1904,8 @@ evaluate_subexp_standard (struct type *e
+@@ -1887,7 +1888,8 @@ evaluate_subexp_standard (struct type *e
        {
          struct type *type = value_type (arg1);
          struct type *real_type;
@@ -1915,11 +1905,11 @@ Index: gdb-7.7.90.20140613/gdb/eval.c
  	struct value_print_options opts;
  
  	get_user_print_options (&opts);
-Index: gdb-7.7.90.20140613/gdb/f-lang.c
+Index: gdb-7.8.50.20141228/gdb/f-lang.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/f-lang.c	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/f-lang.c	2014-06-24 16:07:27.256986887 +0200
-@@ -104,7 +104,7 @@ f_printchar (int c, struct type *type, s
+--- gdb-7.8.50.20141228.orig/gdb/f-lang.c	2015-01-06 22:44:41.529318819 +0100
++++ gdb-7.8.50.20141228/gdb/f-lang.c	2015-01-06 22:44:43.178326820 +0100
+@@ -103,7 +103,7 @@ f_printchar (int c, struct type *type, s
  
  static void
  f_printstr (struct ui_file *stream, struct type *type, const gdb_byte *string,
@@ -1928,10 +1918,10 @@ Index: gdb-7.7.90.20140613/gdb/f-lang.c
  	    const struct value_print_options *options)
  {
    const char *type_encoding = f_get_encoding (type);
-Index: gdb-7.7.90.20140613/gdb/f-lang.h
+Index: gdb-7.8.50.20141228/gdb/f-lang.h
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/f-lang.h	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/f-lang.h	2014-06-24 16:07:27.256986887 +0200
+--- gdb-7.8.50.20141228.orig/gdb/f-lang.h	2015-01-06 22:44:41.529318819 +0100
++++ gdb-7.8.50.20141228/gdb/f-lang.h	2015-01-06 22:44:43.178326820 +0100
 @@ -30,7 +30,7 @@ extern void f_error (char *);	/* Defined
  extern void f_print_type (struct type *, const char *, struct ui_file *, int,
  			  int, const struct type_print_options *);
@@ -1941,11 +1931,11 @@ Index: gdb-7.7.90.20140613/gdb/f-lang.h
  			 struct ui_file *, int,
  			 const struct value *,
  			 const struct value_print_options *);
-Index: gdb-7.7.90.20140613/gdb/f-valprint.c
+Index: gdb-7.8.50.20141228/gdb/f-valprint.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/f-valprint.c	2014-06-24 16:07:26.371985905 +0200
-+++ gdb-7.7.90.20140613/gdb/f-valprint.c	2014-06-24 16:07:27.256986887 +0200
-@@ -41,7 +41,7 @@ extern void _initialize_f_valprint (void
+--- gdb-7.8.50.20141228.orig/gdb/f-valprint.c	2015-01-06 22:44:41.529318819 +0100
++++ gdb-7.8.50.20141228/gdb/f-valprint.c	2015-01-06 22:45:07.746446028 +0100
+@@ -38,7 +38,7 @@ extern void _initialize_f_valprint (void
  static void info_common_command (char *, int);
  static void f77_get_dynamic_length_of_aggregate (struct type *);
  
@@ -1954,7 +1944,7 @@ Index: gdb-7.7.90.20140613/gdb/f-valprint.c
  
  /* Array which holds offsets to be applied to get a row's elements
     for a given array.  Array also holds the size of each subarray.  */
-@@ -76,8 +76,8 @@ f77_get_upperbound (struct type *type)
+@@ -73,8 +73,8 @@ f77_get_upperbound (struct type *type)
  static void
  f77_get_dynamic_length_of_aggregate (struct type *type)
  {
@@ -1965,7 +1955,7 @@ Index: gdb-7.7.90.20140613/gdb/f-valprint.c
  
    /* Recursively go all the way down into a possibly multi-dimensional
       F77 array and get the bounds.  For simple arrays, this is pretty
-@@ -109,7 +109,7 @@ f77_get_dynamic_length_of_aggregate (str
+@@ -106,7 +106,7 @@ f77_get_dynamic_length_of_aggregate (str
  static void
  f77_print_array_1 (int nss, int ndimensions, struct type *type,
  		   const gdb_byte *valaddr,
@@ -1974,7 +1964,7 @@ Index: gdb-7.7.90.20140613/gdb/f-valprint.c
  		   struct ui_file *stream, int recurse,
  		   const struct value *val,
  		   const struct value_print_options *options,
-@@ -118,7 +118,7 @@ f77_print_array_1 (int nss, int ndimensi
+@@ -115,7 +115,7 @@ f77_print_array_1 (int nss, int ndimensi
    struct type *range_type = TYPE_INDEX_TYPE (check_typedef (type));
    CORE_ADDR addr = address + embedded_offset;
    LONGEST lowerbound, upperbound;
@@ -1983,7 +1973,7 @@ Index: gdb-7.7.90.20140613/gdb/f-valprint.c
  
    get_discrete_bounds (range_type, &lowerbound, &upperbound);
  
-@@ -175,7 +175,7 @@ f77_print_array_1 (int nss, int ndimensi
+@@ -178,7 +178,7 @@ f77_print_array_1 (int nss, int ndimensi
  
  static void
  f77_print_array (struct type *type, const gdb_byte *valaddr,
@@ -1992,7 +1982,7 @@ Index: gdb-7.7.90.20140613/gdb/f-valprint.c
  		 CORE_ADDR address, struct ui_file *stream,
  		 int recurse,
  		 const struct value *val,
-@@ -212,8 +212,9 @@ static const struct generic_val_print_de
+@@ -215,8 +215,9 @@ static const struct generic_val_print_de
     function; they are identical.  */
  
  void
@@ -2004,11 +1994,11 @@ Index: gdb-7.7.90.20140613/gdb/f-valprint.c
  	     const struct value *original_value,
  	     const struct value_print_options *options)
  {
-Index: gdb-7.7.90.20140613/gdb/findvar.c
+Index: gdb-7.8.50.20141228/gdb/findvar.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/findvar.c	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/findvar.c	2014-06-24 16:07:27.256986887 +0200
-@@ -628,7 +628,7 @@ struct value *
+--- gdb-7.8.50.20141228.orig/gdb/findvar.c	2015-01-06 22:44:41.529318819 +0100
++++ gdb-7.8.50.20141228/gdb/findvar.c	2015-01-06 22:44:43.179326825 +0100
+@@ -626,7 +626,7 @@ struct value *
  default_value_from_register (struct gdbarch *gdbarch, struct type *type,
                               int regnum, struct frame_id frame_id)
  {
@@ -2017,7 +2007,7 @@ Index: gdb-7.7.90.20140613/gdb/findvar.c
    struct value *value = allocate_value (type);
  
    VALUE_LVAL (value) = lval_register;
-@@ -661,10 +661,10 @@ void
+@@ -659,10 +659,10 @@ void
  read_frame_register_value (struct value *value, struct frame_info *frame)
  {
    struct gdbarch *gdbarch = get_frame_arch (frame);
@@ -2031,20 +2021,20 @@ Index: gdb-7.7.90.20140613/gdb/findvar.c
  
    gdb_assert (VALUE_LVAL (value) == lval_register);
  
-@@ -679,7 +679,7 @@ read_frame_register_value (struct value
+@@ -677,7 +677,7 @@ read_frame_register_value (struct value
    while (len > 0)
      {
        struct value *regval = get_frame_register_value (frame, regnum);
 -      int reg_len = TYPE_LENGTH (value_type (regval)) - reg_offset;
 +      LONGEST reg_len = TYPE_LENGTH (value_type (regval)) - reg_offset;
  
-       if (value_optimized_out (regval))
- 	{
-Index: gdb-7.7.90.20140613/gdb/frame.c
+       /* If the register length is larger than the number of bytes
+          remaining to copy, then only copy the appropriate bytes.  */
+Index: gdb-7.8.50.20141228/gdb/frame.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/frame.c	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/frame.c	2014-06-24 16:07:27.257986888 +0200
-@@ -1272,7 +1272,7 @@ deprecated_frame_register_read (struct f
+--- gdb-7.8.50.20141228.orig/gdb/frame.c	2015-01-06 22:44:41.530318824 +0100
++++ gdb-7.8.50.20141228/gdb/frame.c	2015-01-06 22:44:43.180326830 +0100
+@@ -1269,7 +1269,7 @@ deprecated_frame_register_read (struct f
  
  int
  get_frame_register_bytes (struct frame_info *frame, int regnum,
@@ -2053,7 +2043,7 @@ Index: gdb-7.7.90.20140613/gdb/frame.c
  			  int *optimizedp, int *unavailablep)
  {
    struct gdbarch *gdbarch = get_frame_arch (frame);
-@@ -1301,7 +1301,7 @@ get_frame_register_bytes (struct frame_i
+@@ -1298,7 +1298,7 @@ get_frame_register_bytes (struct frame_i
      }
    if (len > maxsize)
      error (_("Bad debug information detected: "
@@ -2062,10 +2052,10 @@ Index: gdb-7.7.90.20140613/gdb/frame.c
  
    /* Copy the data.  */
    while (len > 0)
-Index: gdb-7.7.90.20140613/gdb/frame.h
+Index: gdb-7.8.50.20141228/gdb/frame.h
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/frame.h	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/frame.h	2014-06-24 16:07:27.257986888 +0200
+--- gdb-7.8.50.20141228.orig/gdb/frame.h	2015-01-06 22:44:41.530318824 +0100
++++ gdb-7.8.50.20141228/gdb/frame.h	2015-01-06 22:44:43.180326830 +0100
 @@ -583,7 +583,7 @@ extern void put_frame_register (struct f
     contents are optimized out or unavailable, set *OPTIMIZEDP,
     *UNAVAILABLEP accordingly.  */
@@ -2075,11 +2065,11 @@ Index: gdb-7.7.90.20140613/gdb/frame.h
  				     gdb_byte *myaddr,
  				     int *optimizedp, int *unavailablep);
  
-Index: gdb-7.7.90.20140613/gdb/gdbtypes.c
+Index: gdb-7.8.50.20141228/gdb/gdbtypes.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/gdbtypes.c	2014-06-24 16:07:26.410985949 +0200
-+++ gdb-7.7.90.20140613/gdb/gdbtypes.c	2014-06-24 16:07:27.258986890 +0200
-@@ -2463,7 +2463,7 @@ allocate_gnat_aux_type (struct type *typ
+--- gdb-7.8.50.20141228.orig/gdb/gdbtypes.c	2015-01-06 22:44:41.532318834 +0100
++++ gdb-7.8.50.20141228/gdb/gdbtypes.c	2015-01-06 22:44:43.181326835 +0100
+@@ -2477,7 +2477,7 @@ allocate_gnat_aux_type (struct type *typ
     least as long as OBJFILE.  */
  
  struct type *
@@ -2088,7 +2078,7 @@ Index: gdb-7.7.90.20140613/gdb/gdbtypes.c
  	   const char *name, struct objfile *objfile)
  {
    struct type *type;
-@@ -2694,8 +2694,8 @@ is_public_ancestor (struct type *base, s
+@@ -2717,8 +2717,8 @@ is_public_ancestor (struct type *base, s
  
  static int
  is_unique_ancestor_worker (struct type *base, struct type *dclass,
@@ -2099,7 +2089,7 @@ Index: gdb-7.7.90.20140613/gdb/gdbtypes.c
  			   CORE_ADDR address, struct value *val)
  {
    int i, count = 0;
-@@ -2706,7 +2706,7 @@ is_unique_ancestor_worker (struct type *
+@@ -2729,7 +2729,7 @@ is_unique_ancestor_worker (struct type *
    for (i = 0; i < TYPE_N_BASECLASSES (dclass) && count < 2; ++i)
      {
        struct type *iter;
@@ -2108,7 +2098,7 @@ Index: gdb-7.7.90.20140613/gdb/gdbtypes.c
  
        iter = check_typedef (TYPE_BASECLASS (dclass, i));
  
-@@ -2747,7 +2747,7 @@ is_unique_ancestor_worker (struct type *
+@@ -2770,7 +2770,7 @@ is_unique_ancestor_worker (struct type *
  int
  is_unique_ancestor (struct type *base, struct value *val)
  {
@@ -2117,7 +2107,7 @@ Index: gdb-7.7.90.20140613/gdb/gdbtypes.c
  
    return is_unique_ancestor_worker (base, value_type (val), &offset,
  				    value_contents_for_printing (val),
-@@ -3891,7 +3891,7 @@ recursive_dump_type (struct type *type,
+@@ -3915,7 +3915,7 @@ recursive_dump_type (struct type *type,
        break;
      }
    puts_filtered ("\n");
@@ -2126,7 +2116,7 @@ Index: gdb-7.7.90.20140613/gdb/gdbtypes.c
    if (TYPE_OBJFILE_OWNED (type))
      {
        printfi_filtered (spaces, "objfile ");
-@@ -4015,8 +4015,8 @@ recursive_dump_type (struct type *type,
+@@ -4039,8 +4039,8 @@ recursive_dump_type (struct type *type,
  			  idx, plongest (TYPE_FIELD_ENUMVAL (type, idx)));
        else
  	printfi_filtered (spaces + 2,
@@ -2137,7 +2127,7 @@ Index: gdb-7.7.90.20140613/gdb/gdbtypes.c
  			  TYPE_FIELD_BITSIZE (type, idx));
        gdb_print_host_address (TYPE_FIELD_TYPE (type, idx), gdb_stdout);
        printf_filtered (" name '%s' (",
-@@ -4357,7 +4357,7 @@ copy_type (const struct type *type)
+@@ -4397,7 +4397,7 @@ copy_type (const struct type *type)
  
  struct type *
  arch_type (struct gdbarch *gdbarch,
@@ -2146,11 +2136,11 @@ Index: gdb-7.7.90.20140613/gdb/gdbtypes.c
  {
    struct type *type;
  
-Index: gdb-7.7.90.20140613/gdb/gdbtypes.h
+Index: gdb-7.8.50.20141228/gdb/gdbtypes.h
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/gdbtypes.h	2014-06-24 16:07:27.024986630 +0200
-+++ gdb-7.7.90.20140613/gdb/gdbtypes.h	2014-06-24 16:07:27.258986890 +0200
-@@ -608,7 +608,7 @@ struct main_type
+--- gdb-7.8.50.20141228.orig/gdb/gdbtypes.h	2015-01-06 22:44:41.533318838 +0100
++++ gdb-7.8.50.20141228/gdb/gdbtypes.h	2015-01-06 22:44:43.181326835 +0100
+@@ -598,7 +598,7 @@ struct main_type
  	   gdbarch_bits_big_endian=0 targets, it is the bit offset to
  	   the LSB.  */
  
@@ -2159,7 +2149,7 @@ Index: gdb-7.7.90.20140613/gdb/gdbtypes.h
  
  	/* * Enum value.  */
  	LONGEST enumval;
-@@ -810,7 +810,7 @@ struct type
+@@ -801,7 +801,7 @@ struct type
       HOST_CHAR_BIT.  However, this would still fail to address
       machines based on a ternary or decimal representation.  */
    
@@ -2168,7 +2158,7 @@ Index: gdb-7.7.90.20140613/gdb/gdbtypes.h
  
    /* * Core type, shared by a group of qualified types.  */
  
-@@ -1640,11 +1640,12 @@ extern struct type *get_target_type (str
+@@ -1641,11 +1641,12 @@ extern struct type *get_target_type (str
  
  /* * Helper function to construct objfile-owned types.  */
  
@@ -2183,11 +2173,11 @@ Index: gdb-7.7.90.20140613/gdb/gdbtypes.h
  extern struct type *arch_integer_type (struct gdbarch *, int, int, char *);
  extern struct type *arch_character_type (struct gdbarch *, int, int, char *);
  extern struct type *arch_boolean_type (struct gdbarch *, int, int, char *);
-Index: gdb-7.7.90.20140613/gdb/gnu-v2-abi.c
+Index: gdb-7.8.50.20141228/gdb/gnu-v2-abi.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/gnu-v2-abi.c	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/gnu-v2-abi.c	2014-06-24 16:07:27.258986890 +0200
-@@ -85,7 +85,7 @@ gnuv2_is_operator_name (const char *name
+--- gdb-7.8.50.20141228.orig/gdb/gnu-v2-abi.c	2015-01-06 22:44:41.533318838 +0100
++++ gdb-7.8.50.20141228/gdb/gnu-v2-abi.c	2015-01-06 22:44:43.181326835 +0100
+@@ -82,7 +82,7 @@ gnuv2_is_operator_name (const char *name
     TYPE is the type in which F is located.  */
  static struct value *
  gnuv2_virtual_fn_field (struct value **arg1p, struct fn_field * f, int j,
@@ -2196,7 +2186,7 @@ Index: gdb-7.7.90.20140613/gdb/gnu-v2-abi.c
  {
    struct value *arg1 = *arg1p;
    struct type *type1 = check_typedef (value_type (arg1));
-@@ -186,7 +186,8 @@ gnuv2_virtual_fn_field (struct value **a
+@@ -183,7 +183,8 @@ gnuv2_virtual_fn_field (struct value **a
  
  
  static struct type *
@@ -2206,7 +2196,7 @@ Index: gdb-7.7.90.20140613/gdb/gnu-v2-abi.c
  {
    struct type *known_type;
    struct type *rtti_type;
-@@ -341,9 +342,9 @@ vb_match (struct type *type, int index,
+@@ -338,9 +339,9 @@ vb_match (struct type *type, int index,
     target).  The result is the offset of the baseclass value relative
     to (the address of)(ARG) + OFFSET.  */
  
@@ -2218,7 +2208,7 @@ Index: gdb-7.7.90.20140613/gdb/gnu-v2-abi.c
  			CORE_ADDR address, const struct value *val)
  {
    struct type *basetype = TYPE_BASECLASS (type, index);
-@@ -361,8 +362,8 @@ gnuv2_baseclass_offset (struct type *typ
+@@ -358,8 +359,8 @@ gnuv2_baseclass_offset (struct type *typ
  	  if (vb_match (type, i, basetype))
  	    {
  	      struct type *field_type;
@@ -2229,7 +2219,7 @@ Index: gdb-7.7.90.20140613/gdb/gnu-v2-abi.c
  	      CORE_ADDR addr;
  
  	      field_type = check_typedef (TYPE_FIELD_TYPE (type, i));
-@@ -386,7 +387,7 @@ gnuv2_baseclass_offset (struct type *typ
+@@ -383,7 +384,7 @@ gnuv2_baseclass_offset (struct type *typ
  	  /* Don't go through baseclass_offset, as that wraps
  	     exceptions, thus, inner exceptions would be wrapped more
  	     than once.  */
@@ -2238,11 +2228,11 @@ Index: gdb-7.7.90.20140613/gdb/gnu-v2-abi.c
  	    gnuv2_baseclass_offset (type, i, valaddr,
  				    embedded_offset, address, val);
  
-Index: gdb-7.7.90.20140613/gdb/gnu-v3-abi.c
+Index: gdb-7.8.50.20141228/gdb/gnu-v3-abi.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/gnu-v3-abi.c	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/gnu-v3-abi.c	2014-06-24 16:07:27.259986891 +0200
-@@ -112,7 +112,7 @@ build_gdb_vtable_type (struct gdbarch *a
+--- gdb-7.8.50.20141228.orig/gdb/gnu-v3-abi.c	2015-01-06 22:44:41.534318843 +0100
++++ gdb-7.8.50.20141228/gdb/gnu-v3-abi.c	2015-01-06 22:44:43.181326835 +0100
+@@ -108,7 +108,7 @@ build_gdb_vtable_type (struct gdbarch *a
  {
    struct type *t;
    struct field *field_list, *field;
@@ -2251,7 +2241,7 @@ Index: gdb-7.7.90.20140613/gdb/gnu-v3-abi.c
  
    struct type *void_ptr_type
      = builtin_type (arch)->builtin_data_ptr;
-@@ -188,7 +188,7 @@ vtable_ptrdiff_type (struct gdbarch *gdb
+@@ -184,7 +184,7 @@ vtable_ptrdiff_type (struct gdbarch *gdb
  /* Return the offset from the start of the imaginary `struct
     gdb_gnu_v3_abi_vtable' object to the vtable's "address point"
     (i.e., where objects' virtual table pointers point).  */
@@ -2260,7 +2250,7 @@ Index: gdb-7.7.90.20140613/gdb/gnu-v3-abi.c
  vtable_address_point_offset (struct gdbarch *gdbarch)
  {
    struct type *vtable_type = gdbarch_data (gdbarch, vtable_type_gdbarch_data);
-@@ -279,7 +279,7 @@ gnuv3_get_vtable (struct gdbarch *gdbarc
+@@ -275,7 +275,7 @@ gnuv3_get_vtable (struct gdbarch *gdbarc
  
  static struct type *
  gnuv3_rtti_type (struct value *value,
@@ -2269,7 +2259,7 @@ Index: gdb-7.7.90.20140613/gdb/gnu-v3-abi.c
  {
    struct gdbarch *gdbarch;
    struct type *values_type = check_typedef (value_type (value));
-@@ -404,7 +404,7 @@ gnuv3_get_virtual_fn (struct gdbarch *gd
+@@ -400,7 +400,7 @@ gnuv3_get_virtual_fn (struct gdbarch *gd
  static struct value *
  gnuv3_virtual_fn_field (struct value **value_p,
                          struct fn_field *f, int j,
@@ -2278,7 +2268,7 @@ Index: gdb-7.7.90.20140613/gdb/gnu-v3-abi.c
  {
    struct type *values_type = check_typedef (value_type (*value_p));
    struct gdbarch *gdbarch;
-@@ -434,16 +434,16 @@ gnuv3_virtual_fn_field (struct value **v
+@@ -430,16 +430,16 @@ gnuv3_virtual_fn_field (struct value **v
  
     -1 is returned on error.  */
  
@@ -2298,7 +2288,7 @@ Index: gdb-7.7.90.20140613/gdb/gnu-v3-abi.c
  
    /* Determine architecture.  */
    gdbarch = get_type_arch (type);
-@@ -467,7 +467,7 @@ gnuv3_baseclass_offset (struct type *typ
+@@ -463,7 +463,7 @@ gnuv3_baseclass_offset (struct type *typ
    cur_base_offset = cur_base_offset + vtable_address_point_offset (gdbarch);
    if ((- cur_base_offset) % TYPE_LENGTH (ptr_type) != 0)
      error (_("Misaligned vbase offset."));
@@ -2307,7 +2297,7 @@ Index: gdb-7.7.90.20140613/gdb/gnu-v3-abi.c
  
    vtable = gnuv3_get_vtable (gdbarch, type, address + embedded_offset);
    gdb_assert (vtable != NULL);
-@@ -511,7 +511,7 @@ gnuv3_find_method_in (struct type *domai
+@@ -507,7 +507,7 @@ gnuv3_find_method_in (struct type *domai
       we're out of luck.  */
    for (i = 0; i < TYPE_N_BASECLASSES (domain); i++)
      {
@@ -2316,10 +2306,10 @@ Index: gdb-7.7.90.20140613/gdb/gnu-v3-abi.c
        struct type *basetype;
  
        if (BASETYPE_VIA_VIRTUAL (domain, i))
-Index: gdb-7.7.90.20140613/gdb/go-lang.h
+Index: gdb-7.8.50.20141228/gdb/go-lang.h
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/go-lang.h	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/go-lang.h	2014-06-24 16:07:27.259986891 +0200
+--- gdb-7.8.50.20141228.orig/gdb/go-lang.h	2015-01-06 22:44:41.534318843 +0100
++++ gdb-7.8.50.20141228/gdb/go-lang.h	2015-01-06 22:44:43.182326840 +0100
 @@ -85,7 +85,7 @@ extern void go_print_type (struct type *
  /* Defined in go-valprint.c.  */
  
@@ -2329,10 +2319,10 @@ Index: gdb-7.7.90.20140613/gdb/go-lang.h
  			  struct ui_file *stream, int recurse,
  			  const struct value *val,
  			  const struct value_print_options *options);
-Index: gdb-7.7.90.20140613/gdb/go-valprint.c
+Index: gdb-7.8.50.20141228/gdb/go-valprint.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/go-valprint.c	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/go-valprint.c	2014-06-24 16:07:27.259986891 +0200
+--- gdb-7.8.50.20141228.orig/gdb/go-valprint.c	2015-01-06 22:44:41.534318843 +0100
++++ gdb-7.8.50.20141228/gdb/go-valprint.c	2015-01-06 22:44:43.182326840 +0100
 @@ -37,7 +37,7 @@
  
  static void
@@ -2355,44 +2345,11 @@ Index: gdb-7.7.90.20140613/gdb/go-valprint.c
  	      const struct value_print_options *options)
  {
    CHECK_TYPEDEF (type);
-Index: gdb-7.7.90.20140613/gdb/i386-nat.c
-===================================================================
---- gdb-7.7.90.20140613.orig/gdb/i386-nat.c	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/i386-nat.c	2014-06-24 16:07:27.259986891 +0200
-@@ -290,7 +290,7 @@ static int i386_remove_aligned_watchpoin
-    valid value, bombs through internal_error.  */
- static int i386_handle_nonaligned_watchpoint (struct i386_debug_reg_state *state,
- 					      i386_wp_op_t what,
--					      CORE_ADDR addr, int len,
-+					      CORE_ADDR addr, LONGEST len,
- 					      enum target_hw_bp_type type);
- 
- /* Implementation.  */
-@@ -501,8 +501,8 @@ i386_remove_aligned_watchpoint (struct i
- 
- static int
- i386_handle_nonaligned_watchpoint (struct i386_debug_reg_state *state,
--				   i386_wp_op_t what, CORE_ADDR addr, int len,
--				   enum target_hw_bp_type type)
-+				   i386_wp_op_t what, CORE_ADDR addr,
-+				   LONGEST len, enum target_hw_bp_type type)
- {
-   int retval = 0;
-   int max_wp_len = TARGET_HAS_DR_LEN_8 ? 8 : 4;
-@@ -665,7 +665,7 @@ i386_remove_watchpoint (struct target_op
- 
- static int
- i386_region_ok_for_watchpoint (struct target_ops *self,
--			       CORE_ADDR addr, int len)
-+			       CORE_ADDR addr, LONGEST len)
- {
-   struct i386_debug_reg_state *state
-     = i386_debug_reg_state (ptid_get_pid (inferior_ptid));
-Index: gdb-7.7.90.20140613/gdb/inf-ttrace.c
+Index: gdb-7.8.50.20141228/gdb/inf-ttrace.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/inf-ttrace.c	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/inf-ttrace.c	2014-06-24 16:07:27.259986891 +0200
-@@ -369,7 +369,7 @@ inf_ttrace_can_use_hw_breakpoint (struct
+--- gdb-7.8.50.20141228.orig/gdb/inf-ttrace.c	2015-01-06 22:44:41.535318848 +0100
++++ gdb-7.8.50.20141228/gdb/inf-ttrace.c	2015-01-06 22:44:43.182326840 +0100
+@@ -366,7 +366,7 @@ inf_ttrace_can_use_hw_breakpoint (struct
  
  static int
  inf_ttrace_region_ok_for_hw_watchpoint (struct target_ops *self,
@@ -2401,10 +2358,10 @@ Index: gdb-7.7.90.20140613/gdb/inf-ttrace.c
  {
    return 1;
  }
-Index: gdb-7.7.90.20140613/gdb/jv-lang.c
+Index: gdb-7.8.50.20141228/gdb/jv-lang.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/jv-lang.c	2014-06-24 16:07:27.025986631 +0200
-+++ gdb-7.7.90.20140613/gdb/jv-lang.c	2014-06-24 16:07:27.260986892 +0200
+--- gdb-7.8.50.20141228.orig/gdb/jv-lang.c	2015-01-06 22:44:41.535318848 +0100
++++ gdb-7.8.50.20141228/gdb/jv-lang.c	2015-01-06 22:44:43.182326840 +0100
 @@ -436,7 +436,7 @@ java_link_class_type (struct gdbarch *gd
    for (i = TYPE_N_BASECLASSES (type); i < nfields; i++)
      {
@@ -2423,10 +2380,10 @@ Index: gdb-7.7.90.20140613/gdb/jv-lang.c
  	       const struct value_print_options *options)
  {
    const char *type_encoding = java_get_encoding (type);
-Index: gdb-7.7.90.20140613/gdb/jv-lang.h
+Index: gdb-7.8.50.20141228/gdb/jv-lang.h
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/jv-lang.h	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/jv-lang.h	2014-06-24 16:07:27.260986892 +0200
+--- gdb-7.8.50.20141228.orig/gdb/jv-lang.h	2015-01-06 22:44:41.535318848 +0100
++++ gdb-7.8.50.20141228/gdb/jv-lang.h	2015-01-06 22:44:43.182326840 +0100
 @@ -43,8 +43,8 @@ struct builtin_java_type
  
  extern const struct builtin_java_type *builtin_java_type (struct gdbarch *);
@@ -2438,11 +2395,11 @@ Index: gdb-7.7.90.20140613/gdb/jv-lang.h
  			    const struct value *,
  			    const struct value_print_options *);
  
-Index: gdb-7.7.90.20140613/gdb/jv-valprint.c
+Index: gdb-7.8.50.20141228/gdb/jv-valprint.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/jv-valprint.c	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/jv-valprint.c	2014-06-24 16:07:27.260986892 +0200
-@@ -267,7 +267,7 @@ java_value_print (struct value *val, str
+--- gdb-7.8.50.20141228.orig/gdb/jv-valprint.c	2015-01-06 22:44:41.535318848 +0100
++++ gdb-7.8.50.20141228/gdb/jv-valprint.c	2015-01-06 22:44:43.182326840 +0100
+@@ -265,7 +265,7 @@ java_value_print (struct value *val, str
  
  static void
  java_print_value_fields (struct type *type, const gdb_byte *valaddr,
@@ -2451,7 +2408,7 @@ Index: gdb-7.7.90.20140613/gdb/jv-valprint.c
  			 CORE_ADDR address, struct ui_file *stream,
  			 int recurse,
  			 const struct value *val,
-@@ -460,7 +460,7 @@ java_print_value_fields (struct type *ty
+@@ -453,7 +453,7 @@ java_print_value_fields (struct type *ty
  
  void
  java_val_print (struct type *type, const gdb_byte *valaddr,
@@ -2460,11 +2417,11 @@ Index: gdb-7.7.90.20140613/gdb/jv-valprint.c
  		struct ui_file *stream, int recurse,
  		const struct value *val,
  		const struct value_print_options *options)
-Index: gdb-7.7.90.20140613/gdb/language.c
+Index: gdb-7.8.50.20141228/gdb/language.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/language.c	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/language.c	2014-06-24 16:07:27.260986892 +0200
-@@ -722,7 +722,7 @@ unk_lang_printchar (int c, struct type *
+--- gdb-7.8.50.20141228.orig/gdb/language.c	2015-01-06 22:44:41.536318853 +0100
++++ gdb-7.8.50.20141228/gdb/language.c	2015-01-06 22:44:43.183326844 +0100
+@@ -720,7 +720,7 @@ unk_lang_printchar (int c, struct type *
  
  static void
  unk_lang_printstr (struct ui_file *stream, struct type *type,
@@ -2473,7 +2430,7 @@ Index: gdb-7.7.90.20140613/gdb/language.c
  		   const char *encoding, int force_ellipses,
  		   const struct value_print_options *options)
  {
-@@ -741,7 +741,7 @@ unk_lang_print_type (struct type *type,
+@@ -739,7 +739,7 @@ unk_lang_print_type (struct type *type,
  
  static void
  unk_lang_val_print (struct type *type, const gdb_byte *valaddr,
@@ -2482,11 +2439,11 @@ Index: gdb-7.7.90.20140613/gdb/language.c
  		    struct ui_file *stream, int recurse,
  		    const struct value *val,
  		    const struct value_print_options *options)
-Index: gdb-7.7.90.20140613/gdb/language.h
+Index: gdb-7.8.50.20141228/gdb/language.h
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/language.h	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/language.h	2014-06-24 16:07:27.260986892 +0200
-@@ -183,7 +183,7 @@ struct language_defn
+--- gdb-7.8.50.20141228.orig/gdb/language.h	2015-01-06 22:44:41.536318853 +0100
++++ gdb-7.8.50.20141228/gdb/language.h	2015-01-06 22:44:43.183326844 +0100
+@@ -189,7 +189,7 @@ struct language_defn
  			  struct ui_file * stream);
  
      void (*la_printstr) (struct ui_file * stream, struct type *elttype,
@@ -2495,7 +2452,7 @@ Index: gdb-7.7.90.20140613/gdb/language.h
  			 const char *encoding, int force_ellipses,
  			 const struct value_print_options *);
  
-@@ -225,7 +225,7 @@ struct language_defn
+@@ -231,7 +231,7 @@ struct language_defn
  
      void (*la_val_print) (struct type *type,
  			  const gdb_byte *contents,
@@ -2504,10 +2461,10 @@ Index: gdb-7.7.90.20140613/gdb/language.h
  			  struct ui_file *stream, int recurse,
  			  const struct value *val,
  			  const struct value_print_options *options);
-Index: gdb-7.7.90.20140613/gdb/m2-lang.c
+Index: gdb-7.8.50.20141228/gdb/m2-lang.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/m2-lang.c	2014-06-13 03:59:37.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/m2-lang.c	2014-06-24 16:07:27.261986893 +0200
+--- gdb-7.8.50.20141228.orig/gdb/m2-lang.c	2015-01-06 22:44:41.536318853 +0100
++++ gdb-7.8.50.20141228/gdb/m2-lang.c	2015-01-06 22:44:43.183326844 +0100
 @@ -104,10 +104,10 @@ m2_printchar (int c, struct type *type,
  
  static void
@@ -2542,10 +2499,10 @@ Index: gdb-7.7.90.20140613/gdb/m2-lang.c
  	  i = rep1 - 1;
  	  things_printed += options->repeat_count_threshold;
  	  need_comma = 1;
-Index: gdb-7.7.90.20140613/gdb/m2-lang.h
+Index: gdb-7.8.50.20141228/gdb/m2-lang.h
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/m2-lang.h	2014-06-13 03:59:37.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/m2-lang.h	2014-06-24 16:07:27.261986893 +0200
+--- gdb-7.8.50.20141228.orig/gdb/m2-lang.h	2015-01-06 22:44:41.536318853 +0100
++++ gdb-7.8.50.20141228/gdb/m2-lang.h	2015-01-06 22:44:43.183326844 +0100
 @@ -34,7 +34,7 @@ extern void m2_print_typedef (struct typ
  extern int m2_is_long_set (struct type *type);
  extern int m2_is_unbounded_array (struct type *type);
@@ -2555,11 +2512,11 @@ Index: gdb-7.7.90.20140613/gdb/m2-lang.h
  			  struct ui_file *, int,
  			  const struct value *,
  			  const struct value_print_options *);
-Index: gdb-7.7.90.20140613/gdb/m2-typeprint.c
+Index: gdb-7.8.50.20141228/gdb/m2-typeprint.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/m2-typeprint.c	2014-06-13 03:59:37.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/m2-typeprint.c	2014-06-24 16:07:27.261986893 +0200
-@@ -233,9 +233,12 @@ static void m2_array (struct type *type,
+--- gdb-7.8.50.20141228.orig/gdb/m2-typeprint.c	2015-01-06 22:44:41.537318858 +0100
++++ gdb-7.8.50.20141228/gdb/m2-typeprint.c	2015-01-06 22:44:43.183326844 +0100
+@@ -230,9 +230,12 @@ static void m2_array (struct type *type,
  	  m2_print_bounds (TYPE_INDEX_TYPE (type), stream, show, -1, 1);
  	}
        else
@@ -2575,10 +2532,10 @@ Index: gdb-7.7.90.20140613/gdb/m2-typeprint.c
      }
    fprintf_filtered (stream, "] OF ");
    m2_print_type (TYPE_TARGET_TYPE (type), "", stream, show, level, flags);
-Index: gdb-7.7.90.20140613/gdb/m2-valprint.c
+Index: gdb-7.8.50.20141228/gdb/m2-valprint.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/m2-valprint.c	2014-06-13 03:59:37.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/m2-valprint.c	2014-06-24 16:07:27.261986893 +0200
+--- gdb-7.8.50.20141228.orig/gdb/m2-valprint.c	2015-01-06 22:44:41.537318858 +0100
++++ gdb-7.8.50.20141228/gdb/m2-valprint.c	2015-01-06 22:44:43.183326844 +0100
 @@ -35,7 +35,7 @@ static int print_unpacked_pointer (struc
  				   struct ui_file *stream);
  static void
@@ -2644,10 +2601,10 @@ Index: gdb-7.7.90.20140613/gdb/m2-valprint.c
  
  		  /* Look for a NULL char.  */
  		  for (temp_len = 0;
-Index: gdb-7.7.90.20140613/gdb/memrange.c
+Index: gdb-7.8.50.20141228/gdb/memrange.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/memrange.c	2014-06-13 03:59:37.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/memrange.c	2014-06-24 16:07:27.261986893 +0200
+--- gdb-7.8.50.20141228.orig/gdb/memrange.c	2015-01-06 22:44:41.537318858 +0100
++++ gdb-7.8.50.20141228/gdb/memrange.c	2015-01-06 22:44:43.184326849 +0100
 @@ -21,8 +21,8 @@
  #include "memrange.h"
  
@@ -2659,10 +2616,10 @@ Index: gdb-7.7.90.20140613/gdb/memrange.c
  {
    ULONGEST h, l;
  
-Index: gdb-7.7.90.20140613/gdb/memrange.h
+Index: gdb-7.8.50.20141228/gdb/memrange.h
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/memrange.h	2014-06-13 03:59:37.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/memrange.h	2014-06-24 16:07:27.261986893 +0200
+--- gdb-7.8.50.20141228.orig/gdb/memrange.h	2015-01-06 22:44:41.537318858 +0100
++++ gdb-7.8.50.20141228/gdb/memrange.h	2015-01-06 22:44:43.184326849 +0100
 @@ -30,7 +30,7 @@ struct mem_range
    CORE_ADDR start;
  
@@ -2681,13 +2638,13 @@ Index: gdb-7.7.90.20140613/gdb/memrange.h
 +extern int mem_ranges_overlap (CORE_ADDR start1, LONGEST len1,
 +			       CORE_ADDR start2, LONGEST len2);
  
- /* Sort ranges by start address, then coalesce contiguous or
-    overlapping ranges.  */
-Index: gdb-7.7.90.20140613/gdb/mips-linux-nat.c
+ /* Returns true if ADDR is in RANGE.  */
+ 
+Index: gdb-7.8.50.20141228/gdb/mips-linux-nat.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/mips-linux-nat.c	2014-06-13 03:59:37.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/mips-linux-nat.c	2014-06-24 16:07:27.262986894 +0200
-@@ -590,7 +590,7 @@ mips_linux_stopped_data_address (struct
+--- gdb-7.8.50.20141228.orig/gdb/mips-linux-nat.c	2015-01-06 22:44:41.537318858 +0100
++++ gdb-7.8.50.20141228/gdb/mips-linux-nat.c	2015-01-06 22:44:43.184326849 +0100
+@@ -586,7 +586,7 @@ mips_linux_stopped_data_address (struct
  
  static int
  mips_linux_region_ok_for_hw_watchpoint (struct target_ops *self,
@@ -2696,11 +2653,11 @@ Index: gdb-7.7.90.20140613/gdb/mips-linux-nat.c
  {
    struct pt_watch_regs dummy_regs;
    int i;
-Index: gdb-7.7.90.20140613/gdb/opencl-lang.c
+Index: gdb-7.8.50.20141228/gdb/opencl-lang.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/opencl-lang.c	2014-06-13 03:59:37.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/opencl-lang.c	2014-06-24 16:07:27.262986894 +0200
-@@ -80,11 +80,11 @@ builtin_opencl_type (struct gdbarch *gdb
+--- gdb-7.8.50.20141228.orig/gdb/opencl-lang.c	2015-01-06 22:44:41.538318863 +0100
++++ gdb-7.8.50.20141228/gdb/opencl-lang.c	2015-01-06 22:44:43.184326849 +0100
+@@ -78,11 +78,11 @@ builtin_opencl_type (struct gdbarch *gdb
  
  static struct type *
  lookup_opencl_vector_type (struct gdbarch *gdbarch, enum type_code code,
@@ -2714,7 +2671,7 @@ Index: gdb-7.7.90.20140613/gdb/opencl-lang.c
    struct type *type = NULL;
    struct type **types = builtin_opencl_type (gdbarch);
  
-@@ -174,9 +174,9 @@ lval_func_read (struct value *v)
+@@ -172,9 +172,9 @@ lval_func_read (struct value *v)
    struct lval_closure *c = (struct lval_closure *) value_computed_closure (v);
    struct type *type = check_typedef (value_type (v));
    struct type *eltype = TYPE_TARGET_TYPE (check_typedef (value_type (c->val)));
@@ -2727,7 +2684,7 @@ Index: gdb-7.7.90.20140613/gdb/opencl-lang.c
    LONGEST lowb = 0;
    LONGEST highb = 0;
  
-@@ -203,9 +203,9 @@ lval_func_write (struct value *v, struct
+@@ -201,9 +201,9 @@ lval_func_write (struct value *v, struct
    struct lval_closure *c = (struct lval_closure *) value_computed_closure (v);
    struct type *type = check_typedef (value_type (v));
    struct type *eltype = TYPE_TARGET_TYPE (check_typedef (value_type (c->val)));
@@ -2740,56 +2697,7 @@ Index: gdb-7.7.90.20140613/gdb/opencl-lang.c
    LONGEST lowb = 0;
    LONGEST highb = 0;
  
-@@ -243,17 +243,18 @@ lval_func_write (struct value *v, struct
- /* Return nonzero if all bits in V within OFFSET and LENGTH are valid.  */
- 
- static int
--lval_func_check_validity (const struct value *v, int offset, int length)
-+lval_func_check_validity (const struct value *v, LONGEST offset,
-+			  LONGEST length)
- {
-   struct lval_closure *c = (struct lval_closure *) value_computed_closure (v);
-+  struct type *t = check_typedef (value_type (c->val));
-   /* Size of the target type in bits.  */
--  int elsize =
--      TYPE_LENGTH (TYPE_TARGET_TYPE (check_typedef (value_type (c->val)))) * 8;
--  int startrest = offset % elsize;
--  int start = offset / elsize;
--  int endrest = (offset + length) % elsize;
--  int end = (offset + length) / elsize;
--  int i;
-+  LONGEST elsize = TYPE_LENGTH (TYPE_TARGET_TYPE (t)) * 8;
-+  LONGEST startrest = offset % elsize;
-+  LONGEST start = offset / elsize;
-+  LONGEST endrest = (offset + length) % elsize;
-+  LONGEST end = (offset + length) / elsize;
-+  LONGEST i;
- 
-   if (endrest)
-     end++;
-@@ -263,8 +264,8 @@ lval_func_check_validity (const struct v
- 
-   for (i = start; i < end; i++)
-     {
--      int comp_offset = (i == start) ? startrest : 0;
--      int comp_length = (i == end) ? endrest : elsize;
-+      LONGEST comp_offset = (i == start) ? startrest : 0;
-+      LONGEST comp_length = (i == end) ? endrest : elsize;
- 
-       if (!value_bits_valid (c->val, c->indices[i] * elsize + comp_offset,
- 			     comp_length))
-@@ -281,8 +282,8 @@ lval_func_check_any_valid (const struct
- {
-   struct lval_closure *c = (struct lval_closure *) value_computed_closure (v);
-   /* Size of the target type in bits.  */
--  int elsize =
--      TYPE_LENGTH (TYPE_TARGET_TYPE (check_typedef (value_type (c->val)))) * 8;
-+  LONGEST elsize =
-+	   TYPE_LENGTH (TYPE_TARGET_TYPE (check_typedef (value_type (c->val)))) * 8;
-   int i;
- 
-   for (i = 0; i < c->n; i++)
-@@ -297,17 +298,17 @@ lval_func_check_any_valid (const struct
+@@ -243,17 +243,17 @@ lval_func_write (struct value *v, struct
  
  static int
  lval_func_check_synthetic_pointer (const struct value *v,
@@ -2799,14 +2707,13 @@ Index: gdb-7.7.90.20140613/gdb/opencl-lang.c
    struct lval_closure *c = (struct lval_closure *) value_computed_closure (v);
    /* Size of the target type in bits.  */
 -  int elsize =
--      TYPE_LENGTH (TYPE_TARGET_TYPE (check_typedef (value_type (c->val)))) * 8;
++  LONGEST elsize =
+       TYPE_LENGTH (TYPE_TARGET_TYPE (check_typedef (value_type (c->val)))) * 8;
 -  int startrest = offset % elsize;
 -  int start = offset / elsize;
 -  int endrest = (offset + length) % elsize;
 -  int end = (offset + length) / elsize;
 -  int i;
-+  LONGEST elsize =
-+	   TYPE_LENGTH (TYPE_TARGET_TYPE (check_typedef (value_type (c->val)))) * 8;
 +  LONGEST startrest = offset % elsize;
 +  LONGEST start = offset / elsize;
 +  LONGEST endrest = (offset + length) % elsize;
@@ -2815,7 +2722,7 @@ Index: gdb-7.7.90.20140613/gdb/opencl-lang.c
  
    if (endrest)
      end++;
-@@ -317,8 +318,8 @@ lval_func_check_synthetic_pointer (const
+@@ -263,8 +263,8 @@ lval_func_check_synthetic_pointer (const
  
    for (i = start; i < end; i++)
      {
@@ -2826,11 +2733,11 @@ Index: gdb-7.7.90.20140613/gdb/opencl-lang.c
  
        if (!value_bits_synthetic_pointer (c->val,
  					 c->indices[i] * elsize + comp_offset,
-Index: gdb-7.7.90.20140613/gdb/p-lang.c
+Index: gdb-7.8.50.20141228/gdb/p-lang.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/p-lang.c	2014-06-13 03:59:37.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/p-lang.c	2014-06-24 16:07:27.262986894 +0200
-@@ -96,8 +96,8 @@ pascal_main_name (void)
+--- gdb-7.8.50.20141228.orig/gdb/p-lang.c	2015-01-06 22:44:41.538318863 +0100
++++ gdb-7.8.50.20141228/gdb/p-lang.c	2015-01-06 22:44:43.184326849 +0100
+@@ -95,8 +95,8 @@ pascal_main_name (void)
     are not multiple of TARGET_CHAR_BIT then the results are wrong
     but this does not happen for Free Pascal nor for GPC.  */
  int
@@ -2841,7 +2748,7 @@ Index: gdb-7.7.90.20140613/gdb/p-lang.c
  		       struct type **char_type,
  		       const char **arrayname)
  {
-@@ -217,12 +217,12 @@ pascal_printchar (int c, struct type *ty
+@@ -216,12 +216,12 @@ pascal_printchar (int c, struct type *ty
  
  void
  pascal_printstr (struct ui_file *stream, struct type *type,
@@ -2856,7 +2763,7 @@ Index: gdb-7.7.90.20140613/gdb/p-lang.c
    unsigned int things_printed = 0;
    int in_quotes = 0;
    int need_comma = 0;
-@@ -250,9 +250,9 @@ pascal_printstr (struct ui_file *stream,
+@@ -249,9 +249,9 @@ pascal_printstr (struct ui_file *stream,
      {
        /* Position of the character we are examining
           to see whether it is repeated.  */
@@ -2868,7 +2775,7 @@ Index: gdb-7.7.90.20140613/gdb/p-lang.c
        unsigned long int current_char;
  
        QUIT;
-@@ -284,7 +284,7 @@ pascal_printstr (struct ui_file *stream,
+@@ -283,7 +283,7 @@ pascal_printstr (struct ui_file *stream,
  	      in_quotes = 0;
  	    }
  	  pascal_printchar (current_char, type, stream);
@@ -2877,10 +2784,10 @@ Index: gdb-7.7.90.20140613/gdb/p-lang.c
  	  i = rep1 - 1;
  	  things_printed += options->repeat_count_threshold;
  	  need_comma = 1;
-Index: gdb-7.7.90.20140613/gdb/p-lang.h
+Index: gdb-7.8.50.20141228/gdb/p-lang.h
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/p-lang.h	2014-06-13 03:59:37.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/p-lang.h	2014-06-24 16:07:27.262986894 +0200
+--- gdb-7.8.50.20141228.orig/gdb/p-lang.h	2015-01-06 22:44:41.538318863 +0100
++++ gdb-7.8.50.20141228/gdb/p-lang.h	2015-01-06 22:44:43.184326849 +0100
 @@ -36,7 +36,7 @@ extern void pascal_print_type (struct ty
  extern void pascal_print_typedef (struct type *, struct symbol *,
  				  struct ui_file *);
@@ -2915,11 +2822,11 @@ Index: gdb-7.7.90.20140613/gdb/p-lang.h
  					      CORE_ADDR, struct ui_file *,
  					      int,
  					      const struct value *,
-Index: gdb-7.7.90.20140613/gdb/p-valprint.c
+Index: gdb-7.8.50.20141228/gdb/p-valprint.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/p-valprint.c	2014-06-13 03:59:37.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/p-valprint.c	2014-06-24 16:07:27.262986894 +0200
-@@ -58,7 +58,7 @@ static const struct generic_val_print_de
+--- gdb-7.8.50.20141228.orig/gdb/p-valprint.c	2015-01-06 22:44:41.539318868 +0100
++++ gdb-7.8.50.20141228/gdb/p-valprint.c	2015-01-06 22:44:43.185326854 +0100
+@@ -57,7 +57,7 @@ static const struct generic_val_print_de
  
  void
  pascal_val_print (struct type *type, const gdb_byte *valaddr,
@@ -2928,7 +2835,7 @@ Index: gdb-7.7.90.20140613/gdb/p-valprint.c
  		  struct ui_file *stream, int recurse,
  		  const struct value *original_value,
  		  const struct value_print_options *options)
-@@ -69,8 +69,8 @@ pascal_val_print (struct type *type, con
+@@ -68,8 +68,8 @@ pascal_val_print (struct type *type, con
    unsigned len;
    LONGEST low_bound, high_bound;
    struct type *elttype;
@@ -2939,7 +2846,7 @@ Index: gdb-7.7.90.20140613/gdb/p-valprint.c
    struct type *char_type;
    CORE_ADDR addr;
    int want_space = 0;
-@@ -468,7 +468,7 @@ static void pascal_object_print_static_f
+@@ -467,7 +467,7 @@ static void pascal_object_print_static_f
  					      const struct value_print_options *);
  
  static void pascal_object_print_value (struct type *, const gdb_byte *,
@@ -2948,7 +2855,7 @@ Index: gdb-7.7.90.20140613/gdb/p-valprint.c
  				       CORE_ADDR, struct ui_file *, int,
  				       const struct value *,
  				       const struct value_print_options *,
-@@ -527,7 +527,7 @@ pascal_object_is_vtbl_member (struct typ
+@@ -526,7 +526,7 @@ pascal_object_is_vtbl_member (struct typ
  
  void
  pascal_object_print_value_fields (struct type *type, const gdb_byte *valaddr,
@@ -2957,7 +2864,7 @@ Index: gdb-7.7.90.20140613/gdb/p-valprint.c
  				  CORE_ADDR address, struct ui_file *stream,
  				  int recurse,
  				  const struct value *val,
-@@ -703,7 +703,7 @@ pascal_object_print_value_fields (struct
+@@ -697,7 +697,7 @@ pascal_object_print_value_fields (struct
  
  static void
  pascal_object_print_value (struct type *type, const gdb_byte *valaddr,
@@ -2966,7 +2873,7 @@ Index: gdb-7.7.90.20140613/gdb/p-valprint.c
  			   CORE_ADDR address, struct ui_file *stream,
  			   int recurse,
  			   const struct value *val,
-@@ -726,11 +726,11 @@ pascal_object_print_value (struct type *
+@@ -720,11 +720,11 @@ pascal_object_print_value (struct type *
  
    for (i = 0; i < n_baseclasses; i++)
      {
@@ -2980,11 +2887,11 @@ Index: gdb-7.7.90.20140613/gdb/p-valprint.c
        volatile struct gdb_exception ex;
        int skip = 0;
  
-Index: gdb-7.7.90.20140613/gdb/ppc-linux-nat.c
+Index: gdb-7.8.50.20141228/gdb/ppc-linux-nat.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/ppc-linux-nat.c	2014-06-13 03:59:37.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/ppc-linux-nat.c	2014-06-24 16:07:27.263986895 +0200
-@@ -1498,7 +1498,7 @@ ppc_linux_can_use_hw_breakpoint (struct
+--- gdb-7.8.50.20141228.orig/gdb/ppc-linux-nat.c	2015-01-06 22:44:41.539318868 +0100
++++ gdb-7.8.50.20141228/gdb/ppc-linux-nat.c	2015-01-06 22:44:43.185326854 +0100
+@@ -1501,7 +1501,7 @@ ppc_linux_can_use_hw_breakpoint (struct
  
  static int
  ppc_linux_region_ok_for_hw_watchpoint (struct target_ops *self,
@@ -2993,11 +2900,11 @@ Index: gdb-7.7.90.20140613/gdb/ppc-linux-nat.c
  {
    /* Handle sub-8-byte quantities.  */
    if (len <= 0)
-Index: gdb-7.7.90.20140613/gdb/printcmd.c
+Index: gdb-7.8.50.20141228/gdb/printcmd.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/printcmd.c	2014-06-24 16:07:26.640986204 +0200
-+++ gdb-7.7.90.20140613/gdb/printcmd.c	2014-06-24 16:07:27.263986895 +0200
-@@ -288,7 +288,7 @@ print_formatted (struct value *val, int
+--- gdb-7.8.50.20141228.orig/gdb/printcmd.c	2015-01-06 22:44:41.540318872 +0100
++++ gdb-7.8.50.20141228/gdb/printcmd.c	2015-01-06 22:44:43.185326854 +0100
+@@ -285,7 +285,7 @@ print_formatted (struct value *val, int
  		 struct ui_file *stream)
  {
    struct type *type = check_typedef (value_type (val));
@@ -3006,7 +2913,7 @@ Index: gdb-7.7.90.20140613/gdb/printcmd.c
  
    if (VALUE_LVAL (val) == lval_memory)
      next_address = value_address (val) + len;
-@@ -366,7 +366,7 @@ print_scalar_formatted (const void *vala
+@@ -363,7 +363,7 @@ print_scalar_formatted (const void *vala
  {
    struct gdbarch *gdbarch = get_type_arch (type);
    LONGEST val_long = 0;
@@ -3015,11 +2922,11 @@ Index: gdb-7.7.90.20140613/gdb/printcmd.c
    enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
  
    /* String printing should go through val_print_scalar_formatted.  */
-Index: gdb-7.7.90.20140613/gdb/procfs.c
+Index: gdb-7.8.50.20141228/gdb/procfs.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/procfs.c	2014-06-13 03:59:37.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/procfs.c	2014-06-24 16:07:27.264986896 +0200
-@@ -4916,7 +4916,7 @@ procfs_remove_watchpoint (struct target_
+--- gdb-7.8.50.20141228.orig/gdb/procfs.c	2015-01-06 22:44:41.541318877 +0100
++++ gdb-7.8.50.20141228/gdb/procfs.c	2015-01-06 22:44:43.186326859 +0100
+@@ -4859,7 +4859,7 @@ procfs_remove_watchpoint (struct target_
  
  static int
  procfs_region_ok_for_hw_watchpoint (struct target_ops *self,
@@ -3028,11 +2935,11 @@ Index: gdb-7.7.90.20140613/gdb/procfs.c
  {
    /* The man page for proc(4) on Solaris 2.6 and up says that the
       system can support "thousands" of hardware watchpoints, but gives
-Index: gdb-7.7.90.20140613/gdb/python/py-prettyprint.c
+Index: gdb-7.8.50.20141228/gdb/python/py-prettyprint.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/python/py-prettyprint.c	2014-06-13 03:59:37.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/python/py-prettyprint.c	2014-06-24 16:07:27.264986896 +0200
-@@ -687,7 +687,7 @@ print_children (PyObject *printer, const
+--- gdb-7.8.50.20141228.orig/gdb/python/py-prettyprint.c	2015-01-06 22:44:41.541318877 +0100
++++ gdb-7.8.50.20141228/gdb/python/py-prettyprint.c	2015-01-06 22:44:43.186326859 +0100
+@@ -686,7 +686,7 @@ print_children (PyObject *printer, const
  enum ext_lang_rc
  gdbpy_apply_val_pretty_printer (const struct extension_language_defn *extlang,
  				struct type *type, const gdb_byte *valaddr,
@@ -3041,11 +2948,11 @@ Index: gdb-7.7.90.20140613/gdb/python/py-prettyprint.c
  				struct ui_file *stream, int recurse,
  				const struct value *val,
  				const struct value_print_options *options,
-Index: gdb-7.7.90.20140613/gdb/regcache.c
+Index: gdb-7.8.50.20141228/gdb/regcache.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/regcache.c	2014-06-13 03:59:37.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/regcache.c	2014-06-24 16:07:27.264986896 +0200
-@@ -899,7 +899,7 @@ typedef void (regcache_write_ftype) (str
+--- gdb-7.8.50.20141228.orig/gdb/regcache.c	2015-01-06 22:44:41.542318882 +0100
++++ gdb-7.8.50.20141228/gdb/regcache.c	2015-01-06 22:44:43.187326864 +0100
+@@ -941,7 +941,7 @@ typedef void (regcache_write_ftype) (str
  
  static enum register_status
  regcache_xfer_part (struct regcache *regcache, int regnum,
@@ -3054,7 +2961,7 @@ Index: gdb-7.7.90.20140613/gdb/regcache.c
  		    enum register_status (*read) (struct regcache *regcache,
  						  int regnum,
  						  gdb_byte *buf),
-@@ -943,7 +943,7 @@ regcache_xfer_part (struct regcache *reg
+@@ -985,7 +985,7 @@ regcache_xfer_part (struct regcache *reg
  
  enum register_status
  regcache_raw_read_part (struct regcache *regcache, int regnum,
@@ -3063,7 +2970,7 @@ Index: gdb-7.7.90.20140613/gdb/regcache.c
  {
    struct regcache_descr *descr = regcache->descr;
  
-@@ -954,7 +954,7 @@ regcache_raw_read_part (struct regcache
+@@ -996,7 +996,7 @@ regcache_raw_read_part (struct regcache
  
  void
  regcache_raw_write_part (struct regcache *regcache, int regnum,
@@ -3072,7 +2979,7 @@ Index: gdb-7.7.90.20140613/gdb/regcache.c
  {
    struct regcache_descr *descr = regcache->descr;
  
-@@ -965,7 +965,7 @@ regcache_raw_write_part (struct regcache
+@@ -1007,7 +1007,7 @@ regcache_raw_write_part (struct regcache
  
  enum register_status
  regcache_cooked_read_part (struct regcache *regcache, int regnum,
@@ -3081,7 +2988,7 @@ Index: gdb-7.7.90.20140613/gdb/regcache.c
  {
    struct regcache_descr *descr = regcache->descr;
  
-@@ -976,7 +976,7 @@ regcache_cooked_read_part (struct regcac
+@@ -1018,7 +1018,7 @@ regcache_cooked_read_part (struct regcac
  
  void
  regcache_cooked_write_part (struct regcache *regcache, int regnum,
@@ -3090,11 +2997,11 @@ Index: gdb-7.7.90.20140613/gdb/regcache.c
  {
    struct regcache_descr *descr = regcache->descr;
  
-Index: gdb-7.7.90.20140613/gdb/regcache.h
+Index: gdb-7.8.50.20141228/gdb/regcache.h
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/regcache.h	2014-06-13 03:59:37.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/regcache.h	2014-06-24 16:07:27.265986897 +0200
-@@ -89,9 +89,9 @@ extern void regcache_raw_write_unsigned
+--- gdb-7.8.50.20141228.orig/gdb/regcache.h	2015-01-06 22:44:41.542318882 +0100
++++ gdb-7.8.50.20141228/gdb/regcache.h	2015-01-06 22:44:43.187326864 +0100
+@@ -92,9 +92,9 @@ extern void regcache_raw_write_unsigned
  
  extern enum register_status
    regcache_raw_read_part (struct regcache *regcache, int regnum,
@@ -3106,7 +3013,7 @@ Index: gdb-7.7.90.20140613/gdb/regcache.h
  
  void regcache_invalidate (struct regcache *regcache, int regnum);
  
-@@ -128,10 +128,11 @@ extern void regcache_cooked_write_unsign
+@@ -131,10 +131,11 @@ extern void regcache_cooked_write_unsign
     write style operations.  */
  
  enum register_status regcache_cooked_read_part (struct regcache *regcache,
@@ -3121,11 +3028,11 @@ Index: gdb-7.7.90.20140613/gdb/regcache.h
  
  /* Special routines to read/write the PC.  */
  
-Index: gdb-7.7.90.20140613/gdb/remote.c
+Index: gdb-7.8.50.20141228/gdb/remote.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/remote.c	2014-06-24 16:07:26.658986224 +0200
-+++ gdb-7.7.90.20140613/gdb/remote.c	2014-06-24 16:07:27.266986898 +0200
-@@ -8272,7 +8272,7 @@ int remote_hw_breakpoint_limit = -1;
+--- gdb-7.8.50.20141228.orig/gdb/remote.c	2015-01-06 22:44:41.544318892 +0100
++++ gdb-7.8.50.20141228/gdb/remote.c	2015-01-06 22:44:43.188326869 +0100
+@@ -8371,7 +8371,7 @@ int remote_hw_breakpoint_limit = -1;
  
  static int
  remote_region_ok_for_hw_watchpoint (struct target_ops *self,
@@ -3134,24 +3041,24 @@ Index: gdb-7.7.90.20140613/gdb/remote.c
  {
    if (remote_hw_watchpoint_length_limit == 0)
      return 0;
-Index: gdb-7.7.90.20140613/gdb/spu-multiarch.c
+Index: gdb-7.8.50.20141228/gdb/spu-multiarch.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/spu-multiarch.c	2014-06-13 03:59:37.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/spu-multiarch.c	2014-06-24 16:07:27.266986898 +0200
-@@ -119,7 +119,7 @@ spu_thread_architecture (struct target_o
+--- gdb-7.8.50.20141228.orig/gdb/spu-multiarch.c	2015-01-06 22:44:41.545318897 +0100
++++ gdb-7.8.50.20141228/gdb/spu-multiarch.c	2015-01-06 22:44:43.188326869 +0100
+@@ -117,7 +117,7 @@ spu_thread_architecture (struct target_o
  /* Override the to_region_ok_for_hw_watchpoint routine.  */
  static int
  spu_region_ok_for_hw_watchpoint (struct target_ops *self,
 -				 CORE_ADDR addr, int len)
 +				 CORE_ADDR addr, LONGEST len)
  {
-   struct target_ops *ops_beneath = find_target_beneath (&spu_ops);
-   while (ops_beneath && !ops_beneath->to_region_ok_for_hw_watchpoint)
-Index: gdb-7.7.90.20140613/gdb/stack.c
+   struct target_ops *ops_beneath = find_target_beneath (self);
+ 
+Index: gdb-7.8.50.20141228/gdb/stack.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/stack.c	2014-06-13 03:59:37.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/stack.c	2014-06-24 16:07:27.267986900 +0200
-@@ -179,7 +179,7 @@ print_stack_frame (struct frame_info *fr
+--- gdb-7.8.50.20141228.orig/gdb/stack.c	2015-01-06 22:44:41.546318902 +0100
++++ gdb-7.8.50.20141228/gdb/stack.c	2015-01-06 22:44:43.189326874 +0100
+@@ -175,7 +175,7 @@ print_stack_frame (struct frame_info *fr
     argument (not just the first nameless argument).  */
  
  static void
@@ -3160,7 +3067,7 @@ Index: gdb-7.7.90.20140613/gdb/stack.c
  			   int first, struct ui_file *stream)
  {
    struct gdbarch *gdbarch = get_frame_arch (frame);
-@@ -525,7 +525,7 @@ print_frame_args (struct symbol *func, s
+@@ -524,7 +524,7 @@ print_frame_args (struct symbol *func, s
    /* Offset of next stack argument beyond the one we have seen that is
       at the highest offset, or -1 if we haven't come to a stack
       argument yet.  */
@@ -3169,7 +3076,7 @@ Index: gdb-7.7.90.20140613/gdb/stack.c
    /* Number of ints of arguments that we have printed so far.  */
    int args_printed = 0;
    struct cleanup *old_chain;
-@@ -559,8 +559,8 @@ print_frame_args (struct symbol *func, s
+@@ -558,8 +558,8 @@ print_frame_args (struct symbol *func, s
  	    case LOC_ARG:
  	    case LOC_REF_ARG:
  	      {
@@ -3180,7 +3087,7 @@ Index: gdb-7.7.90.20140613/gdb/stack.c
  
  		/* Compute address of next argument by adding the size of
  		   this argument and rounding to an int boundary.  */
-@@ -695,7 +695,7 @@ print_frame_args (struct symbol *func, s
+@@ -694,7 +694,7 @@ print_frame_args (struct symbol *func, s
       enough about the stack to find them.  */
    if (num != -1)
      {
@@ -3189,11 +3096,11 @@ Index: gdb-7.7.90.20140613/gdb/stack.c
  
        if (highest_offset == -1)
  	start = gdbarch_frame_args_skip (get_frame_arch (frame));
-Index: gdb-7.7.90.20140613/gdb/symmisc.c
+Index: gdb-7.8.50.20141228/gdb/symmisc.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/symmisc.c	2014-06-24 16:07:26.747986322 +0200
-+++ gdb-7.7.90.20140613/gdb/symmisc.c	2014-06-24 16:07:27.267986900 +0200
-@@ -530,11 +530,11 @@ print_symbol (void *args)
+--- gdb-7.8.50.20141228.orig/gdb/symmisc.c	2015-01-06 22:44:41.546318902 +0100
++++ gdb-7.8.50.20141228/gdb/symmisc.c	2015-01-06 22:44:43.189326874 +0100
+@@ -534,11 +534,11 @@ print_symbol (void *args)
  
  	case LOC_CONST_BYTES:
  	  {
@@ -3208,29 +3115,20 @@ Index: gdb-7.7.90.20140613/gdb/symmisc.c
  	    for (i = 0; i < TYPE_LENGTH (type); i++)
  	      fprintf_filtered (outfile, " %02x",
  				(unsigned) SYMBOL_VALUE_BYTES (symbol)[i]);
-Index: gdb-7.7.90.20140613/gdb/target.c
+Index: gdb-7.8.50.20141228/gdb/target.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/target.c	2014-06-13 03:59:37.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/target.c	2014-06-24 16:07:27.268986901 +0200
-@@ -55,7 +55,7 @@ static int default_watchpoint_addr_withi
+--- gdb-7.8.50.20141228.orig/gdb/target.c	2015-01-06 22:44:41.547318906 +0100
++++ gdb-7.8.50.20141228/gdb/target.c	2015-01-06 22:44:43.190326878 +0100
+@@ -54,7 +54,7 @@ static int default_watchpoint_addr_withi
  						 CORE_ADDR, CORE_ADDR, int);
  
  static int default_region_ok_for_hw_watchpoint (struct target_ops *,
 -						CORE_ADDR, int);
 +						CORE_ADDR, LONGEST);
  
- static void default_rcmd (struct target_ops *, char *, struct ui_file *);
- 
-@@ -153,7 +153,7 @@ static int debug_to_watchpoint_addr_with
- 						  CORE_ADDR, CORE_ADDR, int);
+ static void default_rcmd (struct target_ops *, const char *, struct ui_file *);
  
- static int debug_to_region_ok_for_hw_watchpoint (struct target_ops *self,
--						 CORE_ADDR, int);
-+						 CORE_ADDR, LONGEST);
- 
- static int debug_to_can_accel_watchpoint_condition (struct target_ops *self,
- 						    CORE_ADDR, int, int,
-@@ -2951,7 +2951,7 @@ target_fileio_read_stralloc (const char
+@@ -2975,7 +2975,7 @@ target_fileio_read_stralloc (const char
  
  static int
  default_region_ok_for_hw_watchpoint (struct target_ops *self,
@@ -3239,20 +3137,11 @@ Index: gdb-7.7.90.20140613/gdb/target.c
  {
    return (len <= gdbarch_ptr_bit (target_gdbarch ()) / TARGET_CHAR_BIT);
  }
-@@ -3664,7 +3664,7 @@ debug_to_can_use_hw_breakpoint (struct t
- 
- static int
- debug_to_region_ok_for_hw_watchpoint (struct target_ops *self,
--				      CORE_ADDR addr, int len)
-+				      CORE_ADDR addr, LONGEST len)
- {
-   CORE_ADDR retval;
- 
-Index: gdb-7.7.90.20140613/gdb/target.h
+Index: gdb-7.8.50.20141228/gdb/target.h
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/target.h	2014-06-24 16:07:27.060986670 +0200
-+++ gdb-7.7.90.20140613/gdb/target.h	2014-06-24 16:07:27.268986901 +0200
-@@ -475,7 +475,7 @@ struct target_ops
+--- gdb-7.8.50.20141228.orig/gdb/target.h	2015-01-06 22:44:41.547318906 +0100
++++ gdb-7.8.50.20141228/gdb/target.h	2015-01-06 22:44:43.190326878 +0100
+@@ -489,7 +489,7 @@ struct target_ops
      /* Documentation of this routine is provided with the corresponding
         target_* macro.  */
      int (*to_region_ok_for_hw_watchpoint) (struct target_ops *,
@@ -3261,11 +3150,11 @@ Index: gdb-7.7.90.20140613/gdb/target.h
        TARGET_DEFAULT_FUNC (default_region_ok_for_hw_watchpoint);
  
      int (*to_can_accel_watchpoint_condition) (struct target_ops *,
-Index: gdb-7.7.90.20140613/gdb/tracepoint.c
+Index: gdb-7.8.50.20141228/gdb/tracepoint.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/tracepoint.c	2014-06-13 03:59:37.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/tracepoint.c	2014-06-24 16:07:27.269986902 +0200
-@@ -930,13 +930,13 @@ add_register (struct collection_list *co
+--- gdb-7.8.50.20141228.orig/gdb/tracepoint.c	2015-01-06 22:44:41.549318916 +0100
++++ gdb-7.8.50.20141228/gdb/tracepoint.c	2015-01-06 22:44:43.191326883 +0100
+@@ -928,13 +928,13 @@ add_register (struct collection_list *co
  static void
  add_memrange (struct collection_list *memranges, 
  	      int type, bfd_signed_vma base,
@@ -3281,7 +3170,7 @@ Index: gdb-7.7.90.20140613/gdb/tracepoint.c
      }
  
    /* type: memrange_absolute == memory, other n == basereg */
-@@ -966,7 +966,7 @@ collect_symbol (struct collection_list *
+@@ -964,7 +964,7 @@ collect_symbol (struct collection_list *
  		CORE_ADDR scope,
  		int trace_string)
  {
@@ -3290,7 +3179,7 @@ Index: gdb-7.7.90.20140613/gdb/tracepoint.c
    unsigned int reg;
    bfd_signed_vma offset;
    int treat_as_expr = 0;
-@@ -990,8 +990,8 @@ collect_symbol (struct collection_list *
+@@ -988,8 +988,8 @@ collect_symbol (struct collection_list *
  	  char tmp[40];
  
  	  sprintf_vma (tmp, offset);
@@ -3301,7 +3190,7 @@ Index: gdb-7.7.90.20140613/gdb/tracepoint.c
  			   tmp /* address */);
  	}
        /* A struct may be a C++ class with static fields, go to general
-@@ -1023,8 +1023,8 @@ collect_symbol (struct collection_list *
+@@ -1021,8 +1021,8 @@ collect_symbol (struct collection_list *
        offset = frame_offset + SYMBOL_VALUE (sym);
        if (info_verbose)
  	{
@@ -3312,7 +3201,7 @@ Index: gdb-7.7.90.20140613/gdb/tracepoint.c
  	  printf_vma (offset);
  	  printf_filtered (" from frame ptr reg %d\n", reg);
  	}
-@@ -1035,8 +1035,8 @@ collect_symbol (struct collection_list *
+@@ -1033,8 +1033,8 @@ collect_symbol (struct collection_list *
        offset = 0;
        if (info_verbose)
  	{
@@ -3323,7 +3212,7 @@ Index: gdb-7.7.90.20140613/gdb/tracepoint.c
  	  printf_vma (offset);
  	  printf_filtered (" from reg %d\n", reg);
  	}
-@@ -1047,8 +1047,8 @@ collect_symbol (struct collection_list *
+@@ -1045,8 +1045,8 @@ collect_symbol (struct collection_list *
        offset = frame_offset + SYMBOL_VALUE (sym);
        if (info_verbose)
  	{
@@ -3358,11 +3247,11 @@ Index: gdb-7.7.90.20140613/gdb/tracepoint.c
  	}
        if (BLOCK_FUNCTION (block))
  	break;
-Index: gdb-7.7.90.20140613/gdb/typeprint.c
+Index: gdb-7.8.50.20141228/gdb/typeprint.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/typeprint.c	2014-06-24 16:07:26.339985870 +0200
-+++ gdb-7.7.90.20140613/gdb/typeprint.c	2014-06-24 16:07:27.269986902 +0200
-@@ -405,7 +405,7 @@ whatis_exp (char *exp, int show)
+--- gdb-7.8.50.20141228.orig/gdb/typeprint.c	2015-01-06 22:44:41.550318921 +0100
++++ gdb-7.8.50.20141228/gdb/typeprint.c	2015-01-06 22:44:43.191326883 +0100
+@@ -402,7 +402,7 @@ whatis_exp (char *exp, int show)
    struct type *real_type = NULL;
    struct type *type;
    int full = 0;
@@ -3371,11 +3260,11 @@ Index: gdb-7.7.90.20140613/gdb/typeprint.c
    int using_enc = 0;
    struct value_print_options opts;
    struct type_print_options flags = default_ptype_flags;
-Index: gdb-7.7.90.20140613/gdb/valarith.c
+Index: gdb-7.8.50.20141228/gdb/valarith.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/valarith.c	2014-06-24 16:07:26.411985950 +0200
-+++ gdb-7.7.90.20140613/gdb/valarith.c	2014-06-24 16:07:27.269986902 +0200
-@@ -190,12 +190,13 @@ value_subscript (struct value *array, LO
+--- gdb-7.8.50.20141228.orig/gdb/valarith.c	2015-01-06 22:44:41.550318921 +0100
++++ gdb-7.8.50.20141228/gdb/valarith.c	2015-01-06 22:45:54.011670512 +0100
+@@ -188,12 +188,13 @@ value_subscript (struct value *array, LO
     to doubles, but no longer does.  */
  
  struct value *
@@ -3392,18 +3281,16 @@ Index: gdb-7.7.90.20140613/gdb/valarith.c
    LONGEST elt_stride = TYPE_BYTE_STRIDE (TYPE_INDEX_TYPE (array_type));
    struct value *v;
  
-@@ -204,7 +205,9 @@ value_subscripted_rvalue (struct value *
+@@ -202,7 +203,7 @@ value_subscripted_rvalue (struct value *
    if (TYPE_NOT_ALLOCATED (array_type))
      error (_("no such vector element because not allocated"));
  
 -  elt_offs = longest_to_int (index - lowerbound);
-+  if (index < lowerbound)
-+    error (_("no such vector element"));
 +  elt_offs = index - lowerbound;
  
    if (elt_stride > 0)
      elt_offs *= elt_stride;
-@@ -662,7 +665,7 @@ value_concat (struct value *arg1, struct
+@@ -663,7 +664,7 @@ value_concat (struct value *arg1, struct
    struct value *inval1;
    struct value *inval2;
    struct value *outval = NULL;
@@ -3412,7 +3299,7 @@ Index: gdb-7.7.90.20140613/gdb/valarith.c
    int count, idx;
    char *ptr;
    char inchar;
-@@ -1515,7 +1518,7 @@ value_binop (struct value *arg1, struct
+@@ -1516,7 +1517,7 @@ value_binop (struct value *arg1, struct
  int
  value_logical_not (struct value *arg1)
  {
@@ -3421,7 +3308,7 @@ Index: gdb-7.7.90.20140613/gdb/valarith.c
    const gdb_byte *p;
    struct type *type1;
  
-@@ -1546,11 +1549,11 @@ value_logical_not (struct value *arg1)
+@@ -1547,11 +1548,11 @@ value_logical_not (struct value *arg1)
  static int
  value_strcmp (struct value *arg1, struct value *arg2)
  {
@@ -3436,11 +3323,11 @@ Index: gdb-7.7.90.20140613/gdb/valarith.c
  
    for (i = 0; i < len; i++)
      {
-Index: gdb-7.7.90.20140613/gdb/valops.c
+Index: gdb-7.8.50.20141228/gdb/valops.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/valops.c	2014-06-24 16:07:26.946986543 +0200
-+++ gdb-7.7.90.20140613/gdb/valops.c	2014-06-24 16:07:27.270986903 +0200
-@@ -51,11 +51,11 @@ static int typecmp (int staticp, int var
+--- gdb-7.8.50.20141228.orig/gdb/valops.c	2015-01-06 22:44:41.555318945 +0100
++++ gdb-7.8.50.20141228/gdb/valops.c	2015-01-06 22:44:43.192326888 +0100
+@@ -47,11 +47,11 @@ static int typecmp (int staticp, int var
  		    struct field t1[], struct value *t2[]);
  
  static struct value *search_struct_field (const char *, struct value *, 
@@ -3454,7 +3341,7 @@ Index: gdb-7.7.90.20140613/gdb/valops.c
  
  static int find_oload_champ_namespace (struct value **, int,
  				       const char *, const char *,
-@@ -83,7 +83,7 @@ oload_classification classify_oload_matc
+@@ -79,7 +79,7 @@ oload_classification classify_oload_matc
  					   int, int);
  
  static struct value *value_struct_elt_for_reference (struct type *,
@@ -3463,7 +3350,7 @@ Index: gdb-7.7.90.20140613/gdb/valops.c
  						     const char *,
  						     struct type *,
  						     int, enum noside);
-@@ -100,9 +100,9 @@ static CORE_ADDR allocate_space_in_infer
+@@ -96,9 +96,9 @@ static CORE_ADDR allocate_space_in_infer
  static struct value *cast_into_complex (struct type *, struct value *);
  
  static void find_method_list (struct value **, const char *,
@@ -3475,7 +3362,7 @@ Index: gdb-7.7.90.20140613/gdb/valops.c
  
  void _initialize_valops (void);
  
-@@ -187,7 +187,7 @@ find_function_in_inferior (const char *n
+@@ -183,7 +183,7 @@ find_function_in_inferior (const char *n
     space.  */
  
  struct value *
@@ -3484,7 +3371,7 @@ Index: gdb-7.7.90.20140613/gdb/valops.c
  {
    struct objfile *objf;
    struct value *val = find_function_in_inferior ("malloc", &objf);
-@@ -260,7 +260,8 @@ value_cast_structs (struct type *type, s
+@@ -256,7 +256,8 @@ value_cast_structs (struct type *type, s
    if (TYPE_NAME (t2) != NULL)
      {
        /* Try downcasting using the run-time type of the value.  */
@@ -3494,7 +3381,7 @@ Index: gdb-7.7.90.20140613/gdb/valops.c
        struct type *real_type;
  
        real_type = value_rtti_type (v2, &full, &top, &using_enc);
-@@ -400,12 +401,12 @@ value_cast (struct type *type, struct va
+@@ -396,12 +397,12 @@ value_cast (struct type *type, struct va
    if (code1 == TYPE_CODE_ARRAY)
      {
        struct type *element_type = TYPE_TARGET_TYPE (type);
@@ -3509,7 +3396,7 @@ Index: gdb-7.7.90.20140613/gdb/valops.c
  	  LONGEST low_bound, high_bound, new_length;
  
  	  if (get_discrete_bounds (range_type, &low_bound, &high_bound) < 0)
-@@ -639,7 +640,7 @@ value_reinterpret_cast (struct type *typ
+@@ -635,7 +636,7 @@ value_reinterpret_cast (struct type *typ
  static int
  dynamic_cast_check_1 (struct type *desired_type,
  		      const gdb_byte *valaddr,
@@ -3518,7 +3405,7 @@ Index: gdb-7.7.90.20140613/gdb/valops.c
  		      CORE_ADDR address,
  		      struct value *val,
  		      struct type *search_type,
-@@ -651,8 +652,8 @@ dynamic_cast_check_1 (struct type *desir
+@@ -647,8 +648,8 @@ dynamic_cast_check_1 (struct type *desir
  
    for (i = 0; i < TYPE_N_BASECLASSES (search_type) && result_count < 2; ++i)
      {
@@ -3529,7 +3416,7 @@ Index: gdb-7.7.90.20140613/gdb/valops.c
  
        if (class_types_same_p (desired_type, TYPE_BASECLASS (search_type, i)))
  	{
-@@ -686,7 +687,7 @@ dynamic_cast_check_1 (struct type *desir
+@@ -682,7 +683,7 @@ dynamic_cast_check_1 (struct type *desir
  static int
  dynamic_cast_check_2 (struct type *desired_type,
  		      const gdb_byte *valaddr,
@@ -3538,7 +3425,7 @@ Index: gdb-7.7.90.20140613/gdb/valops.c
  		      CORE_ADDR address,
  		      struct value *val,
  		      struct type *search_type,
-@@ -696,7 +697,7 @@ dynamic_cast_check_2 (struct type *desir
+@@ -692,7 +693,7 @@ dynamic_cast_check_2 (struct type *desir
  
    for (i = 0; i < TYPE_N_BASECLASSES (search_type) && result_count < 2; ++i)
      {
@@ -3547,7 +3434,7 @@ Index: gdb-7.7.90.20140613/gdb/valops.c
  
        if (! BASETYPE_VIA_PUBLIC (search_type, i))
  	continue;
-@@ -727,7 +728,8 @@ dynamic_cast_check_2 (struct type *desir
+@@ -723,7 +724,8 @@ dynamic_cast_check_2 (struct type *desir
  struct value *
  value_dynamic_cast (struct type *type, struct value *arg)
  {
@@ -3557,7 +3444,7 @@ Index: gdb-7.7.90.20140613/gdb/valops.c
    struct type *resolved_type = check_typedef (type);
    struct type *arg_type = check_typedef (value_type (arg));
    struct type *class_type, *rtti_type;
-@@ -958,7 +960,7 @@ value_at_lazy (struct type *type, CORE_A
+@@ -954,7 +956,7 @@ value_at_lazy (struct type *type, CORE_A
  }
  
  void
@@ -3566,7 +3453,7 @@ Index: gdb-7.7.90.20140613/gdb/valops.c
  		   int stack, CORE_ADDR memaddr,
  		   gdb_byte *buffer, size_t length)
  {
-@@ -1058,7 +1060,7 @@ value_assign (struct value *toval, struc
+@@ -1054,7 +1056,7 @@ value_assign (struct value *toval, struc
        {
  	const gdb_byte *dest_buffer;
  	CORE_ADDR changed_addr;
@@ -3575,16 +3462,16 @@ Index: gdb-7.7.90.20140613/gdb/valops.c
          gdb_byte buffer[sizeof (LONGEST)];
  
  	if (value_bitsize (toval))
-@@ -1137,7 +1139,7 @@ value_assign (struct value *toval, struc
- 	    if (value_bitsize (toval))
- 	      {
- 		struct value *parent = value_parent (toval);
--		int offset = value_offset (parent) + value_offset (toval);
-+		LONGEST offset = value_offset (parent) + value_offset (toval);
- 		int changed_len;
- 		gdb_byte buffer[sizeof (LONGEST)];
- 		int optim, unavail;
-@@ -1605,7 +1607,7 @@ value_array (int lowbound, int highbound
+@@ -1123,7 +1125,7 @@ value_assign (struct value *toval, struc
+ 	if (value_bitsize (toval))
+ 	  {
+ 	    struct value *parent = value_parent (toval);
+-	    int offset = value_offset (parent) + value_offset (toval);
++	    LONGEST offset = value_offset (parent) + value_offset (toval);
+ 	    int changed_len;
+ 	    gdb_byte buffer[sizeof (LONGEST)];
+ 	    int optim, unavail;
+@@ -1604,7 +1606,7 @@ value_array (int lowbound, int highbound
  {
    int nelem;
    int idx;
@@ -3593,7 +3480,7 @@ Index: gdb-7.7.90.20140613/gdb/valops.c
    struct value *val;
    struct type *arraytype;
  
-@@ -1780,7 +1782,7 @@ typecmp (int staticp, int varargs, int n
+@@ -1779,7 +1781,7 @@ typecmp (int staticp, int varargs, int n
  
  static void
  update_search_result (struct value **result_ptr, struct value *v,
@@ -3602,7 +3489,7 @@ Index: gdb-7.7.90.20140613/gdb/valops.c
  		      const char *name, struct type *type)
  {
    if (v != NULL)
-@@ -1804,10 +1806,10 @@ update_search_result (struct value **res
+@@ -1803,10 +1805,10 @@ update_search_result (struct value **res
     lookup is ambiguous.  */
  
  static void
@@ -3615,7 +3502,7 @@ Index: gdb-7.7.90.20140613/gdb/valops.c
  			struct type *outermost_type)
  {
    int i;
-@@ -1856,7 +1858,7 @@ do_search_struct_field (const char *name
+@@ -1853,7 +1855,7 @@ do_search_struct_field (const char *name
  		   <variant field>.  */
  
  		struct value *v = NULL;
@@ -3624,7 +3511,7 @@ Index: gdb-7.7.90.20140613/gdb/valops.c
  
  		/* This is pretty gross.  In G++, the offset in an
  		   anonymous union is relative to the beginning of the
-@@ -1895,7 +1897,7 @@ do_search_struct_field (const char *name
+@@ -1892,7 +1894,7 @@ do_search_struct_field (const char *name
  			     && (strcmp_iw (name, 
  					    TYPE_BASECLASS_NAME (type, 
  								 i)) == 0));
@@ -3633,7 +3520,7 @@ Index: gdb-7.7.90.20140613/gdb/valops.c
  
        if (BASETYPE_VIA_VIRTUAL (type, i))
  	{
-@@ -1968,11 +1970,11 @@ do_search_struct_field (const char *name
+@@ -1965,11 +1967,11 @@ do_search_struct_field (const char *name
     fields, look for a baseclass named NAME.  */
  
  static struct value *
@@ -3647,7 +3534,7 @@ Index: gdb-7.7.90.20140613/gdb/valops.c
  
    do_search_struct_field (name, arg1, offset, type, looking_for_baseclass,
  			  &result, &boffset, type);
-@@ -1989,7 +1991,7 @@ search_struct_field (const char *name, s
+@@ -1986,7 +1988,7 @@ search_struct_field (const char *name, s
  
  static struct value *
  search_struct_method (const char *name, struct value **arg1p,
@@ -3656,7 +3543,7 @@ Index: gdb-7.7.90.20140613/gdb/valops.c
  		      int *static_memfuncp, struct type *type)
  {
    int i;
-@@ -2053,8 +2055,8 @@ search_struct_method (const char *name,
+@@ -2050,8 +2052,8 @@ search_struct_method (const char *name,
  
    for (i = TYPE_N_BASECLASSES (type) - 1; i >= 0; i--)
      {
@@ -3667,7 +3554,7 @@ Index: gdb-7.7.90.20140613/gdb/valops.c
  
        if (BASETYPE_VIA_VIRTUAL (type, i))
  	{
-@@ -2289,10 +2291,10 @@ value_struct_elt_bitpos (struct value **
+@@ -2286,10 +2288,10 @@ value_struct_elt_bitpos (struct value **
  
  static void
  find_method_list (struct value **argp, const char *method,
@@ -3680,7 +3567,7 @@ Index: gdb-7.7.90.20140613/gdb/valops.c
  {
    int i;
    struct fn_field *f = NULL;
-@@ -2349,7 +2351,7 @@ find_method_list (struct value **argp, c
+@@ -2346,7 +2348,7 @@ find_method_list (struct value **argp, c
       extension methods.  */
    for (i = TYPE_N_BASECLASSES (type) - 1; i >= 0; i--)
      {
@@ -3689,7 +3576,7 @@ Index: gdb-7.7.90.20140613/gdb/valops.c
  
        if (BASETYPE_VIA_VIRTUAL (type, i))
  	{
-@@ -2392,7 +2394,7 @@ value_find_oload_method_list (struct val
+@@ -2389,7 +2391,7 @@ value_find_oload_method_list (struct val
                                int offset, struct fn_field **fn_list,
                                int *num_fns,
                                VEC (xmethod_worker_ptr) **xm_worker_vec,
@@ -3698,7 +3585,7 @@ Index: gdb-7.7.90.20140613/gdb/valops.c
  {
    struct type *t;
  
-@@ -2496,7 +2498,7 @@ find_overload_match (struct value **args
+@@ -2500,7 +2502,7 @@ find_overload_match (struct value **args
    /* Number of overloaded instances being considered.  */
    int num_fns = 0;
    struct type *basetype = NULL;
@@ -3707,7 +3594,7 @@ Index: gdb-7.7.90.20140613/gdb/valops.c
  
    struct cleanup *all_cleanups = make_cleanup (null_cleanup, NULL);
  
-@@ -3307,7 +3309,7 @@ compare_parameters (struct type *t1, str
+@@ -3315,7 +3317,7 @@ compare_parameters (struct type *t1, str
     the form "DOMAIN::NAME".  */
  
  static struct value *
@@ -3716,7 +3603,7 @@ Index: gdb-7.7.90.20140613/gdb/valops.c
  				struct type *curtype, const char *name,
  				struct type *intype, 
  				int want_address,
-@@ -3341,7 +3343,7 @@ value_struct_elt_for_reference (struct t
+@@ -3349,7 +3351,7 @@ value_struct_elt_for_reference (struct t
  	  if (want_address)
  	    return value_from_longest
  	      (lookup_memberptr_type (TYPE_FIELD_TYPE (t, i), domain),
@@ -3725,7 +3612,7 @@ Index: gdb-7.7.90.20140613/gdb/valops.c
  	  else if (noside != EVAL_NORMAL)
  	    return allocate_value (TYPE_FIELD_TYPE (t, i));
  	  else
-@@ -3509,7 +3511,7 @@ value_struct_elt_for_reference (struct t
+@@ -3517,7 +3519,7 @@ value_struct_elt_for_reference (struct t
    for (i = TYPE_N_BASECLASSES (t) - 1; i >= 0; i--)
      {
        struct value *v;
@@ -3734,7 +3621,7 @@ Index: gdb-7.7.90.20140613/gdb/valops.c
  
        if (BASETYPE_VIA_VIRTUAL (t, i))
  	base_offset = 0;
-@@ -3599,7 +3601,7 @@ value_maybe_namespace_elt (const struct
+@@ -3598,7 +3600,7 @@ value_maybe_namespace_elt (const struct
  
  struct type *
  value_rtti_indirect_type (struct value *v, int *full, 
@@ -3743,7 +3630,7 @@ Index: gdb-7.7.90.20140613/gdb/valops.c
  {
    struct value *target;
    struct type *type, *real_type, *target_type;
-@@ -3649,12 +3651,12 @@ value_rtti_indirect_type (struct value *
+@@ -3648,12 +3650,12 @@ value_rtti_indirect_type (struct value *
  struct value *
  value_full_object (struct value *argp, 
  		   struct type *rtype, 
@@ -3758,11 +3645,11 @@ Index: gdb-7.7.90.20140613/gdb/valops.c
    int using_enc = 0;
    struct value *new_val;
  
-Index: gdb-7.7.90.20140613/gdb/valprint.c
+Index: gdb-7.8.50.20141228/gdb/valprint.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/valprint.c	2014-06-24 16:07:26.247985768 +0200
-+++ gdb-7.7.90.20140613/gdb/valprint.c	2014-06-24 16:07:27.270986903 +0200
-@@ -302,7 +302,7 @@ val_print_scalar_type_p (struct type *ty
+--- gdb-7.8.50.20141228.orig/gdb/valprint.c	2015-01-06 22:44:41.557318955 +0100
++++ gdb-7.8.50.20141228/gdb/valprint.c	2015-01-06 22:44:43.193326893 +0100
+@@ -298,7 +298,7 @@ val_print_scalar_type_p (struct type *ty
  int
  valprint_check_validity (struct ui_file *stream,
  			 struct type *type,
@@ -3771,7 +3658,7 @@ Index: gdb-7.7.90.20140613/gdb/valprint.c
  			 const struct value *val)
  {
    CHECK_TYPEDEF (type);
-@@ -399,7 +399,7 @@ val_print_not_associated (struct ui_file
+@@ -396,7 +396,7 @@ val_print_not_associated (struct ui_file
  
  void
  generic_val_print (struct type *type, const gdb_byte *valaddr,
@@ -3780,7 +3667,7 @@ Index: gdb-7.7.90.20140613/gdb/valprint.c
  		   struct ui_file *stream, int recurse,
  		   const struct value *original_value,
  		   const struct value_print_options *options,
-@@ -761,7 +761,7 @@ generic_val_print (struct type *type, co
+@@ -758,7 +758,7 @@ generic_val_print (struct type *type, co
     RECURSE.  */
  
  void
@@ -3789,7 +3676,7 @@ Index: gdb-7.7.90.20140613/gdb/valprint.c
  	   CORE_ADDR address, struct ui_file *stream, int recurse,
  	   const struct value *val,
  	   const struct value_print_options *options,
-@@ -999,7 +999,7 @@ val_print_type_code_flags (struct type *
+@@ -996,7 +996,7 @@ val_print_type_code_flags (struct type *
  
  void
  val_print_scalar_formatted (struct type *type,
@@ -3798,7 +3685,7 @@ Index: gdb-7.7.90.20140613/gdb/valprint.c
  			    const struct value *val,
  			    const struct value_print_options *options,
  			    int size,
-@@ -1540,7 +1540,7 @@ print_decimal_chars (struct ui_file *str
+@@ -1538,7 +1538,7 @@ print_decimal_chars (struct ui_file *str
  
  void
  print_hex_chars (struct ui_file *stream, const gdb_byte *valaddr,
@@ -3807,7 +3694,7 @@ Index: gdb-7.7.90.20140613/gdb/valprint.c
  {
    const gdb_byte *p;
  
-@@ -1657,22 +1657,22 @@ maybe_print_array_index (struct type *in
+@@ -1655,22 +1655,22 @@ maybe_print_array_index (struct type *in
  
  void
  val_print_array_elements (struct type *type,
@@ -3836,7 +3723,7 @@ Index: gdb-7.7.90.20140613/gdb/valprint.c
    LONGEST low_bound, high_bound;
  
    elttype = TYPE_TARGET_TYPE (type);
-@@ -1743,7 +1743,7 @@ val_print_array_elements (struct type *t
+@@ -1741,7 +1741,7 @@ val_print_array_elements (struct type *t
  		     address, stream, recurse + 1, val, options,
  		     current_language);
  	  annotate_elt_rep (reps);
@@ -3845,7 +3732,7 @@ Index: gdb-7.7.90.20140613/gdb/valprint.c
  	  annotate_elt_rep_end ();
  
  	  i = rep1 - 1;
-@@ -2400,7 +2400,7 @@ print_converted_chars_to_obstack (struct
+@@ -2397,7 +2397,7 @@ print_converted_chars_to_obstack (struct
  
  void
  generic_printstr (struct ui_file *stream, struct type *type, 
@@ -3854,10 +3741,10 @@ Index: gdb-7.7.90.20140613/gdb/valprint.c
  		  const char *encoding, int force_ellipses,
  		  int quote_char, int c_style_terminator,
  		  const struct value_print_options *options)
-Index: gdb-7.7.90.20140613/gdb/valprint.h
+Index: gdb-7.8.50.20141228/gdb/valprint.h
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/valprint.h	2014-06-24 16:07:26.247985768 +0200
-+++ gdb-7.7.90.20140613/gdb/valprint.h	2014-06-24 16:07:27.271986904 +0200
+--- gdb-7.8.50.20141228.orig/gdb/valprint.h	2015-01-06 22:44:41.557318955 +0100
++++ gdb-7.8.50.20141228/gdb/valprint.h	2015-01-06 22:44:43.193326893 +0100
 @@ -115,11 +115,11 @@ extern void maybe_print_array_index (str
                                       struct ui_file *stream,
  				     const struct value_print_options *);
@@ -3908,11 +3795,11 @@ Index: gdb-7.7.90.20140613/gdb/valprint.h
  			      const char *encoding, int force_ellipses,
  			      int quote_char, int c_style_terminator,
  			      const struct value_print_options *options);
-Index: gdb-7.7.90.20140613/gdb/value.c
+Index: gdb-7.8.50.20141228/gdb/value.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/value.c	2014-06-24 16:07:27.026986632 +0200
-+++ gdb-7.7.90.20140613/gdb/value.c	2014-06-24 16:07:27.271986904 +0200
-@@ -69,10 +69,10 @@ struct internal_function
+--- gdb-7.8.50.20141228.orig/gdb/value.c	2015-01-06 22:44:41.562318979 +0100
++++ gdb-7.8.50.20141228/gdb/value.c	2015-01-06 22:44:43.194326898 +0100
+@@ -66,10 +66,10 @@ struct internal_function
  struct range
  {
    /* Lowest offset in the range.  */
@@ -3925,7 +3812,7 @@ Index: gdb-7.7.90.20140613/gdb/value.c
  };
  
  typedef struct range range_s;
-@@ -83,8 +83,8 @@ DEF_VEC_O(range_s);
+@@ -80,8 +80,8 @@ DEF_VEC_O(range_s);
     [offset2, offset2+len2) overlap.  */
  
  static int
@@ -3936,7 +3823,7 @@ Index: gdb-7.7.90.20140613/gdb/value.c
  {
    ULONGEST h, l;
  
-@@ -108,7 +108,7 @@ range_lessthan (const range_s *r1, const
+@@ -105,7 +105,7 @@ range_lessthan (const range_s *r1, const
     OFFSET+LENGTH).  */
  
  static int
@@ -3945,7 +3832,7 @@ Index: gdb-7.7.90.20140613/gdb/value.c
  {
    range_s what;
    int i;
-@@ -252,7 +252,7 @@ struct value
+@@ -240,7 +240,7 @@ struct value
       lval == lval_register, this is a further offset from
       location.address within the registers structure.  Note also the
       member embedded_offset below.  */
@@ -3954,7 +3841,7 @@ Index: gdb-7.7.90.20140613/gdb/value.c
  
    /* Only used for bitfields; number of bits contained in them.  */
    int bitsize;
-@@ -322,8 +322,8 @@ struct value
+@@ -310,8 +310,8 @@ struct value
       `type', and `embedded_offset' is zero, so everything works
       normally.  */
    struct type *enclosing_type;
@@ -3965,7 +3852,16 @@ Index: gdb-7.7.90.20140613/gdb/value.c
  
    /* Values are stored in a chain, so that they can be deleted easily
       over calls to the inferior.  Values assigned to internal
-@@ -351,7 +351,8 @@ value_bits_available (const struct value
+@@ -342,7 +342,7 @@ struct value
+ };
+ 
+ int
+-value_bits_available (const struct value *value, int offset, int length)
++value_bits_available (const struct value *value, LONGEST offset, LONGEST length)
+ {
+   gdb_assert (!value->lazy);
+ 
+@@ -350,7 +350,8 @@ value_bits_available (const struct value
  }
  
  int
@@ -3975,7 +3871,27 @@ Index: gdb-7.7.90.20140613/gdb/value.c
  {
    return value_bits_available (value,
  			       offset * TARGET_CHAR_BIT,
-@@ -558,7 +559,8 @@ mark_value_bits_unavailable (struct valu
+@@ -358,7 +359,8 @@ value_bytes_available (const struct valu
+ }
+ 
+ int
+-value_bits_any_optimized_out (const struct value *value, int bit_offset, int bit_length)
++value_bits_any_optimized_out (const struct value *value, LONGEST bit_offset,
++			      LONGEST bit_length)
+ {
+   gdb_assert (!value->lazy);
+ 
+@@ -420,7 +422,8 @@ value_entirely_optimized_out (struct val
+    OFFSET bits, and extending for the next LENGTH bits.  */
+ 
+ static void
+-insert_into_bit_range_vector (VEC(range_s) **vectorp, int offset, int length)
++insert_into_bit_range_vector (VEC(range_s) **vectorp, LONGEST offset,
++			      LONGEST length)
+ {
+   range_s newr;
+   int i;
+@@ -591,7 +594,8 @@ mark_value_bits_unavailable (struct valu
  }
  
  void
@@ -3985,7 +3901,7 @@ Index: gdb-7.7.90.20140613/gdb/value.c
  {
    mark_value_bits_unavailable (value,
  			       offset * TARGET_CHAR_BIT,
-@@ -572,7 +574,7 @@ mark_value_bytes_unavailable (struct val
+@@ -605,7 +609,7 @@ mark_value_bytes_unavailable (struct val
  
  static int
  find_first_range_overlap (VEC(range_s) *ranges, int pos,
@@ -3994,20 +3910,33 @@ Index: gdb-7.7.90.20140613/gdb/value.c
  {
    range_s *r;
    int i;
-@@ -763,9 +765,9 @@ value_available_contents_bits_eq (const
+@@ -801,9 +805,9 @@ find_first_range_overlap_and_match (stru
+    Return true if the available bits match.  */
+ 
+ static int
+-value_contents_bits_eq (const struct value *val1, int offset1,
+-			const struct value *val2, int offset2,
+-			int length)
++value_contents_bits_eq (const struct value *val1, LONGEST offset1,
++			const struct value *val2, LONGEST offset2,
++			LONGEST length)
+ {
+   /* Each array element corresponds to a ranges source (unavailable,
+      optimized out).  '1' is for VAL1, '2' for VAL2.  */
+@@ -863,9 +867,9 @@ value_contents_bits_eq (const struct val
  }
  
  int
--value_available_contents_eq (const struct value *val1, int offset1,
--			     const struct value *val2, int offset2,
--			     int length)
-+value_available_contents_eq (const struct value *val1, LONGEST offset1,
-+			     const struct value *val2, LONGEST offset2,
-+			     LONGEST length)
- {
-   return value_available_contents_bits_eq (val1, offset1 * TARGET_CHAR_BIT,
- 					   val2, offset2 * TARGET_CHAR_BIT,
-@@ -930,13 +932,13 @@ deprecated_set_value_type (struct value
+-value_contents_eq (const struct value *val1, int offset1,
+-		   const struct value *val2, int offset2,
+-		   int length)
++value_contents_eq (const struct value *val1, LONGEST offset1,
++		   const struct value *val2, LONGEST offset2,
++		   LONGEST length)
+ {
+   return value_contents_bits_eq (val1, offset1 * TARGET_CHAR_BIT,
+ 				 val2, offset2 * TARGET_CHAR_BIT,
+@@ -1029,13 +1033,13 @@ deprecated_set_value_type (struct value
    value->type = type;
  }
  
@@ -4023,7 +3952,7 @@ Index: gdb-7.7.90.20140613/gdb/value.c
  {
    value->offset = offset;
  }
-@@ -1106,8 +1108,9 @@ value_contents_all (struct value *value)
+@@ -1246,8 +1250,9 @@ value_ranges_copy_adjusted (struct value
     DST_OFFSET+LENGTH) range are wholly available.  */
  
  void
@@ -4035,7 +3964,7 @@ Index: gdb-7.7.90.20140613/gdb/value.c
  {
    range_s *r;
    int i;
-@@ -1159,8 +1162,8 @@ value_contents_copy_raw (struct value *d
+@@ -1293,8 +1298,8 @@ value_contents_copy_raw (struct value *d
     DST_OFFSET+LENGTH) range are wholly available.  */
  
  void
@@ -4044,18 +3973,28 @@ Index: gdb-7.7.90.20140613/gdb/value.c
 +value_contents_copy (struct value *dst, ssize_t dst_offset,
 +		     struct value *src, ssize_t src_offset, ssize_t length)
  {
-   require_not_optimized_out (src);
+   if (src->lazy)
+     value_fetch_lazy (src);
+@@ -1358,7 +1363,8 @@ value_optimized_out (struct value *value
+    the following LENGTH bytes.  */
  
-@@ -1265,7 +1268,7 @@ value_entirely_optimized_out (const stru
- }
+ void
+-mark_value_bytes_optimized_out (struct value *value, int offset, int length)
++mark_value_bytes_optimized_out (struct value *value, LONGEST offset,
++				LONGEST length)
+ {
+   mark_value_bits_optimized_out (value,
+ 				 offset * TARGET_CHAR_BIT,
+@@ -1368,14 +1374,15 @@ mark_value_bytes_optimized_out (struct v
+ /* See value.h.  */
  
- int
--value_bits_valid (const struct value *value, int offset, int length)
-+value_bits_valid (const struct value *value, LONGEST offset, LONGEST length)
+ void
+-mark_value_bits_optimized_out (struct value *value, int offset, int length)
++mark_value_bits_optimized_out (struct value *value, LONGEST offset,
++			       LONGEST length)
  {
-   if (!value->optimized_out)
-     return 1;
-@@ -1278,7 +1281,7 @@ value_bits_valid (const struct value *va
+   insert_into_bit_range_vector (&value->optimized_out, offset, length);
+ }
  
  int
  value_bits_synthetic_pointer (const struct value *value,
@@ -4064,7 +4003,7 @@ Index: gdb-7.7.90.20140613/gdb/value.c
  {
    if (value->lval != lval_computed
        || !value->location.computed.funcs->check_synthetic_pointer)
-@@ -1288,26 +1291,26 @@ value_bits_synthetic_pointer (const stru
+@@ -1385,26 +1392,26 @@ value_bits_synthetic_pointer (const stru
  								  length);
  }
  
@@ -4095,7 +4034,7 @@ Index: gdb-7.7.90.20140613/gdb/value.c
  {
    value->pointed_to_offset = val;
  }
-@@ -2154,7 +2157,7 @@ get_internalvar_function (struct interna
+@@ -2263,7 +2270,7 @@ get_internalvar_function (struct interna
  }
  
  void
@@ -4104,7 +4043,7 @@ Index: gdb-7.7.90.20140613/gdb/value.c
  			   int bitsize, struct value *newval)
  {
    gdb_byte *addr;
-@@ -2860,7 +2863,7 @@ set_value_enclosing_type (struct value *
+@@ -2969,7 +2976,7 @@ set_value_enclosing_type (struct value *
     FIELDNO says which field.  */
  
  struct value *
@@ -4113,16 +4052,7 @@ Index: gdb-7.7.90.20140613/gdb/value.c
  		       int fieldno, struct type *arg_type)
  {
    struct value *v;
-@@ -2888,7 +2891,7 @@ value_primitive_field (struct value *arg
- 	 bit.  Assume that the address, offset, and embedded offset
- 	 are sufficiently aligned.  */
- 
--      int bitpos = TYPE_FIELD_BITPOS (arg_type, fieldno);
-+      LONGEST bitpos = TYPE_FIELD_BITPOS (arg_type, fieldno);
-       int container_bitsize = TYPE_LENGTH (type) * 8;
- 
-       if (arg1->optimized_out)
-@@ -2915,7 +2918,7 @@ value_primitive_field (struct value *arg
+@@ -3019,7 +3026,7 @@ value_primitive_field (struct value *arg
        /* This field is actually a base subobject, so preserve the
  	 entire object's contents for later references to virtual
  	 bases, etc.  */
@@ -4131,7 +4061,7 @@ Index: gdb-7.7.90.20140613/gdb/value.c
  
        /* Lazy register values with offsets are not supported.  */
        if (VALUE_LVAL (arg1) == lval_register && value_lazy (arg1))
-@@ -3014,7 +3017,7 @@ value_field (struct value *arg1, int fie
+@@ -3105,7 +3112,7 @@ value_field (struct value *arg1, int fie
  struct value *
  value_fn_field (struct value **arg1p, struct fn_field *f,
  		int j, struct type *type,
@@ -4140,18 +4070,15 @@ Index: gdb-7.7.90.20140613/gdb/value.c
  {
    struct value *v;
    struct type *ftype = TYPE_FN_FIELD_TYPE (f, j);
-@@ -3074,8 +3077,8 @@ value_fn_field (struct value **arg1p, st
+@@ -3175,14 +3182,14 @@ value_fn_field (struct value **arg1p, st
  
- static int
- unpack_value_bits_as_long_1 (struct type *field_type, const gdb_byte *valaddr,
--			     int embedded_offset, int bitpos, int bitsize,
--			     const struct value *original_value,
-+			     LONGEST embedded_offset, LONGEST bitpos,
-+			     int bitsize, const struct value *original_value,
- 			     LONGEST *result)
+ static LONGEST
+ unpack_bits_as_long (struct type *field_type, const gdb_byte *valaddr,
+-		     int bitpos, int bitsize)
++		     LONGEST bitpos, int bitsize)
  {
    enum bfd_endian byte_order = gdbarch_byte_order (get_type_arch (field_type));
-@@ -3083,7 +3086,7 @@ unpack_value_bits_as_long_1 (struct type
+   ULONGEST val;
    ULONGEST valmask;
    int lsbcount;
    int bytes_read;
@@ -4160,29 +4087,7 @@ Index: gdb-7.7.90.20140613/gdb/value.c
  
    /* Read the minimum number of bytes required; there may not be
       enough bytes to read an entire ULONGEST.  */
-@@ -3153,7 +3156,7 @@ unpack_value_bits_as_long_1 (struct type
- 
- int
- unpack_value_bits_as_long (struct type *field_type, const gdb_byte *valaddr,
--			   int embedded_offset, int bitpos, int bitsize,
-+			   LONGEST embedded_offset, int bitpos, int bitsize,
- 			   const struct value *original_value,
- 			   LONGEST *result)
- {
-@@ -3171,10 +3174,10 @@ unpack_value_bits_as_long (struct type *
- 
- static int
- unpack_value_field_as_long_1 (struct type *type, const gdb_byte *valaddr,
--			      int embedded_offset, int fieldno,
-+			      LONGEST embedded_offset, int fieldno,
- 			      const struct value *val, LONGEST *result)
- {
--  int bitpos = TYPE_FIELD_BITPOS (type, fieldno);
-+  LONGEST bitpos = TYPE_FIELD_BITPOS (type, fieldno);
-   int bitsize = TYPE_FIELD_BITSIZE (type, fieldno);
-   struct type *field_type = TYPE_FIELD_TYPE (type, fieldno);
- 
-@@ -3190,7 +3193,7 @@ unpack_value_field_as_long_1 (struct typ
+@@ -3231,7 +3238,7 @@ unpack_bits_as_long (struct type *field_
  
  int
  unpack_value_field_as_long (struct type *type, const gdb_byte *valaddr,
@@ -4190,17 +4095,26 @@ Index: gdb-7.7.90.20140613/gdb/value.c
 +			    LONGEST embedded_offset, int fieldno,
  			    const struct value *val, LONGEST *result)
  {
-   gdb_assert (val != NULL);
-@@ -3222,7 +3225,7 @@ unpack_field_as_long (struct type *type,
+   int bitpos = TYPE_FIELD_BITPOS (type, fieldno);
+@@ -3275,7 +3282,7 @@ unpack_field_as_long (struct type *type,
+ void
+ unpack_value_bitfield (struct value *dest_val,
+ 		       int bitpos, int bitsize,
+-		       const gdb_byte *valaddr, int embedded_offset,
++		       const gdb_byte *valaddr, LONGEST embedded_offset,
+ 		       const struct value *val)
+ {
+   enum bfd_endian byte_order;
+@@ -3313,7 +3320,7 @@ unpack_value_bitfield (struct value *des
  struct value *
  value_field_bitfield (struct type *type, int fieldno,
  		      const gdb_byte *valaddr,
 -		      int embedded_offset, const struct value *val)
 +		      LONGEST embedded_offset, const struct value *val)
  {
-   LONGEST l;
- 
-@@ -3249,12 +3252,12 @@ value_field_bitfield (struct type *type,
+   int bitpos = TYPE_FIELD_BITPOS (type, fieldno);
+   int bitsize = TYPE_FIELD_BITSIZE (type, fieldno);
+@@ -3334,12 +3341,12 @@ value_field_bitfield (struct type *type,
  
  void
  modify_field (struct type *type, gdb_byte *addr,
@@ -4215,11 +4129,11 @@ Index: gdb-7.7.90.20140613/gdb/value.c
  
    /* Normalize BITPOS.  */
    addr += bitpos / 8;
-Index: gdb-7.7.90.20140613/gdb/value.h
+Index: gdb-7.8.50.20141228/gdb/value.h
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/value.h	2014-06-13 03:59:37.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/value.h	2014-06-24 16:07:27.272986905 +0200
-@@ -83,8 +83,8 @@ extern void set_value_parent (struct val
+--- gdb-7.8.50.20141228.orig/gdb/value.h	2015-01-06 22:44:41.563318984 +0100
++++ gdb-7.8.50.20141228/gdb/value.h	2015-01-06 22:44:43.195326903 +0100
+@@ -131,8 +131,8 @@ extern void set_value_parent (struct val
     within the registers structure.  Note also the member
     embedded_offset below.  */
  
@@ -4230,7 +4144,7 @@ Index: gdb-7.7.90.20140613/gdb/value.h
  
  /* The comment from "struct value" reads: ``Is it modifiable?  Only
     relevant if lval != not_lval.''.  Shouldn't the value instead be
-@@ -153,10 +153,10 @@ extern struct type *value_actual_type (s
+@@ -201,10 +201,10 @@ extern struct type *value_actual_type (s
  				       int resolve_simple_types,
  				       int *real_type_found);
  
@@ -4245,17 +4159,7 @@ Index: gdb-7.7.90.20140613/gdb/value.h
  
  /* For lval_computed values, this structure holds functions used to
     retrieve and set the value (or portions of the value).
-@@ -184,7 +184,8 @@ struct lval_funcs
-   /* Check the validity of some bits in VALUE.  This should return 1
-      if all the bits starting at OFFSET and extending for LENGTH bits
-      are valid, or 0 if any bit is invalid.  */
--  int (*check_validity) (const struct value *value, int offset, int length);
-+  int (*check_validity) (const struct value *value, LONGEST offset,
-+			 LONGEST length);
- 
-   /* Return 1 if any bit in VALUE is valid, 0 if they are all invalid.  */
-   int (*check_any_valid) (const struct value *value);
-@@ -202,7 +203,7 @@ struct lval_funcs
+@@ -242,7 +242,7 @@ struct lval_funcs
    /* If non-NULL, this is used to determine whether the indicated bits
       of VALUE are a synthetic pointer.  */
    int (*check_synthetic_pointer) (const struct value *value,
@@ -4264,7 +4168,7 @@ Index: gdb-7.7.90.20140613/gdb/value.h
  
    /* Return a duplicate of VALUE's closure, for use in a new value.
       This may simply return the same closure, if VALUE's is
-@@ -239,7 +240,7 @@ extern struct value *allocate_computed_v
+@@ -279,7 +279,7 @@ extern struct value *allocate_computed_v
     Otherwise, return 1.  */
  
  extern int valprint_check_validity (struct ui_file *stream, struct type *type,
@@ -4273,14 +4177,33 @@ Index: gdb-7.7.90.20140613/gdb/value.h
  				    const struct value *val);
  
  extern struct value *allocate_optimized_out_value (struct type *type);
-@@ -421,13 +422,13 @@ extern struct value *coerce_array (struc
-    bits in the given range are valid, zero if any bit is invalid.  */
+@@ -373,7 +373,8 @@ extern int value_optimized_out (struct v
+    otherwise.  */
+ 
+ extern int value_bits_any_optimized_out (const struct value *value,
+-					 int bit_offset, int bit_length);
++					 LONGEST bit_offset,
++					 LONGEST bit_length);
+ 
+ /* Like value_optimized_out, but return true iff the whole value is
+    optimized out.  */
+@@ -383,13 +384,13 @@ extern int value_entirely_optimized_out
+    LENGTH bytes as optimized out.  */
+ 
+ extern void mark_value_bytes_optimized_out (struct value *value,
+-					    int offset, int length);
++					    LONGEST offset, LONGEST length);
+ 
+ /* Mark VALUE's content bits starting at OFFSET and extending for
+    LENGTH bits as optimized out.  */
  
- extern int value_bits_valid (const struct value *value,
--			     int offset, int length);
-+			     LONGEST offset, LONGEST length);
+ extern void mark_value_bits_optimized_out (struct value *value,
+-					   int offset, int length);
++					   LONGEST offset, LONGEST length);
  
- /* Given a value, determine whether the bits starting at OFFSET and
+ /* Set or return field indicating whether a variable is initialized or
+    not, based on debugging information supplied by the compiler.
+@@ -472,7 +473,7 @@ extern struct value *coerce_array (struc
     extending for LENGTH bits are a synthetic pointer.  */
  
  extern int value_bits_synthetic_pointer (const struct value *value,
@@ -4289,7 +4212,7 @@ Index: gdb-7.7.90.20140613/gdb/value.h
  
  /* Given a value, determine whether the contents bytes starting at
     OFFSET and extending for LENGTH bytes are available.  This returns
-@@ -435,7 +436,7 @@ extern int value_bits_synthetic_pointer
+@@ -480,7 +481,7 @@ extern int value_bits_synthetic_pointer
     byte is unavailable.  */
  
  extern int value_bytes_available (const struct value *value,
@@ -4298,7 +4221,16 @@ Index: gdb-7.7.90.20140613/gdb/value.h
  
  /* Given a value, determine whether the contents bits starting at
     OFFSET and extending for LENGTH bits are available.  This returns
-@@ -457,7 +458,7 @@ extern int value_entirely_unavailable (s
+@@ -488,7 +489,7 @@ extern int value_bytes_available (const
+    bit is unavailable.  */
+ 
+ extern int value_bits_available (const struct value *value,
+-				 int offset, int length);
++				 LONGEST offset, LONGEST length);
+ 
+ /* Like value_bytes_available, but return false if any byte in the
+    whole object is unavailable.  */
+@@ -502,7 +503,7 @@ extern int value_entirely_unavailable (s
     LENGTH bytes as unavailable.  */
  
  extern void mark_value_bytes_unavailable (struct value *value,
@@ -4307,29 +4239,20 @@ Index: gdb-7.7.90.20140613/gdb/value.h
  
  /* Mark VALUE's content bits starting at OFFSET and extending for
     LENGTH bits as unavailable.  */
-@@ -473,7 +474,7 @@ extern void mark_value_bits_unavailable
-    example, to compare a complete object value with itself, including
-    its enclosing type chunk, you'd do:
- 
--     int len = TYPE_LENGTH (check_typedef (value_enclosing_type (val)));
-+     ULONGEST len = TYPE_LENGTH (check_typedef (value_enclosing_type (val)));
-      value_available_contents (val, 0, val, 0, len);
- 
-    Returns true iff the set of available contents match.  Unavailable
-@@ -500,9 +501,9 @@ extern void mark_value_bits_unavailable
-    gone, it works with const values.  Therefore, this routine must not
-    be called with lazy values.  */
- 
--extern int value_available_contents_eq (const struct value *val1, int offset1,
--					const struct value *val2, int offset2,
--					int length);
-+extern int value_available_contents_eq (const struct value *val1, LONGEST offset1,
-+					const struct value *val2, LONGEST offset2,
-+					LONGEST length);
+@@ -563,9 +564,9 @@ extern void mark_value_bits_unavailable
+    after the inferior is gone, it works with const values.  Therefore,
+    this routine must not be called with lazy values.  */
+ 
+-extern int value_contents_eq (const struct value *val1, int offset1,
+-			      const struct value *val2, int offset2,
+-			      int length);
++extern int value_contents_eq (const struct value *val1, LONGEST offset1,
++			      const struct value *val2, LONGEST offset2,
++			      LONGEST length);
  
  /* Read LENGTH bytes of memory starting at MEMADDR into BUFFER, which
     is (or will be copied to) VAL's contents buffer offset by
-@@ -511,7 +512,7 @@ extern int value_available_contents_eq (
+@@ -574,7 +575,7 @@ extern int value_contents_eq (const stru
     memory is likewise unavailable.  STACK indicates whether the memory
     is known to be stack memory.  */
  
@@ -4338,16 +4261,7 @@ Index: gdb-7.7.90.20140613/gdb/value.h
  			       int stack, CORE_ADDR memaddr,
  			       gdb_byte *buffer, size_t length);
  
-@@ -545,7 +546,7 @@ extern CORE_ADDR unpack_pointer (struct
- 
- extern int unpack_value_bits_as_long (struct type *field_type,
- 				      const gdb_byte *valaddr,
--				      int embedded_offset, int bitpos,
-+				      LONGEST embedded_offset, int bitpos,
- 				      int bitsize,
- 				      const struct value *original_value,
- 				      LONGEST *result);
-@@ -554,12 +555,12 @@ extern LONGEST unpack_field_as_long (str
+@@ -610,17 +611,18 @@ extern LONGEST unpack_field_as_long (str
  				     const gdb_byte *valaddr,
  				     int fieldno);
  extern int unpack_value_field_as_long (struct type *type, const gdb_byte *valaddr,
@@ -4355,6 +4269,13 @@ Index: gdb-7.7.90.20140613/gdb/value.h
 +				LONGEST embedded_offset, int fieldno,
  				const struct value *val, LONGEST *result);
  
+ extern void unpack_value_bitfield (struct value *dest_val,
+ 				   int bitpos, int bitsize,
+-				   const gdb_byte *valaddr, int embedded_offset,
++				   const gdb_byte *valaddr,
++				   LONGEST embedded_offset,
+ 				   const struct value *val);
+ 
  extern struct value *value_field_bitfield (struct type *type, int fieldno,
  					   const gdb_byte *valaddr,
 -					   int embedded_offset,
@@ -4362,7 +4283,7 @@ Index: gdb-7.7.90.20140613/gdb/value.h
  					   const struct value *val);
  
  extern void pack_long (gdb_byte *buf, struct type *type, LONGEST num);
-@@ -616,12 +617,12 @@ extern struct value *default_read_var_va
+@@ -677,12 +679,12 @@ extern struct value *default_read_var_va
  
  extern struct value *allocate_value (struct type *type);
  extern struct value *allocate_value_lazy (struct type *type);
@@ -4381,7 +4302,7 @@ Index: gdb-7.7.90.20140613/gdb/value.h
  
  extern struct value *allocate_repeat_value (struct type *type, int count);
  
-@@ -698,16 +699,16 @@ extern int find_overload_match (struct v
+@@ -760,16 +762,16 @@ extern int find_overload_match (struct v
  
  extern struct value *value_field (struct value *arg1, int fieldno);
  
@@ -4401,7 +4322,7 @@ Index: gdb-7.7.90.20140613/gdb/value.h
  
  extern struct value *value_cast_pointers (struct type *, struct value *, int);
  
-@@ -802,7 +803,7 @@ extern void set_internalvar_string (stru
+@@ -864,7 +866,7 @@ extern void set_internalvar_string (stru
  extern void clear_internalvar (struct internalvar *var);
  
  extern void set_internalvar_component (struct internalvar *var,
@@ -4410,7 +4331,7 @@ Index: gdb-7.7.90.20140613/gdb/value.h
  				       int bitpos, int bitsize,
  				       struct value *newvalue);
  
-@@ -883,7 +884,7 @@ extern struct value *value_x_unop (struc
+@@ -945,7 +947,7 @@ extern struct value *value_x_unop (struc
  				   enum noside noside);
  
  extern struct value *value_fn_field (struct value **arg1p, struct fn_field *f,
@@ -4419,7 +4340,7 @@ Index: gdb-7.7.90.20140613/gdb/value.h
  
  extern int binop_types_user_defined_p (enum exp_opcode op,
  				       struct type *type1,
-@@ -911,7 +912,8 @@ extern void release_value_or_incref (str
+@@ -973,7 +975,8 @@ extern void release_value_or_incref (str
  extern int record_latest_value (struct value *val);
  
  extern void modify_field (struct type *type, gdb_byte *addr,
@@ -4429,7 +4350,7 @@ Index: gdb-7.7.90.20140613/gdb/value.h
  
  extern void type_print (struct type *type, const char *varstring,
  			struct ui_file *stream, int show);
-@@ -941,7 +943,7 @@ extern void value_print_array_elements (
+@@ -1003,7 +1006,7 @@ extern void value_print_array_elements (
  extern struct value *value_release_to_mark (struct value *mark);
  
  extern void val_print (struct type *type, const gdb_byte *valaddr,
@@ -4438,7 +4359,7 @@ Index: gdb-7.7.90.20140613/gdb/value.h
  		       struct ui_file *stream, int recurse,
  		       const struct value *val,
  		       const struct value_print_options *options,
-@@ -990,10 +992,11 @@ extern struct value *value_literal_compl
+@@ -1054,10 +1057,11 @@ extern struct value *value_literal_compl
  extern struct value *find_function_in_inferior (const char *,
  						struct objfile **);
  
@@ -4452,11 +4373,11 @@ Index: gdb-7.7.90.20140613/gdb/value.h
  
  /* User function handler.  */
  
-Index: gdb-7.7.90.20140613/gdb/s390-linux-nat.c
+Index: gdb-7.8.50.20141228/gdb/s390-linux-nat.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/s390-linux-nat.c	2014-06-13 03:59:37.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/s390-linux-nat.c	2014-06-24 16:07:27.272986905 +0200
-@@ -567,7 +567,7 @@ s390_can_use_hw_breakpoint (struct targe
+--- gdb-7.8.50.20141228.orig/gdb/s390-linux-nat.c	2015-01-06 22:44:41.564318989 +0100
++++ gdb-7.8.50.20141228/gdb/s390-linux-nat.c	2015-01-06 22:44:43.195326903 +0100
+@@ -544,7 +544,7 @@ s390_can_use_hw_breakpoint (struct targe
  
  static int
  s390_region_ok_for_hw_watchpoint (struct target_ops *self,
@@ -4465,10 +4386,10 @@ Index: gdb-7.7.90.20140613/gdb/s390-linux-nat.c
  {
    return 1;
  }
-Index: gdb-7.7.90.20140613/gdb/extension-priv.h
+Index: gdb-7.8.50.20141228/gdb/extension-priv.h
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/extension-priv.h	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/extension-priv.h	2014-06-24 16:07:27.272986905 +0200
+--- gdb-7.8.50.20141228.orig/gdb/extension-priv.h	2015-01-06 22:44:41.564318989 +0100
++++ gdb-7.8.50.20141228/gdb/extension-priv.h	2015-01-06 22:44:43.195326903 +0100
 @@ -175,7 +175,7 @@ struct extension_language_ops
    enum ext_lang_rc (*apply_val_pretty_printer)
      (const struct extension_language_defn *,
@@ -4478,11 +4399,11 @@ Index: gdb-7.7.90.20140613/gdb/extension-priv.h
       struct ui_file *stream, int recurse,
       const struct value *val, const struct value_print_options *options,
       const struct language_defn *language);
-Index: gdb-7.7.90.20140613/gdb/python/python-internal.h
+Index: gdb-7.8.50.20141228/gdb/python/python-internal.h
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/python/python-internal.h	2014-06-13 03:59:37.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/python/python-internal.h	2014-06-24 16:07:27.272986905 +0200
-@@ -317,7 +317,7 @@ extern int gdbpy_auto_load_enabled (cons
+--- gdb-7.8.50.20141228.orig/gdb/python/python-internal.h	2015-01-06 22:44:41.564318989 +0100
++++ gdb-7.8.50.20141228/gdb/python/python-internal.h	2015-01-06 22:44:43.195326903 +0100
+@@ -313,7 +313,7 @@ extern int gdbpy_auto_load_enabled (cons
  extern enum ext_lang_rc gdbpy_apply_val_pretty_printer
    (const struct extension_language_defn *,
     struct type *type, const gdb_byte *valaddr,
@@ -4491,11 +4412,11 @@ Index: gdb-7.7.90.20140613/gdb/python/python-internal.h
     struct ui_file *stream, int recurse,
     const struct value *val,
     const struct value_print_options *options,
-Index: gdb-7.7.90.20140613/gdb/target-delegates.c
+Index: gdb-7.8.50.20141228/gdb/target-delegates.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/target-delegates.c	2014-06-13 03:59:37.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/target-delegates.c	2014-06-24 16:07:27.272986905 +0200
-@@ -268,7 +268,7 @@ delegate_watchpoint_addr_within_range (s
+--- gdb-7.8.50.20141228.orig/gdb/target-delegates.c	2015-01-06 22:44:41.565318994 +0100
++++ gdb-7.8.50.20141228/gdb/target-delegates.c	2015-01-06 22:44:43.196326907 +0100
+@@ -634,14 +634,14 @@ debug_watchpoint_addr_within_range (stru
  }
  
  static int
@@ -4504,11 +4425,28 @@ Index: gdb-7.7.90.20140613/gdb/target-delegates.c
  {
    self = self->beneath;
    return self->to_region_ok_for_hw_watchpoint (self, arg1, arg2);
-Index: gdb-7.7.90.20140613/gdb/aarch64-linux-nat.c
+ }
+ 
+ static int
+-debug_region_ok_for_hw_watchpoint (struct target_ops *self, CORE_ADDR arg1, int arg2)
++debug_region_ok_for_hw_watchpoint (struct target_ops *self, CORE_ADDR arg1, LONGEST arg2)
+ {
+   int result;
+   fprintf_unfiltered (gdb_stdlog, "-> %s->to_region_ok_for_hw_watchpoint (...)\n", debug_target.to_shortname);
+@@ -651,7 +651,7 @@ debug_region_ok_for_hw_watchpoint (struc
+   fputs_unfiltered (", ", gdb_stdlog);
+   target_debug_print_CORE_ADDR (arg1);
+   fputs_unfiltered (", ", gdb_stdlog);
+-  target_debug_print_int (arg2);
++  target_debug_print_LONGEST (arg2);
+   fputs_unfiltered (") = ", gdb_stdlog);
+   target_debug_print_int (result);
+   fputs_unfiltered ("\n", gdb_stdlog);
+Index: gdb-7.8.50.20141228/gdb/aarch64-linux-nat.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/aarch64-linux-nat.c	2014-06-13 03:59:36.000000000 +0200
-+++ gdb-7.7.90.20140613/gdb/aarch64-linux-nat.c	2014-06-24 16:08:06.722030653 +0200
-@@ -1407,7 +1407,7 @@ aarch64_linux_remove_watchpoint (struct
+--- gdb-7.8.50.20141228.orig/gdb/aarch64-linux-nat.c	2015-01-06 22:44:41.565318994 +0100
++++ gdb-7.8.50.20141228/gdb/aarch64-linux-nat.c	2015-01-06 22:44:43.196326907 +0100
+@@ -1389,7 +1389,7 @@ aarch64_linux_remove_watchpoint (struct
  
  static int
  aarch64_linux_region_ok_for_hw_watchpoint (struct target_ops *self,
@@ -4517,3 +4455,69 @@ Index: gdb-7.7.90.20140613/gdb/aarch64-linux-nat.c
  {
    CORE_ADDR aligned_addr;
  
+Index: gdb-7.8.50.20141228/gdb/nat/x86-dregs.c
+===================================================================
+--- gdb-7.8.50.20141228.orig/gdb/nat/x86-dregs.c	2015-01-06 22:44:41.566318999 +0100
++++ gdb-7.8.50.20141228/gdb/nat/x86-dregs.c	2015-01-06 22:44:43.197326912 +0100
+@@ -384,7 +384,7 @@ x86_remove_aligned_watchpoint (struct x8
+ 
+ static int
+ x86_handle_nonaligned_watchpoint (struct x86_debug_reg_state *state,
+-				  x86_wp_op_t what, CORE_ADDR addr, int len,
++				  x86_wp_op_t what, CORE_ADDR addr, LONGEST len,
+ 				  enum target_hw_bp_type type)
+ {
+   int retval = 0;
+@@ -552,7 +552,7 @@ x86_dr_remove_watchpoint (struct x86_deb
+ 
+ int
+ x86_dr_region_ok_for_watchpoint (struct x86_debug_reg_state *state,
+-				 CORE_ADDR addr, int len)
++				 CORE_ADDR addr, LONGEST len)
+ {
+   int nregs;
+ 
+Index: gdb-7.8.50.20141228/gdb/compile/compile-c-support.c
+===================================================================
+--- gdb-7.8.50.20141228.orig/gdb/compile/compile-c-support.c	2015-01-06 22:44:41.566318999 +0100
++++ gdb-7.8.50.20141228/gdb/compile/compile-c-support.c	2015-01-06 22:44:43.197326912 +0100
+@@ -277,11 +277,11 @@ generate_register_struct (struct ui_file
+ 
+ 	      default:
+ 		fprintf_unfiltered (stream,
+-				    "  unsigned char %s[%d]"
++				    "  unsigned char %s[%s]"
+ 				    " __attribute__((__aligned__("
+ 				    "__BIGGEST_ALIGNMENT__)))",
+ 				    regname,
+-				    TYPE_LENGTH (regtype));
++				    pulongest (TYPE_LENGTH (regtype)));
+ 	      }
+ 	    fputs_unfiltered (";\n", stream);
+ 
+Index: gdb-7.8.50.20141228/gdb/nat/x86-dregs.h
+===================================================================
+--- gdb-7.8.50.20141228.orig/gdb/nat/x86-dregs.h	2015-01-06 22:44:41.566318999 +0100
++++ gdb-7.8.50.20141228/gdb/nat/x86-dregs.h	2015-01-06 22:44:43.197326912 +0100
+@@ -112,7 +112,7 @@ extern int x86_dr_remove_watchpoint (str
+ /* Return non-zero if we can watch a memory region that starts at
+    address ADDR and whose length is LEN bytes.  */
+ extern int x86_dr_region_ok_for_watchpoint (struct x86_debug_reg_state *state,
+-					    CORE_ADDR addr, int len);
++					    CORE_ADDR addr, LONGEST len);
+ 
+ /* If the inferior has some break/watchpoint that triggered, set the
+    address associated with that break/watchpoint and return true.
+Index: gdb-7.8.50.20141228/gdb/x86-nat.c
+===================================================================
+--- gdb-7.8.50.20141228.orig/gdb/x86-nat.c	2015-01-06 22:44:41.566318999 +0100
++++ gdb-7.8.50.20141228/gdb/x86-nat.c	2015-01-06 22:44:43.197326912 +0100
+@@ -178,7 +178,7 @@ x86_remove_watchpoint (struct target_ops
+ 
+ static int
+ x86_region_ok_for_watchpoint (struct target_ops *self,
+-			      CORE_ADDR addr, int len)
++			      CORE_ADDR addr, LONGEST len)
+ {
+   struct x86_debug_reg_state *state
+     = x86_debug_reg_state (ptid_get_pid (inferior_ptid));

diff --git a/gdb-rhbz795424-bitpos-22of25.patch b/gdb-rhbz795424-bitpos-22of25.patch
index 1943ba6..ecca068 100644
--- a/gdb-rhbz795424-bitpos-22of25.patch
+++ b/gdb-rhbz795424-bitpos-22of25.patch
@@ -96,11 +96,11 @@ Content-Type: text/x-patch
 Content-Transfer-Encoding: 7bit
 Content-Disposition: attachment; filename=bitpos-wp.patch
 
-Index: gdb-7.8/gdb/arm-linux-nat.c
+Index: gdb-7.8.50.20141228/gdb/arm-linux-nat.c
 ===================================================================
---- gdb-7.8.orig/gdb/arm-linux-nat.c	2014-08-01 23:27:30.183773676 +0200
-+++ gdb-7.8/gdb/arm-linux-nat.c	2014-08-01 23:27:30.241773754 +0200
-@@ -1296,7 +1296,7 @@ arm_linux_stopped_by_watchpoint (struct
+--- gdb-7.8.50.20141228.orig/gdb/arm-linux-nat.c	2015-01-05 22:10:30.170726774 +0100
++++ gdb-7.8.50.20141228/gdb/arm-linux-nat.c	2015-01-05 22:10:35.571751324 +0100
+@@ -1295,7 +1295,7 @@ arm_linux_stopped_by_watchpoint (struct
  static int
  arm_linux_watchpoint_addr_within_range (struct target_ops *target,
  					CORE_ADDR addr,
@@ -109,11 +109,11 @@ Index: gdb-7.8/gdb/arm-linux-nat.c
  {
    return start <= addr && start + length - 1 >= addr;
  }
-Index: gdb-7.8/gdb/ppc-linux-nat.c
+Index: gdb-7.8.50.20141228/gdb/ppc-linux-nat.c
 ===================================================================
---- gdb-7.8.orig/gdb/ppc-linux-nat.c	2014-08-01 23:27:30.202773701 +0200
-+++ gdb-7.8/gdb/ppc-linux-nat.c	2014-08-01 23:29:38.311944925 +0200
-@@ -1862,11 +1862,11 @@ can_use_watchpoint_cond_accel (void)
+--- gdb-7.8.50.20141228.orig/gdb/ppc-linux-nat.c	2015-01-05 22:10:30.171726779 +0100
++++ gdb-7.8.50.20141228/gdb/ppc-linux-nat.c	2015-01-05 22:10:35.572751329 +0100
+@@ -1860,11 +1860,11 @@ can_use_watchpoint_cond_accel (void)
     CONDITION_VALUE will hold the value which should be put in the
     DVC register.  */
  static void
@@ -128,7 +128,7 @@ Index: gdb-7.8/gdb/ppc-linux-nat.c
    CORE_ADDR addr_end_data, addr_end_dvc;
  
    /* The DVC register compares bytes within fixed-length windows which
-@@ -1953,7 +1953,7 @@ num_memory_accesses (struct value *v)
+@@ -1951,7 +1951,7 @@ num_memory_accesses (struct value *v)
     of the constant.  */
  static int
  check_condition (CORE_ADDR watch_addr, struct expression *cond,
@@ -137,7 +137,7 @@ Index: gdb-7.8/gdb/ppc-linux-nat.c
  {
    int pc = 1, num_accesses_left, num_accesses_right;
    struct value *left_val, *right_val, *left_chain, *right_chain;
-@@ -2021,7 +2021,7 @@ check_condition (CORE_ADDR watch_addr, s
+@@ -2019,7 +2019,7 @@ check_condition (CORE_ADDR watch_addr, s
     true.  */
  static int
  ppc_linux_can_accel_watchpoint_condition (struct target_ops *self,
@@ -146,7 +146,7 @@ Index: gdb-7.8/gdb/ppc-linux-nat.c
  					  struct expression *cond)
  {
    CORE_ADDR data_value;
-@@ -2038,7 +2038,7 @@ ppc_linux_can_accel_watchpoint_condition
+@@ -2036,7 +2036,7 @@ ppc_linux_can_accel_watchpoint_condition
  
  static void
  create_watchpoint_request (struct ppc_hw_breakpoint *p, CORE_ADDR addr,
@@ -155,7 +155,7 @@ Index: gdb-7.8/gdb/ppc-linux-nat.c
  			   int insert)
  {
    if (len == 1
-@@ -2304,7 +2304,7 @@ ppc_linux_stopped_by_watchpoint (struct
+@@ -2302,7 +2302,7 @@ ppc_linux_stopped_by_watchpoint (struct
  static int
  ppc_linux_watchpoint_addr_within_range (struct target_ops *target,
  					CORE_ADDR addr,
@@ -164,11 +164,11 @@ Index: gdb-7.8/gdb/ppc-linux-nat.c
  {
    int mask;
  
-Index: gdb-7.8/gdb/procfs.c
+Index: gdb-7.8.50.20141228/gdb/procfs.c
 ===================================================================
---- gdb-7.8.orig/gdb/procfs.c	2014-08-01 23:27:30.203773703 +0200
-+++ gdb-7.8/gdb/procfs.c	2014-08-01 23:27:30.243773756 +0200
-@@ -2429,7 +2429,7 @@ procfs_address_to_host_pointer (CORE_ADD
+--- gdb-7.8.50.20141228.orig/gdb/procfs.c	2015-01-05 22:10:30.172726783 +0100
++++ gdb-7.8.50.20141228/gdb/procfs.c	2015-01-05 22:10:35.573751333 +0100
+@@ -2426,7 +2426,7 @@ procfs_address_to_host_pointer (CORE_ADD
  #endif
  
  static int
@@ -177,7 +177,7 @@ Index: gdb-7.8/gdb/procfs.c
  {
  #if !defined (PCWATCH) && !defined (PIOCSWATCH)
    /* If neither or these is defined, we can't support watchpoints.
-@@ -4762,7 +4762,7 @@ procfs_pid_to_str (struct target_ops *op
+@@ -4705,7 +4705,7 @@ procfs_pid_to_str (struct target_ops *op
  /* Insert a watchpoint.  */
  
  static int
@@ -186,11 +186,11 @@ Index: gdb-7.8/gdb/procfs.c
  		       int after)
  {
  #ifndef AIX5
-Index: gdb-7.8/gdb/remote.c
+Index: gdb-7.8.50.20141228/gdb/remote.c
 ===================================================================
---- gdb-7.8.orig/gdb/remote.c	2014-08-01 23:27:30.205773705 +0200
-+++ gdb-7.8/gdb/remote.c	2014-08-01 23:27:30.246773760 +0200
-@@ -8206,7 +8206,7 @@ remote_insert_watchpoint (struct target_
+--- gdb-7.8.50.20141228.orig/gdb/remote.c	2015-01-05 22:10:30.174726792 +0100
++++ gdb-7.8.50.20141228/gdb/remote.c	2015-01-05 22:10:35.574751338 +0100
+@@ -8298,7 +8298,7 @@ remote_insert_watchpoint (struct target_
    p = strchr (rs->buf, '\0');
    addr = remote_address_masked (addr);
    p += hexnumstr (p, (ULONGEST) addr);
@@ -199,7 +199,7 @@ Index: gdb-7.8/gdb/remote.c
  
    putpkt (rs->buf);
    getpkt (&rs->buf, &rs->buf_size, 0);
-@@ -8226,7 +8226,7 @@ remote_insert_watchpoint (struct target_
+@@ -8318,7 +8318,7 @@ remote_insert_watchpoint (struct target_
  
  static int
  remote_watchpoint_addr_within_range (struct target_ops *target, CORE_ADDR addr,
@@ -208,7 +208,7 @@ Index: gdb-7.8/gdb/remote.c
  {
    CORE_ADDR diff = remote_address_masked (addr - start);
  
-@@ -8256,7 +8256,7 @@ remote_remove_watchpoint (struct target_
+@@ -8348,7 +8348,7 @@ remote_remove_watchpoint (struct target_
    p = strchr (rs->buf, '\0');
    addr = remote_address_masked (addr);
    p += hexnumstr (p, (ULONGEST) addr);
@@ -217,11 +217,11 @@ Index: gdb-7.8/gdb/remote.c
    putpkt (rs->buf);
    getpkt (&rs->buf, &rs->buf_size, 0);
  
-Index: gdb-7.8/gdb/target.c
+Index: gdb-7.8.50.20141228/gdb/target.c
 ===================================================================
---- gdb-7.8.orig/gdb/target.c	2014-08-01 23:27:30.206773707 +0200
-+++ gdb-7.8/gdb/target.c	2014-08-01 23:29:38.314944857 +0200
-@@ -52,7 +52,7 @@ static void target_info (char *, int);
+--- gdb-7.8.50.20141228.orig/gdb/target.c	2015-01-05 22:10:30.175726797 +0100
++++ gdb-7.8.50.20141228/gdb/target.c	2015-01-05 22:10:35.575751342 +0100
+@@ -51,7 +51,7 @@ static void generic_tls_error (void) ATT
  static void default_terminal_info (struct target_ops *, const char *, int);
  
  static int default_watchpoint_addr_within_range (struct target_ops *,
@@ -230,23 +230,7 @@ Index: gdb-7.8/gdb/target.c
  
  static int default_region_ok_for_hw_watchpoint (struct target_ops *,
  						CORE_ADDR, LONGEST);
-@@ -150,13 +150,13 @@ static int debug_to_remove_watchpoint (s
- static int debug_to_stopped_data_address (struct target_ops *, CORE_ADDR *);
- 
- static int debug_to_watchpoint_addr_within_range (struct target_ops *,
--						  CORE_ADDR, CORE_ADDR, int);
-+						  CORE_ADDR, CORE_ADDR, LONGEST);
- 
- static int debug_to_region_ok_for_hw_watchpoint (struct target_ops *self,
- 						 CORE_ADDR, LONGEST);
- 
- static int debug_to_can_accel_watchpoint_condition (struct target_ops *self,
--						    CORE_ADDR, int, int,
-+						    CORE_ADDR, LONGEST, int,
- 						    struct expression *);
- 
- static void debug_to_terminal_init (struct target_ops *self);
-@@ -2960,7 +2960,7 @@ default_region_ok_for_hw_watchpoint (str
+@@ -2983,7 +2983,7 @@ default_region_ok_for_hw_watchpoint (str
  static int
  default_watchpoint_addr_within_range (struct target_ops *target,
  				      CORE_ADDR addr,
@@ -255,52 +239,11 @@ Index: gdb-7.8/gdb/target.c
  {
    return addr >= start && addr < start + length;
  }
-@@ -3681,7 +3681,7 @@ debug_to_region_ok_for_hw_watchpoint (st
- 
- static int
- debug_to_can_accel_watchpoint_condition (struct target_ops *self,
--					 CORE_ADDR addr, int len, int rw,
-+					 CORE_ADDR addr, LONGEST len, int rw,
- 					 struct expression *cond)
- {
-   int retval;
-@@ -3692,8 +3692,8 @@ debug_to_can_accel_watchpoint_condition
- 
-   fprintf_unfiltered (gdb_stdlog,
- 		      "target_can_accel_watchpoint_condition "
--		      "(%s, %d, %d, %s) = %ld\n",
--		      core_addr_to_string (addr), len, rw,
-+		      "(%s, %s, %d, %s) = %ld\n",
-+		      core_addr_to_string (addr), plongest (len), rw,
- 		      host_address_to_string (cond), (unsigned long) retval);
-   return retval;
- }
-@@ -3728,7 +3728,7 @@ debug_to_stopped_data_address (struct ta
- static int
- debug_to_watchpoint_addr_within_range (struct target_ops *target,
- 				       CORE_ADDR addr,
--				       CORE_ADDR start, int length)
-+				       CORE_ADDR start, LONGEST length)
- {
-   int retval;
- 
-@@ -3736,9 +3736,9 @@ debug_to_watchpoint_addr_within_range (s
- 							 start, length);
- 
-   fprintf_filtered (gdb_stdlog,
--		    "target_watchpoint_addr_within_range (%s, %s, %d) = %d\n",
-+		    "target_watchpoint_addr_within_range (%s, %s, %s) = %d\n",
- 		    core_addr_to_string (addr), core_addr_to_string (start),
--		    length, retval);
-+		    plongest (length), retval);
-   return retval;
- }
- 
-Index: gdb-7.8/gdb/target.h
+Index: gdb-7.8.50.20141228/gdb/target.h
 ===================================================================
---- gdb-7.8.orig/gdb/target.h	2014-08-01 23:27:30.207773708 +0200
-+++ gdb-7.8/gdb/target.h	2014-08-01 23:29:38.315944839 +0200
-@@ -469,7 +469,7 @@ struct target_ops
+--- gdb-7.8.50.20141228.orig/gdb/target.h	2015-01-05 22:10:30.176726802 +0100
++++ gdb-7.8.50.20141228/gdb/target.h	2015-01-05 22:10:35.575751342 +0100
+@@ -483,7 +483,7 @@ struct target_ops
      int (*to_stopped_data_address) (struct target_ops *, CORE_ADDR *)
        TARGET_DEFAULT_RETURN (0);
      int (*to_watchpoint_addr_within_range) (struct target_ops *,
@@ -309,7 +252,7 @@ Index: gdb-7.8/gdb/target.h
        TARGET_DEFAULT_FUNC (default_watchpoint_addr_within_range);
  
      /* Documentation of this routine is provided with the corresponding
-@@ -479,7 +479,7 @@ struct target_ops
+@@ -493,7 +493,7 @@ struct target_ops
        TARGET_DEFAULT_FUNC (default_region_ok_for_hw_watchpoint);
  
      int (*to_can_accel_watchpoint_condition) (struct target_ops *,
@@ -318,11 +261,11 @@ Index: gdb-7.8/gdb/target.h
  					      struct expression *)
        TARGET_DEFAULT_RETURN (0);
      int (*to_masked_watch_num_registers) (struct target_ops *,
-Index: gdb-7.8/gdb/aarch64-linux-nat.c
+Index: gdb-7.8.50.20141228/gdb/aarch64-linux-nat.c
 ===================================================================
---- gdb-7.8.orig/gdb/aarch64-linux-nat.c	2014-08-01 23:27:30.212773715 +0200
-+++ gdb-7.8/gdb/aarch64-linux-nat.c	2014-08-01 23:27:30.248773763 +0200
-@@ -428,14 +428,14 @@ aarch64_notify_debug_reg_change (const s
+--- gdb-7.8.50.20141228.orig/gdb/aarch64-linux-nat.c	2015-01-05 22:10:30.176726802 +0100
++++ gdb-7.8.50.20141228/gdb/aarch64-linux-nat.c	2015-01-05 22:10:35.575751342 +0100
+@@ -424,14 +424,14 @@ aarch64_notify_debug_reg_change (const s
  static void
  aarch64_show_debug_reg_state (struct aarch64_debug_reg_state *state,
  			      const char *func, CORE_ADDR addr,
@@ -340,7 +283,7 @@ Index: gdb-7.8/gdb/aarch64-linux-nat.c
  			type == hw_write ? "hw-write-watchpoint"
  			: (type == hw_read ? "hw-read-watchpoint"
  			   : (type == hw_access ? "hw-access-watchpoint"
-@@ -869,9 +869,10 @@ aarch64_linux_read_description (struct t
+@@ -851,9 +851,10 @@ aarch64_linux_read_description (struct t
     gdbserver/linux-aarch64-low.c for more information.  */
  
  static void
@@ -353,7 +296,7 @@ Index: gdb-7.8/gdb/aarch64-linux-nat.c
  {
    int aligned_len;
    unsigned int offset;
-@@ -1038,7 +1039,7 @@ aarch64_point_encode_ctrl_reg (int type,
+@@ -1020,7 +1021,7 @@ aarch64_point_encode_ctrl_reg (int type,
     Return 0 for any non-compliant ADDR and/or LEN; return 1 otherwise.  */
  
  static int
@@ -362,7 +305,7 @@ Index: gdb-7.8/gdb/aarch64-linux-nat.c
  {
    unsigned int alignment = is_watchpoint ? AARCH64_HWP_ALIGNMENT
      : AARCH64_HBP_ALIGNMENT;
-@@ -1290,7 +1291,7 @@ aarch64_handle_aligned_watchpoint (int t
+@@ -1272,7 +1273,7 @@ aarch64_handle_aligned_watchpoint (int t
     Return 0 if succeed.  */
  
  static int
@@ -371,7 +314,7 @@ Index: gdb-7.8/gdb/aarch64-linux-nat.c
  				     int is_insert)
  {
    struct aarch64_debug_reg_state *state
-@@ -1315,8 +1316,8 @@ aarch64_handle_unaligned_watchpoint (int
+@@ -1297,8 +1298,8 @@ aarch64_handle_unaligned_watchpoint (int
  	fprintf_unfiltered (gdb_stdlog,
  "handle_unaligned_watchpoint: is_insert: %d\n"
  "                             aligned_addr: 0x%08lx, aligned_len: %d\n"
@@ -382,7 +325,7 @@ Index: gdb-7.8/gdb/aarch64-linux-nat.c
  
        if (ret != 0)
  	return ret;
-@@ -1328,7 +1329,7 @@ aarch64_handle_unaligned_watchpoint (int
+@@ -1310,7 +1311,7 @@ aarch64_handle_unaligned_watchpoint (int
  /* Implements insertion and removal of a single watchpoint.  */
  
  static int
@@ -391,7 +334,7 @@ Index: gdb-7.8/gdb/aarch64-linux-nat.c
  {
    if (aarch64_point_is_aligned (1 /* is_watchpoint */ , addr, len))
      return aarch64_handle_aligned_watchpoint (type, addr, len, is_insert);
-@@ -1497,7 +1498,7 @@ aarch64_linux_stopped_by_watchpoint (str
+@@ -1479,7 +1480,7 @@ aarch64_linux_stopped_by_watchpoint (str
  static int
  aarch64_linux_watchpoint_addr_within_range (struct target_ops *target,
  					    CORE_ADDR addr,
@@ -400,11 +343,11 @@ Index: gdb-7.8/gdb/aarch64-linux-nat.c
  {
    return start <= addr && start + length - 1 >= addr;
  }
-Index: gdb-7.8/gdb/target-delegates.c
+Index: gdb-7.8.50.20141228/gdb/target-delegates.c
 ===================================================================
---- gdb-7.8.orig/gdb/target-delegates.c	2014-08-01 23:27:30.212773715 +0200
-+++ gdb-7.8/gdb/target-delegates.c	2014-08-01 23:29:38.313944877 +0200
-@@ -261,7 +261,7 @@ tdefault_stopped_data_address (struct ta
+--- gdb-7.8.50.20141228.orig/gdb/target-delegates.c	2015-01-05 22:10:30.177726806 +0100
++++ gdb-7.8.50.20141228/gdb/target-delegates.c	2015-01-05 22:12:11.071185408 +0100
+@@ -607,14 +607,14 @@ debug_stopped_data_address (struct targe
  }
  
  static int
@@ -413,7 +356,24 @@ Index: gdb-7.8/gdb/target-delegates.c
  {
    self = self->beneath;
    return self->to_watchpoint_addr_within_range (self, arg1, arg2, arg3);
-@@ -275,14 +275,14 @@ delegate_region_ok_for_hw_watchpoint (st
+ }
+ 
+ static int
+-debug_watchpoint_addr_within_range (struct target_ops *self, CORE_ADDR arg1, CORE_ADDR arg2, int arg3)
++debug_watchpoint_addr_within_range (struct target_ops *self, CORE_ADDR arg1, CORE_ADDR arg2, LONGEST arg3)
+ {
+   int result;
+   fprintf_unfiltered (gdb_stdlog, "-> %s->to_watchpoint_addr_within_range (...)\n", debug_target.to_shortname);
+@@ -626,7 +626,7 @@ debug_watchpoint_addr_within_range (stru
+   fputs_unfiltered (", ", gdb_stdlog);
+   target_debug_print_CORE_ADDR (arg2);
+   fputs_unfiltered (", ", gdb_stdlog);
+-  target_debug_print_int (arg3);
++  target_debug_print_LONGEST (arg3);
+   fputs_unfiltered (") = ", gdb_stdlog);
+   target_debug_print_int (result);
+   fputs_unfiltered ("\n", gdb_stdlog);
+@@ -659,20 +659,20 @@ debug_region_ok_for_hw_watchpoint (struc
  }
  
  static int
@@ -430,3 +390,19 @@ Index: gdb-7.8/gdb/target-delegates.c
  {
    return 0;
  }
+ 
+ static int
+-debug_can_accel_watchpoint_condition (struct target_ops *self, CORE_ADDR arg1, int arg2, int arg3, struct expression *arg4)
++debug_can_accel_watchpoint_condition (struct target_ops *self, CORE_ADDR arg1, LONGEST arg2, int arg3, struct expression *arg4)
+ {
+   int result;
+   fprintf_unfiltered (gdb_stdlog, "-> %s->to_can_accel_watchpoint_condition (...)\n", debug_target.to_shortname);
+@@ -682,7 +682,7 @@ debug_can_accel_watchpoint_condition (st
+   fputs_unfiltered (", ", gdb_stdlog);
+   target_debug_print_CORE_ADDR (arg1);
+   fputs_unfiltered (", ", gdb_stdlog);
+-  target_debug_print_int (arg2);
++  target_debug_print_LONGEST (arg2);
+   fputs_unfiltered (", ", gdb_stdlog);
+   target_debug_print_int (arg3);
+   fputs_unfiltered (", ", gdb_stdlog);

diff --git a/gdb-rhbz795424-bitpos-23of25.patch b/gdb-rhbz795424-bitpos-23of25.patch
index e0e13b5..09f8f2a 100644
--- a/gdb-rhbz795424-bitpos-23of25.patch
+++ b/gdb-rhbz795424-bitpos-23of25.patch
@@ -137,11 +137,11 @@ Content-Type: text/x-patch
 Content-Transfer-Encoding: 7bit
 Content-Disposition: attachment; filename=bitpos-tdep.patch
 
-Index: gdb-7.7.1/gdb/alpha-tdep.c
+Index: gdb-7.8.50.20141228/gdb/alpha-tdep.c
 ===================================================================
---- gdb-7.7.1.orig/gdb/alpha-tdep.c	2014-05-09 19:24:18.677252769 +0200
-+++ gdb-7.7.1/gdb/alpha-tdep.c	2014-05-09 20:02:09.620703767 +0200
-@@ -299,18 +299,18 @@ alpha_push_dummy_call (struct gdbarch *g
+--- gdb-7.8.50.20141228.orig/gdb/alpha-tdep.c	2015-01-05 22:18:55.988023607 +0100
++++ gdb-7.8.50.20141228/gdb/alpha-tdep.c	2015-01-05 22:19:08.086078440 +0100
+@@ -298,18 +298,18 @@ alpha_push_dummy_call (struct gdbarch *g
  {
    enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
    int i;
@@ -164,7 +164,7 @@ Index: gdb-7.7.1/gdb/alpha-tdep.c
    CORE_ADDR func_addr = find_function_addr (function, NULL);
  
    /* The ABI places the address of the called function in T12.  */
-@@ -430,8 +430,8 @@ alpha_push_dummy_call (struct gdbarch *g
+@@ -429,8 +429,8 @@ alpha_push_dummy_call (struct gdbarch *g
    for (i = nargs; m_arg--, --i >= 0;)
      {
        const gdb_byte *contents = m_arg->contents;
@@ -175,7 +175,7 @@ Index: gdb-7.7.1/gdb/alpha-tdep.c
  
        /* Copy the bytes destined for registers into arg_reg_buffer.  */
        if (offset < sizeof(arg_reg_buffer))
-@@ -443,7 +443,7 @@ alpha_push_dummy_call (struct gdbarch *g
+@@ -442,7 +442,7 @@ alpha_push_dummy_call (struct gdbarch *g
  	    }
  	  else
  	    {
@@ -184,11 +184,11 @@ Index: gdb-7.7.1/gdb/alpha-tdep.c
  	      memcpy (arg_reg_buffer + offset, contents, tlen);
  	      offset += tlen;
  	      contents += tlen;
-Index: gdb-7.7.1/gdb/amd64-tdep.c
+Index: gdb-7.8.50.20141228/gdb/amd64-tdep.c
 ===================================================================
---- gdb-7.7.1.orig/gdb/amd64-tdep.c	2014-05-09 19:24:18.678252770 +0200
-+++ gdb-7.7.1/gdb/amd64-tdep.c	2014-05-09 20:02:09.620703767 +0200
-@@ -633,7 +633,7 @@ amd64_return_value (struct gdbarch *gdba
+--- gdb-7.8.50.20141228.orig/gdb/amd64-tdep.c	2015-01-05 22:18:55.989023612 +0100
++++ gdb-7.8.50.20141228/gdb/amd64-tdep.c	2015-01-05 22:19:08.087078444 +0100
+@@ -700,7 +700,7 @@ amd64_return_value (struct gdbarch *gdba
  		    gdb_byte *readbuf, const gdb_byte *writebuf)
  {
    enum amd64_reg_class class[2];
@@ -197,7 +197,7 @@ Index: gdb-7.7.1/gdb/amd64-tdep.c
    static int integer_regnum[] = { AMD64_RAX_REGNUM, AMD64_RDX_REGNUM };
    static int sse_regnum[] = { AMD64_XMM0_REGNUM, AMD64_XMM1_REGNUM };
    int integer_reg = 0;
-@@ -784,8 +784,8 @@ amd64_push_arguments (struct regcache *r
+@@ -851,8 +851,8 @@ amd64_push_arguments (struct regcache *r
    };
    struct value **stack_args = alloca (nargs * sizeof (struct value *));
    int num_stack_args = 0;
@@ -208,7 +208,7 @@ Index: gdb-7.7.1/gdb/amd64-tdep.c
    int integer_reg = 0;
    int sse_reg = 0;
    int i;
-@@ -797,7 +797,7 @@ amd64_push_arguments (struct regcache *r
+@@ -864,7 +864,7 @@ amd64_push_arguments (struct regcache *r
    for (i = 0; i < nargs; i++)
      {
        struct type *type = value_type (args[i]);
@@ -217,10 +217,10 @@ Index: gdb-7.7.1/gdb/amd64-tdep.c
        enum amd64_reg_class class[2];
        int needed_integer_regs = 0;
        int needed_sse_regs = 0;
-Index: gdb-7.7.1/gdb/amd64-windows-tdep.c
+Index: gdb-7.8.50.20141228/gdb/amd64-windows-tdep.c
 ===================================================================
---- gdb-7.7.1.orig/gdb/amd64-windows-tdep.c	2014-05-09 19:24:18.679252770 +0200
-+++ gdb-7.7.1/gdb/amd64-windows-tdep.c	2014-05-09 20:02:09.620703767 +0200
+--- gdb-7.8.50.20141228.orig/gdb/amd64-windows-tdep.c	2015-01-05 22:18:55.990023616 +0100
++++ gdb-7.8.50.20141228/gdb/amd64-windows-tdep.c	2015-01-05 22:19:08.087078444 +0100
 @@ -288,7 +288,7 @@ amd64_windows_return_value (struct gdbar
  			    struct type *type, struct regcache *regcache,
  			    gdb_byte *readbuf, const gdb_byte *writebuf)
@@ -230,20 +230,20 @@ Index: gdb-7.7.1/gdb/amd64-windows-tdep.c
    int regnum = -1;
  
    /* See if our value is returned through a register.  If it is, then
-Index: gdb-7.7.1/gdb/arm-tdep.c
+Index: gdb-7.8.50.20141228/gdb/arm-tdep.c
 ===================================================================
---- gdb-7.7.1.orig/gdb/arm-tdep.c	2014-05-09 19:24:18.684252770 +0200
-+++ gdb-7.7.1/gdb/arm-tdep.c	2014-05-09 20:02:09.622703768 +0200
-@@ -3498,7 +3498,7 @@ arm_vfp_cprc_reg_char (enum arm_vfp_cprc
-    array).  Vectors and complex types are not currently supported,
-    matching the generic AAPCS support.  */
+--- gdb-7.8.50.20141228.orig/gdb/arm-tdep.c	2015-01-05 22:18:55.995023639 +0100
++++ gdb-7.8.50.20141228/gdb/arm-tdep.c	2015-01-05 22:19:08.089078453 +0100
+@@ -3524,7 +3524,7 @@ arm_vfp_cprc_reg_char (enum arm_vfp_cprc
+    array).  Vector types are not currently supported, matching the
+    generic AAPCS support.  */
  
 -static int
 +static LONGEST
  arm_vfp_cprc_sub_candidate (struct type *t,
  			    enum arm_vfp_cprc_base_type *base_type)
  {
-@@ -3529,7 +3529,7 @@ arm_vfp_cprc_sub_candidate (struct type
+@@ -3587,7 +3587,7 @@ arm_vfp_cprc_sub_candidate (struct type
  
      case TYPE_CODE_ARRAY:
        {
@@ -252,7 +252,7 @@ Index: gdb-7.7.1/gdb/arm-tdep.c
  	unsigned unitlen;
  	count = arm_vfp_cprc_sub_candidate (TYPE_TARGET_TYPE (t), base_type);
  	if (count == -1)
-@@ -3549,13 +3549,15 @@ arm_vfp_cprc_sub_candidate (struct type
+@@ -3607,13 +3607,15 @@ arm_vfp_cprc_sub_candidate (struct type
  
      case TYPE_CODE_STRUCT:
        {
@@ -271,7 +271,7 @@ Index: gdb-7.7.1/gdb/arm-tdep.c
  	    if (sub_count == -1)
  	      return -1;
  	    count += sub_count;
-@@ -3575,13 +3577,15 @@ arm_vfp_cprc_sub_candidate (struct type
+@@ -3633,13 +3635,15 @@ arm_vfp_cprc_sub_candidate (struct type
  
      case TYPE_CODE_UNION:
        {
@@ -290,7 +290,7 @@ Index: gdb-7.7.1/gdb/arm-tdep.c
  	    if (sub_count == -1)
  	      return -1;
  	    count = (count > sub_count ? count : sub_count);
-@@ -3617,7 +3621,7 @@ arm_vfp_call_candidate (struct type *t,
+@@ -3675,7 +3679,7 @@ arm_vfp_call_candidate (struct type *t,
  			int *count)
  {
    enum arm_vfp_cprc_base_type b = VFP_CPRC_UNKNOWN;
@@ -299,7 +299,7 @@ Index: gdb-7.7.1/gdb/arm-tdep.c
    if (c <= 0 || c > 4)
      return 0;
    *base_type = b;
-@@ -3698,7 +3702,7 @@ arm_push_dummy_call (struct gdbarch *gdb
+@@ -3756,7 +3760,7 @@ arm_push_dummy_call (struct gdbarch *gdb
  
    for (argnum = 0; argnum < nargs; argnum++)
      {
@@ -308,11 +308,11 @@ Index: gdb-7.7.1/gdb/arm-tdep.c
        struct type *arg_type;
        struct type *target_type;
        enum type_code typecode;
-Index: gdb-7.7.1/gdb/avr-tdep.c
+Index: gdb-7.8.50.20141228/gdb/avr-tdep.c
 ===================================================================
---- gdb-7.7.1.orig/gdb/avr-tdep.c	2014-05-09 19:24:18.686252771 +0200
-+++ gdb-7.7.1/gdb/avr-tdep.c	2014-05-09 20:02:09.623703768 +0200
-@@ -1167,13 +1167,14 @@ avr_dummy_id (struct gdbarch *gdbarch, s
+--- gdb-7.8.50.20141228.orig/gdb/avr-tdep.c	2015-01-05 22:18:55.996023643 +0100
++++ gdb-7.8.50.20141228/gdb/avr-tdep.c	2015-01-05 22:19:08.089078453 +0100
+@@ -1196,13 +1196,14 @@ avr_dummy_id (struct gdbarch *gdbarch, s
  
  struct stack_item
  {
@@ -329,7 +329,7 @@ Index: gdb-7.7.1/gdb/avr-tdep.c
  {
    struct stack_item *si;
    si = xmalloc (sizeof (struct stack_item));
-@@ -1262,12 +1263,12 @@ avr_push_dummy_call (struct gdbarch *gdb
+@@ -1291,12 +1292,12 @@ avr_push_dummy_call (struct gdbarch *gdb
  
    for (i = 0; i < nargs; i++)
      {
@@ -345,11 +345,11 @@ Index: gdb-7.7.1/gdb/avr-tdep.c
  
        /* Calculate the potential last register needed.  */
        last_regnum = regnum - (len + (len & 1));
-Index: gdb-7.7.1/gdb/bfin-tdep.c
+Index: gdb-7.8.50.20141228/gdb/bfin-tdep.c
 ===================================================================
---- gdb-7.7.1.orig/gdb/bfin-tdep.c	2014-05-09 19:24:18.686252771 +0200
-+++ gdb-7.7.1/gdb/bfin-tdep.c	2014-05-09 20:02:09.623703768 +0200
-@@ -506,7 +506,7 @@ bfin_push_dummy_call (struct gdbarch *gd
+--- gdb-7.8.50.20141228.orig/gdb/bfin-tdep.c	2015-01-05 22:18:55.996023643 +0100
++++ gdb-7.8.50.20141228/gdb/bfin-tdep.c	2015-01-05 22:19:08.090078458 +0100
+@@ -504,7 +504,7 @@ bfin_push_dummy_call (struct gdbarch *gd
    gdb_byte buf[4];
    int i;
    long reg_r0, reg_r1, reg_r2;
@@ -358,7 +358,7 @@ Index: gdb-7.7.1/gdb/bfin-tdep.c
    enum bfin_abi abi = bfin_abi (gdbarch);
    CORE_ADDR func_addr = find_function_addr (function, NULL);
  
-@@ -530,7 +530,7 @@ bfin_push_dummy_call (struct gdbarch *gd
+@@ -528,7 +528,7 @@ bfin_push_dummy_call (struct gdbarch *gd
      {
        struct type *value_type = value_enclosing_type (args[i]);
        struct type *arg_type = check_typedef (value_type);
@@ -367,11 +367,11 @@ Index: gdb-7.7.1/gdb/bfin-tdep.c
  
        sp -= container_len;
        write_memory (sp, value_contents_writeable (args[i]), container_len);
-Index: gdb-7.7.1/gdb/cris-tdep.c
+Index: gdb-7.8.50.20141228/gdb/cris-tdep.c
 ===================================================================
---- gdb-7.7.1.orig/gdb/cris-tdep.c	2014-05-09 19:24:18.687252771 +0200
-+++ gdb-7.7.1/gdb/cris-tdep.c	2014-05-09 20:02:09.623703768 +0200
-@@ -665,13 +665,13 @@ static CORE_ADDR cris_unwind_sp (struct
+--- gdb-7.8.50.20141228.orig/gdb/cris-tdep.c	2015-01-05 22:18:55.997023648 +0100
++++ gdb-7.8.50.20141228/gdb/cris-tdep.c	2015-01-05 22:19:08.090078458 +0100
+@@ -663,13 +663,13 @@ static CORE_ADDR cris_unwind_sp (struct
  
  struct stack_item
  {
@@ -387,7 +387,7 @@ Index: gdb-7.7.1/gdb/cris-tdep.c
  {
    struct stack_item *si;
    si = xmalloc (sizeof (struct stack_item));
-@@ -844,13 +844,13 @@ cris_push_dummy_call (struct gdbarch *gd
+@@ -842,13 +842,13 @@ cris_push_dummy_call (struct gdbarch *gd
  
    for (argnum = 0; argnum < nargs; argnum++)
      {
@@ -405,11 +405,11 @@ Index: gdb-7.7.1/gdb/cris-tdep.c
        
        /* How may registers worth of storage do we need for this argument?  */
        reg_demand = (len / 4) + (len % 4 != 0 ? 1 : 0);
-Index: gdb-7.7.1/gdb/h8300-tdep.c
+Index: gdb-7.8.50.20141228/gdb/h8300-tdep.c
 ===================================================================
---- gdb-7.7.1.orig/gdb/h8300-tdep.c	2014-05-09 19:24:18.688252771 +0200
-+++ gdb-7.7.1/gdb/h8300-tdep.c	2014-05-09 20:02:09.624703768 +0200
-@@ -640,7 +640,7 @@ h8300_push_dummy_call (struct gdbarch *g
+--- gdb-7.8.50.20141228.orig/gdb/h8300-tdep.c	2015-01-05 22:18:55.998023652 +0100
++++ gdb-7.8.50.20141228/gdb/h8300-tdep.c	2015-01-05 22:19:08.091078463 +0100
+@@ -639,7 +639,7 @@ h8300_push_dummy_call (struct gdbarch *g
  		       int struct_return, CORE_ADDR struct_addr)
  {
    enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
@@ -418,7 +418,7 @@ Index: gdb-7.7.1/gdb/h8300-tdep.c
    int wordsize = BINWORD (gdbarch);
    int reg = E_ARG0_REGNUM;
    int argument;
-@@ -667,11 +667,11 @@ h8300_push_dummy_call (struct gdbarch *g
+@@ -666,11 +666,11 @@ h8300_push_dummy_call (struct gdbarch *g
      {
        struct cleanup *back_to;
        struct type *type = value_type (args[argument]);
@@ -432,7 +432,7 @@ Index: gdb-7.7.1/gdb/h8300-tdep.c
        gdb_byte *padded = xmalloc (padded_len);
        back_to = make_cleanup (xfree, padded);
  
-@@ -700,7 +700,7 @@ h8300_push_dummy_call (struct gdbarch *g
+@@ -699,7 +699,7 @@ h8300_push_dummy_call (struct gdbarch *g
  	      /* Heavens to Betsy --- it's really going in registers!
  	         Note that on the h8/300s, there are gaps between the
  	         registers in the register file.  */
@@ -441,11 +441,11 @@ Index: gdb-7.7.1/gdb/h8300-tdep.c
  
  	      for (offset = 0; offset < padded_len; offset += wordsize)
  		{
-Index: gdb-7.7.1/gdb/hppa-tdep.c
+Index: gdb-7.8.50.20141228/gdb/hppa-tdep.c
 ===================================================================
---- gdb-7.7.1.orig/gdb/hppa-tdep.c	2014-05-09 19:24:18.690252771 +0200
-+++ gdb-7.7.1/gdb/hppa-tdep.c	2014-05-09 20:02:09.624703768 +0200
-@@ -961,7 +961,7 @@ hppa64_push_dummy_call (struct gdbarch *
+--- gdb-7.8.50.20141228.orig/gdb/hppa-tdep.c	2015-01-05 22:18:55.999023657 +0100
++++ gdb-7.8.50.20141228/gdb/hppa-tdep.c	2015-01-05 22:19:08.091078463 +0100
+@@ -960,7 +960,7 @@ hppa64_push_dummy_call (struct gdbarch *
      {
        struct value *arg = args[i];
        struct type *type = value_type (arg);
@@ -454,7 +454,7 @@ Index: gdb-7.7.1/gdb/hppa-tdep.c
        const bfd_byte *valbuf;
        bfd_byte fptrbuf[8];
        int regnum;
-@@ -1156,7 +1156,7 @@ hppa64_return_value (struct gdbarch *gdb
+@@ -1155,7 +1155,7 @@ hppa64_return_value (struct gdbarch *gdb
  		     struct type *type, struct regcache *regcache,
  		     gdb_byte *readbuf, const gdb_byte *writebuf)
  {
@@ -463,11 +463,11 @@ Index: gdb-7.7.1/gdb/hppa-tdep.c
    int regnum, offset;
  
    if (len > 16)
-Index: gdb-7.7.1/gdb/i386-darwin-tdep.c
+Index: gdb-7.8.50.20141228/gdb/i386-darwin-tdep.c
 ===================================================================
---- gdb-7.7.1.orig/gdb/i386-darwin-tdep.c	2014-05-09 19:24:18.690252771 +0200
-+++ gdb-7.7.1/gdb/i386-darwin-tdep.c	2014-05-09 20:02:09.624703768 +0200
-@@ -164,7 +164,7 @@ i386_darwin_push_dummy_call (struct gdba
+--- gdb-7.8.50.20141228.orig/gdb/i386-darwin-tdep.c	2015-01-05 22:18:55.999023657 +0100
++++ gdb-7.8.50.20141228/gdb/i386-darwin-tdep.c	2015-01-05 22:19:08.091078463 +0100
+@@ -163,7 +163,7 @@ i386_darwin_push_dummy_call (struct gdba
  
    for (write_pass = 0; write_pass < 2; write_pass++)
      {
@@ -476,11 +476,11 @@ Index: gdb-7.7.1/gdb/i386-darwin-tdep.c
        int num_m128 = 0;
  
        if (struct_return)
-Index: gdb-7.7.1/gdb/i386-tdep.c
+Index: gdb-7.8.50.20141228/gdb/i386-tdep.c
 ===================================================================
---- gdb-7.7.1.orig/gdb/i386-tdep.c	2014-05-09 19:24:18.692252771 +0200
-+++ gdb-7.7.1/gdb/i386-tdep.c	2014-05-09 20:02:09.625703769 +0200
-@@ -2473,7 +2473,7 @@ i386_push_dummy_call (struct gdbarch *gd
+--- gdb-7.8.50.20141228.orig/gdb/i386-tdep.c	2015-01-05 22:18:56.002023671 +0100
++++ gdb-7.8.50.20141228/gdb/i386-tdep.c	2015-01-05 22:19:08.092078467 +0100
+@@ -2643,7 +2643,7 @@ i386_push_dummy_call (struct gdbarch *gd
    gdb_byte buf[4];
    int i;
    int write_pass;
@@ -489,7 +489,7 @@ Index: gdb-7.7.1/gdb/i386-tdep.c
  
    /* Determine the total space required for arguments and struct
       return address in a first pass (allowing for 16-byte-aligned
-@@ -2481,7 +2481,7 @@ i386_push_dummy_call (struct gdbarch *gd
+@@ -2651,7 +2651,7 @@ i386_push_dummy_call (struct gdbarch *gd
  
    for (write_pass = 0; write_pass < 2; write_pass++)
      {
@@ -498,7 +498,7 @@ Index: gdb-7.7.1/gdb/i386-tdep.c
  
        if (struct_return)
  	{
-@@ -2498,7 +2498,7 @@ i386_push_dummy_call (struct gdbarch *gd
+@@ -2668,7 +2668,7 @@ i386_push_dummy_call (struct gdbarch *gd
  
        for (i = 0; i < nargs; i++)
  	{
@@ -507,7 +507,7 @@ Index: gdb-7.7.1/gdb/i386-tdep.c
  
  	  if (write_pass)
  	    {
-@@ -2705,7 +2705,7 @@ i386_reg_struct_return_p (struct gdbarch
+@@ -2875,7 +2875,7 @@ i386_reg_struct_return_p (struct gdbarch
  {
    struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
    enum type_code code = TYPE_CODE (type);
@@ -516,7 +516,7 @@ Index: gdb-7.7.1/gdb/i386-tdep.c
  
    gdb_assert (code == TYPE_CODE_STRUCT
                || code == TYPE_CODE_UNION
-@@ -3249,7 +3249,7 @@ static int
+@@ -3621,7 +3621,7 @@ static int
  i386_convert_register_p (struct gdbarch *gdbarch,
  			 int regnum, struct type *type)
  {
@@ -525,7 +525,7 @@ Index: gdb-7.7.1/gdb/i386-tdep.c
  
    /* Values may be spread across multiple registers.  Most debugging
       formats aren't expressive enough to specify the locations, so
-@@ -3282,7 +3282,7 @@ i386_register_to_value (struct frame_inf
+@@ -3654,7 +3654,7 @@ i386_register_to_value (struct frame_inf
  			int *optimizedp, int *unavailablep)
  {
    struct gdbarch *gdbarch = get_frame_arch (frame);
@@ -534,7 +534,7 @@ Index: gdb-7.7.1/gdb/i386-tdep.c
  
    if (i386_fp_regnum_p (gdbarch, regnum))
      return i387_register_to_value (frame, regnum, type, to,
-@@ -3318,7 +3318,7 @@ static void
+@@ -3690,7 +3690,7 @@ static void
  i386_value_to_register (struct frame_info *frame, int regnum,
  			struct type *type, const gdb_byte *from)
  {
@@ -543,28 +543,11 @@ Index: gdb-7.7.1/gdb/i386-tdep.c
  
    if (i386_fp_regnum_p (get_frame_arch (frame), regnum))
      {
-Index: gdb-7.7.1/gdb/ia64-tdep.c
+Index: gdb-7.8.50.20141228/gdb/iq2000-tdep.c
 ===================================================================
---- gdb-7.7.1.orig/gdb/ia64-tdep.c	2014-05-09 19:24:18.693252771 +0200
-+++ gdb-7.7.1/gdb/ia64-tdep.c	2014-05-09 20:02:09.626703769 +0200
-@@ -3851,8 +3851,10 @@ ia64_push_dummy_call (struct gdbarch *gd
-   int argno;
-   struct value *arg;
-   struct type *type;
--  int len, argoffset;
--  int nslots, rseslots, memslots, slotnum, nfuncargs;
-+  LONGEST argoffset;
-+  LONGEST len;
-+  int rseslots, slotnum, nfuncargs;
-+  LONGEST nslots, memslots;
-   int floatreg;
-   ULONGEST bsp;
-   CORE_ADDR funcdescaddr, pc, global_pointer;
-Index: gdb-7.7.1/gdb/iq2000-tdep.c
-===================================================================
---- gdb-7.7.1.orig/gdb/iq2000-tdep.c	2014-05-09 19:24:18.693252771 +0200
-+++ gdb-7.7.1/gdb/iq2000-tdep.c	2014-05-09 20:02:09.626703769 +0200
-@@ -654,8 +654,9 @@ iq2000_push_dummy_call (struct gdbarch *
+--- gdb-7.8.50.20141228.orig/gdb/iq2000-tdep.c	2015-01-05 22:18:56.003023675 +0100
++++ gdb-7.8.50.20141228/gdb/iq2000-tdep.c	2015-01-05 22:19:08.092078467 +0100
+@@ -653,8 +653,9 @@ iq2000_push_dummy_call (struct gdbarch *
    const bfd_byte *val;
    bfd_byte buf[4];
    struct type *type;
@@ -576,11 +559,11 @@ Index: gdb-7.7.1/gdb/iq2000-tdep.c
    /* Used to copy struct arguments into the stack.  */
    CORE_ADDR struct_ptr;
  
-Index: gdb-7.7.1/gdb/m32r-tdep.c
+Index: gdb-7.8.50.20141228/gdb/m32r-tdep.c
 ===================================================================
---- gdb-7.7.1.orig/gdb/m32r-tdep.c	2014-05-09 19:24:18.693252771 +0200
-+++ gdb-7.7.1/gdb/m32r-tdep.c	2014-05-09 20:02:09.626703769 +0200
-@@ -689,7 +689,7 @@ m32r_push_dummy_call (struct gdbarch *gd
+--- gdb-7.8.50.20141228.orig/gdb/m32r-tdep.c	2015-01-05 22:18:56.003023675 +0100
++++ gdb-7.8.50.20141228/gdb/m32r-tdep.c	2015-01-05 22:19:08.093078472 +0100
+@@ -687,7 +687,7 @@ m32r_push_dummy_call (struct gdbarch *gd
    CORE_ADDR regval;
    gdb_byte *val;
    gdb_byte valbuf[MAX_REGISTER_SIZE];
@@ -589,11 +572,11 @@ Index: gdb-7.7.1/gdb/m32r-tdep.c
  
    /* First force sp to a 4-byte alignment.  */
    sp = sp & ~3;
-Index: gdb-7.7.1/gdb/m68k-tdep.c
+Index: gdb-7.8.50.20141228/gdb/m68k-tdep.c
 ===================================================================
---- gdb-7.7.1.orig/gdb/m68k-tdep.c	2014-05-09 19:24:18.694252771 +0200
-+++ gdb-7.7.1/gdb/m68k-tdep.c	2014-05-09 20:02:09.627703769 +0200
-@@ -384,7 +384,7 @@ m68k_reg_struct_return_p (struct gdbarch
+--- gdb-7.8.50.20141228.orig/gdb/m68k-tdep.c	2015-01-05 22:18:56.003023675 +0100
++++ gdb-7.8.50.20141228/gdb/m68k-tdep.c	2015-01-05 22:19:08.093078472 +0100
+@@ -382,7 +382,7 @@ m68k_reg_struct_return_p (struct gdbarch
  {
    struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
    enum type_code code = TYPE_CODE (type);
@@ -602,7 +585,7 @@ Index: gdb-7.7.1/gdb/m68k-tdep.c
  
    gdb_assert (code == TYPE_CODE_STRUCT || code == TYPE_CODE_UNION
  	      || code == TYPE_CODE_COMPLEX);
-@@ -516,9 +516,9 @@ m68k_push_dummy_call (struct gdbarch *gd
+@@ -514,9 +514,9 @@ m68k_push_dummy_call (struct gdbarch *gd
    for (i = nargs - 1; i >= 0; i--)
      {
        struct type *value_type = value_enclosing_type (args[i]);
@@ -615,11 +598,11 @@ Index: gdb-7.7.1/gdb/m68k-tdep.c
  
        /* Non-scalars bigger than 4 bytes are left aligned, others are
  	 right aligned.  */
-Index: gdb-7.7.1/gdb/m88k-tdep.c
+Index: gdb-7.8.50.20141228/gdb/m88k-tdep.c
 ===================================================================
---- gdb-7.7.1.orig/gdb/m88k-tdep.c	2014-05-09 19:24:18.694252771 +0200
-+++ gdb-7.7.1/gdb/m88k-tdep.c	2014-05-09 20:02:09.627703769 +0200
-@@ -260,13 +260,13 @@ m88k_store_arguments (struct regcache *r
+--- gdb-7.8.50.20141228.orig/gdb/m88k-tdep.c	2015-01-05 22:18:56.004023680 +0100
++++ gdb-7.8.50.20141228/gdb/m88k-tdep.c	2015-01-05 22:19:08.093078472 +0100
+@@ -257,13 +257,13 @@ m88k_store_arguments (struct regcache *r
  {
    struct gdbarch *gdbarch = get_regcache_arch (regcache);
    int num_register_words = 0;
@@ -635,7 +618,7 @@ Index: gdb-7.7.1/gdb/m88k-tdep.c
  
        if (m88k_integral_or_pointer_p (type) && len < 4)
  	{
-@@ -308,8 +308,8 @@ m88k_store_arguments (struct regcache *r
+@@ -305,8 +305,8 @@ m88k_store_arguments (struct regcache *r
      {
        const bfd_byte *valbuf = value_contents (args[i]);
        struct type *type = value_type (args[i]);
@@ -646,11 +629,11 @@ Index: gdb-7.7.1/gdb/m88k-tdep.c
  
        if (m88k_in_register_p (type))
  	{
-Index: gdb-7.7.1/gdb/mep-tdep.c
+Index: gdb-7.8.50.20141228/gdb/mep-tdep.c
 ===================================================================
---- gdb-7.7.1.orig/gdb/mep-tdep.c	2014-05-09 19:24:18.695252772 +0200
-+++ gdb-7.7.1/gdb/mep-tdep.c	2014-05-09 20:02:09.627703769 +0200
-@@ -2272,7 +2272,7 @@ push_large_arguments (CORE_ADDR sp, int
+--- gdb-7.8.50.20141228.orig/gdb/mep-tdep.c	2015-01-05 22:18:56.005023684 +0100
++++ gdb-7.8.50.20141228/gdb/mep-tdep.c	2015-01-05 22:19:08.093078472 +0100
+@@ -2269,7 +2269,7 @@ push_large_arguments (CORE_ADDR sp, int
  
    for (i = 0; i < argc; i++)
      {
@@ -659,11 +642,11 @@ Index: gdb-7.7.1/gdb/mep-tdep.c
  
        if (arg_len > MEP_GPR_SIZE)
          {
-Index: gdb-7.7.1/gdb/mips-tdep.c
+Index: gdb-7.8.50.20141228/gdb/mips-tdep.c
 ===================================================================
---- gdb-7.7.1.orig/gdb/mips-tdep.c	2014-05-09 19:24:18.698252772 +0200
-+++ gdb-7.7.1/gdb/mips-tdep.c	2014-05-09 20:02:09.628703769 +0200
-@@ -402,7 +402,7 @@ static void
+--- gdb-7.8.50.20141228.orig/gdb/mips-tdep.c	2015-01-05 22:18:56.009023702 +0100
++++ gdb-7.8.50.20141228/gdb/mips-tdep.c	2015-01-05 22:19:08.095078481 +0100
+@@ -455,7 +455,7 @@ static void
  mips_xfer_register (struct gdbarch *gdbarch, struct regcache *regcache,
  		    int reg_num, int length,
  		    enum bfd_endian endian, gdb_byte *in,
@@ -672,7 +655,7 @@ Index: gdb-7.7.1/gdb/mips-tdep.c
  {
    int reg_offset = 0;
  
-@@ -425,8 +425,8 @@ mips_xfer_register (struct gdbarch *gdba
+@@ -478,8 +478,8 @@ mips_xfer_register (struct gdbarch *gdba
      }
    if (mips_debug)
      fprintf_unfiltered (gdb_stderr,
@@ -683,7 +666,7 @@ Index: gdb-7.7.1/gdb/mips-tdep.c
    if (mips_debug && out != NULL)
      {
        int i;
-@@ -4345,13 +4345,13 @@ mips_eabi_push_dummy_call (struct gdbarc
+@@ -4551,13 +4551,13 @@ mips_eabi_push_dummy_call (struct gdbarc
        gdb_byte valbuf[MAX_REGISTER_SIZE];
        struct value *arg = args[argnum];
        struct type *arg_type = check_typedef (value_type (arg));
@@ -698,9 +681,9 @@ Index: gdb-7.7.1/gdb/mips-tdep.c
 +			    "mips_eabi_push_dummy_call: %d len=%s type=%d",
 +			    argnum + 1, plongest (len), (int) typecode);
  
-       /* Function pointer arguments to mips16 code need to be made into
-          mips16 pointers.  */
-@@ -4636,7 +4636,7 @@ mips_eabi_return_value (struct gdbarch *
+       /* The EABI passes structures that do not fit in a register by
+          reference.  */
+@@ -4826,7 +4826,7 @@ mips_eabi_return_value (struct gdbarch *
  
  static int
  mips_n32n64_fp_arg_chunk_p (struct gdbarch *gdbarch, struct type *arg_type,
@@ -709,7 +692,7 @@ Index: gdb-7.7.1/gdb/mips-tdep.c
  {
    int i;
  
-@@ -4651,7 +4651,7 @@ mips_n32n64_fp_arg_chunk_p (struct gdbar
+@@ -4841,7 +4841,7 @@ mips_n32n64_fp_arg_chunk_p (struct gdbar
  
    for (i = 0; i < TYPE_NFIELDS (arg_type); i++)
      {
@@ -718,7 +701,7 @@ Index: gdb-7.7.1/gdb/mips-tdep.c
        struct type *field_type;
  
        /* We're only looking at normal fields.  */
-@@ -4693,7 +4693,7 @@ mips_n32n64_push_dummy_call (struct gdba
+@@ -4883,7 +4883,7 @@ mips_n32n64_push_dummy_call (struct gdba
    int argreg;
    int float_argreg;
    int argnum;
@@ -727,7 +710,7 @@ Index: gdb-7.7.1/gdb/mips-tdep.c
    int stack_offset = 0;
    enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
    CORE_ADDR func_addr = find_function_addr (function, NULL);
-@@ -5044,11 +5044,11 @@ mips_n32n64_return_value (struct gdbarch
+@@ -5234,11 +5234,11 @@ mips_n32n64_return_value (struct gdbarch
  				: MIPS_V0_REGNUM);
  	   field < TYPE_NFIELDS (type); field++, regnum += 2)
  	{
@@ -743,7 +726,7 @@ Index: gdb-7.7.1/gdb/mips-tdep.c
  	  if (TYPE_LENGTH (TYPE_FIELD_TYPE (type, field)) == 16)
  	    {
  	      /* A 16-byte long double field goes in two consecutive
-@@ -5090,8 +5090,8 @@ mips_n32n64_return_value (struct gdbarch
+@@ -5280,8 +5280,8 @@ mips_n32n64_return_value (struct gdbarch
  	  if (offset + xfer > TYPE_LENGTH (type))
  	    xfer = TYPE_LENGTH (type) - offset;
  	  if (mips_debug)
@@ -754,7 +737,7 @@ Index: gdb-7.7.1/gdb/mips-tdep.c
  	  mips_xfer_register (gdbarch, regcache,
  			      gdbarch_num_regs (gdbarch) + regnum,
  			      xfer, BFD_ENDIAN_UNKNOWN, readbuf, writebuf,
-@@ -5149,7 +5149,7 @@ mips_o32_push_dummy_call (struct gdbarch
+@@ -5339,7 +5339,7 @@ mips_o32_push_dummy_call (struct gdbarch
    int argreg;
    int float_argreg;
    int argnum;
@@ -763,7 +746,7 @@ Index: gdb-7.7.1/gdb/mips-tdep.c
    int stack_offset = 0;
    enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
    CORE_ADDR func_addr = find_function_addr (function, NULL);
-@@ -5213,13 +5213,13 @@ mips_o32_push_dummy_call (struct gdbarch
+@@ -5403,13 +5403,13 @@ mips_o32_push_dummy_call (struct gdbarch
        const gdb_byte *val;
        struct value *arg = args[argnum];
        struct type *arg_type = check_typedef (value_type (arg));
@@ -780,7 +763,7 @@ Index: gdb-7.7.1/gdb/mips-tdep.c
  
        val = value_contents (arg);
  
-@@ -5677,8 +5677,8 @@ mips_o64_push_dummy_call (struct gdbarch
+@@ -5867,8 +5867,8 @@ mips_o64_push_dummy_call (struct gdbarch
    int argreg;
    int float_argreg;
    int argnum;
@@ -791,8 +774,8 @@ Index: gdb-7.7.1/gdb/mips-tdep.c
    enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
    CORE_ADDR func_addr = find_function_addr (function, NULL);
  
-@@ -5739,13 +5739,13 @@ mips_o64_push_dummy_call (struct gdbarch
-       gdb_byte valbuf[MAX_REGISTER_SIZE];
+@@ -5928,13 +5928,13 @@ mips_o64_push_dummy_call (struct gdbarch
+       const gdb_byte *val;
        struct value *arg = args[argnum];
        struct type *arg_type = check_typedef (value_type (arg));
 -      int len = TYPE_LENGTH (arg_type);
@@ -808,11 +791,11 @@ Index: gdb-7.7.1/gdb/mips-tdep.c
  
        val = value_contents (arg);
  
-Index: gdb-7.7.1/gdb/mn10300-tdep.c
+Index: gdb-7.8.50.20141228/gdb/mn10300-tdep.c
 ===================================================================
---- gdb-7.7.1.orig/gdb/mn10300-tdep.c	2014-05-09 19:24:18.698252772 +0200
-+++ gdb-7.7.1/gdb/mn10300-tdep.c	2014-05-09 20:02:09.629703770 +0200
-@@ -1227,7 +1227,7 @@ mn10300_push_dummy_call (struct gdbarch
+--- gdb-7.8.50.20141228.orig/gdb/mn10300-tdep.c	2015-01-05 22:18:56.010023707 +0100
++++ gdb-7.8.50.20141228/gdb/mn10300-tdep.c	2015-01-05 22:19:08.096078485 +0100
+@@ -1225,7 +1225,7 @@ mn10300_push_dummy_call (struct gdbarch
    enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
    const int push_size = register_size (gdbarch, E_PC_REGNUM);
    int regs_used;
@@ -821,11 +804,11 @@ Index: gdb-7.7.1/gdb/mn10300-tdep.c
    int stack_offset = 0;
    int argnum;
    const gdb_byte *val;
-Index: gdb-7.7.1/gdb/mt-tdep.c
+Index: gdb-7.8.50.20141228/gdb/mt-tdep.c
 ===================================================================
---- gdb-7.7.1.orig/gdb/mt-tdep.c	2014-05-09 19:24:18.699252772 +0200
-+++ gdb-7.7.1/gdb/mt-tdep.c	2014-05-09 20:02:09.629703770 +0200
-@@ -783,9 +783,9 @@ mt_push_dummy_call (struct gdbarch *gdba
+--- gdb-7.8.50.20141228.orig/gdb/mt-tdep.c	2015-01-05 22:18:56.010023707 +0100
++++ gdb-7.8.50.20141228/gdb/mt-tdep.c	2015-01-05 22:19:08.096078485 +0100
+@@ -781,9 +781,9 @@ mt_push_dummy_call (struct gdbarch *gdba
    gdb_byte buf[MT_MAX_STRUCT_SIZE];
    int argreg = MT_1ST_ARGREG;
    int split_param_len = 0;
@@ -837,11 +820,11 @@ Index: gdb-7.7.1/gdb/mt-tdep.c
    int i, j;
  
    /* First handle however many args we can fit into MT_1ST_ARGREG thru
-Index: gdb-7.7.1/gdb/ppc-sysv-tdep.c
+Index: gdb-7.8.50.20141228/gdb/ppc-sysv-tdep.c
 ===================================================================
---- gdb-7.7.1.orig/gdb/ppc-sysv-tdep.c	2014-05-09 19:24:18.699252772 +0200
-+++ gdb-7.7.1/gdb/ppc-sysv-tdep.c	2014-05-09 20:10:13.994807709 +0200
-@@ -68,7 +68,7 @@ ppc_sysv_abi_push_dummy_call (struct gdb
+--- gdb-7.8.50.20141228.orig/gdb/ppc-sysv-tdep.c	2015-01-05 22:18:56.011023711 +0100
++++ gdb-7.8.50.20141228/gdb/ppc-sysv-tdep.c	2015-01-05 22:19:08.096078485 +0100
+@@ -66,7 +66,7 @@ ppc_sysv_abi_push_dummy_call (struct gdb
    enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
    int opencl_abi = ppc_sysv_use_opencl_abi (value_type (function));
    ULONGEST saved_sp;
@@ -850,7 +833,7 @@ Index: gdb-7.7.1/gdb/ppc-sysv-tdep.c
    int write_pass;
  
    gdb_assert (tdep->wordsize == 4);
-@@ -99,9 +99,9 @@ ppc_sysv_abi_push_dummy_call (struct gdb
+@@ -97,9 +97,9 @@ ppc_sysv_abi_push_dummy_call (struct gdb
        /* Next available vector register for vector arguments.  */
        int vreg = 2;
        /* Arguments start above the "LR save word" and "Back chain".  */
@@ -862,7 +845,7 @@ Index: gdb-7.7.1/gdb/ppc-sysv-tdep.c
  
        /* If the function is returning a `struct', then the first word
           (which will be passed in r3) is used for struct return
-@@ -120,7 +120,7 @@ ppc_sysv_abi_push_dummy_call (struct gdb
+@@ -118,7 +118,7 @@ ppc_sysv_abi_push_dummy_call (struct gdb
  	{
  	  struct value *arg = args[argno];
  	  struct type *type = check_typedef (value_type (arg));
@@ -871,7 +854,7 @@ Index: gdb-7.7.1/gdb/ppc-sysv-tdep.c
  	  const bfd_byte *val = value_contents (arg);
  
  	  if (TYPE_CODE (type) == TYPE_CODE_FLT && len <= 8
-@@ -1285,11 +1285,11 @@ struct ppc64_sysv_argpos
+@@ -1283,11 +1283,11 @@ struct ppc64_sysv_argpos
  
  static void
  ppc64_sysv_abi_push_val (struct gdbarch *gdbarch,
@@ -885,11 +868,11 @@ Index: gdb-7.7.1/gdb/ppc-sysv-tdep.c
  
    /* Enforce alignment of stack location, if requested.  */
    if (align > tdep->wordsize)
-Index: gdb-7.7.1/gdb/rl78-tdep.c
+Index: gdb-7.8.50.20141228/gdb/rl78-tdep.c
 ===================================================================
---- gdb-7.7.1.orig/gdb/rl78-tdep.c	2014-05-09 19:24:18.700252772 +0200
-+++ gdb-7.7.1/gdb/rl78-tdep.c	2014-05-09 20:02:09.630703770 +0200
-@@ -1052,8 +1052,8 @@ rl78_push_dummy_call (struct gdbarch *gd
+--- gdb-7.8.50.20141228.orig/gdb/rl78-tdep.c	2015-01-05 22:18:56.011023711 +0100
++++ gdb-7.8.50.20141228/gdb/rl78-tdep.c	2015-01-05 22:19:08.096078485 +0100
+@@ -1251,8 +1251,8 @@ rl78_push_dummy_call (struct gdbarch *gd
    for (i = nargs - 1; i >= 0; i--)
      {
        struct type *value_type = value_enclosing_type (args[i]);
@@ -900,11 +883,11 @@ Index: gdb-7.7.1/gdb/rl78-tdep.c
  
        sp -= container_len;
        write_memory (rl78_make_data_address (sp),
-Index: gdb-7.7.1/gdb/rs6000-aix-tdep.c
+Index: gdb-7.8.50.20141228/gdb/rs6000-aix-tdep.c
 ===================================================================
---- gdb-7.7.1.orig/gdb/rs6000-aix-tdep.c	2014-05-09 19:24:18.700252772 +0200
-+++ gdb-7.7.1/gdb/rs6000-aix-tdep.c	2014-05-09 20:02:09.630703770 +0200
-@@ -196,9 +196,9 @@ rs6000_push_dummy_call (struct gdbarch *
+--- gdb-7.8.50.20141228.orig/gdb/rs6000-aix-tdep.c	2015-01-05 22:18:56.012023716 +0100
++++ gdb-7.8.50.20141228/gdb/rs6000-aix-tdep.c	2015-01-05 22:19:08.097078490 +0100
+@@ -186,9 +186,9 @@ rs6000_push_dummy_call (struct gdbarch *
    struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
    enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
    int ii;
@@ -916,7 +899,7 @@ Index: gdb-7.7.1/gdb/rs6000-aix-tdep.c
    gdb_byte tmp_buffer[50];
    int f_argno = 0;		/* current floating point argno */
    int wordsize = gdbarch_tdep (gdbarch)->wordsize;
-@@ -331,7 +331,7 @@ ran_out_of_registers_for_arguments:
+@@ -321,7 +321,7 @@ ran_out_of_registers_for_arguments:
  
    if ((argno < nargs) || argbytes)
      {
@@ -925,11 +908,11 @@ Index: gdb-7.7.1/gdb/rs6000-aix-tdep.c
  
        if (argbytes)
  	{
-Index: gdb-7.7.1/gdb/s390-linux-tdep.c
+Index: gdb-7.8.50.20141228/gdb/s390-linux-tdep.c
 ===================================================================
---- gdb-7.7.1.orig/gdb/s390-linux-tdep.c	2014-05-09 19:24:18.701252772 +0200
-+++ gdb-7.7.1/gdb/s390-linux-tdep.c	2014-05-09 20:02:09.631703770 +0200
-@@ -2526,7 +2526,7 @@ is_float_like (struct type *type)
+--- gdb-7.8.50.20141228.orig/gdb/s390-linux-tdep.c	2015-01-05 22:18:56.013023720 +0100
++++ gdb-7.8.50.20141228/gdb/s390-linux-tdep.c	2015-01-05 22:19:08.097078490 +0100
+@@ -2334,7 +2334,7 @@ is_float_like (struct type *type)
  
  
  static int
@@ -938,7 +921,7 @@ Index: gdb-7.7.1/gdb/s390-linux-tdep.c
  {
    return ((n & (n - 1)) == 0);
  }
-@@ -2712,7 +2712,7 @@ s390_push_dummy_call (struct gdbarch *gd
+@@ -2520,7 +2520,7 @@ s390_push_dummy_call (struct gdbarch *gd
        {
  	struct value *arg = args[i];
  	struct type *type = check_typedef (value_type (arg));
@@ -947,11 +930,11 @@ Index: gdb-7.7.1/gdb/s390-linux-tdep.c
  
  	if (s390_function_arg_pass_by_reference (type))
  	  {
-Index: gdb-7.7.1/gdb/score-tdep.c
+Index: gdb-7.8.50.20141228/gdb/score-tdep.c
 ===================================================================
---- gdb-7.7.1.orig/gdb/score-tdep.c	2014-05-09 19:24:18.701252772 +0200
-+++ gdb-7.7.1/gdb/score-tdep.c	2014-05-09 20:02:09.631703770 +0200
-@@ -515,7 +515,7 @@ score_push_dummy_call (struct gdbarch *g
+--- gdb-7.8.50.20141228.orig/gdb/score-tdep.c	2015-01-05 22:18:56.013023720 +0100
++++ gdb-7.8.50.20141228/gdb/score-tdep.c	2015-01-05 22:19:08.097078490 +0100
+@@ -514,7 +514,7 @@ score_push_dummy_call (struct gdbarch *g
    enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
    int argnum;
    int argreg;
@@ -960,11 +943,11 @@ Index: gdb-7.7.1/gdb/score-tdep.c
    CORE_ADDR stack_offset = 0;
    CORE_ADDR addr = 0;
  
-Index: gdb-7.7.1/gdb/sh-tdep.c
+Index: gdb-7.8.50.20141228/gdb/sh-tdep.c
 ===================================================================
---- gdb-7.7.1.orig/gdb/sh-tdep.c	2014-05-09 19:24:18.702252772 +0200
-+++ gdb-7.7.1/gdb/sh-tdep.c	2014-05-09 20:02:09.631703770 +0200
-@@ -807,7 +807,7 @@ sh_skip_prologue (struct gdbarch *gdbarc
+--- gdb-7.8.50.20141228.orig/gdb/sh-tdep.c	2015-01-05 22:18:56.014023725 +0100
++++ gdb-7.8.50.20141228/gdb/sh-tdep.c	2015-01-05 22:19:08.098078494 +0100
+@@ -805,7 +805,7 @@ sh_skip_prologue (struct gdbarch *gdbarc
  static int
  sh_use_struct_convention (int renesas_abi, struct type *type)
  {
@@ -973,7 +956,7 @@ Index: gdb-7.7.1/gdb/sh-tdep.c
    int nelem = TYPE_NFIELDS (type);
  
    /* The Renesas ABI returns aggregate types always on stack.  */
-@@ -909,7 +909,7 @@ sh_frame_align (struct gdbarch *ignore,
+@@ -907,7 +907,7 @@ sh_frame_align (struct gdbarch *ignore,
  
  /* Helper function to justify value in register according to endianess.  */
  static const gdb_byte *
@@ -982,7 +965,7 @@ Index: gdb-7.7.1/gdb/sh-tdep.c
  {
    static gdb_byte valbuf[4];
  
-@@ -1069,7 +1069,8 @@ sh_push_dummy_call_fpu (struct gdbarch *
+@@ -1067,7 +1067,8 @@ sh_push_dummy_call_fpu (struct gdbarch *
    struct type *type;
    CORE_ADDR regval;
    const gdb_byte *val;
@@ -992,7 +975,7 @@ Index: gdb-7.7.1/gdb/sh-tdep.c
    int pass_on_stack = 0;
    int treat_as_flt;
    int last_reg_arg = INT_MAX;
-@@ -1210,7 +1211,8 @@ sh_push_dummy_call_nofpu (struct gdbarch
+@@ -1208,7 +1209,8 @@ sh_push_dummy_call_nofpu (struct gdbarch
    struct type *type;
    CORE_ADDR regval;
    const gdb_byte *val;
@@ -1002,11 +985,11 @@ Index: gdb-7.7.1/gdb/sh-tdep.c
    int pass_on_stack = 0;
    int last_reg_arg = INT_MAX;
  
-Index: gdb-7.7.1/gdb/sh64-tdep.c
+Index: gdb-7.8.50.20141228/gdb/sh64-tdep.c
 ===================================================================
---- gdb-7.7.1.orig/gdb/sh64-tdep.c	2014-05-09 19:24:18.702252772 +0200
-+++ gdb-7.7.1/gdb/sh64-tdep.c	2014-05-09 20:02:09.632703771 +0200
-@@ -1058,7 +1058,7 @@ sh64_push_dummy_call (struct gdbarch *gd
+--- gdb-7.8.50.20141228.orig/gdb/sh64-tdep.c	2015-01-05 22:18:56.015023729 +0100
++++ gdb-7.8.50.20141228/gdb/sh64-tdep.c	2015-01-05 22:19:08.098078494 +0100
+@@ -1056,7 +1056,7 @@ sh64_push_dummy_call (struct gdbarch *gd
  		      CORE_ADDR struct_addr)
  {
    enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
@@ -1015,7 +998,7 @@ Index: gdb-7.7.1/gdb/sh64-tdep.c
    int int_argreg;
    int float_argreg;
    int double_argreg;
-@@ -1069,7 +1069,7 @@ sh64_push_dummy_call (struct gdbarch *gd
+@@ -1067,7 +1067,7 @@ sh64_push_dummy_call (struct gdbarch *gd
    CORE_ADDR regval;
    const gdb_byte *val;
    gdb_byte valbuf[8];
@@ -1024,11 +1007,11 @@ Index: gdb-7.7.1/gdb/sh64-tdep.c
    int argreg_size;
    int fp_args[12];
  
-Index: gdb-7.7.1/gdb/sparc-tdep.c
+Index: gdb-7.8.50.20141228/gdb/sparc-tdep.c
 ===================================================================
---- gdb-7.7.1.orig/gdb/sparc-tdep.c	2014-05-09 19:24:18.703252772 +0200
-+++ gdb-7.7.1/gdb/sparc-tdep.c	2014-05-09 20:02:09.632703771 +0200
-@@ -502,7 +502,7 @@ sparc32_store_arguments (struct regcache
+--- gdb-7.8.50.20141228.orig/gdb/sparc-tdep.c	2015-01-05 22:18:56.016023734 +0100
++++ gdb-7.8.50.20141228/gdb/sparc-tdep.c	2015-01-05 22:19:08.098078494 +0100
+@@ -525,7 +525,7 @@ sparc32_store_arguments (struct regcache
    for (i = 0; i < nargs; i++)
      {
        struct type *type = value_type (args[i]);
@@ -1037,11 +1020,11 @@ Index: gdb-7.7.1/gdb/sparc-tdep.c
  
        if (sparc_structure_or_union_p (type)
  	  || (sparc_floating_p (type) && len == 16)
-Index: gdb-7.7.1/gdb/sparc64-tdep.c
+Index: gdb-7.8.50.20141228/gdb/sparc64-tdep.c
 ===================================================================
---- gdb-7.7.1.orig/gdb/sparc64-tdep.c	2014-05-09 19:24:18.704252773 +0200
-+++ gdb-7.7.1/gdb/sparc64-tdep.c	2014-05-09 20:02:09.632703771 +0200
-@@ -639,7 +639,8 @@ sparc64_16_byte_align_p (struct type *ty
+--- gdb-7.8.50.20141228.orig/gdb/sparc64-tdep.c	2015-01-05 22:18:56.016023734 +0100
++++ gdb-7.8.50.20141228/gdb/sparc64-tdep.c	2015-01-05 22:19:08.099078499 +0100
+@@ -636,7 +636,8 @@ sparc64_16_byte_align_p (struct type *ty
  
  static void
  sparc64_store_floating_fields (struct regcache *regcache, struct type *type,
@@ -1051,7 +1034,7 @@ Index: gdb-7.7.1/gdb/sparc64-tdep.c
  {
    int len = TYPE_LENGTH (type);
  
-@@ -681,7 +682,7 @@ sparc64_store_floating_fields (struct re
+@@ -678,7 +679,7 @@ sparc64_store_floating_fields (struct re
        for (i = 0; i < TYPE_NFIELDS (type); i++)
  	{
  	  struct type *subtype = check_typedef (TYPE_FIELD_TYPE (type, i));
@@ -1060,7 +1043,7 @@ Index: gdb-7.7.1/gdb/sparc64-tdep.c
  
  	  sparc64_store_floating_fields (regcache, subtype, valbuf,
  					 element, subpos);
-@@ -713,7 +714,7 @@ sparc64_store_floating_fields (struct re
+@@ -710,7 +711,7 @@ sparc64_store_floating_fields (struct re
  
  static void
  sparc64_extract_floating_fields (struct regcache *regcache, struct type *type,
@@ -1069,7 +1052,7 @@ Index: gdb-7.7.1/gdb/sparc64-tdep.c
  {
    if (sparc64_floating_p (type))
      {
-@@ -750,7 +751,7 @@ sparc64_extract_floating_fields (struct
+@@ -747,7 +748,7 @@ sparc64_extract_floating_fields (struct
        for (i = 0; i < TYPE_NFIELDS (type); i++)
  	{
  	  struct type *subtype = check_typedef (TYPE_FIELD_TYPE (type, i));
@@ -1078,7 +1061,7 @@ Index: gdb-7.7.1/gdb/sparc64-tdep.c
  
  	  sparc64_extract_floating_fields (regcache, subtype, valbuf, subpos);
  	}
-@@ -783,7 +784,7 @@ sparc64_store_arguments (struct regcache
+@@ -780,7 +781,7 @@ sparc64_store_arguments (struct regcache
    for (i = 0; i < nargs; i++)
      {
        struct type *type = value_type (args[i]);
@@ -1087,7 +1070,7 @@ Index: gdb-7.7.1/gdb/sparc64-tdep.c
  
        if (sparc64_structure_or_union_p (type)
  	  || (sparc64_complex_floating_p (type) && len == 32))
-@@ -883,7 +884,7 @@ sparc64_store_arguments (struct regcache
+@@ -880,7 +881,7 @@ sparc64_store_arguments (struct regcache
      {
        const gdb_byte *valbuf = value_contents (args[i]);
        struct type *type = value_type (args[i]);
@@ -1096,11 +1079,11 @@ Index: gdb-7.7.1/gdb/sparc64-tdep.c
        int regnum = -1;
        gdb_byte buf[16];
  
-Index: gdb-7.7.1/gdb/spu-tdep.c
+Index: gdb-7.8.50.20141228/gdb/spu-tdep.c
 ===================================================================
---- gdb-7.7.1.orig/gdb/spu-tdep.c	2014-05-09 19:24:18.704252773 +0200
-+++ gdb-7.7.1/gdb/spu-tdep.c	2014-05-09 20:02:09.633703771 +0200
-@@ -1376,7 +1376,7 @@ spu_push_dummy_call (struct gdbarch *gdb
+--- gdb-7.8.50.20141228.orig/gdb/spu-tdep.c	2015-01-05 22:18:56.017023739 +0100
++++ gdb-7.8.50.20141228/gdb/spu-tdep.c	2015-01-05 22:19:08.099078499 +0100
+@@ -1430,7 +1430,7 @@ spu_push_dummy_call (struct gdbarch *gdb
        struct value *arg = args[i];
        struct type *type = check_typedef (value_type (arg));
        const gdb_byte *contents = value_contents (arg);
@@ -1109,7 +1092,7 @@ Index: gdb-7.7.1/gdb/spu-tdep.c
  
        /* If the argument doesn't wholly fit into registers, it and
  	 all subsequent arguments go to the stack.  */
-@@ -1408,7 +1408,7 @@ spu_push_dummy_call (struct gdbarch *gdb
+@@ -1462,7 +1462,7 @@ spu_push_dummy_call (struct gdbarch *gdb
  	{
  	  struct value *arg = args[i];
  	  struct type *type = check_typedef (value_type (arg));
@@ -1118,11 +1101,11 @@ Index: gdb-7.7.1/gdb/spu-tdep.c
  	  int preferred_slot;
  	  
  	  if (spu_scalar_value_p (type))
-Index: gdb-7.7.1/gdb/tic6x-tdep.c
+Index: gdb-7.8.50.20141228/gdb/tic6x-tdep.c
 ===================================================================
---- gdb-7.7.1.orig/gdb/tic6x-tdep.c	2014-05-09 19:24:18.705252773 +0200
-+++ gdb-7.7.1/gdb/tic6x-tdep.c	2014-05-09 20:02:09.633703771 +0200
-@@ -896,7 +896,7 @@ tic6x_push_dummy_call (struct gdbarch *g
+--- gdb-7.8.50.20141228.orig/gdb/tic6x-tdep.c	2015-01-05 22:18:56.018023743 +0100
++++ gdb-7.8.50.20141228/gdb/tic6x-tdep.c	2015-01-05 22:19:08.099078499 +0100
+@@ -895,7 +895,7 @@ tic6x_push_dummy_call (struct gdbarch *g
    int argreg = 0;
    int argnum;
    int stack_offset = 4;
@@ -1131,7 +1114,7 @@ Index: gdb-7.7.1/gdb/tic6x-tdep.c
    CORE_ADDR func_addr = find_function_addr (function, NULL);
    enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
    struct type *func_type = value_type (function);
-@@ -930,7 +930,7 @@ tic6x_push_dummy_call (struct gdbarch *g
+@@ -929,7 +929,7 @@ tic6x_push_dummy_call (struct gdbarch *g
    /* Now make space on the stack for the args.  */
    for (argnum = 0; argnum < nargs; argnum++)
      {
@@ -1140,7 +1123,7 @@ Index: gdb-7.7.1/gdb/tic6x-tdep.c
        if (argnum >= 10 - argreg)
  	references_offset += len;
        stack_offset += len;
-@@ -949,7 +949,7 @@ tic6x_push_dummy_call (struct gdbarch *g
+@@ -948,7 +948,7 @@ tic6x_push_dummy_call (struct gdbarch *g
        const gdb_byte *val;
        struct value *arg = args[argnum];
        struct type *arg_type = check_typedef (value_type (arg));
@@ -1149,7 +1132,7 @@ Index: gdb-7.7.1/gdb/tic6x-tdep.c
        enum type_code typecode = TYPE_CODE (arg_type);
  
        val = value_contents (arg);
-@@ -1109,7 +1109,8 @@ tic6x_push_dummy_call (struct gdbarch *g
+@@ -1108,7 +1108,8 @@ tic6x_push_dummy_call (struct gdbarch *g
  	    }
  	  else
  	    internal_error (__FILE__, __LINE__,
@@ -1159,11 +1142,11 @@ Index: gdb-7.7.1/gdb/tic6x-tdep.c
  
  	  addr = sp + stack_offset;
  	  write_memory (addr, val, len);
-Index: gdb-7.7.1/gdb/tilegx-tdep.c
+Index: gdb-7.8.50.20141228/gdb/tilegx-tdep.c
 ===================================================================
---- gdb-7.7.1.orig/gdb/tilegx-tdep.c	2014-05-09 19:24:18.705252773 +0200
-+++ gdb-7.7.1/gdb/tilegx-tdep.c	2014-05-09 20:02:09.633703771 +0200
-@@ -290,7 +290,7 @@ tilegx_push_dummy_call (struct gdbarch *
+--- gdb-7.8.50.20141228.orig/gdb/tilegx-tdep.c	2015-01-05 22:18:56.018023743 +0100
++++ gdb-7.8.50.20141228/gdb/tilegx-tdep.c	2015-01-05 22:19:08.100078503 +0100
+@@ -288,7 +288,7 @@ tilegx_push_dummy_call (struct gdbarch *
    CORE_ADDR stack_dest = sp;
    int argreg = TILEGX_R0_REGNUM;
    int i, j;
@@ -1172,11 +1155,11 @@ Index: gdb-7.7.1/gdb/tilegx-tdep.c
    static const gdb_byte four_zero_words[16] = { 0 };
  
    /* If struct_return is 1, then the struct return address will
-Index: gdb-7.7.1/gdb/v850-tdep.c
+Index: gdb-7.8.50.20141228/gdb/v850-tdep.c
 ===================================================================
---- gdb-7.7.1.orig/gdb/v850-tdep.c	2014-05-09 19:24:18.705252773 +0200
-+++ gdb-7.7.1/gdb/v850-tdep.c	2014-05-09 20:02:09.634703771 +0200
-@@ -1021,7 +1021,7 @@ v850_push_dummy_call (struct gdbarch *gd
+--- gdb-7.8.50.20141228.orig/gdb/v850-tdep.c	2015-01-05 22:18:56.019023748 +0100
++++ gdb-7.8.50.20141228/gdb/v850-tdep.c	2015-01-05 22:19:08.100078503 +0100
+@@ -1019,7 +1019,7 @@ v850_push_dummy_call (struct gdbarch *gd
    enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
    int argreg;
    int argnum;
@@ -1185,7 +1168,7 @@ Index: gdb-7.7.1/gdb/v850-tdep.c
    int stack_offset;
  
    if (gdbarch_tdep (gdbarch)->abi == V850_ABI_RH850)
-@@ -1049,7 +1049,7 @@ v850_push_dummy_call (struct gdbarch *gd
+@@ -1047,7 +1047,7 @@ v850_push_dummy_call (struct gdbarch *gd
       in four registers available.  Loop thru args from first to last.  */
    for (argnum = 0; argnum < nargs; argnum++)
      {
@@ -1194,11 +1177,11 @@ Index: gdb-7.7.1/gdb/v850-tdep.c
        gdb_byte *val;
        gdb_byte valbuf[v850_reg_size];
  
-Index: gdb-7.7.1/gdb/vax-tdep.c
+Index: gdb-7.8.50.20141228/gdb/vax-tdep.c
 ===================================================================
---- gdb-7.7.1.orig/gdb/vax-tdep.c	2014-05-09 19:24:18.706252773 +0200
-+++ gdb-7.7.1/gdb/vax-tdep.c	2014-05-09 20:02:09.634703771 +0200
-@@ -115,7 +115,7 @@ vax_store_arguments (struct regcache *re
+--- gdb-7.8.50.20141228.orig/gdb/vax-tdep.c	2015-01-05 22:18:56.019023748 +0100
++++ gdb-7.8.50.20141228/gdb/vax-tdep.c	2015-01-05 22:19:08.100078503 +0100
+@@ -111,7 +111,7 @@ vax_store_arguments (struct regcache *re
    struct gdbarch *gdbarch = get_regcache_arch (regcache);
    enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
    gdb_byte buf[4];
@@ -1207,7 +1190,7 @@ Index: gdb-7.7.1/gdb/vax-tdep.c
    int i;
  
    /* We create an argument list on the stack, and make the argument
-@@ -124,7 +124,7 @@ vax_store_arguments (struct regcache *re
+@@ -120,7 +120,7 @@ vax_store_arguments (struct regcache *re
    /* Push arguments in reverse order.  */
    for (i = nargs - 1; i >= 0; i--)
      {
@@ -1216,11 +1199,11 @@ Index: gdb-7.7.1/gdb/vax-tdep.c
  
        sp -= (len + 3) & ~3;
        count += (len + 3) / 4;
-Index: gdb-7.7.1/gdb/xstormy16-tdep.c
+Index: gdb-7.8.50.20141228/gdb/xstormy16-tdep.c
 ===================================================================
---- gdb-7.7.1.orig/gdb/xstormy16-tdep.c	2014-05-09 19:24:18.706252773 +0200
-+++ gdb-7.7.1/gdb/xstormy16-tdep.c	2014-05-09 20:02:09.634703771 +0200
-@@ -235,8 +235,9 @@ xstormy16_push_dummy_call (struct gdbarc
+--- gdb-7.8.50.20141228.orig/gdb/xstormy16-tdep.c	2015-01-05 22:18:56.020023752 +0100
++++ gdb-7.8.50.20141228/gdb/xstormy16-tdep.c	2015-01-05 22:19:08.100078503 +0100
+@@ -233,8 +233,9 @@ xstormy16_push_dummy_call (struct gdbarc
    enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
    CORE_ADDR stack_dest = sp;
    int argreg = E_1ST_ARG_REGNUM;
@@ -1232,11 +1215,11 @@ Index: gdb-7.7.1/gdb/xstormy16-tdep.c
    const gdb_byte *val;
    gdb_byte buf[xstormy16_pc_size];
  
-Index: gdb-7.7.1/gdb/xtensa-tdep.c
+Index: gdb-7.8.50.20141228/gdb/xtensa-tdep.c
 ===================================================================
---- gdb-7.7.1.orig/gdb/xtensa-tdep.c	2014-05-09 19:24:18.707252773 +0200
-+++ gdb-7.7.1/gdb/xtensa-tdep.c	2014-05-09 20:02:09.634703771 +0200
-@@ -1652,8 +1652,7 @@ xtensa_store_return_value (struct type *
+--- gdb-7.8.50.20141228.orig/gdb/xtensa-tdep.c	2015-01-05 22:18:56.021023757 +0100
++++ gdb-7.8.50.20141228/gdb/xtensa-tdep.c	2015-01-05 22:19:08.101078508 +0100
+@@ -1646,8 +1646,7 @@ xtensa_store_return_value (struct type *
  
        if (len > (callsize > 8 ? 8 : 16))
  	internal_error (__FILE__, __LINE__,
@@ -1246,7 +1229,7 @@ Index: gdb-7.7.1/gdb/xtensa-tdep.c
        areg = arreg_number (gdbarch,
  			   gdbarch_tdep (gdbarch)->a0_base + 2 + callsize, wb);
  
-@@ -1727,18 +1726,18 @@ xtensa_push_dummy_call (struct gdbarch *
+@@ -1721,18 +1720,18 @@ xtensa_push_dummy_call (struct gdbarch *
  {
    enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
    int i;
@@ -1268,7 +1251,7 @@ Index: gdb-7.7.1/gdb/xtensa-tdep.c
        int regno;		/* regno if in register.  */
      } u;
    };
-@@ -1762,9 +1761,10 @@ xtensa_push_dummy_call (struct gdbarch *
+@@ -1756,9 +1755,10 @@ xtensa_push_dummy_call (struct gdbarch *
          {
  	  struct value *arg = args[i];
  	  struct type *arg_type = check_typedef (value_type (arg));
@@ -1282,7 +1265,7 @@ Index: gdb-7.7.1/gdb/xtensa-tdep.c
  	  switch (TYPE_CODE (arg_type))
  	    {
  	    case TYPE_CODE_INT:
-@@ -1834,8 +1834,8 @@ xtensa_push_dummy_call (struct gdbarch *
+@@ -1828,8 +1828,8 @@ xtensa_push_dummy_call (struct gdbarch *
  	  info->align = TYPE_LENGTH (builtin_type (gdbarch)->builtin_long);
  	  break;
  	}
@@ -1292,7 +1275,7 @@ Index: gdb-7.7.1/gdb/xtensa-tdep.c
  
        /* Align size and onstack_size.  */
        size = (size + info->align - 1) & ~(info->align - 1);
-@@ -1880,7 +1880,7 @@ xtensa_push_dummy_call (struct gdbarch *
+@@ -1874,7 +1874,7 @@ xtensa_push_dummy_call (struct gdbarch *
  
        if (info->onstack)
  	{
@@ -1301,7 +1284,7 @@ Index: gdb-7.7.1/gdb/xtensa-tdep.c
  	  CORE_ADDR offset = sp + info->u.offset;
  
  	  /* Odd-sized structs are aligned to the lower side of a memory
-@@ -1896,7 +1896,7 @@ xtensa_push_dummy_call (struct gdbarch *
+@@ -1890,7 +1890,7 @@ xtensa_push_dummy_call (struct gdbarch *
  	}
        else
  	{

diff --git a/gdb-rhbz795424-bitpos-25of25.patch b/gdb-rhbz795424-bitpos-25of25.patch
index 3a66c01..6fe684e 100644
--- a/gdb-rhbz795424-bitpos-25of25.patch
+++ b/gdb-rhbz795424-bitpos-25of25.patch
@@ -47,10 +47,10 @@ Content-Type: text/x-patch
 Content-Transfer-Encoding: 7bit
 Content-Disposition: attachment; filename=f77-bounds.patch
 
-Index: gdb-7.7.90.20140613/gdb/f-lang.h
+Index: gdb-7.8.50.20141228/gdb/f-lang.h
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/f-lang.h	2014-06-16 22:45:00.404470944 +0200
-+++ gdb-7.7.90.20140613/gdb/f-lang.h	2014-06-16 22:45:10.352477761 +0200
+--- gdb-7.8.50.20141228.orig/gdb/f-lang.h	2015-01-06 22:46:31.620852996 +0100
++++ gdb-7.8.50.20141228/gdb/f-lang.h	2015-01-06 22:46:34.190865466 +0100
 @@ -62,9 +62,9 @@ struct common_block
    struct symbol *contents[1];
  };
@@ -63,11 +63,11 @@ Index: gdb-7.7.90.20140613/gdb/f-lang.h
  
  extern void f77_get_dynamic_array_length (struct type *);
  
-Index: gdb-7.7.90.20140613/gdb/f-typeprint.c
+Index: gdb-7.8.50.20141228/gdb/f-typeprint.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/f-typeprint.c	2014-06-16 22:45:00.404470944 +0200
-+++ gdb-7.7.90.20140613/gdb/f-typeprint.c	2014-06-16 22:45:10.353477761 +0200
-@@ -161,7 +161,7 @@ f_type_print_varspec_suffix (struct type
+--- gdb-7.8.50.20141228.orig/gdb/f-typeprint.c	2015-01-06 22:46:31.621853001 +0100
++++ gdb-7.8.50.20141228/gdb/f-typeprint.c	2015-01-06 22:47:03.731008798 +0100
+@@ -158,7 +158,7 @@ f_type_print_varspec_suffix (struct type
  			     int show, int passed_a_ptr, int demangled_args,
  			     int arrayprint_recurse_level)
  {
@@ -76,25 +76,25 @@ Index: gdb-7.7.90.20140613/gdb/f-typeprint.c
  
    /* No static variables are permitted as an error call may occur during
       execution of this function.  */
-@@ -195,7 +195,7 @@ f_type_print_varspec_suffix (struct type
+@@ -192,7 +192,7 @@ f_type_print_varspec_suffix (struct type
  
            lower_bound = f77_get_lowerbound (type);
            if (lower_bound != 1)	/* Not the default.  */
 -            fprintf_filtered (stream, "%d:", lower_bound);
-+	    fprintf_filtered (stream, "%s:", plongest (lower_bound));
++            fprintf_filtered (stream, "%s:", plongest (lower_bound));
  
            /* Make sure that, if we have an assumed size array, we
               print out a warning and print the upperbound as '*'.  */
-@@ -205,7 +205,7 @@ f_type_print_varspec_suffix (struct type
+@@ -202,7 +202,7 @@ f_type_print_varspec_suffix (struct type
            else
              {
                upper_bound = f77_get_upperbound (type);
 -              fprintf_filtered (stream, "%d", upper_bound);
-+	      fprintf_filtered (stream, "%s", plongest (upper_bound));
++              fprintf_filtered (stream, "%s", plongest (upper_bound));
              }
  
            if (TYPE_CODE (TYPE_TARGET_TYPE (type)) != TYPE_CODE_ARRAY)
-@@ -274,7 +274,7 @@ void
+@@ -271,7 +271,7 @@ void
  f_type_print_base (struct type *type, struct ui_file *stream, int show,
  		   int level)
  {
@@ -103,7 +103,7 @@ Index: gdb-7.7.90.20140613/gdb/f-typeprint.c
    int index;
  
    QUIT;
-@@ -356,7 +356,7 @@ f_type_print_base (struct type *type, st
+@@ -353,7 +353,7 @@ f_type_print_base (struct type *type, st
        else
  	{
  	  upper_bound = f77_get_upperbound (type);
@@ -112,11 +112,11 @@ Index: gdb-7.7.90.20140613/gdb/f-typeprint.c
  	}
        break;
  
-Index: gdb-7.7.90.20140613/gdb/f-valprint.c
+Index: gdb-7.8.50.20141228/gdb/f-valprint.c
 ===================================================================
---- gdb-7.7.90.20140613.orig/gdb/f-valprint.c	2014-06-16 22:45:34.901495069 +0200
-+++ gdb-7.7.90.20140613/gdb/f-valprint.c	2014-06-16 22:45:44.933502067 +0200
-@@ -46,7 +46,7 @@ LONGEST f77_array_offset_tbl[MAX_FORTRAN
+--- gdb-7.8.50.20141228.orig/gdb/f-valprint.c	2015-01-06 22:46:31.621853001 +0100
++++ gdb-7.8.50.20141228/gdb/f-valprint.c	2015-01-06 22:46:34.191865471 +0100
+@@ -43,7 +43,7 @@ LONGEST f77_array_offset_tbl[MAX_FORTRAN
  /* Array which holds offsets to be applied to get a row's elements
     for a given array.  Array also holds the size of each subarray.  */
  
@@ -125,7 +125,7 @@ Index: gdb-7.7.90.20140613/gdb/f-valprint.c
  f77_get_lowerbound (struct type *type)
  {
    if (TYPE_ARRAY_LOWER_BOUND_IS_UNDEFINED (type))
-@@ -55,7 +55,7 @@ f77_get_lowerbound (struct type *type)
+@@ -52,7 +52,7 @@ f77_get_lowerbound (struct type *type)
    return TYPE_ARRAY_LOWER_BOUND_VALUE (type);
  }
  

diff --git a/gdb-save-breakpoints-fix.patch b/gdb-save-breakpoints-fix.patch
deleted file mode 100644
index aa5a3bb..0000000
--- a/gdb-save-breakpoints-fix.patch
+++ /dev/null
@@ -1,123 +0,0 @@
-gdb/
-2014-10-03  Miroslav Franc  <mfranc@redhat.com>
-	    Jan Kratochvil  <jan.kratochvil@redhat.com>
-
-	Fix "save breakpoints" for "catch" command.
-	* break-catch-sig.c (signal_catchpoint_print_recreate): Add trailing
-	newline.
-
-gdb/testsuite/
-2014-10-03  Jan Kratochvil  <jan.kratochvil@redhat.com>
-
-	Fix "save breakpoints" for "catch" command.
-	* gdb.base/catch-signal.exp: Add gdb_breakpoint "main".
-	Remove -nonewline.  Match also the added "main" line.
-
-diff --git a/gdb/break-catch-sig.c b/gdb/break-catch-sig.c
-index c41bf33..579fb78 100644
---- a/gdb/break-catch-sig.c
-+++ b/gdb/break-catch-sig.c
-@@ -346,6 +346,7 @@ signal_catchpoint_print_recreate (struct breakpoint *b, struct ui_file *fp)
-     }
-   else if (c->catch_all)
-     fprintf_unfiltered (fp, " all");
-+  fputc_unfiltered ('\n', fp);
- }
- 
- /* Implement the "explains_signal" breakpoint_ops method for signal
-diff --git a/gdb/testsuite/gdb.base/catch-signal.exp b/gdb/testsuite/gdb.base/catch-signal.exp
-index 22caf40..7002f84 100644
---- a/gdb/testsuite/gdb.base/catch-signal.exp
-+++ b/gdb/testsuite/gdb.base/catch-signal.exp
-@@ -117,6 +117,7 @@ foreach {arg desc} {"" "standard signals" \
- 	"set catchpoint '$arg' for printing"
-     gdb_test "info break" "$decimal.*catchpoint.*signal.*$desc.*" \
- 	"info break for '$arg'"
-+    gdb_breakpoint "main"
-     gdb_test "save breakpoints [standard_output_file bps.$i]" \
- 	"Saved to file .*bps.$i.*" \
- 	"save breakpoints for '$arg'"
-@@ -124,15 +125,17 @@ foreach {arg desc} {"" "standard signals" \
-     set filename [remote_upload host [standard_output_file bps.$i] \
- 		      [standard_output_file bps-local.$i]]
-     set fd [open $filename]
--    set contents [read -nonewline $fd]
-+    set contents [read $fd]
-     close $fd
- 
-+    set nl "\r?\n"
-     if {$arg == ""} {
--	set pattern "catch signal"
-+	set pattern "catch signal$nl"
-     } else {
--	set pattern "catch signal $arg"
-+	set pattern "catch signal $arg$nl"
-     }
--    if {[string match $pattern $contents]} {
-+    set pattern "${pattern}break main$nl"
-+    if {[regexp "$pattern" $contents]} {
- 	pass "results of save breakpoints for '$arg'"
-     } else {
- 	fail "results of save breakpoints for '$arg'"
-gdb/
-2014-10-03  Miroslav Franc  <mfranc@redhat.com>
-
-	Fix "save breakpoints" for "disable $bpnum" command.
-	* breakpoint.c (save_breakpoints): Add $bpnum for disable.
-
-gdb/testsuite/
-2014-10-03  Jan Kratochvil  <jan.kratochvil@redhat.com>
-
-	Fix "save breakpoints" for "disable $bpnum" command.
-	* gdb.base/save-bp.c (main): Add label.
-	* gdb.base/save-bp.exp: Add 8th disabled breakpoint.  Match it.
-
-diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
-index e2170b4..0a438d1 100644
---- a/gdb/breakpoint.c
-+++ b/gdb/breakpoint.c
-@@ -16131,7 +16131,7 @@ save_breakpoints (char *filename, int from_tty,
-       }
- 
-     if (tp->enable_state == bp_disabled)
--      fprintf_unfiltered (fp, "disable\n");
-+      fprintf_unfiltered (fp, "disable $bpnum\n");
- 
-     /* If this is a multi-location breakpoint, check if the locations
-        should be individually disabled.  Watchpoint locations are
-diff --git a/gdb/testsuite/gdb.base/save-bp.c b/gdb/testsuite/gdb.base/save-bp.c
-index 9a72fe8..f01f031 100644
---- a/gdb/testsuite/gdb.base/save-bp.c
-+++ b/gdb/testsuite/gdb.base/save-bp.c
-@@ -31,6 +31,6 @@ main (void)
-     break_me (); /* Try a condition-specific breakpoint.  */
- 
-   break_me (); /* Finally, try a breakpoint with commands.  */
--  return 0;
-+  return 0; /* Return line. */
- }
- 
-diff --git a/gdb/testsuite/gdb.base/save-bp.exp b/gdb/testsuite/gdb.base/save-bp.exp
-index ba98633..7bc8ab6 100644
---- a/gdb/testsuite/gdb.base/save-bp.exp
-+++ b/gdb/testsuite/gdb.base/save-bp.exp
-@@ -47,6 +47,10 @@ gdb_test "commands\nsilent\nend" "End with.*" "add breakpoint commands"
- 
- gdb_test "dprintf ${srcfile}:${loc_bp5},\"At foo entry\\n\"" "Dprintf .*"
- 
-+set loc_bp8 [gdb_get_line_number "Return line"]
-+gdb_breakpoint "${srcfile}:${loc_bp8}"
-+gdb_test_no_output {disable $bpnum}
-+
- # Now, save the breakpoints into a file...
- if {[is_remote host]} {
-     set bps bps
-@@ -71,6 +75,7 @@ gdb_test "source $bps" "" "source bps"
- 
- # Now, verify that all breakpoints have been created correctly...
- set bp_row_start "\[0-9\]+ +breakpoint +keep +y +0x\[0-9a-f\]+ +in"
-+set disabled_row_start "\[0-9\]+ +breakpoint +keep +n +0x\[0-9a-f\]+ +in"
- set dprintf_row_start "\[0-9\]+ +dprintf +keep +y +0x\[0-9a-f\]+ +in"
- gdb_test "info break" \
--  " *Num +Type +Disp +Enb +Address +What\r\n$bp_row_start break_me at .*$srcfile:\[0-9\]+\r\n$bp_row_start main at .*$srcfile:$loc_bp2\r\n$bp_row_start main at .*$srcfile:$loc_bp3 +thread 1\r\n\[ \t]+stop only in thread 1\r\n$bp_row_start main at .*$srcfile:$loc_bp4\r\n\[ \t\]+stop only if i == 1( \\((host|target) evals\\))?\r\n$bp_row_start main at .*$srcfile:$loc_bp5\r\n\[ \t\]+silent\r\n$dprintf_row_start main at .*$srcfile:$loc_bp5\r\n\[ \t\]+printf.*"
-+  " *Num +Type +Disp +Enb +Address +What\r\n$bp_row_start break_me at .*$srcfile:\[0-9\]+\r\n$bp_row_start main at .*$srcfile:$loc_bp2\r\n$bp_row_start main at .*$srcfile:$loc_bp3 +thread 1\r\n\[ \t]+stop only in thread 1\r\n$bp_row_start main at .*$srcfile:$loc_bp4\r\n\[ \t\]+stop only if i == 1( \\((host|target) evals\\))?\r\n$bp_row_start main at .*$srcfile:$loc_bp5\r\n\[ \t\]+silent\r\n$dprintf_row_start main at .*$srcfile:$loc_bp5\r\n\[ \t\]+printf\[^\r\n\]+\r\n$disabled_row_start main at .*$srcfile:$loc_bp8"

diff --git a/gdb-slow-gstack-performance.patch b/gdb-slow-gstack-performance.patch
index 6a93988..c895e7f 100644
--- a/gdb-slow-gstack-performance.patch
+++ b/gdb-slow-gstack-performance.patch
@@ -134,11 +134,11 @@ gdb/
 	(dwarf_decode_line_header): Initialize offset and offset_in_dwz.
 	(dwarf_decode_lines): New parameter decode_mapping, use it.
 
-Index: gdb-7.8/gdb/dwarf2read.c
+Index: gdb-7.8.50.20141228/gdb/dwarf2read.c
 ===================================================================
---- gdb-7.8.orig/gdb/dwarf2read.c
-+++ gdb-7.8/gdb/dwarf2read.c
-@@ -312,6 +312,9 @@ struct dwarf2_per_objfile
+--- gdb-7.8.50.20141228.orig/gdb/dwarf2read.c	2015-01-05 22:45:32.823240453 +0100
++++ gdb-7.8.50.20141228/gdb/dwarf2read.c	2015-01-05 22:49:35.270332647 +0100
+@@ -309,6 +309,9 @@ struct dwarf2_per_objfile
  
    /* The CUs we recently read.  */
    VEC (dwarf2_per_cu_ptr) *just_read_cus;
@@ -148,7 +148,7 @@ Index: gdb-7.8/gdb/dwarf2read.c
  };
  
  static struct dwarf2_per_objfile *dwarf2_per_objfile;
-@@ -1028,6 +1031,12 @@ typedef void (die_reader_func_ftype) (co
+@@ -1025,6 +1028,12 @@ typedef void (die_reader_func_ftype) (co
     which contains the following information.  */
  struct line_header
  {
@@ -161,27 +161,27 @@ Index: gdb-7.8/gdb/dwarf2read.c
    unsigned int total_length;
    unsigned short version;
    unsigned int header_length;
-@@ -1516,7 +1525,7 @@ static struct line_header *dwarf_decode_
+@@ -1513,7 +1522,7 @@ static struct line_header *dwarf_decode_
  
  static void dwarf_decode_lines (struct line_header *, const char *,
  				struct dwarf2_cu *, struct partial_symtab *,
--				int);
-+				int, int decode_mapping);
+-				CORE_ADDR);
++				CORE_ADDR, int decode_mapping);
  
- static void dwarf2_start_subfile (const char *, const char *, const char *);
+ static void dwarf2_start_subfile (const char *, const char *);
  
-@@ -1849,6 +1858,8 @@ static void process_cu_includes (void);
- 
- static void check_producer (struct dwarf2_cu *cu);
+@@ -2057,6 +2066,8 @@ get_section_file_name (const struct dwar
+ /* Return the id of SECTION.
+    Returns 0 if SECTION doesn't exist.  */
  
 +static void free_line_header_voidp (void *arg);
 +
  static int
- attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die,
- 		      struct dwarf2_cu *cu, struct dynamic_prop *prop,
-@@ -1920,6 +1931,29 @@ dwarf2_invalid_attrib_class_complaint (c
- 	     _("invalid attribute class or form for '%s' in '%s'"),
- 	     arg1, arg2);
+ get_section_id (const struct dwarf2_section_info *section)
+ {
+@@ -2461,6 +2472,29 @@ dwarf2_get_dwz_file (void)
+   dwarf2_per_objfile->dwz_file = result;
+   return result;
  }
 +
 +/* Hash function for line_header_hash.  */
@@ -207,20 +207,20 @@ Index: gdb-7.8/gdb/dwarf2read.c
 +}
 +
  \f
- #if WORDS_BIGENDIAN
+ /* DWARF quick_symbols_functions support.  */
  
-@@ -4459,7 +4493,7 @@ dwarf2_build_include_psymtabs (struct dw
+@@ -4454,7 +4488,7 @@ dwarf2_build_include_psymtabs (struct dw
      return;  /* No linetable, so no includes.  */
  
    /* NOTE: pst->dirname is DW_AT_comp_dir (if present).  */
--  dwarf_decode_lines (lh, pst->dirname, cu, pst, 1);
-+  dwarf_decode_lines (lh, pst->dirname, cu, pst, 1, 1);
+-  dwarf_decode_lines (lh, pst->dirname, cu, pst, pst->textlow);
++  dwarf_decode_lines (lh, pst->dirname, cu, pst, pst->textlow, 1);
  
    free_line_header (lh);
  }
-@@ -8989,24 +9023,64 @@ static void
+@@ -9002,24 +9036,64 @@ static void
  handle_DW_AT_stmt_list (struct die_info *die, struct dwarf2_cu *cu,
- 			const char *comp_dir) /* ARI: editCase function */
+ 			const char *comp_dir, CORE_ADDR lowpc) /* ARI: editCase function */
  {
 +  struct objfile *objfile = dwarf2_per_objfile->objfile;
    struct attribute *attr;
@@ -249,7 +249,7 @@ Index: gdb-7.8/gdb/dwarf2read.c
 -	{
 -	  cu->line_header = line_header;
 -	  make_cleanup (free_cu_line_header, cu);
--	  dwarf_decode_lines (line_header, comp_dir, cu, NULL, 1);
+-	  dwarf_decode_lines (line_header, comp_dir, cu, NULL, lowpc);
 -	}
 +      dwarf2_per_objfile->line_header_hash
 +	= htab_create_alloc_ex (127, line_header_hash, line_header_eq,
@@ -289,12 +289,12 @@ Index: gdb-7.8/gdb/dwarf2read.c
 +      make_cleanup (free_cu_line_header, cu);
      }
 +  decode_mapping = (die->tag != DW_TAG_partial_unit);
-+  dwarf_decode_lines (line_header, comp_dir, cu, NULL, 1,
++  dwarf_decode_lines (line_header, comp_dir, cu, NULL, lowpc,
 +		      decode_mapping);
  }
  
  /* Process DW_TAG_compile_unit or DW_TAG_partial_unit.  */
-@@ -16969,6 +17043,16 @@ free_line_header (struct line_header *lh
+@@ -16917,6 +16991,16 @@ free_line_header (struct line_header *lh
    xfree (lh);
  }
  
@@ -311,7 +311,7 @@ Index: gdb-7.8/gdb/dwarf2read.c
  /* Add an entry to LH's include directory table.  */
  
  static void
-@@ -17099,6 +17183,9 @@ dwarf_decode_line_header (unsigned int o
+@@ -17047,6 +17131,9 @@ dwarf_decode_line_header (unsigned int o
    back_to = make_cleanup ((make_cleanup_ftype *) free_line_header,
                            (void *) lh);
  
@@ -321,12 +321,12 @@ Index: gdb-7.8/gdb/dwarf2read.c
    line_ptr = section->buffer + offset;
  
    /* Read in the header.  */
-@@ -17596,18 +17683,22 @@ dwarf_decode_lines_1 (struct line_header
-    as the corresponding symtab.  Since COMP_DIR is not used in the name of the
-    symtab we don't use it in the name of the psymtabs we create.
+@@ -17674,17 +17761,22 @@ dwarf_decode_lines_1 (struct line_header
     E.g. expand_line_sal requires this when finding psymtabs to expand.
--   A good testcase for this is mb-inline.exp.  */
-+   A good testcase for this is mb-inline.exp.
+    A good testcase for this is mb-inline.exp.
+ 
+-   LOWPC is the lowest address in CU (or 0 if not known).  */
++   LOWPC is the lowest address in CU (or 0 if not known).
 +
 +   Boolean DECODE_MAPPING specifies we need to fully decode .debug_line
 +   for its PC<->lines mapping information.  Otherwise only filenames
@@ -335,15 +335,15 @@ Index: gdb-7.8/gdb/dwarf2read.c
  static void
  dwarf_decode_lines (struct line_header *lh, const char *comp_dir,
  		    struct dwarf2_cu *cu, struct partial_symtab *pst,
--		    int want_line_info)
-+		    int want_line_info, int decode_mapping)
+-		    CORE_ADDR lowpc)
++		    CORE_ADDR lowpc, int decode_mapping)
  {
    struct objfile *objfile = cu->objfile;
    const int decode_for_pst_p = (pst != NULL);
-   struct subfile *first_subfile = current_subfile;
  
--  if (want_line_info)
-+  if (want_line_info && decode_mapping)
-     dwarf_decode_lines_1 (lh, comp_dir, cu, pst);
+-  dwarf_decode_lines_1 (lh, cu, decode_for_pst_p, lowpc);
++  if (decode_mapping)
++    dwarf_decode_lines_1 (lh, cu, decode_for_pst_p, lowpc);
  
    if (decode_for_pst_p)
+     {

diff --git a/gdb-stale-frame_info.patch b/gdb-stale-frame_info.patch
index 59f8ea1..bc42e68 100644
--- a/gdb-stale-frame_info.patch
+++ b/gdb-stale-frame_info.patch
@@ -45,7 +45,7 @@ gdb/
 -  inf = find_inferior_for_program_space (pspace);
 +  if (inf->pspace != pspace)
 +    inf = find_inferior_for_program_space (pspace);
-   if (inf != NULL)
+   if (inf != NULL && inf->pid != 0)
      {
 -      struct thread_info *tp;
 +      struct thread_info *tp, *current_tp = NULL;

diff --git a/gdb-symbols-lookup-accel.patch b/gdb-symbols-lookup-accel.patch
deleted file mode 100644
index 1901d07..0000000
--- a/gdb-symbols-lookup-accel.patch
+++ /dev/null
@@ -1,191 +0,0 @@
-http://sourceware.org/ml/gdb-patches/2014-10/msg00524.html
-Subject: [patch 1/2] Accelerate iter_match_first_hashed 1.8x
-
-
---17pEHd4RhPHOinZp
-Content-Type: text/plain; charset=us-ascii
-Content-Disposition: inline
-
-Hi,
-
-very simple caching.  dict_hash() is being called again and again for the same
-string.
-
-#0  in skip_spaces_const (chp=0x7fffb10f9bb6 "ts<char>, std::allocator<char> >::npos") at ./cli/cli-utils.c:244
-#1  in msymbol_hash_iw (string=0x7fffb10f9bb6 "ts<char>, std::allocator<char> >::npos") at minsyms.c:89
-#2  in dict_hash ( string0=0x7fffb10f9b90 "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::npos") at dictionary.c:840
-#3  in iter_match_first_hashed (dict=0x105a7840, name=0x7fffb10f9b90 "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::npos", compare=0x8b82f8 <strcmp_iw>, iterator=0x7fffb10f9970) at dictionary.c:659
-#4  in dict_iter_match_first (dict=0x105a7840, name=0x7fffb10f9b90 "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::npos", compare=0x8b82f8 <strcmp_iw>, iterator=0x7fffb10f9970) at dictionary.c:555
-#5  in dict_iter_name_first (dict=0x105a7840, name=0x7fffb10f9b90 "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::npos", iterator=0x7fffb10f9970) at dictionary.c:541
-#6  in block_iter_name_step (iterator=0x7fffb10f9960, name=0x7fffb10f9b90 "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::npos", first=1) at block.c:580
-#7  in block_iter_name_first (block=0x10593e10, name=0x7fffb10f9b90 "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::npos", iterator=0x7fffb10f9960) at block.c:609
-#8  in lookup_block_symbol (block=0x10593e10, name=0x7fffb10f9b90 "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::npos", domain=VAR_DOMAIN) at symtab.c:2062
-#9  in lookup_symbol_aux_objfile (objfile=0x466f870, block_index=0, name=0x7fffb10f9b90 "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::npos", domain=VAR_DOMAIN) at symtab.c:1664
-#10 in lookup_symbol_global_iterator_cb (objfile=0x466f870, cb_data=0x7fffb10f9ad0) at symtab.c:1868
-
-
-Maybe it could get cached at the caller but:
- * We would need to pass the hash value along the whole {dict,block}_iter_*
-   call chain.
- * The DICT_VECTOR virtualization would get violated as dict_linear*_vector do
-   not use any hash values.
-
-
-Jan
-
---17pEHd4RhPHOinZp
-Content-Type: text/plain; charset=us-ascii
-Content-Disposition: inline; filename="idxcache1.patch"
-
-gdb/
-2014-10-20  Jan Kratochvil  <jan.kratochvil@redhat.com>
-
-	* dictionary.c (iter_match_first_hashed): Provide state cache for
-	hash_index from NAME.
-
-diff --git a/gdb/dictionary.c b/gdb/dictionary.c
-index 055c87e..90bcd6d 100644
---- a/gdb/dictionary.c
-+++ b/gdb/dictionary.c
-@@ -656,9 +656,26 @@ iter_match_first_hashed (const struct dictionary *dict, const char *name,
- 			 symbol_compare_ftype *compare,
- 			 struct dict_iterator *iterator)
- {
--  unsigned int hash_index = dict_hash (name) % DICT_HASHED_NBUCKETS (dict);
-+  unsigned int hash_index;
-   struct symbol *sym;
- 
-+  /* Cache HASH_INDEX.  */
-+  {
-+    static const char *name_ptr_cached;
-+    static char *name_content_cached;
-+    static unsigned int dict_hash_cached;
-+
-+    if (name_ptr_cached != name || strcmp (name_content_cached, name) != 0)
-+      {
-+	dict_hash_cached = dict_hash (name);
-+	name_ptr_cached = name;
-+	xfree (name_content_cached);
-+	name_content_cached = xstrdup (name);
-+      }
-+    hash_index = dict_hash_cached;
-+  }
-+  hash_index %= DICT_HASHED_NBUCKETS (dict);
-+
-   DICT_ITERATOR_DICT (iterator) = dict;
- 
-   /* Loop through the symbols in the given bucket, breaking when SYM
-
---17pEHd4RhPHOinZp--
-
-
-
-http://sourceware.org/ml/gdb-patches/2014-10/msg00612.html
-Subject: [patchv2 2/2] Accelerate lookup_symbol_aux_objfile 14.5x  [Re: [patch 0/2] Accelerate symbol lookups 15x]
-
-
---vtzGhvizbBRQ85DL
-Content-Type: text/plain; charset=us-ascii
-Content-Disposition: inline
-
-On Wed, 22 Oct 2014 10:55:18 +0200, Doug Evans wrote:
-> For example, the count of calls to dict_hash before/after goes from 13.8M to 31.
-> I'm guessing one t hing we're doing here is coping with an artifact of
-> dwz:
-
-During my simple test on non-DWZ file (./gdb itself) it went 3684->3484.
-
-The problem is that dict_cash(val) is called for the same val for each block
-(== symtab).
-
-On DWZ the saving is probably much larger as there are many more symtabs due
-to DW_TAG_partial_unit ones.
-
-
-> what was once one global block to represent the entire objfile is
-> now N.
-
-Without DWZ there are X global blocks for X primary symtabs for X CUs of
-objfile.  With DWZ there are X+Y global blocks for X+Y primary symtabs for
-X+Y CUs where Y are 'DW_TAG_partial_unit's.
-
-For 'DW_TAG_partial_unit's (Ys) their blockvector is usually empty.  But not
-always, I have found there typedef symbols, there can IMO be optimized-out
-static variables etc.
-
-
-> [I'm sure the patches help in the non-dwz case, but I suspect it's less.
-> Which isn't to say the patches aren't useful.
-> I just need play with a few more examples.]
-
-I agree.
-
-[patch 2/2] could needlessly performance-regress non-DWZ cases, therefore
-I have put back original ALL_OBJFILE_PRIMARY_SYMTABS (instead of my
-ALL_OBJFILE_SYMTABS) as it is perfectly sufficient.  For the performance
-testcase of mine:
-
-Benchmark on non-trivial application with    'p <tab><tab>':
-Command execution time:   4.215000 (cpu),   4.241466 (wall) --- both fixes with new [patch 2/2]
-Command execution time:   7.373000 (cpu),   7.395095 (wall) --- both fixes
-Command execution time:  13.572000 (cpu),  13.592689 (wall) --- just lookup_symbol_aux_objfile fix
-Command execution time: 113.036000 (cpu), 113.067995 (wall) --- FSF GDB HEAD
-
-That is additional 1.75x improvement, making the total improvement 26.8x.
-
-
-No regressions on {x86_64,x86_64-m32,i686}-fedora21pre-linux-gnu in standard
-and .gdb_index-enabled runs.  Neither of the patches should cause any visible
-behavior change.
-
-
-Thanks,
-Jan
-
---vtzGhvizbBRQ85DL
-Content-Type: text/plain; charset=us-ascii
-Content-Disposition: inline; filename="idxcache2doug.patch"
-
-gdb/
-2014-10-23  Jan Kratochvil  <jan.kratochvil@redhat.com>
-
-	* symtab.c (lookup_symbol_aux_objfile): Use ALL_OBJFILE_SYMTABS, inline
-	lookup_block_symbol.
-
-diff --git a/gdb/symtab.c b/gdb/symtab.c
-index c530d50..da13861 100644
---- a/gdb/symtab.c
-+++ b/gdb/symtab.c
-@@ -1657,15 +1657,25 @@ lookup_symbol_aux_objfile (struct objfile *objfile, int block_index,
-   const struct block *block;
-   struct symtab *s;
- 
-+  gdb_assert (block_index == GLOBAL_BLOCK || block_index == STATIC_BLOCK);
-+
-   ALL_OBJFILE_PRIMARY_SYMTABS (objfile, s)
-     {
-+      struct dict_iterator dict_iter;
-+
-       bv = BLOCKVECTOR (s);
-       block = BLOCKVECTOR_BLOCK (bv, block_index);
--      sym = lookup_block_symbol (block, name, domain);
--      if (sym)
-+
-+      for (sym = dict_iter_name_first (block->dict, name, &dict_iter);
-+	   sym != NULL;
-+	   sym = dict_iter_name_next (name, &dict_iter))
- 	{
--	  block_found = block;
--	  return fixup_symbol_section (sym, objfile);
-+	  if (symbol_matches_domain (SYMBOL_LANGUAGE (sym),
-+				     SYMBOL_DOMAIN (sym), domain))
-+	    {
-+	      block_found = block;
-+	      return fixup_symbol_section (sym, objfile);
-+	    }
- 	}
-     }
- 
-
---vtzGhvizbBRQ85DL--
-

diff --git a/gdb-tekhex-regression-revert.patch b/gdb-tekhex-regression-revert.patch
new file mode 100644
index 0000000..683775f
--- /dev/null
+++ b/gdb-tekhex-regression-revert.patch
@@ -0,0 +1,151 @@
+-R for 85880250e591a51624d24db653aaace0c5ce5943
+https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commitdiff;h=85880250e591a51624d24db653aaace0c5ce5943;hp=fce10a8494efa8faec
+
+[buildbot] GDB regression on 85880250e591a51624d24db653aaace0c5ce5943
+https://sourceware.org/ml/binutils/2015-01/msg00044.html
+
+diff --git a/bfd/coff-i860.c b/bfd/coff-i860.c
+index 8573a8d..2122c0d 100644
+--- a/bfd/coff-i860.c
++++ b/bfd/coff-i860.c
+@@ -467,10 +467,7 @@ static reloc_howto_type howto_table[] =
+    FIXME: This macro refers to symbols and asect; these are from the
+    calling function, not the macro arguments.  */
+ 
+-/* PR 17512: file: 0a38fb7c
+-   Set an addend value, even if it is not going to be used.  A tool
+-   like coffdump might be used to print out the contents of the reloc.  */
+-#define CALC_ADDEND(abfd, ptr, reloc, cache_ptr) (cache_ptr)->addend = 0
++#define CALC_ADDEND(abfd, ptr, reloc, cache_ptr)
+ 
+ /* We use the special COFF backend linker.  */
+ #define coff_relocate_section _bfd_coff_generic_relocate_section
+diff --git a/bfd/tekhex.c b/bfd/tekhex.c
+index 9444117..969b812 100644
+--- a/bfd/tekhex.c
++++ b/bfd/tekhex.c
+@@ -267,7 +267,7 @@ typedef struct tekhex_data_struct
+ #define enda(x) (x->vma + x->size)
+ 
+ static bfd_boolean
+-getvalue (char **srcp, bfd_vma *valuep, char * endp)
++getvalue (char **srcp, bfd_vma *valuep)
+ {
+   char *src = *srcp;
+   bfd_vma value = 0;
+@@ -279,7 +279,7 @@ getvalue (char **srcp, bfd_vma *valuep, char * endp)
+   len = hex_value (*src++);
+   if (len == 0)
+     len = 16;
+-  while (len-- && src < endp)
++  while (len--)
+     {
+       if (!ISHEX (*src))
+ 	return FALSE;
+@@ -288,11 +288,11 @@ getvalue (char **srcp, bfd_vma *valuep, char * endp)
+ 
+   *srcp = src;
+   *valuep = value;
+-  return len == 0;
++  return TRUE;
+ }
+ 
+ static bfd_boolean
+-getsym (char *dstp, char **srcp, unsigned int *lenp, char * endp)
++getsym (char *dstp, char **srcp, unsigned int *lenp)
+ {
+   char *src = *srcp;
+   unsigned int i;
+@@ -304,7 +304,7 @@ getsym (char *dstp, char **srcp, unsigned int *lenp, char * endp)
+   len = hex_value (*src++);
+   if (len == 0)
+     len = 16;
+-  for (i = 0; i < len && src < endp; i++)
++  for (i = 0; i < len; i++)
+     dstp[i] = src[i];
+   dstp[i] = 0;
+   *srcp = src + i;
+@@ -354,7 +354,7 @@ insert_byte (bfd *abfd, int value, bfd_vma addr)
+   how big the data is.  */
+ 
+ static bfd_boolean
+-first_phase (bfd *abfd, int type, char *src, char * src_end)
++first_phase (bfd *abfd, int type, char *src)
+ {
+   asection *section, *alt_section;
+   unsigned int len;
+@@ -368,21 +368,21 @@ first_phase (bfd *abfd, int type, char *src, char * src_end)
+       {
+ 	bfd_vma addr;
+ 
+-	if (!getvalue (&src, &addr, src_end))
++	if (!getvalue (&src, &addr))
+ 	  return FALSE;
+ 
+-	while (*src && src < src_end - 1)
++	while (*src)
+ 	  {
+ 	    insert_byte (abfd, HEX (src), addr);
+ 	    src += 2;
+ 	    addr++;
+ 	  }
+-	return TRUE;
+       }
+ 
++      return TRUE;
+     case '3':
+       /* Symbol record, read the segment.  */
+-      if (!getsym (sym, &src, &len, src_end))
++      if (!getsym (sym, &src, &len))
+ 	return FALSE;
+       section = bfd_get_section_by_name (abfd, sym);
+       if (section == NULL)
+@@ -403,9 +403,9 @@ first_phase (bfd *abfd, int type, char *src, char * src_end)
+ 	    {
+ 	    case '1':		/* Section range.  */
+ 	      src++;
+-	      if (!getvalue (&src, &section->vma, src_end))
++	      if (!getvalue (&src, &section->vma))
+ 		return FALSE;
+-	      if (!getvalue (&src, &val, src_end))
++	      if (!getvalue (&src, &val))
+ 		return FALSE;
+ 	      section->size = val - section->vma;
+ 	      section->flags = SEC_HAS_CONTENTS | SEC_LOAD | SEC_ALLOC;
+@@ -432,7 +432,7 @@ first_phase (bfd *abfd, int type, char *src, char * src_end)
+ 		abfd->flags |= HAS_SYMS;
+ 		new_symbol->prev = abfd->tdata.tekhex_data->symbols;
+ 		abfd->tdata.tekhex_data->symbols = new_symbol;
+-		if (!getsym (sym, &src, &len, src_end))
++		if (!getsym (sym, &src, &len))
+ 		  return FALSE;
+ 		new_symbol->symbol.name = (const char *)
+                     bfd_alloc (abfd, (bfd_size_type) len + 1);
+@@ -480,7 +480,7 @@ first_phase (bfd *abfd, int type, char *src, char * src_end)
+ 			new_symbol->symbol.section = alt_section;
+ 		      }
+ 		  }
+-		if (!getvalue (&src, &val, src_end))
++		if (!getvalue (&src, &val))
+ 		  return FALSE;
+ 		new_symbol->symbol.value = val - section->vma;
+ 		break;
+@@ -498,7 +498,7 @@ first_phase (bfd *abfd, int type, char *src, char * src_end)
+    record.  */
+ 
+ static bfd_boolean
+-pass_over (bfd *abfd, bfd_boolean (*func) (bfd *, int, char *, char *))
++pass_over (bfd *abfd, bfd_boolean (*func) (bfd *, int, char *))
+ {
+   unsigned int chars_on_line;
+   bfd_boolean is_eof = FALSE;
+@@ -539,7 +539,8 @@ pass_over (bfd *abfd, bfd_boolean (*func) (bfd *, int, char *, char *))
+ 
+       /* Put a null at the end.  */
+       src[chars_on_line] = 0;
+-      if (!func (abfd, type, src, src + chars_on_line))
++
++      if (!func (abfd, type, src))
+ 	return FALSE;
+     }
+ 

diff --git a/gdb-upstream.patch b/gdb-upstream.patch
deleted file mode 100644
index 028fe7a..0000000
--- a/gdb-upstream.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-http://sourceware.org/ml/gdb-patches/2014-07/msg00274.html
-Subject: [obv] Fix false argv0-symlink.exp FAIL running under a very long directory name
-
-Hi,
-
-checked in as obvious:
-
-Starting program: /home/jkratoch/redhat/gdb-test-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff/gdb/testsuite/gdb.base/argv0-symlink-filelink ^M
-[...]
-(gdb) print argv[0]^M
-$1 = 0x7fffffffda39 "/home/jkratoch/redhat/gdb-test-", 'f' <repeats 169 times>...^M
-(gdb) FAIL: gdb.base/argv0-symlink.exp: kept file symbolic link name
-
-after "set print repeats 10000":
-
-print argv[0]^M
-$1 = 0x7fffffffda39 "/home/jkratoch/redhat/gdb-test-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"...^M
-(gdb) FAIL: gdb.base/argv0-symlink.exp: kept file symbolic link name
-
-after "set print elements 10000":
-
-print argv[0]^M
-$1 = 0x7fffffffda39 "/home/jkratoch/redhat/gdb-test-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff/gdb/testsuite/gdb.base/argv0-symlink-filelink"^M
-(gdb) PASS: gdb.base/argv0-symlink.exp: kept file symbolic link name
-
-commit 218c2655603748b844dcaf103e34fd14d8ee8aef
-Author: Jan Kratochvil <jan.kratochvil@redhat.com>
-Date:   Fri Jul 11 17:26:42 2014 +0200
-
-diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
-index 74f7bce..253eeeb 100644
-### a/gdb/testsuite/ChangeLog
-### b/gdb/testsuite/ChangeLog
-## -1,3 +1,9 @@
-+2014-07-11  Jan Kratochvil  <jan.kratochvil@redhat.com>
-+
-+	Fix false FAIL running under a very long directory name.
-+	* gdb.base/argv0-symlink.exp: Add "set print repeats 10000"
-+	and "set print elements 10000".  Twice.
-+
- 2014-07-11  Yao Qi  <yao@codesourcery.com>
- 
- 	* gdb.base/exprs.exp: "set print symbol off".
-diff --git a/gdb/testsuite/gdb.base/argv0-symlink.exp b/gdb/testsuite/gdb.base/argv0-symlink.exp
-index 0e0202d..d849b4c 100644
---- a/gdb/testsuite/gdb.base/argv0-symlink.exp
-+++ b/gdb/testsuite/gdb.base/argv0-symlink.exp
-@@ -36,6 +36,9 @@ if ![runto_main] {
-     return -1
- }
- 
-+gdb_test_no_output "set print repeats 10000"
-+gdb_test_no_output "set print elements 10000"
-+
- gdb_test {print argv[0]} "/$filelink\"" $test
- 
- # For a link named /PATH/TO/DIR/LINK, we want to check the output
-@@ -67,6 +70,9 @@ if ![runto_main] {
-     return -1
- }
- 
-+gdb_test_no_output "set print repeats 10000"
-+gdb_test_no_output "set print elements 10000"
-+
- # gdbserver does not have this issue.
- if ![is_remote target] {
-     setup_kfail "*-*-*" gdb/15934

diff --git a/gdb-vla-intel-stringbt-fix.patch b/gdb-vla-intel-stringbt-fix.patch
index 937f8fe..67850f3 100644
--- a/gdb-vla-intel-stringbt-fix.patch
+++ b/gdb-vla-intel-stringbt-fix.patch
@@ -31,11 +31,11 @@ Jan
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: inline; filename="vlastringonly.patch"
 
-diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
-index 53cae2c..cf7ac26 100644
---- a/gdb/gdbtypes.c
-+++ b/gdb/gdbtypes.c
-@@ -1659,6 +1659,7 @@ is_dynamic_type_internal (struct type *type, int top_level)
+Index: gdb-7.8.50.20141228/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));
  
      case TYPE_CODE_ARRAY:
@@ -43,11 +43,18 @@ index 53cae2c..cf7ac26 100644
        {
  	gdb_assert (TYPE_NFIELDS (type) == 1);
  
-diff --git a/gdb/testsuite/gdb.fortran/dynamic-other-frame-stub.f90 b/gdb/testsuite/gdb.fortran/dynamic-other-frame-stub.f90
-new file mode 100644
-index 0000000..261ce17
---- /dev/null
-+++ b/gdb/testsuite/gdb.fortran/dynamic-other-frame-stub.f90
+@@ -1992,6 +1993,7 @@ resolve_dynamic_type_internal (struct ty
+ 	  }
+ 
+ 	case TYPE_CODE_ARRAY:
++	case TYPE_CODE_STRING:
+ 	  resolved_type = resolve_dynamic_array (type, addr);
+ 	  break;
+ 
+Index: gdb-7.8.50.20141228/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
 @@ -0,0 +1,24 @@
 +! Copyright 2010 Free Software Foundation, Inc.
 +!
@@ -73,11 +80,10 @@ index 0000000..261ce17
 +  real :: dummy
 +  dummy = 1
 +end subroutine bar
-diff --git a/gdb/testsuite/gdb.fortran/dynamic-other-frame.exp b/gdb/testsuite/gdb.fortran/dynamic-other-frame.exp
-new file mode 100644
-index 0000000..570a28c
---- /dev/null
-+++ b/gdb/testsuite/gdb.fortran/dynamic-other-frame.exp
+Index: gdb-7.8.50.20141228/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
 @@ -0,0 +1,39 @@
 +# Copyright 2010 Free Software Foundation, Inc.
 +
@@ -118,11 +124,10 @@ index 0000000..570a28c
 +}
 +
 +gdb_test "bt" {foo \(string='hello'.*}
-diff --git a/gdb/testsuite/gdb.fortran/dynamic-other-frame.f90 b/gdb/testsuite/gdb.fortran/dynamic-other-frame.f90
-new file mode 100644
-index 0000000..2bc637d
---- /dev/null
-+++ b/gdb/testsuite/gdb.fortran/dynamic-other-frame.f90
+Index: gdb-7.8.50.20141228/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
 @@ -0,0 +1,36 @@
 +! Copyright 2010 Free Software Foundation, Inc.
 +!
@@ -160,6 +165,3 @@ index 0000000..2bc637d
 +  end interface
 +  call foo ('hello')
 +end
-
---FCuugMFkClbJLl1L--
-

diff --git a/gdb-vla-intel.patch b/gdb-vla-intel.patch
index 7a8674b..17308f5 100644
--- a/gdb-vla-intel.patch
+++ b/gdb-vla-intel.patch
@@ -6,11 +6,11 @@ GIT snapshot:
 commit 511bff520372ffc10fa2ff569c176bdf1e6e475d
 
 
-Index: gdb-7.8.1/gdb/c-valprint.c
+Index: gdb-7.8.50.20141228/gdb/c-valprint.c
 ===================================================================
---- gdb-7.8.1.orig/gdb/c-valprint.c	2014-12-13 15:52:07.695310276 +0100
-+++ gdb-7.8.1/gdb/c-valprint.c	2014-12-13 15:52:10.817307138 +0100
-@@ -538,7 +538,16 @@ c_value_print (struct value *val, struct
+--- gdb-7.8.50.20141228.orig/gdb/c-valprint.c	2015-01-06 22:51:17.663240907 +0100
++++ gdb-7.8.50.20141228/gdb/c-valprint.c	2015-01-06 23:03:07.424684753 +0100
+@@ -537,7 +537,16 @@ c_value_print (struct value *val, struct
  	{
  	  /* normal case */
  	  fprintf_filtered (stream, "(");
@@ -28,234 +28,27 @@ Index: gdb-7.8.1/gdb/c-valprint.c
  	  fprintf_filtered (stream, ") ");
  	}
      }
-Index: gdb-7.8.1/gdb/dwarf2expr.c
+Index: gdb-7.8.50.20141228/gdb/dwarf2loc.h
 ===================================================================
---- gdb-7.8.1.orig/gdb/dwarf2expr.c	2014-12-13 15:52:07.695310276 +0100
-+++ gdb-7.8.1/gdb/dwarf2expr.c	2014-12-13 15:52:10.817307138 +0100
-@@ -1478,6 +1478,12 @@ execute_stack_op (struct dwarf_expr_cont
- 	  }
- 	  break;
- 
-+        case DW_OP_push_object_address:
-+	  /* Return the address of the object we are currently observing.  */
-+	  result = (ctx->funcs->get_object_address) (ctx->baton);
-+	  result_val = value_from_ulongest (address_type, result);
-+	  break;
-+
- 	default:
- 	  error (_("Unhandled dwarf expression opcode 0x%x"), op);
- 	}
-Index: gdb-7.8.1/gdb/dwarf2expr.h
-===================================================================
---- gdb-7.8.1.orig/gdb/dwarf2expr.h	2014-12-13 15:52:07.696310275 +0100
-+++ gdb-7.8.1/gdb/dwarf2expr.h	2014-12-13 15:52:10.817307138 +0100
-@@ -84,12 +84,8 @@ struct dwarf_expr_context_funcs
-      This can throw an exception if the index is out of range.  */
-   CORE_ADDR (*get_addr_index) (void *baton, unsigned int index);
- 
--#if 0
--  /* Not yet implemented.  */
--
-   /* Return the `object address' for DW_OP_push_object_address.  */
-   CORE_ADDR (*get_object_address) (void *baton);
--#endif
- };
- 
- /* The location of a value.  */
-Index: gdb-7.8.1/gdb/dwarf2loc.c
-===================================================================
---- gdb-7.8.1.orig/gdb/dwarf2loc.c	2014-12-13 15:52:07.697310274 +0100
-+++ gdb-7.8.1/gdb/dwarf2loc.c	2014-12-13 15:52:10.818307137 +0100
-@@ -306,6 +306,7 @@ struct dwarf_expr_baton
- {
-   struct frame_info *frame;
-   struct dwarf2_per_cu_data *per_cu;
-+  CORE_ADDR obj_address;
- };
- 
- /* Helper functions for dwarf2_evaluate_loc_desc.  */
-@@ -1209,6 +1210,7 @@ dwarf_expr_push_dwarf_reg_entry_value (s
- 
-   baton_local.frame = caller_frame;
-   baton_local.per_cu = caller_per_cu;
-+  baton_local.obj_address = 0;
- 
-   saved_ctx.gdbarch = ctx->gdbarch;
-   saved_ctx.addr_size = ctx->addr_size;
-@@ -1238,6 +1240,22 @@ dwarf_expr_get_addr_index (void *baton,
-   return dwarf2_read_addr_index (debaton->per_cu, index);
- }
- 
-+/* Callback function for get_object_address. Return the address of the VLA
-+   object.  */
-+
-+static CORE_ADDR
-+dwarf_expr_get_obj_addr (void *baton)
-+{
-+  struct dwarf_expr_baton *debaton = baton;
-+
-+  gdb_assert (debaton != NULL);
-+
-+  if (debaton->obj_address == 0)
-+    error (_("Location address is not set."));
-+
-+  return debaton->obj_address;
-+}
-+
- /* VALUE must be of type lval_computed with entry_data_value_funcs.  Perform
-    the indirect method on it, that is use its stored target value, the sole
-    purpose of entry_data_value_funcs..  */
-@@ -2202,7 +2220,8 @@ static const struct dwarf_expr_context_f
-   dwarf_expr_dwarf_call,
-   dwarf_expr_get_base_type,
-   dwarf_expr_push_dwarf_reg_entry_value,
--  dwarf_expr_get_addr_index
-+  dwarf_expr_get_addr_index,
-+  dwarf_expr_get_obj_addr
- };
- 
- /* Evaluate a location description, starting at DATA and with length
-@@ -2231,6 +2250,7 @@ dwarf2_evaluate_loc_desc_full (struct ty
- 
-   baton.frame = frame;
-   baton.per_cu = per_cu;
-+  baton.obj_address = 0;
- 
-   ctx = new_dwarf_expr_context ();
-   old_chain = make_cleanup_free_dwarf_expr_context (ctx);
-@@ -2326,6 +2346,11 @@ dwarf2_evaluate_loc_desc_full (struct ty
- 	    int in_stack_memory = dwarf_expr_fetch_in_stack_memory (ctx, 0);
- 
- 	    do_cleanups (value_chain);
-+
-+	    /* Select right frame to correctly evaluate VLA's during a backtrace.  */
-+	    if (is_dynamic_type (type))
-+	      select_frame (frame);
-+
- 	    retval = value_at_lazy (type, address + byte_offset);
- 	    if (in_stack_memory)
- 	      set_value_stack (retval, 1);
-@@ -2436,6 +2461,7 @@ dwarf2_evaluate_loc_desc (struct type *t
- 
- static int
- dwarf2_locexpr_baton_eval (const struct dwarf2_locexpr_baton *dlbaton,
-+         CORE_ADDR addr,
- 			   CORE_ADDR *valp)
- {
-   struct dwarf_expr_context *ctx;
-@@ -2451,6 +2477,7 @@ dwarf2_locexpr_baton_eval (const struct
- 
-   baton.frame = get_selected_frame (NULL);
-   baton.per_cu = dlbaton->per_cu;
-+  baton.obj_address = addr;
- 
-   objfile = dwarf2_per_cu_objfile (dlbaton->per_cu);
- 
-@@ -2491,7 +2518,8 @@ dwarf2_locexpr_baton_eval (const struct
- /* See dwarf2loc.h.  */
- 
- int
--dwarf2_evaluate_property (const struct dynamic_prop *prop, CORE_ADDR *value)
-+dwarf2_evaluate_property (const struct dynamic_prop *prop, CORE_ADDR address,
-+        CORE_ADDR *value)
- {
-   if (prop == NULL)
-     return 0;
-@@ -2502,7 +2530,7 @@ dwarf2_evaluate_property (const struct d
-       {
- 	const struct dwarf2_property_baton *baton = prop->data.baton;
- 
--	if (dwarf2_locexpr_baton_eval (&baton->locexpr, value))
-+	if (dwarf2_locexpr_baton_eval (&baton->locexpr, address, value))
- 	  {
- 	    if (baton->referenced_type)
- 	      {
-@@ -2546,6 +2574,20 @@ dwarf2_evaluate_property (const struct d
-   return 0;
- }
- 
-+/* See dwarf2loc.h.  */
-+
-+int
-+dwarf2_address_data_valid (const struct type *type)
-+{
-+  if (TYPE_NOT_ASSOCIATED (type))
-+    return 0;
-+
-+  if (TYPE_NOT_ALLOCATED (type))
-+    return 0;
-+
-+  return 1;
-+}
-+
- \f
- /* Helper functions and baton for dwarf2_loc_desc_needs_frame.  */
- 
-@@ -2653,6 +2695,15 @@ needs_get_addr_index (void *baton, unsig
-   return 1;
- }
- 
-+/* DW_OP_push_object_address has a frame already passed through.  */
-+
-+static CORE_ADDR
-+needs_get_obj_addr (void *baton)
-+{
-+  /* Nothing to do.  */
-+  return 1;
-+}
-+
- /* Virtual method table for dwarf2_loc_desc_needs_frame below.  */
- 
- static const struct dwarf_expr_context_funcs needs_frame_ctx_funcs =
-@@ -2667,7 +2718,8 @@ static const struct dwarf_expr_context_f
-   needs_frame_dwarf_call,
-   NULL,				/* get_base_type */
-   needs_dwarf_reg_entry_value,
--  needs_get_addr_index
-+  needs_get_addr_index,
-+  needs_get_obj_addr
- };
- 
- /* Return non-zero iff the location expression at DATA (length SIZE)
-@@ -3316,6 +3368,10 @@ dwarf2_compile_expr_to_ax (struct agent_
- 	  unimplemented (op);
- 	  break;
- 
-+  case DW_OP_push_object_address:
-+    unimplemented (op);
-+    break;
-+
- 	case DW_OP_skip:
- 	  offset = extract_signed_integer (op_ptr, 2, byte_order);
- 	  op_ptr += 2;
-Index: gdb-7.8.1/gdb/dwarf2loc.h
-===================================================================
---- gdb-7.8.1.orig/gdb/dwarf2loc.h	2014-12-13 15:52:07.697310274 +0100
-+++ gdb-7.8.1/gdb/dwarf2loc.h	2014-12-13 15:52:10.819307136 +0100
-@@ -96,11 +96,18 @@ struct value *dwarf2_evaluate_loc_desc (
-    into VALUE, otherwise returns 0.  */
- 
- int dwarf2_evaluate_property (const struct dynamic_prop *prop,
-+			      CORE_ADDR address,
+--- gdb-7.8.50.20141228.orig/gdb/dwarf2loc.h	2015-01-06 22:51:17.663240907 +0100
++++ gdb-7.8.50.20141228/gdb/dwarf2loc.h	2015-01-06 23:03:07.424684753 +0100
+@@ -111,6 +111,11 @@ int dwarf2_evaluate_property (const stru
+ 			      CORE_ADDR address,
  			      CORE_ADDR *value);
  
- CORE_ADDR dwarf2_read_addr_index (struct dwarf2_per_cu_data *per_cu,
- 				  unsigned int addr_index);
- 
 +/* Checks if a dwarf location definition is valid.
 +   Returns 1 if valid; 0 otherwise.  */
 +
 +extern int dwarf2_address_data_valid (const struct type *type);
 +
-+
- /* The symbol location baton types used by the DWARF-2 reader (i.e.
-    SYMBOL_LOCATION_BATON for a LOC_COMPUTED symbol).  "struct
-    dwarf2_locexpr_baton" is for a symbol with a single location
-Index: gdb-7.8.1/gdb/dwarf2read.c
+ /* A helper for the compiler interface that compiles a single dynamic
+    property to C code.
+ 
+Index: gdb-7.8.50.20141228/gdb/dwarf2read.c
 ===================================================================
---- gdb-7.8.1.orig/gdb/dwarf2read.c	2014-12-13 15:52:07.704310267 +0100
-+++ gdb-7.8.1/gdb/dwarf2read.c	2014-12-13 15:52:10.823307132 +0100
-@@ -1847,6 +1847,12 @@ static void free_dwo_file_cleanup (void
+--- gdb-7.8.50.20141228.orig/gdb/dwarf2read.c	2015-01-06 22:51:17.663240907 +0100
++++ gdb-7.8.50.20141228/gdb/dwarf2read.c	2015-01-06 23:04:09.691986881 +0100
+@@ -1844,6 +1844,12 @@ static void free_dwo_file_cleanup (void
  static void process_cu_includes (void);
  
  static void check_producer (struct dwarf2_cu *cu);
@@ -268,7 +61,7 @@ Index: gdb-7.8.1/gdb/dwarf2read.c
  \f
  /* Various complaints about symbol reading that don't abort the process.  */
  
-@@ -14182,29 +14188,92 @@ read_tag_string_type (struct die_info *d
+@@ -14241,29 +14247,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;
@@ -368,7 +161,7 @@ Index: gdb-7.8.1/gdb/dwarf2read.c
    char_type = language_string_char_type (cu->language_defn, gdbarch);
    type = create_string_type (NULL, char_type, range_type);
  
-@@ -14521,13 +14590,15 @@ read_base_type (struct die_info *die, st
+@@ -14580,13 +14649,15 @@ read_base_type (struct die_info *die, st
    return set_die_type (die, type, cu);
  }
  
@@ -385,7 +178,7 @@ Index: gdb-7.8.1/gdb/dwarf2read.c
  {
    struct dwarf2_property_baton *baton;
    struct obstack *obstack = &cu->objfile->objfile_obstack;
-@@ -14540,8 +14611,25 @@ attr_to_dynamic_prop (const struct attri
+@@ -14599,8 +14670,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;
@@ -413,7 +206,7 @@ Index: gdb-7.8.1/gdb/dwarf2read.c
        prop->data.baton = baton;
        prop->kind = PROP_LOCEXPR;
        gdb_assert (prop->data.baton != NULL);
-@@ -14571,8 +14659,28 @@ attr_to_dynamic_prop (const struct attri
+@@ -14630,8 +14718,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;
@@ -444,7 +237,7 @@ Index: gdb-7.8.1/gdb/dwarf2read.c
  	  prop->data.baton = baton;
  	  prop->kind = PROP_LOCEXPR;
  	  gdb_assert (prop->data.baton != NULL);
-@@ -14607,7 +14715,7 @@ read_subrange_type (struct die_info *die
+@@ -14666,7 +14774,7 @@ read_subrange_type (struct die_info *die
    struct type *base_type, *orig_base_type;
    struct type *range_type;
    struct attribute *attr;
@@ -453,7 +246,7 @@ Index: gdb-7.8.1/gdb/dwarf2read.c
    int low_default_is_valid;
    int high_bound_is_count = 0;
    const char *name;
-@@ -14627,7 +14735,9 @@ read_subrange_type (struct die_info *die
+@@ -14686,7 +14794,9 @@ read_subrange_type (struct die_info *die
  
    low.kind = PROP_CONST;
    high.kind = PROP_CONST;
@@ -463,7 +256,7 @@ Index: gdb-7.8.1/gdb/dwarf2read.c
  
    /* Set LOW_DEFAULT_IS_VALID if current language and DWARF version allow
       omitting DW_AT_lower_bound.  */
-@@ -14660,19 +14770,26 @@ read_subrange_type (struct die_info *die
+@@ -14719,19 +14829,26 @@ read_subrange_type (struct die_info *die
        break;
      }
  
@@ -493,7 +286,7 @@ Index: gdb-7.8.1/gdb/dwarf2read.c
  	{
  	  /* If bounds are constant do the final calculation here.  */
  	  if (low.kind == PROP_CONST && high.kind == PROP_CONST)
-@@ -14736,7 +14853,7 @@ read_subrange_type (struct die_info *die
+@@ -14795,7 +14912,7 @@ read_subrange_type (struct die_info *die
        && !TYPE_UNSIGNED (base_type) && (high.data.const_val & negative_mask))
      high.data.const_val |= negative_mask;
  
@@ -502,19 +295,18 @@ Index: gdb-7.8.1/gdb/dwarf2read.c
  
    if (high_bound_is_count)
      TYPE_RANGE_DATA (range_type)->flag_upper_bound_is_count = 1;
-@@ -21654,6 +21771,8 @@ set_die_type (struct die_info *die, stru
- {
-   struct dwarf2_per_cu_offset_and_type **slot, ofs;
-   struct objfile *objfile = cu->objfile;
-+  struct attribute *attr;
-+  struct dynamic_prop prop;
- 
-   /* For Ada types, make sure that the gnat-specific data is always
-      initialized (if not already set).  There are a few types where
-@@ -21668,6 +21787,43 @@ set_die_type (struct die_info *die, stru
-       && !HAVE_GNAT_AUX_INFO (type))
-     INIT_GNAT_SPECIFIC (type);
+@@ -21860,7 +21977,44 @@ set_die_type (struct die_info *die, stru
  
+   /* 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))
@@ -546,28 +338,22 @@ Index: gdb-7.8.1/gdb/dwarf2read.c
 +  /* 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, NULL, 0))
-+    {
-+      TYPE_DATA_LOCATION (type)
-+        = obstack_alloc (&objfile->objfile_obstack, sizeof (prop));
-+      *TYPE_DATA_LOCATION (type) = prop;
-+    }
-+
-   if (dwarf2_per_objfile->die_type_hash == NULL)
      {
-       dwarf2_per_objfile->die_type_hash =
-Index: gdb-7.8.1/gdb/f-typeprint.c
+       TYPE_DATA_LOCATION (type)
+         = obstack_alloc (&objfile->objfile_obstack, sizeof (prop));
+Index: gdb-7.8.50.20141228/gdb/f-typeprint.c
 ===================================================================
---- gdb-7.8.1.orig/gdb/f-typeprint.c	2014-12-13 15:52:07.705310266 +0100
-+++ gdb-7.8.1/gdb/f-typeprint.c	2014-12-13 15:52:10.823307132 +0100
+--- gdb-7.8.50.20141228.orig/gdb/f-typeprint.c	2015-01-06 22:51:17.663240907 +0100
++++ gdb-7.8.50.20141228/gdb/f-typeprint.c	2015-01-06 23:03:07.428684772 +0100
 @@ -30,6 +30,7 @@
  #include "gdbcore.h"
  #include "target.h"
  #include "f-lang.h"
 +#include "valprint.h"
  
- #include <string.h>
- #include <errno.h>
-@@ -56,6 +57,17 @@ f_print_type (struct type *type, const c
+ #if 0				/* Currently unused.  */
+ static void f_type_print_args (struct type *, struct ui_file *);
+@@ -53,6 +54,17 @@ f_print_type (struct type *type, const c
    enum type_code code;
    int demangled_args;
  
@@ -585,7 +371,7 @@ Index: gdb-7.8.1/gdb/f-typeprint.c
    f_type_print_base (type, stream, show, level);
    code = TYPE_CODE (type);
    if ((varstring != NULL && *varstring != '\0')
-@@ -170,28 +182,36 @@ f_type_print_varspec_suffix (struct type
+@@ -167,28 +179,36 @@ f_type_print_varspec_suffix (struct type
        if (arrayprint_recurse_level == 1)
  	fprintf_filtered (stream, "(");
  
@@ -643,11 +429,11 @@ Index: gdb-7.8.1/gdb/f-typeprint.c
        if (arrayprint_recurse_level == 1)
  	fprintf_filtered (stream, ")");
        else
-Index: gdb-7.8.1/gdb/f-valprint.c
+Index: gdb-7.8.50.20141228/gdb/f-valprint.c
 ===================================================================
---- gdb-7.8.1.orig/gdb/f-valprint.c	2014-12-13 15:52:07.705310266 +0100
-+++ gdb-7.8.1/gdb/f-valprint.c	2014-12-13 15:52:10.824307131 +0100
-@@ -39,8 +39,6 @@
+--- gdb-7.8.50.20141228.orig/gdb/f-valprint.c	2015-01-06 22:51:17.663240907 +0100
++++ gdb-7.8.50.20141228/gdb/f-valprint.c	2015-01-06 23:03:07.428684772 +0100
+@@ -36,8 +36,6 @@
  
  extern void _initialize_f_valprint (void);
  static void info_common_command (char *, int);
@@ -656,7 +442,7 @@ Index: gdb-7.8.1/gdb/f-valprint.c
  static void f77_get_dynamic_length_of_aggregate (struct type *);
  
  int f77_array_offset_tbl[MAX_FORTRAN_DIMS + 1][2];
-@@ -48,15 +46,6 @@ int f77_array_offset_tbl[MAX_FORTRAN_DIM
+@@ -45,15 +43,6 @@ int f77_array_offset_tbl[MAX_FORTRAN_DIM
  /* Array which holds offsets to be applied to get a row's elements
     for a given array.  Array also holds the size of each subarray.  */
  
@@ -672,7 +458,7 @@ Index: gdb-7.8.1/gdb/f-valprint.c
  int
  f77_get_lowerbound (struct type *type)
  {
-@@ -114,47 +103,6 @@ f77_get_dynamic_length_of_aggregate (str
+@@ -111,47 +100,6 @@ f77_get_dynamic_length_of_aggregate (str
      * TYPE_LENGTH (check_typedef (TYPE_TARGET_TYPE (type)));
  }
  
@@ -720,7 +506,7 @@ Index: gdb-7.8.1/gdb/f-valprint.c
  /* Actual function which prints out F77 arrays, Valaddr == address in 
     the superior.  Address == the address in the inferior.  */
  
-@@ -167,41 +115,62 @@ f77_print_array_1 (int nss, int ndimensi
+@@ -164,41 +112,62 @@ f77_print_array_1 (int nss, int ndimensi
  		   const struct value_print_options *options,
  		   int *elts)
  {
@@ -799,7 +585,7 @@ Index: gdb-7.8.1/gdb/f-valprint.c
  	    fprintf_filtered (stream, "...");
  	}
      }
-@@ -228,12 +197,6 @@ f77_print_array (struct type *type, cons
+@@ -225,12 +194,6 @@ f77_print_array (struct type *type, cons
  Type node corrupt! F77 arrays cannot have %d subscripts (%d Max)"),
  	   ndimensions, MAX_FORTRAN_DIMS);
  
@@ -812,7 +598,7 @@ Index: gdb-7.8.1/gdb/f-valprint.c
    f77_print_array_1 (1, ndimensions, type, valaddr, embedded_offset,
  		     address, stream, recurse, val, options, &elts);
  }
-@@ -378,12 +341,15 @@ f_val_print (struct type *type, const gd
+@@ -375,12 +338,15 @@ f_val_print (struct type *type, const gd
        fprintf_filtered (stream, "( ");
        for (index = 0; index < TYPE_NFIELDS (type); index++)
          {
@@ -833,11 +619,11 @@ Index: gdb-7.8.1/gdb/f-valprint.c
            if (index != TYPE_NFIELDS (type) - 1)
              fputs_filtered (", ", stream);
          }
-Index: gdb-7.8.1/gdb/gdbtypes.c
+Index: gdb-7.8.50.20141228/gdb/gdbtypes.c
 ===================================================================
---- gdb-7.8.1.orig/gdb/gdbtypes.c	2014-12-13 15:52:07.707310264 +0100
-+++ gdb-7.8.1/gdb/gdbtypes.c	2014-12-13 15:53:10.675246976 +0100
-@@ -805,7 +805,8 @@ allocate_stub_method (struct type *type)
+--- gdb-7.8.50.20141228.orig/gdb/gdbtypes.c	2015-01-06 22:51:17.663240907 +0100
++++ gdb-7.8.50.20141228/gdb/gdbtypes.c	2015-01-06 23:03:07.429684777 +0100
+@@ -815,7 +815,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,
@@ -847,7 +633,7 @@ Index: gdb-7.8.1/gdb/gdbtypes.c
  {
    if (result_type == NULL)
      result_type = alloc_type_copy (index_type);
-@@ -820,6 +821,7 @@ create_range_type (struct type *result_t
+@@ -830,6 +831,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;
@@ -855,7 +641,7 @@ Index: gdb-7.8.1/gdb/gdbtypes.c
  
    if (low_bound->kind == PROP_CONST && low_bound->data.const_val >= 0)
      TYPE_UNSIGNED (result_type) = 1;
-@@ -841,7 +843,7 @@ struct type *
+@@ -858,7 +860,7 @@ struct type *
  create_static_range_type (struct type *result_type, struct type *index_type,
  			  LONGEST low_bound, LONGEST high_bound)
  {
@@ -864,7 +650,7 @@ Index: gdb-7.8.1/gdb/gdbtypes.c
  
    low.kind = PROP_CONST;
    low.data.const_val = low_bound;
-@@ -849,7 +851,11 @@ create_static_range_type (struct type *r
+@@ -866,7 +868,11 @@ create_static_range_type (struct type *r
    high.kind = PROP_CONST;
    high.data.const_val = high_bound;
  
@@ -877,7 +663,7 @@ Index: gdb-7.8.1/gdb/gdbtypes.c
  
    return result_type;
  }
-@@ -1003,18 +1009,24 @@ create_array_type_with_stride (struct ty
+@@ -1020,18 +1026,24 @@ create_array_type_with_stride (struct ty
  
    TYPE_CODE (result_type) = TYPE_CODE_ARRAY;
    TYPE_TARGET_TYPE (result_type) = element_type;
@@ -904,7 +690,7 @@ Index: gdb-7.8.1/gdb/gdbtypes.c
        else if (bit_stride > 0)
  	TYPE_LENGTH (result_type) =
  	  (bit_stride * (high_bound - low_bound + 1) + 7) / 8;
-@@ -1616,12 +1628,31 @@ stub_noname_complaint (void)
+@@ -1630,12 +1642,31 @@ stub_noname_complaint (void)
  static int
  is_dynamic_type_internal (struct type *type, int top_level)
  {
@@ -933,10 +719,10 @@ Index: gdb-7.8.1/gdb/gdbtypes.c
 +      if (is_dynamic_type (TYPE_FIELD_TYPE (type, index)))
 +        return 1;
 +
-   switch (TYPE_CODE (type))
-     {
-     case TYPE_CODE_RANGE:
-@@ -1631,11 +1662,19 @@ is_dynamic_type_internal (struct type *t
+   /* 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
        {
  	gdb_assert (TYPE_NFIELDS (type) == 1);
  
@@ -959,7 +745,7 @@ Index: gdb-7.8.1/gdb/gdbtypes.c
        }
  
      case TYPE_CODE_STRUCT:
-@@ -1648,6 +1687,17 @@ is_dynamic_type_internal (struct type *t
+@@ -1673,6 +1712,17 @@ is_dynamic_type_internal (struct type *t
  	      && is_dynamic_type_internal (TYPE_FIELD_TYPE (type, i), 0))
  	    return 1;
        }
@@ -977,20 +763,7 @@ Index: gdb-7.8.1/gdb/gdbtypes.c
        break;
      }
  
-@@ -1666,22 +1716,23 @@ static struct type *resolve_dynamic_type
- 						   CORE_ADDR addr,
- 						   int top_level);
- 
--/* Given a dynamic range type (dyn_range_type), return a static version
--   of that type.  */
-+/* Given a dynamic range type (dyn_range_type) and address,
-+   return a static version of that type.  */
- 
- static struct type *
--resolve_dynamic_range (struct type *dyn_range_type)
-+resolve_dynamic_range (struct type *dyn_range_type, CORE_ADDR addr)
- {
-   CORE_ADDR value;
+@@ -1701,7 +1751,8 @@ resolve_dynamic_range (struct type *dyn_
    struct type *static_range_type;
    const struct dynamic_prop *prop;
    const struct dwarf2_locexpr_baton *baton;
@@ -1000,22 +773,7 @@ Index: gdb-7.8.1/gdb/gdbtypes.c
  
    gdb_assert (TYPE_CODE (dyn_range_type) == TYPE_CODE_RANGE);
  
-   prop = &TYPE_RANGE_DATA (dyn_range_type)->low;
--  if (dwarf2_evaluate_property (prop, &value))
-+  if (dwarf2_evaluate_property (prop, addr, &value))
-     {
-       low_bound.kind = PROP_CONST;
-       low_bound.data.const_val = value;
-@@ -1693,7 +1744,7 @@ resolve_dynamic_range (struct type *dyn_
-     }
- 
-   prop = &TYPE_RANGE_DATA (dyn_range_type)->high;
--  if (dwarf2_evaluate_property (prop, &value))
-+  if (dwarf2_evaluate_property (prop, addr, &value))
-     {
-       high_bound.kind = PROP_CONST;
-       high_bound.data.const_val = value;
-@@ -1707,10 +1758,17 @@ resolve_dynamic_range (struct type *dyn_
+@@ -1732,10 +1783,17 @@ resolve_dynamic_range (struct type *dyn_
        high_bound.kind = PROP_UNDEFINED;
        high_bound.data.const_val = 0;
      }
@@ -1036,14 +794,7 @@ Index: gdb-7.8.1/gdb/gdbtypes.c
    TYPE_RANGE_DATA (static_range_type)->flag_bound_evaluated = 1;
    return static_range_type;
  }
-@@ -1720,29 +1778,52 @@ resolve_dynamic_range (struct type *dyn_
-    of the associated array.  */
- 
- static struct type *
--resolve_dynamic_array (struct type *type)
-+resolve_dynamic_array (struct type *type, CORE_ADDR addr)
- {
-   CORE_ADDR value;
+@@ -1751,23 +1809,46 @@ resolve_dynamic_array (struct type *type
    struct type *elt_type;
    struct type *range_type;
    struct type *ary_dim;
@@ -1052,13 +803,12 @@ Index: gdb-7.8.1/gdb/gdbtypes.c
  
 -  gdb_assert (TYPE_CODE (type) == TYPE_CODE_ARRAY);
 +  gdb_assert (TYPE_CODE (type) == TYPE_CODE_ARRAY
-+              || TYPE_CODE (type) == TYPE_CODE_STRING);
++	      || TYPE_CODE (type) == TYPE_CODE_STRING);
  
    elt_type = type;
    range_type = check_typedef (TYPE_INDEX_TYPE (elt_type));
--  range_type = resolve_dynamic_range (range_type);
-+  range_type = resolve_dynamic_range (range_type, addr);
-+
+   range_type = resolve_dynamic_range (range_type, addr);
+ 
 +  prop = TYPE_ALLOCATED_PROP (type);
 +  if (dwarf2_evaluate_property (prop, addr, &value))
 +    {
@@ -1072,11 +822,11 @@ Index: gdb-7.8.1/gdb/gdbtypes.c
 +      TYPE_ASSOCIATED_PROP (copy)->kind = PROP_CONST;
 +      TYPE_ASSOCIATED_PROP (copy)->data.const_val = value;
 +    }
- 
++
    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));
+-    elt_type = resolve_dynamic_array (TYPE_TARGET_TYPE (type), addr);
 +  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);
@@ -1088,42 +838,18 @@ Index: gdb-7.8.1/gdb/gdbtypes.c
 -			    range_type);
 +  if (TYPE_CODE (type) == TYPE_CODE_STRING)
 +    return create_string_type (copy,
-+            elt_type,
-+            range_type);
++	    elt_type,
++	    range_type);
 +  else
 +    return create_array_type (copy,
-+            elt_type,
-+            range_type);
++	    elt_type,
++	    range_type);
  }
  
  /* Resolve dynamic bounds of members of the union TYPE to static
-@@ -1846,6 +1927,8 @@ resolve_dynamic_type_internal (struct ty
- {
-   struct type *real_type = check_typedef (type);
-   struct type *resolved_type = type;
-+  const struct dynamic_prop *prop;
-+  CORE_ADDR value;
- 
-   if (!is_dynamic_type_internal (real_type, top_level))
-     return type;
-@@ -1876,11 +1959,12 @@ resolve_dynamic_type_internal (struct ty
- 	  }
- 
- 	case TYPE_CODE_ARRAY:
--	  resolved_type = resolve_dynamic_array (type);
-+	case TYPE_CODE_STRING:
-+	  resolved_type = resolve_dynamic_array (type, addr);
- 	  break;
- 
- 	case TYPE_CODE_RANGE:
--	  resolved_type = resolve_dynamic_range (type);
-+	  resolved_type = resolve_dynamic_range (type, addr);
- 	  break;
- 
- 	case TYPE_CODE_UNION:
-@@ -1893,6 +1977,25 @@ resolve_dynamic_type_internal (struct ty
- 	}
-     }
+@@ -1938,6 +2019,25 @@ resolve_dynamic_type_internal (struct ty
+   else
+     TYPE_DATA_LOCATION (resolved_type) = NULL;
  
 +  /* Resolve data_location attribute.  */
 +  prop = TYPE_DATA_LOCATION (resolved_type);
@@ -1147,8 +873,8 @@ Index: gdb-7.8.1/gdb/gdbtypes.c
    return resolved_type;
  }
  
-@@ -4110,6 +4213,27 @@ copy_type_recursive (struct objfile *obj
-       *TYPE_RANGE_DATA (new_type) = *TYPE_RANGE_DATA (type);
+@@ -4174,6 +4274,27 @@ copy_type_recursive (struct objfile *obj
+ 	      sizeof (struct dynamic_prop));
      }
  
 +  /* Copy the data location information.  */
@@ -1175,9 +901,9 @@ Index: gdb-7.8.1/gdb/gdbtypes.c
    /* Copy pointers to other types.  */
    if (TYPE_TARGET_TYPE (type))
      TYPE_TARGET_TYPE (new_type) = 
-@@ -4156,6 +4280,44 @@ copy_type (const struct type *type)
-   memcpy (TYPE_MAIN_TYPE (new_type), TYPE_MAIN_TYPE (type),
- 	  sizeof (struct main_type));
+@@ -4227,6 +4348,44 @@ copy_type (const struct type *type)
+ 	      sizeof (struct dynamic_prop));
+     }
  
 +  if (TYPE_ALLOCATED_PROP (type))
 +    {
@@ -1220,11 +946,11 @@ Index: gdb-7.8.1/gdb/gdbtypes.c
    return new_type;
  }
  \f
-Index: gdb-7.8.1/gdb/gdbtypes.h
+Index: gdb-7.8.50.20141228/gdb/gdbtypes.h
 ===================================================================
---- gdb-7.8.1.orig/gdb/gdbtypes.h	2014-12-13 15:52:07.708310263 +0100
-+++ gdb-7.8.1/gdb/gdbtypes.h	2014-12-13 15:52:10.825307130 +0100
-@@ -670,6 +670,10 @@ struct main_type
+--- gdb-7.8.50.20141228.orig/gdb/gdbtypes.h	2015-01-06 22:51:17.663240907 +0100
++++ gdb-7.8.50.20141228/gdb/gdbtypes.h	2015-01-06 23:03:07.429684777 +0100
+@@ -660,6 +660,10 @@ struct main_type
  
        struct dynamic_prop high;
  
@@ -1235,15 +961,10 @@ Index: gdb-7.8.1/gdb/gdbtypes.h
        /* True if HIGH range bound contains the number of elements in the
  	 subrange. This affects how the final hight bound is computed.  */
  
-@@ -725,6 +729,23 @@ struct main_type
+@@ -720,6 +724,18 @@ struct main_type
+      this field yields to the location of the data for an object.  */
  
-     struct func_type *func_stuff;
-   } type_specific;
-+
-+  /* * Contains a location description value for the current type. Evaluating
-+     this field yields to the location of the data for an object.  */
-+
-+  struct dynamic_prop *data_location;
+   struct dynamic_prop *data_location;
 +
 +  /* Structure for DW_AT_allocated.
 +     The presence of this attribute indicates that the object of the type
@@ -1259,7 +980,7 @@ Index: gdb-7.8.1/gdb/gdbtypes.h
  };
  
  /* * A ``struct type'' describes a particular instance of a type, with
-@@ -1203,6 +1224,39 @@ extern void allocate_gnat_aux_type (stru
+@@ -1198,6 +1214,39 @@ 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
@@ -1297,9 +1018,9 @@ Index: gdb-7.8.1/gdb/gdbtypes.h
 +  && TYPE_ASSOCIATED_PROP (t)->kind == PROP_CONST \
 +  && !TYPE_ASSOCIATED_PROP (t)->data.const_val)
  
- /* Moto-specific stuff for FORTRAN arrays.  */
- 
-@@ -1210,6 +1264,9 @@ extern void allocate_gnat_aux_type (stru
+ /* Attribute accessors for the type data location.  */
+ #define TYPE_DATA_LOCATION(thistype) \
+@@ -1215,6 +1264,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))
@@ -1309,7 +1030,7 @@ Index: gdb-7.8.1/gdb/gdbtypes.h
  
  #define TYPE_ARRAY_UPPER_BOUND_VALUE(arraytype) \
     (TYPE_HIGH_BOUND(TYPE_INDEX_TYPE((arraytype))))
-@@ -1678,6 +1735,7 @@ extern struct type *create_array_type_wi
+@@ -1685,6 +1737,7 @@ extern struct type *create_array_type_wi
  
  extern struct type *create_range_type (struct type *, struct type *,
  				       const struct dynamic_prop *,
@@ -1317,10 +1038,10 @@ Index: gdb-7.8.1/gdb/gdbtypes.h
  				       const struct dynamic_prop *);
  
  extern struct type *create_array_type (struct type *, struct type *,
-Index: gdb-7.8.1/gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.8.1/gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp	2014-12-13 15:52:10.825307130 +0100
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp	2015-01-06 23:03:07.429684777 +0100
 @@ -0,0 +1,65 @@
 +# Copyright 2014 Free Software Foundation, Inc.
 +
@@ -1387,10 +1108,10 @@ Index: gdb-7.8.1/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.1/gdb/testsuite/gdb.fortran/vla-datatypes.exp
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-datatypes.exp
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.8.1/gdb/testsuite/gdb.fortran/vla-datatypes.exp	2014-12-13 15:52:10.825307130 +0100
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-datatypes.exp	2015-01-06 23:03:07.429684777 +0100
 @@ -0,0 +1,82 @@
 +# Copyright 2014 Free Software Foundation, Inc.
 +
@@ -1474,10 +1195,10 @@ Index: gdb-7.8.1/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.1/gdb/testsuite/gdb.fortran/vla-datatypes.f90
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-datatypes.f90
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.8.1/gdb/testsuite/gdb.fortran/vla-datatypes.f90	2014-12-13 15:52:10.825307130 +0100
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-datatypes.f90	2015-01-06 23:03:07.429684777 +0100
 @@ -0,0 +1,51 @@
 +! Copyright 2014 Free Software Foundation, Inc.
 +!
@@ -1530,10 +1251,10 @@ Index: gdb-7.8.1/gdb/testsuite/gdb.fortran/vla-datatypes.f90
 +  ! dummy statement for bp
 +  l = .FALSE.                             ! vlas-modified
 +end program vla_primitives
-Index: gdb-7.8.1/gdb/testsuite/gdb.fortran/vla-func.exp
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-func.exp
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.8.1/gdb/testsuite/gdb.fortran/vla-func.exp	2014-12-13 15:52:10.825307130 +0100
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-func.exp	2015-01-06 23:03:07.430684782 +0100
 @@ -0,0 +1,61 @@
 +# Copyright 2014 Free Software Foundation, Inc.
 +
@@ -1596,10 +1317,10 @@ Index: gdb-7.8.1/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.1/gdb/testsuite/gdb.fortran/vla-func.f90
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-func.f90
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.8.1/gdb/testsuite/gdb.fortran/vla-func.f90	2014-12-13 15:52:10.826307129 +0100
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-func.f90	2015-01-06 23:03:07.430684782 +0100
 @@ -0,0 +1,71 @@
 +! Copyright 2014 Free Software Foundation, Inc.
 +!
@@ -1672,10 +1393,10 @@ Index: gdb-7.8.1/gdb/testsuite/gdb.fortran/vla-func.f90
 +
 +  ret = .TRUE.                ! func2-returned
 +end program vla_func
-Index: gdb-7.8.1/gdb/testsuite/gdb.fortran/vla-history.exp
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-history.exp
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.8.1/gdb/testsuite/gdb.fortran/vla-history.exp	2014-12-13 15:52:10.826307129 +0100
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-history.exp	2015-01-06 23:03:07.430684782 +0100
 @@ -0,0 +1,62 @@
 +# Copyright 2014 Free Software Foundation, Inc.
 +
@@ -1739,10 +1460,10 @@ Index: gdb-7.8.1/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.1/gdb/testsuite/gdb.fortran/vla-ptype-sub.exp
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-ptype-sub.exp
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.8.1/gdb/testsuite/gdb.fortran/vla-ptype-sub.exp	2014-12-13 15:52:10.826307129 +0100
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-ptype-sub.exp	2015-01-06 23:03:07.430684782 +0100
 @@ -0,0 +1,87 @@
 +# Copyright 2014 Free Software Foundation, Inc.
 +
@@ -1831,10 +1552,10 @@ Index: gdb-7.8.1/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.1/gdb/testsuite/gdb.fortran/vla-ptype.exp
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-ptype.exp
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.8.1/gdb/testsuite/gdb.fortran/vla-ptype.exp	2014-12-13 15:52:10.826307129 +0100
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-ptype.exp	2015-01-06 23:03:07.430684782 +0100
 @@ -0,0 +1,96 @@
 +# Copyright 2014 Free Software Foundation, Inc.
 +
@@ -1932,10 +1653,10 @@ Index: gdb-7.8.1/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.1/gdb/testsuite/gdb.fortran/vla-sizeof.exp
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-sizeof.exp
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.8.1/gdb/testsuite/gdb.fortran/vla-sizeof.exp	2014-12-13 15:52:10.826307129 +0100
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-sizeof.exp	2015-01-06 23:03:07.430684782 +0100
 @@ -0,0 +1,46 @@
 +# Copyright 2014 Free Software Foundation, Inc.
 +
@@ -1983,10 +1704,10 @@ Index: gdb-7.8.1/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.1/gdb/testsuite/gdb.fortran/vla-stride.exp
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-stride.exp
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.8.1/gdb/testsuite/gdb.fortran/vla-stride.exp	2014-12-13 15:52:10.826307129 +0100
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-stride.exp	2015-01-06 23:03:07.430684782 +0100
 @@ -0,0 +1,44 @@
 +# Copyright 2014 Free Software Foundation, Inc.
 +
@@ -2032,10 +1753,10 @@ Index: gdb-7.8.1/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.1/gdb/testsuite/gdb.fortran/vla-stride.f90
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-stride.f90
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.8.1/gdb/testsuite/gdb.fortran/vla-stride.f90	2014-12-13 15:52:10.826307129 +0100
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-stride.f90	2015-01-06 23:03:07.430684782 +0100
 @@ -0,0 +1,30 @@
 +! Copyright 2014 Free Software Foundation, Inc.
 +!
@@ -2067,10 +1788,10 @@ Index: gdb-7.8.1/gdb/testsuite/gdb.fortran/vla-stride.f90
 +
 +  pvla => null()        ! single-element
 +end program vla_stride
-Index: gdb-7.8.1/gdb/testsuite/gdb.fortran/vla-strings.exp
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-strings.exp
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.8.1/gdb/testsuite/gdb.fortran/vla-strings.exp	2014-12-13 15:52:10.826307129 +0100
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-strings.exp	2015-01-06 23:03:07.430684782 +0100
 @@ -0,0 +1,104 @@
 +# Copyright 2014 Free Software Foundation, Inc.
 +
@@ -2176,10 +1897,10 @@ Index: gdb-7.8.1/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.1/gdb/testsuite/gdb.fortran/vla-strings.f90
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-strings.f90
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.8.1/gdb/testsuite/gdb.fortran/vla-strings.f90	2014-12-13 15:52:10.826307129 +0100
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-strings.f90	2015-01-06 23:03:07.430684782 +0100
 @@ -0,0 +1,40 @@
 +! Copyright 2014 Free Software Foundation, Inc.
 +!
@@ -2221,10 +1942,10 @@ Index: gdb-7.8.1/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.1/gdb/testsuite/gdb.fortran/vla-sub.f90
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-sub.f90
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.8.1/gdb/testsuite/gdb.fortran/vla-sub.f90	2014-12-13 15:52:10.827307128 +0100
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-sub.f90	2015-01-06 23:03:07.430684782 +0100
 @@ -0,0 +1,82 @@
 +! Copyright 2014 Free Software Foundation, Inc.
 +!
@@ -2308,10 +2029,10 @@ Index: gdb-7.8.1/gdb/testsuite/gdb.fortran/vla-sub.f90
 +
 +  call bar(sub_arr3, sub_arr1)
 +end program vla_sub
-Index: gdb-7.8.1/gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.8.1/gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp	2014-12-13 15:52:10.827307128 +0100
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp	2015-01-06 23:03:07.430684782 +0100
 @@ -0,0 +1,35 @@
 +# Copyright 2014 Free Software Foundation, Inc.
 +
@@ -2348,10 +2069,10 @@ Index: gdb-7.8.1/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.1/gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.8.1/gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp	2014-12-13 15:52:10.827307128 +0100
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp	2015-01-06 23:03:07.431684787 +0100
 @@ -0,0 +1,49 @@
 +# Copyright 2014 Free Software Foundation, Inc.
 +
@@ -2402,10 +2123,10 @@ Index: gdb-7.8.1/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.1/gdb/testsuite/gdb.fortran/vla-value-sub.exp
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-value-sub.exp
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.8.1/gdb/testsuite/gdb.fortran/vla-value-sub.exp	2014-12-13 15:52:10.827307128 +0100
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-value-sub.exp	2015-01-06 23:03:07.431684787 +0100
 @@ -0,0 +1,90 @@
 +# Copyright 2014 Free Software Foundation, Inc.
 +
@@ -2497,10 +2218,10 @@ Index: gdb-7.8.1/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.1/gdb/testsuite/gdb.fortran/vla-value.exp
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-value.exp
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.8.1/gdb/testsuite/gdb.fortran/vla-value.exp	2014-12-13 15:52:10.827307128 +0100
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla-value.exp	2015-01-06 23:03:07.431684787 +0100
 @@ -0,0 +1,148 @@
 +# Copyright 2014 Free Software Foundation, Inc.
 +
@@ -2650,10 +2371,10 @@ Index: gdb-7.8.1/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.1/gdb/testsuite/gdb.fortran/vla.f90
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla.f90
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.8.1/gdb/testsuite/gdb.fortran/vla.f90	2014-12-13 15:52:10.827307128 +0100
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.fortran/vla.f90	2015-01-06 23:03:07.431684787 +0100
 @@ -0,0 +1,56 @@
 +! Copyright 2014 Free Software Foundation, Inc.
 +!
@@ -2711,10 +2432,10 @@ Index: gdb-7.8.1/gdb/testsuite/gdb.fortran/vla.f90
 +  allocate (vla3 (2,2))               ! vla2-deallocated
 +  vla3(:,:) = 13
 +end program vla
-Index: gdb-7.8.1/gdb/testsuite/gdb.mi/mi-vla-fortran.exp
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.mi/mi-vla-fortran.exp
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.8.1/gdb/testsuite/gdb.mi/mi-vla-fortran.exp	2014-12-13 15:52:10.827307128 +0100
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.mi/mi-vla-fortran.exp	2015-01-06 23:03:07.431684787 +0100
 @@ -0,0 +1,182 @@
 +# Copyright 2014 Free Software Foundation, Inc.
 +
@@ -2898,10 +2619,10 @@ Index: gdb-7.8.1/gdb/testsuite/gdb.mi/mi-vla-fortran.exp
 +
 +mi_gdb_exit
 +return 0
-Index: gdb-7.8.1/gdb/testsuite/gdb.mi/vla.f90
+Index: gdb-7.8.50.20141228/gdb/testsuite/gdb.mi/vla.f90
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gdb-7.8.1/gdb/testsuite/gdb.mi/vla.f90	2014-12-13 15:52:10.827307128 +0100
++++ gdb-7.8.50.20141228/gdb/testsuite/gdb.mi/vla.f90	2015-01-06 23:03:07.431684787 +0100
 @@ -0,0 +1,42 @@
 +! Copyright 2014 Free Software Foundation, Inc.
 +!
@@ -2945,11 +2666,11 @@ Index: gdb-7.8.1/gdb/testsuite/gdb.mi/vla.f90
 +  pvla2 => null()
 +  l = associated(pvla2)       ! pvla2-set-to-null
 +end program vla
-Index: gdb-7.8.1/gdb/typeprint.c
+Index: gdb-7.8.50.20141228/gdb/typeprint.c
 ===================================================================
---- gdb-7.8.1.orig/gdb/typeprint.c	2014-12-13 15:52:07.710310261 +0100
-+++ gdb-7.8.1/gdb/typeprint.c	2014-12-13 15:52:10.828307127 +0100
-@@ -459,6 +459,13 @@ whatis_exp (char *exp, int show)
+--- gdb-7.8.50.20141228.orig/gdb/typeprint.c	2015-01-06 22:51:17.663240907 +0100
++++ gdb-7.8.50.20141228/gdb/typeprint.c	2015-01-06 23:03:07.431684787 +0100
+@@ -456,6 +456,13 @@ whatis_exp (char *exp, int show)
  
    type = value_type (val);
  
@@ -2963,11 +2684,11 @@ Index: gdb-7.8.1/gdb/typeprint.c
    get_user_print_options (&opts);
    if (opts.objectprint)
      {
-Index: gdb-7.8.1/gdb/valarith.c
+Index: gdb-7.8.50.20141228/gdb/valarith.c
 ===================================================================
---- gdb-7.8.1.orig/gdb/valarith.c	2014-12-13 15:52:07.711310260 +0100
-+++ gdb-7.8.1/gdb/valarith.c	2014-12-13 15:52:10.828307127 +0100
-@@ -195,12 +195,31 @@ value_subscripted_rvalue (struct value *
+--- gdb-7.8.50.20141228.orig/gdb/valarith.c	2015-01-06 22:51:17.663240907 +0100
++++ gdb-7.8.50.20141228/gdb/valarith.c	2015-01-06 23:03:07.432684792 +0100
+@@ -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));
    unsigned int elt_size = TYPE_LENGTH (elt_type);
@@ -3001,11 +2722,11 @@ Index: gdb-7.8.1/gdb/valarith.c
  
    if (VALUE_LVAL (array) == lval_memory && value_lazy (array))
      v = allocate_value_lazy (elt_type);
-Index: gdb-7.8.1/gdb/valprint.c
+Index: gdb-7.8.50.20141228/gdb/valprint.c
 ===================================================================
---- gdb-7.8.1.orig/gdb/valprint.c	2014-12-13 15:52:07.712310259 +0100
-+++ gdb-7.8.1/gdb/valprint.c	2014-12-13 15:52:10.828307127 +0100
-@@ -307,6 +307,18 @@ valprint_check_validity (struct ui_file
+--- gdb-7.8.50.20141228.orig/gdb/valprint.c	2015-01-06 22:51:17.663240907 +0100
++++ gdb-7.8.50.20141228/gdb/valprint.c	2015-01-06 23:03:07.432684792 +0100
+@@ -303,6 +303,18 @@ valprint_check_validity (struct ui_file
  {
    CHECK_TYPEDEF (type);
  
@@ -3024,7 +2745,7 @@ Index: gdb-7.8.1/gdb/valprint.c
    if (TYPE_CODE (type) != TYPE_CODE_UNION
        && TYPE_CODE (type) != TYPE_CODE_STRUCT
        && TYPE_CODE (type) != TYPE_CODE_ARRAY)
-@@ -362,6 +374,18 @@ val_print_invalid_address (struct ui_fil
+@@ -359,6 +371,18 @@ val_print_invalid_address (struct ui_fil
    fprintf_filtered (stream, _("<invalid address>"));
  }
  
@@ -3043,7 +2764,7 @@ Index: gdb-7.8.1/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
-@@ -803,12 +827,16 @@ static int
+@@ -800,12 +824,16 @@ static int
  value_check_printable (struct value *val, struct ui_file *stream,
  		       const struct value_print_options *options)
  {
@@ -3060,7 +2781,7 @@ Index: gdb-7.8.1/gdb/valprint.c
    if (value_entirely_optimized_out (val))
      {
        if (options->summary && !val_print_scalar_type_p (value_type (val)))
-@@ -834,6 +862,18 @@ value_check_printable (struct value *val
+@@ -831,6 +859,18 @@ value_check_printable (struct value *val
        return 0;
      }
  
@@ -3079,10 +2800,10 @@ Index: gdb-7.8.1/gdb/valprint.c
    return 1;
  }
  
-Index: gdb-7.8.1/gdb/valprint.h
+Index: gdb-7.8.50.20141228/gdb/valprint.h
 ===================================================================
---- gdb-7.8.1.orig/gdb/valprint.h	2014-12-13 15:52:07.712310259 +0100
-+++ gdb-7.8.1/gdb/valprint.h	2014-12-13 15:52:10.828307127 +0100
+--- gdb-7.8.50.20141228.orig/gdb/valprint.h	2015-01-06 22:51:17.663240907 +0100
++++ gdb-7.8.50.20141228/gdb/valprint.h	2015-01-06 23:03:07.432684792 +0100
 @@ -217,4 +217,8 @@ extern void output_command_const (const
  
  extern int val_print_scalar_type_p (struct type *type);
@@ -3092,11 +2813,11 @@ Index: gdb-7.8.1/gdb/valprint.h
 +extern void val_print_not_associated (struct ui_file *stream);
 +
  #endif
-Index: gdb-7.8.1/gdb/value.c
+Index: gdb-7.8.50.20141228/gdb/value.c
 ===================================================================
---- gdb-7.8.1.orig/gdb/value.c	2014-12-13 15:52:07.713310258 +0100
-+++ gdb-7.8.1/gdb/value.c	2014-12-13 15:52:10.829307126 +0100
-@@ -43,6 +43,7 @@
+--- gdb-7.8.50.20141228.orig/gdb/value.c	2015-01-06 22:51:17.663240907 +0100
++++ gdb-7.8.50.20141228/gdb/value.c	2015-01-06 23:03:07.433684797 +0100
+@@ -40,6 +40,7 @@
  #include "tracepoint.h"
  #include "cp-abi.h"
  #include "user-regs.h"
@@ -3104,7 +2825,7 @@ Index: gdb-7.8.1/gdb/value.c
  
  /* Prototypes for exported functions.  */
  
-@@ -1649,6 +1650,25 @@ set_value_component_location (struct val
+@@ -1755,6 +1756,25 @@ set_value_component_location (struct val
        if (funcs->copy_closure)
          component->location.computed.closure = funcs->copy_closure (whole);
      }
@@ -3130,7 +2851,7 @@ Index: gdb-7.8.1/gdb/value.c
  }
  
  \f
-@@ -2953,13 +2973,22 @@ value_primitive_field (struct value *arg
+@@ -3041,13 +3061,22 @@ value_primitive_field (struct value *arg
  	v = allocate_value_lazy (type);
        else
  	{
@@ -3159,7 +2880,7 @@ Index: gdb-7.8.1/gdb/value.c
      }
    set_value_component_location (v, arg1);
    VALUE_REGNUM (v) = VALUE_REGNUM (arg1);
-@@ -3542,7 +3571,8 @@ readjust_indirect_value_type (struct val
+@@ -3635,7 +3664,8 @@ readjust_indirect_value_type (struct val
  			      struct value *original_value)
  {
    /* Re-adjust type.  */
@@ -3169,7 +2890,7 @@ Index: gdb-7.8.1/gdb/value.c
  
    /* Add embedding info.  */
    set_value_enclosing_type (value, enc_type);
-@@ -3559,6 +3589,12 @@ coerce_ref (struct value *arg)
+@@ -3652,6 +3682,12 @@ coerce_ref (struct value *arg)
    struct value *retval;
    struct type *enc_type;
  
@@ -3182,7 +2903,7 @@ Index: gdb-7.8.1/gdb/value.c
    retval = coerce_ref_if_computed (arg);
    if (retval)
      return retval;
-@@ -3702,8 +3738,14 @@ value_fetch_lazy (struct value *val)
+@@ -3786,8 +3822,14 @@ value_fetch_lazy (struct value *val)
      }
    else if (VALUE_LVAL (val) == lval_memory)
      {
@@ -3198,3 +2919,39 @@ Index: gdb-7.8.1/gdb/value.c
  
        if (TYPE_LENGTH (type))
  	read_value_memory (val, 0, value_stack (val),
+Index: gdb-7.8.50.20141228/gdb/dwarf2loc.c
+===================================================================
+--- gdb-7.8.50.20141228.orig/gdb/dwarf2loc.c	2014-12-28 02:48:43.000000000 +0100
++++ gdb-7.8.50.20141228/gdb/dwarf2loc.c	2015-01-06 23:05:55.296499287 +0100
+@@ -2326,6 +2346,11 @@ dwarf2_evaluate_loc_desc_full (struct ty
+ 	    int in_stack_memory = dwarf_expr_fetch_in_stack_memory (ctx, 0);
+ 
+ 	    do_cleanups (value_chain);
++
++	    /* Select right frame to correctly evaluate VLA's during a backtrace.  */
++	    if (is_dynamic_type (type))
++	      select_frame (frame);
++
+ 	    retval = value_at_lazy (type, address + byte_offset);
+ 	    if (in_stack_memory)
+ 	      set_value_stack (retval, 1);
+@@ -2546,6 +2546,19 @@ dwarf2_compile_property_to_c (struct ui_
+ 			     data, data + size, per_cu);
+ }
+ 
++/* See dwarf2loc.h.  */
++
++int
++dwarf2_address_data_valid (const struct type *type)
++{
++  if (TYPE_NOT_ASSOCIATED (type))
++    return 0;
++
++  if (TYPE_NOT_ALLOCATED (type))
++    return 0;
++
++  return 1;
++}
+ \f
+ /* Helper functions and baton for dwarf2_loc_desc_needs_frame.  */
+ 

diff --git a/gdb.spec b/gdb.spec
index b77b70b..a1592c5 100644
--- a/gdb.spec
+++ b/gdb.spec
@@ -21,12 +21,12 @@ Name: %{?scl_prefix}gdb
 %global snapsrc    20140611
 # See timestamp of source gnulib installed into gdb/gnulib/ .
 %global snapgnulib 20121213
-%global tarname gdb-%{version}.20141228
-Version: 7.8.1
+%global tarname gdb-%{version}
+Version: 7.8.50.20150108
 
 # The release always contains a leading reserved number, start it at 1.
 # `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
-Release: 36%{?dist}
+Release: 1%{?dist}
 
 License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and BSD and Public Domain and GFDL
 Group: Development/Debuggers
@@ -219,7 +219,7 @@ Patch231: gdb-6.3-bz202689-exec-from-pthread-test.patch
 
 # Backported fixups post the source tarball.
 #Xdrop: Just backports.
-Patch232: gdb-upstream.patch
+#Patch232: gdb-upstream.patch
 
 # Testcase for PPC Power6/DFP instructions disassembly (BZ 230000).
 #=fedoratest+ppc
@@ -506,43 +506,33 @@ Patch848: gdb-dts-rhel6-python-compat.patch
 Patch852: gdb-gnat-dwarf-crash-3of3.patch
 
 # VLA (Fortran dynamic arrays) from Intel + archer-jankratochvil-vla tests.
-Patch887: gdb-archer-vla-tests.patch
 Patch888: gdb-vla-intel.patch
-Patch912: gdb-vla-intel-04of23-fix.patch
 Patch889: gdb-vla-intel-stringbt-fix.patch
-
-# Fix --with-system-readline with readline-6.3 patch 5.
-Patch914: gdb-readline-6.3.5.patch
+Patch912: gdb-vla-intel-04of23-fix.patch
+Patch887: gdb-archer-vla-tests.patch
 
 # Continue backtrace even if a frame filter throws an exception (Phil Muldoon).
 Patch918: gdb-btrobust.patch
 
-# Python completion w/overriden completer (Sergio Durigan Junior, BZ 1075199).
-Patch920: gdb-python-completer-1of2.patch
-Patch921: gdb-python-completer-2of2.patch
-
 # Display Fortran strings in backtraces.
 Patch925: gdb-fortran-frame-string.patch
 
 # Fix Python GIL with gdb.execute("continue") (Phil Muldoon, BZ 1116957).
 Patch927: gdb-python-gil.patch
 
-# Fix GDB SIGTT* Stopped when using the PID argument (BZ 1136704, Pedro Alves).
-Patch970: gdb-async-stopped-on-pid-arg-testsuite.patch
-
-# Fix "save breakpoints" for signal catchpoints and disabled breakpoints
-# (BZ 1146170, Miroslav Franc).
-Patch971: gdb-save-breakpoints-fix.patch
-
 # Fix 'Slow gstack performance' (RH BZ 1103894, Jan Kratochvil).
 Patch973: gdb-slow-gstack-performance.patch
 
-# Accelerate interactive symbols lookup 15x.
-Patch975: gdb-symbols-lookup-accel.patch
+# Fix 'compile' compilation warning/error.
+Patch977: gdb-compile-warn_unused_result.patch
+
+# Fix jit-reader.h for multi-lib.
+Patch978: gdb-jit-reader-multilib.patch
 
-# Fix '[RFE] please add add-auto-load-scripts-directory command' (RH
-# BZ 1163339, Jan Kratochvil).
-Patch976: gdb-rhbz1163339-add-auto-load-scripts-directory.patch
+# Fix gdb-7.9pre regressions / new FAILs.
+Patch979: gdb-6.8-bz457187-largefile-test-regression-fix.patch
+Patch980: gdb-py-frame-rip-test-fix.patch
+Patch981: gdb-tekhex-regression-revert.patch
 
 %if 0%{!?rhel:1} || 0%{?rhel} > 6
 # RL_STATE_FEDORA_GDB would not be found for:
@@ -719,11 +709,11 @@ find -name "*.info*"|xargs rm -f
 # Match the Fedora's version info.
 %patch2 -p1
 
-%patch232 -p1
+#patch232 -p1
 %patch349 -p1
 %patch888 -p1
-%patch912 -p1
 %patch889 -p1
+%patch912 -p1
 %patch1 -p1
 
 %patch105 -p1
@@ -822,17 +812,15 @@ find -name "*.info*"|xargs rm -f
 %patch852 -p1
 %patch863 -p1
 %patch887 -p1
-%patch914 -p1
 %patch918 -p1
-%patch920 -p1
-%patch921 -p1
 %patch925 -p1
 %patch927 -p1
-%patch970 -p1
-%patch971 -p1
 %patch973 -p1
-%patch975 -p1
-%patch976 -p1
+%patch977 -p1
+%patch978 -p1
+%patch979 -p1
+%patch980 -p1
+%patch981 -p1
 
 %patch848 -p1
 %if 0%{!?el6:1}
@@ -1271,10 +1259,9 @@ rm -rf $RPM_BUILD_ROOT
 %{_bindir}/pstack
 %{_mandir}/*/pstack.1*
 %{_datadir}/gdb
-%{_includedir}/gdb
-# Provide jit-reader.h so that users are able to write their own GDB JIT
+# Provide gdb/jit-reader.h so that users are able to write their own GDB JIT
 # plugins.
-%{_includedir}/gdb/jit-reader.h
+%{_includedir}/gdb
 
 # don't include the files in include, they are part of binutils
 
@@ -1334,6 +1321,10 @@ then
 fi
 
 %changelog
+* Thu Jan  8 2015 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.8.50.20150108-1.fc22
+- Rebase to pre-7.9 snapshot 7.8.50.20150108.
+- Fix jit-reader.h for multi-lib.
+
 * Sun Dec 28 2014 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.8.1-36.fc21
 - Rebase to 7.8.1.20141228 for a performance fix (PR binutils/17677).
 

diff --git a/sources b/sources
index e37e9ca..ed96386 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
 4981307aa9619bbec5b73261e4e41c8d  gdb-libstdc++-v3-python-r155978.tar.bz2
-4c1769b40a602ce196f76323b2a95a9b  gdb-7.8.1.20141228.tar.xz
+6b43f1079e9a6401c7277d6bd777bd7f  gdb-7.8.50.20150108.tar.xz

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-06-27 23:56 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-06-27 23:56 [rpms/gdb] gdb-17.2-rebase-f44: Rebase to pre-7.9 snapshot 7.8.50.20150108 Jan Kratochvil

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox