Hello community,

here is the log from the commit of package gdb for openSUSE:Factory checked in 
at 2015-11-11 10:29:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gdb (Old)
 and      /work/SRC/openSUSE:Factory/.gdb.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gdb"

Changes:
--------
--- /work/SRC/openSUSE:Factory/gdb/gdb.changes  2015-07-16 17:17:55.000000000 
+0200
+++ /work/SRC/openSUSE:Factory/.gdb.new/gdb.changes     2015-11-11 
10:29:17.000000000 +0100
@@ -1,0 +2,15 @@
+Fri Jul 10 13:49:28 UTC 2015 - [email protected]
+
+- Rebase to gdb version 7.9.1:
+  fixes PR python/18299, python/18285.
+- Add gdb-s390-reorder-arch.diff [bnc #936050]
+- Added patches for fate#318039, s390 z13 support:
+  0001-S390-Fix-compiler-invocation-with-compile-command.patch
+  0001-S390-Support-new-vector-register-sections.patch
+  0001-S390-Add-target-descriptions-for-vector-register-set.patch
+  0002-S390-Add-vector-register-support-to-gdb.patch
+  0003-S390-Add-vector-register-support-to-gdbserver.patch
+  0004-S390-Vector-register-test-case.patch
+  0005-S390-Name-invisible-registers-with-the-empty-string-.patch
+
+-------------------------------------------------------------------

Old:
----
  gdb-7.9.tar.bz2

New:
----
  0001-S390-Add-target-descriptions-for-vector-register-set.patch
  0001-S390-Fix-compiler-invocation-with-compile-command.patch
  0001-S390-Support-new-vector-register-sections.patch
  0002-S390-Add-vector-register-support-to-gdb.patch
  0003-S390-Add-vector-register-support-to-gdbserver.patch
  0004-S390-Vector-register-test-case.patch
  0005-S390-Name-invisible-registers-with-the-empty-string-.patch
  gdb-7.9.1.tar.bz2
  gdb-s390-reorder-arch.diff

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gdb.spec ++++++
--- /var/tmp/diff_new_pack.CpYDPu/_old  2015-11-11 10:29:20.000000000 +0100
+++ /var/tmp/diff_new_pack.CpYDPu/_new  2015-11-11 10:29:20.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package gdb
 #
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
 # Copyright (c) 2012 RedHat
 #
 # All modifications and additions to the file contributed by third parties
@@ -27,7 +27,7 @@
 %global snap       20130731
 # See timestamp of source gnulib installed into gdb/gnulib/ .
 %global snapgnulib 20121213
-Version:        7.9
+Version:        7.9.1
 Release:        0
 
 # The release always contains a leading reserved number, start it at 1.
@@ -212,6 +212,16 @@
 
 # Upstream patch to fix gcc -Werror
 Patch1002:      gdb-6.6-buildid-locate-rpm-suse.patch
+# Upstream patch for reordering "s390:31-bit" (bnc#936050)
+Patch1003:      gdb-s390-reorder-arch.diff
+# fate#318039
+Patch1004:      0001-S390-Fix-compiler-invocation-with-compile-command.patch
+Patch1005:      0001-S390-Support-new-vector-register-sections.patch
+Patch1006:      0001-S390-Add-target-descriptions-for-vector-register-set.patch
+Patch1007:      0002-S390-Add-vector-register-support-to-gdb.patch
+Patch1008:      0003-S390-Add-vector-register-support-to-gdbserver.patch
+Patch1009:      0004-S390-Vector-register-test-case.patch
+Patch1010:      0005-S390-Name-invisible-registers-with-the-empty-string-.patch
 
 BuildRequires:  bison
 BuildRequires:  flex
@@ -473,6 +483,14 @@
 #Fedora patching end
 
 %patch1002 -p1
+%patch1003 -p1
+%patch1004 -p1
+%patch1005 -p1
+%patch1006 -p1
+%patch1007 -p1
+%patch1008 -p1
+%patch1009 -p1
+%patch1010 -p1
 
 find -name "*.orig" | xargs rm -f
 ! find -name "*.rej" # Should not happen.

++++++ 0001-S390-Add-target-descriptions-for-vector-register-set.patch ++++++
++++ 1471 lines (skipped)

++++++ 0001-S390-Fix-compiler-invocation-with-compile-command.patch ++++++
>From 60abeae4f219a7a445d11ebaf72d2939413ffe80 Mon Sep 17 00:00:00 2001
From: Andreas Arnez <[email protected]>
Date: Fri, 27 Feb 2015 10:47:54 +0100
Subject: [PATCH] S390: Fix compiler invocation with "compile" command

On 64-bit S390 platforms the "compile" command always failed because
gcc was not invoked correctly.  This patch fixes the compiler
invocation.

gdb/ChangeLog:

        * s390-linux-tdep.c (s390_gcc_target_options): Not just handle
        31-bit targets, but 64-bit targets as well.
        (s390_gnu_triplet_regexp): New function.
        (s390_gdbarch_init): Set the gcc_target_options gdbarch method for
        64-bit targets as well.  Set the gnu_triplet_regexp gdbarch
        method.
---
 gdb/ChangeLog         |  9 +++++++++
 gdb/s390-linux-tdep.c | 19 ++++++++++++++++---
 2 files changed, 25 insertions(+), 3 deletions(-)

diff --git a/gdb/s390-linux-tdep.c b/gdb/s390-linux-tdep.c
index 9bd25fe..803779c 100644
--- a/gdb/s390-linux-tdep.c
+++ b/gdb/s390-linux-tdep.c
@@ -2808,12 +2808,24 @@ s390_address_class_name_to_type_flags (struct gdbarch 
*gdbarch,
     return 0;
 }
 
-/* Implement gdbarch_gcc_target_options.  GCC does not know "-m32".  */
+/* Implement gdbarch_gcc_target_options.  GCC does not know "-m32" or
+   "-mcmodel=large".  */
 
 static char *
 s390_gcc_target_options (struct gdbarch *gdbarch)
 {
-  return xstrdup ("-m31");
+  return xstrdup (gdbarch_ptr_bit (gdbarch) == 64 ? "-m64" : "-m31");
+}
+
+/* Implement gdbarch_gnu_triplet_regexp.  Target triplets are "s390-*"
+   for 31-bit and "s390x-*" for 64-bit, while the BFD arch name is
+   always "s390".  Note that an s390x compiler supports "-m31" as
+   well.  */
+
+static const char *
+s390_gnu_triplet_regexp (struct gdbarch *gdbarch)
+{
+  return "s390x?";
 }
 
 /* Implementation of `gdbarch_stap_is_single_operand', as defined in
@@ -3112,7 +3124,6 @@ s390_gdbarch_init (struct gdbarch_info info, struct 
gdbarch_list *arches)
     {
     case ABI_LINUX_S390:
       set_gdbarch_addr_bits_remove (gdbarch, s390_addr_bits_remove);
-      set_gdbarch_gcc_target_options (gdbarch, s390_gcc_target_options);
       set_solib_svr4_fetch_link_map_offsets
        (gdbarch, svr4_ilp32_fetch_link_map_offsets);
 
@@ -3152,6 +3163,8 @@ s390_gdbarch_init (struct gdbarch_info info, struct 
gdbarch_list *arches)
   set_gdbarch_stap_register_indirection_suffixes (gdbarch,
                                          stap_register_indirection_suffixes);
   set_gdbarch_stap_is_single_operand (gdbarch, s390_stap_is_single_operand);
+  set_gdbarch_gcc_target_options (gdbarch, s390_gcc_target_options);
+  set_gdbarch_gnu_triplet_regexp (gdbarch, s390_gnu_triplet_regexp);
 
   return gdbarch;
 }
-- 
1.8.1.4

++++++ 0001-S390-Support-new-vector-register-sections.patch ++++++
>From 4ef9f41a9538c9c7e4e540277e437b137cb64c4c Mon Sep 17 00:00:00 2001
From: Andreas Arnez <[email protected]>
Date: Fri, 20 Feb 2015 10:39:53 +0100
Subject: [PATCH] S390: Support new vector register sections

The IBM z13 has new 128-bit wide vector registers v0-v31, where v0-v15
include the existing 64-bit wide floating point registers.  The Linux
kernel presents the vector registers as two additional register sets,
one for the right halves of v0-v15 and another one for the full
registers v16-v31.  Thus a new core file may contain two new register
note sections, and this patch adds support to binutils for them.

bfd/
        * elf-bfd.h (elfcore_write_s390_vxrs_low): Add prototype.
        (elfcore_write_s390_vxrs_high): Likewise.
        * elf.c (elfcore_grok_s390_vxrs_low): New function.
        (elfcore_grok_s390_vxrs_high): New function.
        (elfcore_grok_note): Call them.
        (elfcore_write_s390_vxrs_low): New function.
        (elfcore_write_s390_vxrs_high): New function.
        (elfcore_write_register_note): Call them.

binutils/
        * readelf.c (get_note_type): Add NT_S390_VXRS_LOW and
        NT_S390_VXRS_HIGH.

include/elf/
        * common.h (NT_S390_VXRS_LOW): New macro.
        (NT_S390_VXRS_HIGH): Likewise.
---
 bfd/ChangeLog         | 11 +++++++++++
 bfd/elf-bfd.h         |  4 ++++
 bfd/elf.c             | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++
 include/elf/ChangeLog |  5 +++++
 include/elf/common.h  |  4 ++++
 7 files changed, 88 insertions(+)

diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h
index 495053d..156eec7 100644
--- a/bfd/elf-bfd.h
+++ b/bfd/elf-bfd.h
@@ -2285,6 +2285,10 @@ extern char *elfcore_write_s390_system_call
   (bfd *, char *, int *, const void *, int);
 extern char *elfcore_write_s390_tdb
   (bfd *, char *, int *, const void *, int);
+extern char *elfcore_write_s390_vxrs_low
+  (bfd *, char *, int *, const void *, int);
+extern char *elfcore_write_s390_vxrs_high
+  (bfd *, char *, int *, const void *, int);
 extern char *elfcore_write_arm_vfp
   (bfd *, char *, int *, const void *, int);
 extern char *elfcore_write_aarch_tls
diff --git a/bfd/elf.c b/bfd/elf.c
index 0aa5f8e..14bc531 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -8251,6 +8251,18 @@ elfcore_grok_s390_tdb (bfd *abfd, Elf_Internal_Note 
*note)
 }
 
 static bfd_boolean
+elfcore_grok_s390_vxrs_low (bfd *abfd, Elf_Internal_Note *note)
+{
+  return elfcore_make_note_pseudosection (abfd, ".reg-s390-vxrs-low", note);
+}
+
+static bfd_boolean
+elfcore_grok_s390_vxrs_high (bfd *abfd, Elf_Internal_Note *note)
+{
+  return elfcore_make_note_pseudosection (abfd, ".reg-s390-vxrs-high", note);
+}
+
+static bfd_boolean
 elfcore_grok_arm_vfp (bfd *abfd, Elf_Internal_Note *note)
 {
   return elfcore_make_note_pseudosection (abfd, ".reg-arm-vfp", note);
@@ -8714,6 +8726,20 @@ elfcore_grok_note (bfd *abfd, Elf_Internal_Note *note)
       else
         return TRUE;
 
+    case NT_S390_VXRS_LOW:
+      if (note->namesz == 6
+         && strcmp (note->namedata, "LINUX") == 0)
+       return elfcore_grok_s390_vxrs_low (abfd, note);
+      else
+       return TRUE;
+
+    case NT_S390_VXRS_HIGH:
+      if (note->namesz == 6
+         && strcmp (note->namedata, "LINUX") == 0)
+       return elfcore_grok_s390_vxrs_high (abfd, note);
+      else
+       return TRUE;
+
     case NT_ARM_VFP:
       if (note->namesz == 6
          && strcmp (note->namedata, "LINUX") == 0)
@@ -9580,6 +9606,31 @@ elfcore_write_s390_tdb (bfd *abfd,
 }
 
 char *
+elfcore_write_s390_vxrs_low (bfd *abfd,
+                            char *buf,
+                            int *bufsiz,
+                            const void *s390_vxrs_low,
+                            int size)
+{
+  char *note_name = "LINUX";
+  return elfcore_write_note (abfd, buf, bufsiz,
+                            note_name, NT_S390_VXRS_LOW, s390_vxrs_low, size);
+}
+
+char *
+elfcore_write_s390_vxrs_high (bfd *abfd,
+                            char *buf,
+                            int *bufsiz,
+                            const void *s390_vxrs_high,
+                            int size)
+{
+  char *note_name = "LINUX";
+  return elfcore_write_note (abfd, buf, bufsiz,
+                            note_name, NT_S390_VXRS_HIGH,
+                            s390_vxrs_high, size);
+}
+
+char *
 elfcore_write_arm_vfp (bfd *abfd,
                       char *buf,
                       int *bufsiz,
@@ -9663,6 +9714,10 @@ elfcore_write_register_note (bfd *abfd,
     return elfcore_write_s390_system_call (abfd, buf, bufsiz, data, size);
   if (strcmp (section, ".reg-s390-tdb") == 0)
     return elfcore_write_s390_tdb (abfd, buf, bufsiz, data, size);
+  if (strcmp (section, ".reg-s390-vxrs-low") == 0)
+    return elfcore_write_s390_vxrs_low (abfd, buf, bufsiz, data, size);
+  if (strcmp (section, ".reg-s390-vxrs-high") == 0)
+    return elfcore_write_s390_vxrs_high (abfd, buf, bufsiz, data, size);
   if (strcmp (section, ".reg-arm-vfp") == 0)
     return elfcore_write_arm_vfp (abfd, buf, bufsiz, data, size);
   if (strcmp (section, ".reg-aarch-tls") == 0)
diff --git a/include/elf/common.h b/include/elf/common.h
index ae7b5f8..70778bf 100644
--- a/include/elf/common.h
+++ b/include/elf/common.h
@@ -557,6 +557,10 @@
                                        /*   note name must be "LINUX".  */
 #define NT_S390_TDB    0x308           /* S390 transaction diagnostic block */
                                        /*   note name must be "LINUX".  */
+#define NT_S390_VXRS_LOW       0x309   /* S390 vector registers 0-15 upper 
half */
+                                       /*   note name must be "LINUX".  */
+#define NT_S390_VXRS_HIGH      0x30a   /* S390 vector registers 16-31 */
+                                       /*   note name must be "LINUX".  */
 #define NT_ARM_VFP     0x400           /* ARM VFP registers */
 /* The following definitions should really use NT_AARCH_..., but defined
    this way for compatibility with Linux.  */
-- 
1.8.1.4

++++++ 0002-S390-Add-vector-register-support-to-gdb.patch ++++++
++++ 744 lines (skipped)

++++++ 0003-S390-Add-vector-register-support-to-gdbserver.patch ++++++
Part of fate#318039

>From bf2d68ab8c9da89a7caec2abdd2cc27c607f4a04 Mon Sep 17 00:00:00 2001
From: Andreas Arnez <[email protected]>
Date: Mon, 2 Mar 2015 10:57:40 +0100
Subject: [PATCH] S390: Add vector register support to gdbserver

On S/390 targets with vector registers, enable gdbserver to advertise
and handle the feature "org.gnu.gdb.s390.vx".

gdb/gdbserver/ChangeLog:

        * Makefile.in (s390-vx-linux64.c, s390-tevx-linux64.c)
        (s390x-vx-linux64.c, s390x-tevx-linux64.c): New rules.
        (clean): Add "rm -f" for above C files.
        * configure.srv (srv_regobj): Add s390-vx-linux64.o,
        s390-tevx-linux64.o, s390x-vx-linux64.o, and s390x-tevx-linux64.o.
        (srv_xmlfiles): Add s390-vx-linux64.xml, s390-tevx-linux64.xml,
        s390x-vx-linux64.xml, s390x-tevx-linux64.xml, and s390-vx.xml.
        * linux-s390-low.c (HWCAP_S390_VX): New macro.
        (init_registers_s390_vx_linux64, init_registers_s390_tevx_linux64)
        (init_registers_s390x_vx_linux64)
        (init_registers_s390x_tevx_linux64)
        (tdesc_s390_vx_linux64, tdesc_s390_tevx_linux64)
        (tdesc_s390x_vx_linux64, tdesc_s390x_tevx_linux64): New extern
        declarations.
        (s390_fill_vxrs_low, s390_store_vxrs_low, s390_fill_vxrs_high)
        (s390_store_vxrs_high): New functions.
        (s390_regsets): Add entries for NT_S390_VXRS_LOW and
        NT_S390_VXRS_HIGH.
        (s390_arch_setup): Add logic for selecting one of the new target
        descriptions.  Activate the new vector regsets if applicable.
        (initialize_low_arch): Also invoke init_registers_s390_vx_linux64,
        init_registers_s390_tevx_linux64, init_registers_s390x_vx_linux64,
        and init_registers_s390x_tevx_linux64.
---
 gdb/gdbserver/ChangeLog        | 26 ++++++++++++
 gdb/gdbserver/Makefile.in      | 12 +++++-
 gdb/gdbserver/configure.srv    |  9 ++++
 gdb/gdbserver/linux-s390-low.c | 94 ++++++++++++++++++++++++++++++++++++++++--
 4 files changed, 137 insertions(+), 4 deletions(-)

Index: gdb-7.9.1/gdb/gdbserver/Makefile.in
===================================================================
--- gdb-7.9.1.orig/gdb/gdbserver/Makefile.in    2015-07-10 16:18:29.000000000 
+0200
+++ gdb-7.9.1/gdb/gdbserver/Makefile.in 2015-07-10 16:19:13.000000000 +0200
@@ -356,7 +356,9 @@ clean:
        rm -f s390-linux32.c s390-linux64.c s390x-linux64.c
        rm -f s390-linux32v1.c s390-linux32v2.c s390-linux64v1.c
        rm -f s390-linux64v2.c s390x-linux64v1.c s390x-linux64v2.c
-       rm -f s390-te-linux32.c s390-te-linux64.c
+       rm -f s390-te-linux64.c s390x-te-linux64.c
+       rm -f s390-vx-linux64.c s390x-vx-linux64.c
+       rm -f s390-tevx-linux64.c s390x-tevx-linux64.c
        rm -f tic6x-c64xp-linux.c tic6x-c64x-linux.c tic6x-c62x-linux.c
        rm -f xml-builtin.c stamp-xml
        rm -f i386-avx.c i386-avx-linux.c
@@ -684,6 +686,10 @@ s390-linux64v2.c : $(srcdir)/../regforma
        $(SHELL) $(regdat_sh) $(srcdir)/../regformats/s390-linux64v2.dat 
s390-linux64v2.c
 s390-te-linux64.c : $(srcdir)/../regformats/s390-te-linux64.dat $(regdat_sh)
        $(SHELL) $(regdat_sh) $(srcdir)/../regformats/s390-te-linux64.dat 
s390-te-linux64.c
+s390-vx-linux64.c : $(srcdir)/../regformats/s390-vx-linux64.dat $(regdat_sh)
+       $(SHELL) $(regdat_sh) $(srcdir)/../regformats/s390-vx-linux64.dat 
s390-vx-linux64.c
+s390-tevx-linux64.c : $(srcdir)/../regformats/s390-tevx-linux64.dat 
$(regdat_sh)
+       $(SHELL) $(regdat_sh) $(srcdir)/../regformats/s390-tevx-linux64.dat 
s390-tevx-linux64.c
 s390x-linux64.c : $(srcdir)/../regformats/s390x-linux64.dat $(regdat_sh)
        $(SHELL) $(regdat_sh) $(srcdir)/../regformats/s390x-linux64.dat 
s390x-linux64.c
 s390x-linux64v1.c : $(srcdir)/../regformats/s390x-linux64v1.dat $(regdat_sh)
@@ -692,6 +698,10 @@ s390x-linux64v2.c : $(srcdir)/../regform
        $(SHELL) $(regdat_sh) $(srcdir)/../regformats/s390x-linux64v2.dat 
s390x-linux64v2.c
 s390x-te-linux64.c : $(srcdir)/../regformats/s390x-te-linux64.dat $(regdat_sh)
        $(SHELL) $(regdat_sh) $(srcdir)/../regformats/s390x-te-linux64.dat 
s390x-te-linux64.c
+s390x-vx-linux64.c : $(srcdir)/../regformats/s390x-vx-linux64.dat $(regdat_sh)
+       $(SHELL) $(regdat_sh) $(srcdir)/../regformats/s390x-vx-linux64.dat 
s390x-vx-linux64.c
+s390x-tevx-linux64.c : $(srcdir)/../regformats/s390x-tevx-linux64.dat 
$(regdat_sh)
+       $(SHELL) $(regdat_sh) $(srcdir)/../regformats/s390x-tevx-linux64.dat 
s390x-tevx-linux64.c
 
 tic6x-c64xp-linux.c : $(srcdir)/../regformats/tic6x-c64xp-linux.dat 
$(regdat_sh)
        $(SHELL) $(regdat_sh) $(srcdir)/../regformats/tic6x-c64xp-linux.dat 
tic6x-c64xp-linux.c
Index: gdb-7.9.1/gdb/gdbserver/configure.srv
===================================================================
--- gdb-7.9.1.orig/gdb/gdbserver/configure.srv  2015-07-10 16:18:29.000000000 
+0200
+++ gdb-7.9.1/gdb/gdbserver/configure.srv       2015-07-10 16:19:13.000000000 
+0200
@@ -260,10 +260,14 @@ case "${target}" in
                        srv_regobj="${srv_regobj} s390-linux64v1.o"
                        srv_regobj="${srv_regobj} s390-linux64v2.o"
                        srv_regobj="${srv_regobj} s390-te-linux64.o"
+                       srv_regobj="${srv_regobj} s390-vx-linux64.o"
+                       srv_regobj="${srv_regobj} s390-tevx-linux64.o"
                        srv_regobj="${srv_regobj} s390x-linux64.o"
                        srv_regobj="${srv_regobj} s390x-linux64v1.o"
                        srv_regobj="${srv_regobj} s390x-linux64v2.o"
                        srv_regobj="${srv_regobj} s390x-te-linux64.o"
+                       srv_regobj="${srv_regobj} s390x-vx-linux64.o"
+                       srv_regobj="${srv_regobj} s390x-tevx-linux64.o"
                        srv_tgtobj="$srv_linux_obj linux-s390-low.o"
                        srv_xmlfiles="s390-linux32.xml"
                        srv_xmlfiles="${srv_xmlfiles} s390-linux32v1.xml"
@@ -272,16 +276,21 @@ case "${target}" in
                        srv_xmlfiles="${srv_xmlfiles} s390-linux64v1.xml"
                        srv_xmlfiles="${srv_xmlfiles} s390-linux64v2.xml"
                        srv_xmlfiles="${srv_xmlfiles} s390-te-linux64.xml"
+                       srv_xmlfiles="${srv_xmlfiles} s390-vx-linux64.xml"
+                       srv_xmlfiles="${srv_xmlfiles} s390-tevx-linux64.xml"
                        srv_xmlfiles="${srv_xmlfiles} s390x-linux64.xml"
                        srv_xmlfiles="${srv_xmlfiles} s390x-linux64v1.xml"
                        srv_xmlfiles="${srv_xmlfiles} s390x-linux64v2.xml"
                        srv_xmlfiles="${srv_xmlfiles} s390x-te-linux64.xml"
+                       srv_xmlfiles="${srv_xmlfiles} s390x-vx-linux64.xml"
+                       srv_xmlfiles="${srv_xmlfiles} s390x-tevx-linux64.xml"
                        srv_xmlfiles="${srv_xmlfiles} s390-core32.xml"
                        srv_xmlfiles="${srv_xmlfiles} s390-core64.xml"
                        srv_xmlfiles="${srv_xmlfiles} s390x-core64.xml"
                        srv_xmlfiles="${srv_xmlfiles} s390-acr.xml"
                        srv_xmlfiles="${srv_xmlfiles} s390-fpr.xml"
                        srv_xmlfiles="${srv_xmlfiles} s390-tdb.xml"
+                       srv_xmlfiles="${srv_xmlfiles} s390-vx.xml"
                        srv_linux_usrregs=yes
                        srv_linux_regsets=yes
                        srv_linux_thread_db=yes
Index: gdb-7.9.1/gdb/gdbserver/linux-s390-low.c
===================================================================
--- gdb-7.9.1.orig/gdb/gdbserver/linux-s390-low.c       2015-07-10 
16:18:29.000000000 +0200
+++ gdb-7.9.1/gdb/gdbserver/linux-s390-low.c    2015-07-10 16:19:13.000000000 
+0200
@@ -36,6 +36,10 @@
 #define HWCAP_S390_TE 1024
 #endif
 
+#ifndef HWCAP_S390_VX
+#define HWCAP_S390_VX 2048
+#endif
+
 #ifndef PTRACE_GETREGSET
 #define PTRACE_GETREGSET 0x4204
 #endif
@@ -72,6 +76,14 @@ extern const struct target_desc *tdesc_s
 void init_registers_s390_te_linux64 (void);
 extern const struct target_desc *tdesc_s390_te_linux64;
 
+/* Defined in auto-generated file s390-vx-linux64.c.  */
+void init_registers_s390_vx_linux64 (void);
+extern const struct target_desc *tdesc_s390_vx_linux64;
+
+/* Defined in auto-generated file s390-tevx-linux64.c.  */
+void init_registers_s390_tevx_linux64 (void);
+extern const struct target_desc *tdesc_s390_tevx_linux64;
+
 /* Defined in auto-generated file s390x-linux64.c.  */
 void init_registers_s390x_linux64 (void);
 extern const struct target_desc *tdesc_s390x_linux64;
@@ -88,6 +100,14 @@ extern const struct target_desc *tdesc_s
 void init_registers_s390x_te_linux64 (void);
 extern const struct target_desc *tdesc_s390x_te_linux64;
 
+/* Defined in auto-generated file s390x-vx-linux64.c.  */
+void init_registers_s390x_vx_linux64 (void);
+extern const struct target_desc *tdesc_s390x_vx_linux64;
+
+/* Defined in auto-generated file s390x-tevx-linux64.c.  */
+void init_registers_s390x_tevx_linux64 (void);
+extern const struct target_desc *tdesc_s390x_tevx_linux64;
+
 #define s390_num_regs 52
 
 static int s390_regmap[] = {
@@ -324,6 +344,46 @@ s390_store_tdb (struct regcache *regcach
     supply_register (regcache, tr0 + i, (const char *) buf + 8 * (16 + i));
 }
 
+static void
+s390_fill_vxrs_low (struct regcache *regcache, void *buf)
+{
+  int v0 = find_regno (regcache->tdesc, "v0l");
+  int i;
+
+  for (i = 0; i < 16; i++)
+    collect_register (regcache, v0 + i, (char *) buf + 8 * i);
+}
+
+static void
+s390_store_vxrs_low (struct regcache *regcache, const void *buf)
+{
+  int v0 = find_regno (regcache->tdesc, "v0l");
+  int i;
+
+  for (i = 0; i < 16; i++)
+    supply_register (regcache, v0 + i, (const char *) buf + 8 * i);
+}
+
+static void
+s390_fill_vxrs_high (struct regcache *regcache, void *buf)
+{
+  int v16 = find_regno (regcache->tdesc, "v16");
+  int i;
+
+  for (i = 0; i < 16; i++)
+    collect_register (regcache, v16 + i, (char *) buf + 16 * i);
+}
+
+static void
+s390_store_vxrs_high (struct regcache *regcache, const void *buf)
+{
+  int v16 = find_regno (regcache->tdesc, "v16");
+  int i;
+
+  for (i = 0; i < 16; i++)
+    supply_register (regcache, v16 + i, (const char *) buf + 16 * i);
+}
+
 static struct regset_info s390_regsets[] = {
   { 0, 0, 0, 0, GENERAL_REGS, s390_fill_gregset, NULL },
   /* Last break address is read-only; no fill function.  */
@@ -334,6 +394,10 @@ static struct regset_info s390_regsets[]
   /* TDB is read-only.  */
   { PTRACE_GETREGSET, -1, NT_S390_TDB, 0, EXTENDED_REGS,
     NULL, s390_store_tdb },
+  { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_S390_VXRS_LOW, 0,
+    EXTENDED_REGS, s390_fill_vxrs_low, s390_store_vxrs_low },
+  { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_S390_VXRS_HIGH, 0,
+    EXTENDED_REGS, s390_fill_vxrs_high, s390_store_vxrs_high },
   { 0, 0, 0, -1, -1, NULL, NULL }
 };
 
@@ -439,6 +503,8 @@ s390_arch_setup (void)
   int have_regset_system_call
     = s390_check_regset (pid, NT_S390_SYSTEM_CALL, 4);
   int have_regset_tdb = s390_check_regset (pid, NT_S390_TDB, 256);
+  int have_regset_vxrs = s390_check_regset (pid, NT_S390_VXRS_LOW, 128)
+    && s390_check_regset (pid, NT_S390_VXRS_HIGH, 256);
 
   /* Assume 31-bit inferior process.  */
   if (have_regset_system_call)
@@ -464,8 +530,14 @@ s390_arch_setup (void)
        if (have_regset_tdb)
          have_regset_tdb =
            (s390_get_hwcap (tdesc_s390x_linux64v2) & HWCAP_S390_TE) != 0;
-
-       if (have_regset_tdb)
+       if (have_regset_vxrs)
+         have_regset_vxrs =
+           (s390_get_hwcap (tdesc_s390x_linux64v2) & HWCAP_S390_VX) != 0;
+
+       if (have_regset_vxrs)
+         tdesc = (have_regset_tdb ? tdesc_s390x_tevx_linux64 :
+                  tdesc_s390x_vx_linux64);
+       else if (have_regset_tdb)
          tdesc = tdesc_s390x_te_linux64;
        else if (have_regset_system_call)
          tdesc = tdesc_s390x_linux64v2;
@@ -482,8 +554,13 @@ s390_arch_setup (void)
        have_hwcap_s390_high_gprs = 1;
        if (have_regset_tdb)
          have_regset_tdb = (s390_get_hwcap (tdesc) & HWCAP_S390_TE) != 0;
+       if (have_regset_vxrs)
+         have_regset_vxrs = (s390_get_hwcap (tdesc) & HWCAP_S390_VX) != 0;
 
-       if (have_regset_tdb)
+       if (have_regset_vxrs)
+         tdesc = (have_regset_tdb ? tdesc_s390_tevx_linux64 :
+                  tdesc_s390_vx_linux64);
+       else if (have_regset_tdb)
          tdesc = tdesc_s390_te_linux64;
        else if (have_regset_system_call)
          tdesc = tdesc_s390_linux64v2;
@@ -508,6 +585,13 @@ s390_arch_setup (void)
          break;
        case NT_S390_TDB:
          regset->size = have_regset_tdb ? 256 : 0;
+         break;
+       case NT_S390_VXRS_LOW:
+         regset->size = have_regset_vxrs ? 128 : 0;
+         break;
+       case NT_S390_VXRS_HIGH:
+         regset->size = have_regset_vxrs ? 256 : 0;
+         break;
        default:
          break;
        }
@@ -615,10 +699,14 @@ initialize_low_arch (void)
   init_registers_s390_linux64v1 ();
   init_registers_s390_linux64v2 ();
   init_registers_s390_te_linux64 ();
+  init_registers_s390_vx_linux64 ();
+  init_registers_s390_tevx_linux64 ();
   init_registers_s390x_linux64 ();
   init_registers_s390x_linux64v1 ();
   init_registers_s390x_linux64v2 ();
   init_registers_s390x_te_linux64 ();
+  init_registers_s390x_vx_linux64 ();
+  init_registers_s390x_tevx_linux64 ();
 
   initialize_regsets_info (&s390_regsets_info);
 #ifdef __s390x__
++++++ 0004-S390-Vector-register-test-case.patch ++++++
Part of fate#318039

>From 4fa5d7b436815f58688ec9245f24fc83263364b9 Mon Sep 17 00:00:00 2001
From: Andreas Arnez <[email protected]>
Date: Mon, 2 Mar 2015 10:57:40 +0100
Subject: [PATCH] S390: Vector register test case

Add a test case for S/390 vector registers support.

gdb/testsuite/ChangeLog:

        * gdb.arch/s390-vregs.exp: New test.
        * gdb.arch/s390-vregs.S: New file.
---
 gdb/testsuite/ChangeLog               |   5 +
 gdb/testsuite/gdb.arch/s390-vregs.S   |  96 ++++++++++++++++
 gdb/testsuite/gdb.arch/s390-vregs.exp | 202 ++++++++++++++++++++++++++++++++++
 3 files changed, 303 insertions(+)
 create mode 100644 gdb/testsuite/gdb.arch/s390-vregs.S
 create mode 100644 gdb/testsuite/gdb.arch/s390-vregs.exp

diff --git a/gdb/testsuite/gdb.arch/s390-vregs.S 
b/gdb/testsuite/gdb.arch/s390-vregs.S
new file mode 100644
index 0000000..4b48a83
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/s390-vregs.S
@@ -0,0 +1,96 @@
+/* Copyright 2015 Free Software Foundation, Inc.
+
+   This file is part of GDB.
+
+   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/>.  */
+
+       .text
+
+       /* 'check_vx': Yield SIGILL unless vector support is
+       available.  Have a "pit stop" breakpoint here.  */
+
+       .align  8
+       .type   check_vx, @function
+check_vx:
+       .cfi_startproc
+       /* vlr  %v0,%v0 */
+       .byte 0xe7,0x00,0x00,0x00,0x00,0x56
+       br      %r14
+       .cfi_endproc
+       .size   check_vx, .-check_vx
+
+
+       /* 'store_vrs': Store vector registers in save_area.  */
+
+       .align 8
+       .type   store_vrs, @function
+store_vrs:
+       .cfi_startproc
+       larl    %r1,save_area
+       /* vstm %v0,%v15,0(%r1) */
+       .byte 0xe7,0x0f,0x10,0x00,0x00,0x3e
+       /* vstm %v16,%v31,256(%r1) */
+       .byte 0xe7,0x0f,0x11,0x00,0x0c,0x3e
+       br      %r14
+       .cfi_endproc
+       .size   store_vrs, .-store_vrs
+
+
+       /* 'change_vrs': Manipulate vector registers according to a
+       simple algorithm.  */
+
+       .align 8
+       .type   change_vrs, @function
+change_vrs:
+       .cfi_startproc
+       lghi    %r1,16
+       lghi    %r3,0xff
+1:     exrl    %r3,2f
+       exrl    %r3,1f
+       aghi    %r3,-0x11
+       brctg   %r1,1b
+       br      %r14
+       .cfi_endproc
+       /* vmlf %v0,%v0,%v0 */
+1:     .byte   0xe7,0x00,0x00,0x00,0x20,0xa2
+       /* vmlf %v16,%v16,%v0 */
+2:     .byte   0xe7,0x00,0x00,0x00,0x2c,0xa2
+
+
+       /* 'main': Perform actions according to test case logic.
+       Invoke check_vx whenever a pit stop is required.  */
+
+       .section        .text.startup,"ax",@progbits
+       .align  8
+.globl main
+       .type   main, @function
+main:
+       .cfi_startproc
+       stmg    %r14,%r15,112(%r15)
+       aghi    %r15,-160
+       bras    %r14,check_vx
+       bras    %r14,store_vrs
+       bras    %r14,check_vx
+       bras    %r14,change_vrs
+       bras    %r14,check_vx
+       lmg     %r14,%r15,272(%r15)
+       lghi    %r2,0
+       br      %r14
+       .cfi_endproc
+       .size   main, .-main
+
+       .local  save_area
+       .comm   save_area,512,16
+
+       .section        .note.GNU-stack,"",@progbits
diff --git a/gdb/testsuite/gdb.arch/s390-vregs.exp 
b/gdb/testsuite/gdb.arch/s390-vregs.exp
new file mode 100644
index 0000000..8333c32
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/s390-vregs.exp
@@ -0,0 +1,202 @@
+# Copyright 2015 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/>.
+
+# Test vector register access for s390 platforms.
+
+if { ![istarget s390-*-*] && ![istarget s390x-*-* ] } {
+    verbose "Skipping s390 vector register tests."
+    return
+}
+
+standard_testfile .S
+
+if [isnative] {
+    # Create a temporary directory, to take a core dump there later.
+    set coredir [standard_output_file ${testfile}.d]
+    remote_exec build "rm -rf $coredir"
+    remote_exec build "mkdir $coredir"
+}
+
+if { [prepare_for_testing ${testfile}.exp $testfile $srcfile] } {
+    return -1
+}
+
+if ![runto_main] {
+    untested "could not run to main"
+    return -1
+}
+
+# Run to the first vector instruction and step it.  If the inferior
+# doesn't crash, we have vector support.
+
+gdb_breakpoint "check_vx"
+gdb_continue_to_breakpoint "first vector insn"
+set before_pc 0
+gdb_test_multiple "x/i \$pc" "get PC at vector insn" {
+    -re "(0x\\S+)\\s+\\S+\\s+vlr\\s+.*$gdb_prompt $" {
+       set before_pc $expect_out(1,string)
+    }
+}
+
+gdb_test_multiple "stepi" "check for vector support" {
+    -re "Program received signal SIGILL,.*\r\n$gdb_prompt $" {
+       unsupported "no vector support."
+       return
+    }
+    -re "\[0-9\]+.*\r\n$gdb_prompt $" {
+       pass "vector support available"
+    }
+    -re "$gdb_prompt $" {
+       fail "no vector support (unknown error)"
+       return
+    }
+}
+
+# Has the PC advanced by the expected amount?  The kernel may do
+# something special for the first vector insn in the process.
+
+set after_pc 0
+gdb_test_multiple "x/i \$pc" "get PC after vector insn" {
+    -re "(0x\\S+)\\s+.*$gdb_prompt $" {
+       set after_pc $expect_out(1,string)
+    }
+}
+
+if [expr $before_pc + 6 != $after_pc] {
+    fail "stepping first vector insn"
+}
+
+# Lift the core file limit, if possible, and change into the temporary
+# directory.
+
+if { $coredir != "" } {
+    gdb_test {print setrlimit (4, &(unsigned long [2]){~0UL, ~0UL})} \
+       " = .*" "setrlimit"
+    gdb_test "print chdir (\"${coredir}\")" " = 0" "chdir"
+}
+
+# Initialize all vector registers with GDB "set" commands, using
+# distinct values.  Handle left and right halves separately, in
+# pseudo-random order.
+
+set a_high 1
+set a_low 2
+set b_high 3
+set b_low 5
+
+set a [expr ($a_high << 32) | $a_low]
+set b [expr ($b_high << 32) | $b_low]
+
+for {set j 0} {$j < 32} {incr j 1} {
+    set i [expr 17 * $j % 32]
+    gdb_test_no_output \
+       "set \$v$i.v2_int64\[0\] = [expr $a * ($i + 1)]" \
+       "set v$i left"
+    set i [expr 19 * (31 - $j) % 32]
+    gdb_test_no_output \
+       "set \$v$i.v2_int64\[1\] = [expr $b * (32 - $i)]" \
+       "set v$i right"
+}
+
+# Verify a vector register's union members.
+
+gdb_test "info register v0 v31" \
+    "v4_float .* v2_double .* v16_int8 .* v8_int16 .* v4_int32 .* v2_int64 .* 
uint128\
+     .*v4_float .* v2_double .* v16_int8 .* v8_int16 .* v4_int32 .* v2_int64 
.* uint128 .*"
+
+# Let the inferior store all vector registers in a buffer, then dump
+# the buffer and check it.
+
+gdb_continue_to_breakpoint "store vrs"
+set vregs [capture_command_output "x/64xg &save_area" ""]
+
+set i 0
+foreach {- left right} [regexp -all -inline -line {^.*:\s+(\w+)\s+(\w+)} 
$vregs] {
+    if [expr $left != $a * ($i + 1) || $right != $b * (32 - $i)] {
+       fail "verify \$v$i after set"
+    }
+    if { $i < 16 } {
+       # Check that the FP register was updated accordingly.
+       gdb_test "info register f$i" "raw ${left}.*"
+    }
+    incr i 1
+}
+
+if { $i != 32 } {
+    fail "dump save area (bad output)"
+}
+
+# Let the inferior change all VRs according to a simple algorithm,
+# then print all VRs and compare their values with our result of the
+# same algorithm.
+
+gdb_continue_to_breakpoint "change vrs"
+set vregs [capture_command_output "info registers vector" ""]
+
+set j 1
+foreach {- r i val} [regexp -all -inline -line \
+                        {^(\D*)(\d+)\s+.*?uint128 = 0x([0-9a-f]+?)} $vregs] {
+    if { $r ne "v" } {
+       fail "info registers vector: bad line $j"
+    } elseif { $val ne [format %08x%08x%08x%08x \
+                           [expr $a_high * ($i + 1) * $a_high ] \
+                           [expr $a_low * ($i + 1) * $a_low ] \
+                           [expr $b_high * (32 - $i) * $b_high * 32] \
+                           [expr $b_low * (32 - $i) * $b_low * 32] ] } {
+       fail "compare \$v$i"
+    }
+    incr j 1
+}
+
+if { $j != 33 } {
+    fail "info registers vector"
+}
+
+if { $coredir == "" } {
+    return
+}
+
+# Take a core dump.
+
+gdb_test "signal SIGABRT" "Program terminated with signal SIGABRT, .*"
+gdb_exit
+
+# Find the core file and rename it (avoid accumulating core files).
+
+set cores [glob -nocomplain -directory $coredir *core*]
+if {[llength $cores] != 1} {
+    untested "core file not found"
+    remote_exec build "rm -rf $coredir"
+    return -1
+}
+set destcore [standard_output_file ${testfile}.core]
+remote_exec build "mv [file join $coredir [lindex $cores 0]] $destcore"
+remote_exec build "rm -rf $coredir"
+
+# Restart gdb and load the core file.  Compare the VRs.
+
+clean_restart ${testfile}
+
+with_test_prefix "core" {
+    set core_loaded [gdb_core_cmd $destcore "load"]
+    if { $core_loaded != -1 } {
+       set vregs_from_core [capture_command_output "info registers vector" ""]
+       if { $vregs_from_core eq $vregs } {
+           pass "compare vector registers"
+       } else {
+           fail "vector registers mismatch"
+       }
+    }
+}
-- 
1.8.1.4

++++++ 0005-S390-Name-invisible-registers-with-the-empty-string-.patch ++++++
Part of fate#318039

>From 87de11c05253566abb04479a4842cc934d0c822e Mon Sep 17 00:00:00 2001
From: Andreas Arnez <[email protected]>
Date: Wed, 4 Mar 2015 10:40:41 +0100
Subject: [PATCH] S390: Name "invisible" registers with the empty string
 instead of NULL

When adding vector register support to GDB, s390_register_name() was
added to suppress the right halves of the first 16 vector registers.
However, that function returned NULL instead of an empty string in such
a case.  This leads to an incomplete list of registers returned by
"complete info registers ", because completion stops at the first NULL
return value from user_reg_map_regnum_to_name().

gdb/ChangeLog:

        * s390-linux-tdep.c (s390_register_name): Return empty string
        instead of NULL for registers that shouldn't be visible.
---
 gdb/ChangeLog         | 5 +++++
 gdb/s390-linux-tdep.c | 6 +++---
 2 files changed, 8 insertions(+), 3 deletions(-)

Index: gdb-7.9.1/gdb/s390-linux-tdep.c
===================================================================
--- gdb-7.9.1.orig/gdb/s390-linux-tdep.c        2015-07-10 16:18:36.000000000 
+0200
+++ gdb-7.9.1/gdb/s390-linux-tdep.c     2015-07-10 16:19:20.000000000 +0200
@@ -263,15 +263,15 @@ regnum_is_vxr_full (struct gdbarch_tdep
          && regnum <= tdep->v0_full_regnum + 15);
 }
 
-/* Return the name of register REGNO.  Return NULL for registers that
-   shouldn't be visible.  */
+/* Return the name of register REGNO.  Return the empty string for
+   registers that shouldn't be visible.  */
 
 static const char *
 s390_register_name (struct gdbarch *gdbarch, int regnum)
 {
   if (regnum >= S390_V0_LOWER_REGNUM
       && regnum <= S390_V15_LOWER_REGNUM)
-    return NULL;
+    return "";
   return tdesc_register_name (gdbarch, regnum);
 }
 
++++++ gdb-6.6-buildid-locate-rpm-suse.patch ++++++
--- /var/tmp/diff_new_pack.CpYDPu/_old  2015-11-11 10:29:21.000000000 +0100
+++ /var/tmp/diff_new_pack.CpYDPu/_new  2015-11-11 10:29:21.000000000 +0100
@@ -1,8 +1,8 @@
-Index: gdb-7.7/gdb/build-id.c
+Index: gdb-7.9.1/gdb/build-id.c
 ===================================================================
---- gdb-7.7.orig/gdb/build-id.c        2014-02-09 17:47:19.091979560 +0100
-+++ gdb-7.7/gdb/build-id.c     2014-02-09 17:50:48.936211228 +0100
-@@ -828,9 +828,9 @@ missing_rpm_enlist (const char *filename
+--- gdb-7.9.1.orig/gdb/build-id.c      2015-07-10 15:24:05.000000000 +0200
++++ gdb-7.9.1/gdb/build-id.c   2015-07-10 15:24:51.000000000 +0200
+@@ -827,9 +827,9 @@ missing_rpm_enlist (const char *filename
          if (h == NULL)
            break;
  
@@ -15,7 +15,7 @@
                                      &err);
          if (!debuginfo)
            {
-@@ -838,60 +838,19 @@ missing_rpm_enlist (const char *filename
+@@ -837,60 +837,19 @@ missing_rpm_enlist (const char *filename
                       err);
              continue;
            }
@@ -78,16 +78,19 @@
          /* Base package name for `debuginfo-install'.  We do not use the
             `yum' command directly as the line
                 yum --enablerepo='*debug*' install NAME-debuginfo.ARCH
-@@ -976,7 +935,7 @@ missing_rpm_list_print (void)
+@@ -975,10 +934,7 @@ missing_rpm_list_print (void)
         (int (*) (const void *, const void *)) missing_rpm_list_compar);
  
    printf_unfiltered (_("Missing separate debuginfos, use: %s"),
+-#ifdef DNF_DEBUGINFO_INSTALL
+-                   "dnf "
+-#endif
 -                   "debuginfo-install");
 +                   "zypper install");
    for (array_iter = array; array_iter < array + missing_rpm_list_entries;
         array_iter++)
      {
-@@ -1189,8 +1148,12 @@ debug_print_missing (const char *binary,
+@@ -1191,8 +1147,12 @@ debug_print_missing (const char *binary,
        fprintf_unfiltered (gdb_stdlog,
                            _("Missing separate debuginfo for %s\n"), binary);
          if (debug != NULL)

++++++ gdb-6.6-buildid-locate-rpm.patch ++++++
--- /var/tmp/diff_new_pack.CpYDPu/_old  2015-11-11 10:29:21.000000000 +0100
+++ /var/tmp/diff_new_pack.CpYDPu/_new  2015-11-11 10:29:21.000000000 +0100
@@ -1109,7 +1109,7 @@
  
  #define BUILD_ID_VERBOSE_NONE 0
  #define BUILD_ID_VERBOSE_FILENAMES 1
-@@ -664,8 +665,360 @@ build_id_to_filename (const struct elf_b
+@@ -664,8 +665,363 @@ build_id_to_filename (const struct elf_b
    return result;
  }
  
@@ -1409,6 +1409,9 @@
 +       (int (*) (const void *, const void *)) missing_rpm_list_compar);
 +
 +  printf_unfiltered (_("Missing separate debuginfos, use: %s"),
++#ifdef DNF_DEBUGINFO_INSTALL
++                   "dnf "
++#endif
 +                   "debuginfo-install");
 +  for (array_iter = array; array_iter < array + missing_rpm_list_entries;
 +       array_iter++)

++++++ gdb-7.9.tar.bz2 -> gdb-7.9.1.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/gdb/gdb-7.9.tar.bz2 
/work/SRC/openSUSE:Factory/.gdb.new/gdb-7.9.1.tar.bz2 differ: char 11, line 1

++++++ gdb-s390-reorder-arch.diff ++++++
Fix for bnc #936050.

>From 48cfb913ac0ad24b978514270886b807d6f2495e Mon Sep 17 00:00:00 2001
From: Andreas Arnez <[email protected]>
Date: Wed, 4 Mar 2015 10:40:39 +0100
Subject: [PATCH 05/25] S390: Place "s390:31-bit" after default arch in 64-bit
 arch list

On 64-bit platforms GDB did not include "s390:31-bit" in its list of
architecture names.  This patch fixes that.

To determine the list of architecture names for S390,
gdbarch_printable_names() walks through the linked list of BFD arches
starting with the default S390 arch, which is "s390:64-bit" on 64-bit
platforms.  But since "s390:64-bit" was at the end of that list, the
31-bit architecture was not reached.  The patch swaps the elements of
that list on 64-bit platforms.

bfd/ChangeLog:

        * cpu-s390.c (N): New macro.
        (bfd_s390_31_arch): New.  Define only if default target word size
        is 64 bits.  Otherwise define...
        (bfd_390_64_arch): ...this.  Make static.
        (bfd_s390_arch): Define according to the default target word size.
        Let the 'next' field point to the alternate arch.
---
 bfd/cpu-s390.c | 61 +++++++++++++++++++++++-----------------------------------
 1 file changed, 24 insertions(+), 37 deletions(-)

diff --git a/bfd/cpu-s390.c b/bfd/cpu-s390.c
index 5fd3271..dbdec4a 100644
--- a/bfd/cpu-s390.c
+++ b/bfd/cpu-s390.c
@@ -23,44 +23,31 @@
 #include "bfd.h"
 #include "libbfd.h"
 
-const bfd_arch_info_type bfd_s390_64_arch =
-{
-    64,        /* bits in a word */
-    64,        /* bits in an address */
-    8, /* bits in a byte */
-    bfd_arch_s390,
-    bfd_mach_s390_64,
-    "s390",
-    "s390:64-bit",
-    3, /* section alignment power */
-#if BFD_DEFAULT_TARGET_SIZE == 64
-    TRUE, /* the default */
-#else
-    FALSE, /* the default */
-#endif
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    NULL
-};
+#define N(bits, number, print, is_default, next)       \
+  {                                                    \
+    bits,             /* bits in a word */             \
+    bits,             /* bits in an address */         \
+    8,                /* bits in a byte */             \
+    bfd_arch_s390,                                     \
+    number,                                            \
+    "s390",                                            \
+    print,                                             \
+    3,                /* section alignment power */    \
+    is_default,                                                \
+    bfd_default_compatible,                            \
+    bfd_default_scan,                                  \
+    bfd_arch_default_fill,                             \
+    next                                               \
+  }
 
-const bfd_arch_info_type bfd_s390_arch =
-{
-    32,        /* bits in a word */
-    32,        /* bits in an address */
-    8, /* bits in a byte */
-    bfd_arch_s390,
-    bfd_mach_s390_31,
-    "s390",
-    "s390:31-bit",
-    3, /* section alignment power */
 #if BFD_DEFAULT_TARGET_SIZE == 64
-    FALSE, /* the default */
+static const bfd_arch_info_type bfd_s390_31_arch =
+  N (32, bfd_mach_s390_31, "s390:31-bit", FALSE, NULL);
+const bfd_arch_info_type bfd_s390_arch =
+  N (64, bfd_mach_s390_64, "s390:64-bit", TRUE, &bfd_s390_31_arch);
 #else
-    TRUE, /* the default */
+static const bfd_arch_info_type bfd_s390_64_arch =
+  N (64, bfd_mach_s390_64, "s390:64-bit", FALSE, NULL);
+const bfd_arch_info_type bfd_s390_arch =
+  N (32, bfd_mach_s390_31, "s390:31-bit", TRUE, &bfd_s390_64_arch);
 #endif
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &bfd_s390_64_arch
-};
-- 
1.9.3

++++++ patchlist.pl ++++++
--- /var/tmp/diff_new_pack.CpYDPu/_old  2015-11-11 10:29:21.000000000 +0100
+++ /var/tmp/diff_new_pack.CpYDPu/_new  2015-11-11 10:29:21.000000000 +0100
@@ -29,7 +29,7 @@
                }
                else {
                        $count = $count + 1;
-                       push @patchdeklarationen, "Patch$count: $patchname\n";
+                       push @patchdeklarationen, "Patch$count:       ". 
(($count < 10) ? "  " : (($count < 100) ? " " : "")) ."$patchname\n";
                        push @patchstatements, "%patch$count -p1\n";
                        $seenpatches{$patchname} = $count;
                        push @patchcopy, $patchname;


Reply via email to