Hello community,

here is the log from the commit of package binutils for openSUSE:Factory 
checked in at 2015-08-21 07:34:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/binutils (Old)
 and      /work/SRC/openSUSE:Factory/.binutils.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "binutils"

Changes:
--------
--- /work/SRC/openSUSE:Factory/binutils/binutils.changes        2015-02-22 
17:20:04.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.binutils.new/binutils.changes   2015-08-21 
07:34:41.000000000 +0200
@@ -1,0 +2,65 @@
+Tue Jul 21 12:43:33 UTC 2015 - m...@suse.de
+
+- Disable use-hashtype-both-by-default.diff for
+  the mips target, it's incompatible with it.  [bnc #938658]
+
+-------------------------------------------------------------------
+Mon Jul 13 11:16:25 UTC 2015 - afaer...@suse.de
+
+- Add cross-rx-binutils package for Renesas RX
+
+-------------------------------------------------------------------
+Fri Jul 10 15:57:46 UTC 2015 - sch...@linux-m68k.org
+
+- Work around qemu bug
+
+-------------------------------------------------------------------
+Thu Jul  9 14:26:13 UTC 2015 - m...@suse.de
+
+- Update to 2.25 branch at 2f5b97b4f (changes
+  binutils-2.25-branch.diff.gz) fixes PR 18481, gas/18541.
+- Add patches for s390 z13 support (backports from
+  to-be 2.26):
+  0001-S-390-Add-support-for-IBM-z13.patch
+  0002-S-390-Add-check-for-length-field-operand.patch
+  0003-S-390-Add-more-IBM-z13-instructions.patch
+  0004-S-390-Fixes-for-z13-instructions.patch
+  0005-S-390-z13-use-GNU-attribute-to-indicate-vector-ABI.patch .
+
+-------------------------------------------------------------------
+Tue Jul  7 11:00:42 UTC 2015 - afaer...@suse.de
+
+- Fix %TARGET vs. $TARGET_OS inconsistencies by turning $TARGET_OS
+  into %TARGET_OS for reuse in install and file sections.
+  This fixes the assumption that $TARGET_OS will match %{TARGET}*.
+
+-------------------------------------------------------------------
+Wed Jun 10 07:55:29 UTC 2015 - dmuel...@suse.com
+
+- enable gold for aarch64
+
+-------------------------------------------------------------------
+Mon May 18 15:26:32 UTC 2015 - m...@suse.de
+
+- Move sed call from %prep to %build to not disturb quilt.
+- Add binutils-2.25-branch.diff.gz:
+  Update to 2.25 branch at 8fe8994c, fixing many bugs:
+  PR ld/15228, binutils/17512, 17165, binutils/17531, ld/17615, 17666,
+  ld/17709, gas/17753, 17755, 17817, ld/17827, 17842, binutils/17926,
+  17954, 18010, ld/18167, ld/18222, ld/18270.
+- Remove eh-frame-hdr-on-shared-lib-bfd.patch: Included already.
+- Remove gold-opd-visibility.patch: Included already.
+
+-------------------------------------------------------------------
+Mon May 18 06:38:32 UTC 2015 - meiss...@suse.com
+
+- move info deinstall to preun section
+
+-------------------------------------------------------------------
+Sat May 16 15:05:17 UTC 2015 - hrvoje.sen...@gmail.com
+
+- Added binutils-fix--dynamic-list.patch:
+  Fixes https://sourceware.org/bugzilla/show_bug.cgi?id=13577 and
+  https://sourceware.org/bugzilla/show_bug.cgi?id=16992
+
+-------------------------------------------------------------------
cross-aarch64-binutils.changes: same change
cross-arm-binutils.changes: same change
cross-avr-binutils.changes: same change
cross-epiphany-binutils.changes: same change
cross-hppa-binutils.changes: same change
cross-hppa64-binutils.changes: same change
cross-i386-binutils.changes: same change
cross-ia64-binutils.changes: same change
cross-m68k-binutils.changes: same change
cross-mips-binutils.changes: same change
cross-ppc-binutils.changes: same change
cross-ppc64-binutils.changes: same change
cross-ppc64le-binutils.changes: same change
New Changes file:

--- /dev/null   2015-07-22 21:25:44.928025004 +0200
+++ /work/SRC/openSUSE:Factory/.binutils.new/cross-rx-binutils.changes  
2015-08-21 07:34:42.000000000 +0200
@@ -0,0 +1,2746 @@
+-------------------------------------------------------------------
+Tue Jul 21 12:43:33 UTC 2015 - m...@suse.de
+
+- Disable use-hashtype-both-by-default.diff for
+  the mips target, it's incompatible with it.  [bnc #938658]
+
+-------------------------------------------------------------------
+Mon Jul 13 11:16:25 UTC 2015 - afaer...@suse.de
+
+- Add cross-rx-binutils package for Renesas RX
+
+-------------------------------------------------------------------
+Fri Jul 10 15:57:46 UTC 2015 - sch...@linux-m68k.org
+
+- Work around qemu bug
+
+-------------------------------------------------------------------
+Thu Jul  9 14:26:13 UTC 2015 - m...@suse.de
+
+- Update to 2.25 branch at 2f5b97b4f (changes
+  binutils-2.25-branch.diff.gz) fixes PR 18481, gas/18541.
+- Add patches for s390 z13 support (backports from
+  to-be 2.26):
+  0001-S-390-Add-support-for-IBM-z13.patch
+  0002-S-390-Add-check-for-length-field-operand.patch
+  0003-S-390-Add-more-IBM-z13-instructions.patch
+  0004-S-390-Fixes-for-z13-instructions.patch
+  0005-S-390-z13-use-GNU-attribute-to-indicate-vector-ABI.patch .
+
+-------------------------------------------------------------------
+Tue Jul  7 11:00:42 UTC 2015 - afaer...@suse.de
+
+- Fix %TARGET vs. $TARGET_OS inconsistencies by turning $TARGET_OS
+  into %TARGET_OS for reuse in install and file sections.
+  This fixes the assumption that $TARGET_OS will match %{TARGET}*.
+
+-------------------------------------------------------------------
+Wed Jun 10 07:55:29 UTC 2015 - dmuel...@suse.com
+
+- enable gold for aarch64
+
+-------------------------------------------------------------------
+Mon May 18 15:26:32 UTC 2015 - m...@suse.de
+
+- Move sed call from %prep to %build to not disturb quilt.
+- Add binutils-2.25-branch.diff.gz:
+  Update to 2.25 branch at 8fe8994c, fixing many bugs:
+  PR ld/15228, binutils/17512, 17165, binutils/17531, ld/17615, 17666,
+  ld/17709, gas/17753, 17755, 17817, ld/17827, 17842, binutils/17926,
+  17954, 18010, ld/18167, ld/18222, ld/18270.
+- Remove eh-frame-hdr-on-shared-lib-bfd.patch: Included already.
+- Remove gold-opd-visibility.patch: Included already.
+
+-------------------------------------------------------------------
+Mon May 18 06:38:32 UTC 2015 - meiss...@suse.com
+
+- move info deinstall to preun section
+
+-------------------------------------------------------------------
+Sat May 16 15:05:17 UTC 2015 - hrvoje.sen...@gmail.com
+
+- Added binutils-fix--dynamic-list.patch:
+  Fixes https://sourceware.org/bugzilla/show_bug.cgi?id=13577 and
+  https://sourceware.org/bugzilla/show_bug.cgi?id=16992
+
+-------------------------------------------------------------------
+Thu Feb 19 09:22:54 UTC 2015 - sch...@suse.de
+
+- gold-opd-visibility.patch: Set default visibility on discarded .opd
+  symbols
+
+-------------------------------------------------------------------
+Wed Jan 21 09:15:34 UTC 2015 - sch...@suse.de
+
+- eh-frame-hdr-on-shared-lib-bfd.patch: Don't create .eh_frame_hdr on
+  shared lib bfd, fixes building libgcj on ppc64
+
+-------------------------------------------------------------------
+Thu Jan 15 08:54:54 UTC 2015 - rguent...@suse.com
+
+- Update to binutils 2.25 release.
+  * Add --data option to strings to only print strings in loadable, initialized
+    data sections.  Change the default behaviour to be --all, but add a new
+    configure time option of --disable-default-strings-all to restore the old
+    default behaviour.
+  * Add --include-all-whitespace to strings.
+  * Add --dump-section option to objcopy.
+  * Add support for the Andes NDS32.
+  * PE binaries now once again contain real timestamps by default.  To disable
+    the inclusion of a timestamp in a PE binary, use the --no-insert-timestamp
+    command line option.
+  * Replace support for openrisc and or32 with support for or1k.
+  * Add support for the --build-id command line option to COFF based targets.
+  * x86/x86_64 pe-coff now supports the --build-id option.
+  * Add support for the AVR Tiny microcontrollers.
+  * Enhanced the ARM port to accept the assembler output from the CodeComposer
+    Studio tool.  Support is enabled via the new command line option -mccs.
+- Update to 2.25 branch head.
+  * Pulls PIE fixes.
+
+-------------------------------------------------------------------
+Mon Jan 12 20:26:26 UTC 2015 - dims...@opensuse.org
+
+- Minor fix on the usage of update-alternatives
+  https://en.opensuse.org/openSUSE:Packaging_Multiple_Version_guidelines
+
+-------------------------------------------------------------------
+Mon Dec  1 16:33:29 UTC 2014 - m...@suse.de
+
+- Update to current 2.25 pre-release branch, at 127a4644.
+- binutils-fix-gold-aarch64.diff: fixing build temporarily broken
+  on brach.
+- Remove obsolete patches: binutils-2.24-branch.diff.gz,
+  pie-m68k.patch, binutils-2.24-auto-plugin.diff, ld-testsuite.patch,
+  binutils-2.24-bso16746.diff .
+
+-------------------------------------------------------------------
+Fri Oct 31 10:49:03 UTC 2014 - afaer...@suse.de
+
+- Enable Adapteva Epiphany target
+
+-------------------------------------------------------------------
+Tue May  6 14:02:26 UTC 2014 - rguent...@suse.com
+
+- binutils-2.24-bso16746.diff: Fix bso#16746, spurious warnings
+  for warn annotated symbols with LTO.
+
+-------------------------------------------------------------------
+Sun Apr  6 18:48:22 UTC 2014 - sch...@linux-m68k.org
+
+- ld-dtags.diff: update testsuite for --enable-new-dtags default
+- ld-testsuite.patch: fix spurious failures in ld-plugin/lto.exp
+
+-------------------------------------------------------------------
+Thu Apr  3 10:56:19 UTC 2014 - rguent...@suse.com
+
+- binutils-2.24-auto-plugin.diff: Update from git commit that went
+  to trunk.
+
+-------------------------------------------------------------------
+Wed Mar 26 15:29:34 UTC 2014 - m...@suse.de
+
+- Update to current 2.24 branch at 25f1c421:
+  AVX512 fixes, new x86 instructions clflushopt, xsaves, xsavec, xrstors.
+  aarch64: linker fixes for PLT stubs, correct float const 0.0 parsing,
+  support ifunc in static links.
+  Fix ld/16643 (problem with GCed sections).
+  powerpc64le: fix ld segfault with --emit-relocs.
+  Fix buffer underrun in x86 disassembler.
+  Fix merging of skipped weak symbols.  [bnc #863764]
+
+-------------------------------------------------------------------
+Mon Mar 24 13:58:29 UTC 2014 - rguent...@suse.com
+
+- Add binutils-2.24-auto-plugin.diff to make plugin auto-load work
+  for GCC LTO objects.  [bso#14698]
+
+-------------------------------------------------------------------
+Fri Feb 21 16:59:02 UTC 2014 - m...@suse.de
+
+- Disable --enable-deterministic-archives again, as it breaks 
+  valid Makefiles.
+
+-------------------------------------------------------------------
+Mon Feb 10 23:07:23 UTC 2014 - subchas...@gmail.com
+
+- cross-avr-size.patch: AVR-style output in avr-size utility
+
+-------------------------------------------------------------------
+Mon Jan 27 05:43:48 UTC 2014 - crrodrig...@opensuse.org
+
+- build with --enable-deterministic-archives so ar and ranlib 
+  cooperate in the creation of reproducible builds.
+
+-------------------------------------------------------------------
+Mon Dec  9 15:10:27 UTC 2013 - m...@suse.de
+
+- Update to 2.24 release and to branch at 9177510e:
+  * Add support for the Texas Instruments MSP430X processor.
+  * Add support for Altera Nios II.
+  * Add support for the V850E3V5 architecture.
+  * Add support for the Imagination Technologies Meta processor.
+  * --enable-new-dtags no longer generates old dtags in addition to new dtags.
+  * Remove assembler and linker support for MIPS ECOFF targets.
+  * Remove assembler support for MIPS ECOFF targets.
+  * Add ALIGN_WITH_INPUT to the linker script language to force the
+    alignment of an output section to use the maximum alignment of
+    all its input sections.
+  * Add -gdwarf-sections command line option to enable per-code-section
+    generation of DWARF .debug_line sections.
+  * Objcopy now supports wildcard characters in command line options that take
+    section names.
+
+-------------------------------------------------------------------
+Fri Nov 29 14:59:52 UTC 2013 - m...@suse.de
+
+- Update to 2.23.92 prerelease, mostly for ppc64le support.
++++ 2549 more lines (skipped)
++++ between /dev/null
++++ and /work/SRC/openSUSE:Factory/.binutils.new/cross-rx-binutils.changes
--- /work/SRC/openSUSE:Factory/binutils/cross-s390-binutils.changes     
2015-02-22 17:20:05.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.binutils.new/cross-s390-binutils.changes        
2015-08-21 07:34:42.000000000 +0200
@@ -1,0 +2,65 @@
+Tue Jul 21 12:43:33 UTC 2015 - m...@suse.de
+
+- Disable use-hashtype-both-by-default.diff for
+  the mips target, it's incompatible with it.  [bnc #938658]
+
+-------------------------------------------------------------------
+Mon Jul 13 11:16:25 UTC 2015 - afaer...@suse.de
+
+- Add cross-rx-binutils package for Renesas RX
+
+-------------------------------------------------------------------
+Fri Jul 10 15:57:46 UTC 2015 - sch...@linux-m68k.org
+
+- Work around qemu bug
+
+-------------------------------------------------------------------
+Thu Jul  9 14:26:13 UTC 2015 - m...@suse.de
+
+- Update to 2.25 branch at 2f5b97b4f (changes
+  binutils-2.25-branch.diff.gz) fixes PR 18481, gas/18541.
+- Add patches for s390 z13 support (backports from
+  to-be 2.26):
+  0001-S-390-Add-support-for-IBM-z13.patch
+  0002-S-390-Add-check-for-length-field-operand.patch
+  0003-S-390-Add-more-IBM-z13-instructions.patch
+  0004-S-390-Fixes-for-z13-instructions.patch
+  0005-S-390-z13-use-GNU-attribute-to-indicate-vector-ABI.patch .
+
+-------------------------------------------------------------------
+Tue Jul  7 11:00:42 UTC 2015 - afaer...@suse.de
+
+- Fix %TARGET vs. $TARGET_OS inconsistencies by turning $TARGET_OS
+  into %TARGET_OS for reuse in install and file sections.
+  This fixes the assumption that $TARGET_OS will match %{TARGET}*.
+
+-------------------------------------------------------------------
+Wed Jun 10 07:55:29 UTC 2015 - dmuel...@suse.com
+
+- enable gold for aarch64
+
+-------------------------------------------------------------------
+Mon May 18 15:26:32 UTC 2015 - m...@suse.de
+
+- Move sed call from %prep to %build to not disturb quilt.
+- Add binutils-2.25-branch.diff.gz:
+  Update to 2.25 branch at 8fe8994c, fixing many bugs:
+  PR ld/15228, binutils/17512, 17165, binutils/17531, ld/17615, 17666,
+  ld/17709, gas/17753, 17755, 17817, ld/17827, 17842, binutils/17926,
+  17954, 18010, ld/18167, ld/18222, ld/18270.
+- Remove eh-frame-hdr-on-shared-lib-bfd.patch: Included already.
+- Remove gold-opd-visibility.patch: Included already.
+
+-------------------------------------------------------------------
+Mon May 18 06:38:32 UTC 2015 - meiss...@suse.com
+
+- move info deinstall to preun section
+
+-------------------------------------------------------------------
+Sat May 16 15:05:17 UTC 2015 - hrvoje.sen...@gmail.com
+
+- Added binutils-fix--dynamic-list.patch:
+  Fixes https://sourceware.org/bugzilla/show_bug.cgi?id=13577 and
+  https://sourceware.org/bugzilla/show_bug.cgi?id=16992
+
+-------------------------------------------------------------------
cross-s390x-binutils.changes: same change
cross-sparc-binutils.changes: same change
cross-sparc64-binutils.changes: same change
cross-spu-binutils.changes: same change
cross-x86_64-binutils.changes: same change

Old:
----
  eh-frame-hdr-on-shared-lib-bfd.patch
  gold-opd-visibility.patch

New:
----
  0001-S-390-Add-support-for-IBM-z13.patch
  0002-S-390-Add-check-for-length-field-operand.patch
  0003-S-390-Add-more-IBM-z13-instructions.patch
  0004-S-390-Fixes-for-z13-instructions.patch
  0005-S-390-z13-use-GNU-attribute-to-indicate-vector-ABI.patch
  binutils-2.25-branch.diff.gz
  binutils-fix--dynamic-list.patch
  cross-rx-binutils.changes
  cross-rx-binutils.spec

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

Other differences:
------------------
++++++ binutils.spec ++++++
--- /var/tmp/diff_new_pack.Y9aru5/_old  2015-08-21 07:34:45.000000000 +0200
+++ /var/tmp/diff_new_pack.Y9aru5/_new  2015-08-21 07:34:45.000000000 +0200
@@ -82,6 +82,7 @@
 Source1:        pre_checkin.sh
 Source2:        README.First-for.SuSE.packagers
 Source3:        baselibs.conf
+Patch1:         binutils-2.25-branch.diff.gz
 Patch3:         binutils-skip-rpaths.patch
 Patch4:         s390-biarch.diff
 Patch5:         x86-64-biarch.patch
@@ -96,8 +97,12 @@
 Patch18:        gold-depend-on-opcodes.diff
 Patch22:        binutils-bfd_h.patch
 Patch23:        binutils-fix-gold-aarch64.diff
-Patch24:        eh-frame-hdr-on-shared-lib-bfd.patch
-Patch25:        gold-opd-visibility.patch
+Patch26:        binutils-fix--dynamic-list.patch
+Patch27:        0001-S-390-Add-support-for-IBM-z13.patch
+Patch28:        0002-S-390-Add-check-for-length-field-operand.patch
+Patch29:        0003-S-390-Add-more-IBM-z13-instructions.patch
+Patch30:        0004-S-390-Fixes-for-z13-instructions.patch
+Patch31:        0005-S-390-z13-use-GNU-attribute-to-indicate-vector-ABI.patch
 Patch90:        cross-avr-nesc-as.patch
 Patch92:        cross-avr-omit_section_dynsym.patch
 Patch93:        cross-avr-size.patch
@@ -118,7 +123,7 @@
 PreReq:         update-alternatives
 %if 0%{suse_version} > 1100
 %if 0%{!?cross:1}
-%define gold_archs %ix86 %arm x86_64 ppc ppc64 ppc64le %sparc
+%define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le %sparc
 %endif
 %endif
 
@@ -153,7 +158,7 @@
 %setup -q -n binutils-%{binutils_version}
 # Patch1 is outside test_vanilla because it's supposed to be the
 # patch bringing the tarball to the newest upstream version
-#%patch1 -p1
+%patch1 -p1
 %if !%{test_vanilla}
 %patch3
 %patch4
@@ -163,14 +168,22 @@
 %patch8
 %patch9
 %patch10
+%if "%{TARGET}" != "mips"
+# The MIPS ABI is incompatible with .gnu.hash, so don't
+# use it there
 %patch11
+%endif
 %patch12
 %patch14
 %patch18
 %patch22
 %patch23
-%patch24 -p1
-%patch25 -p1
+%patch26 -p1
+%patch27 -p1
+%patch28 -p1
+%patch29 -p1
+%patch30 -p1
+%patch31 -p1
 %if "%{TARGET}" == "avr"
 cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
 %patch90
@@ -180,9 +193,13 @@
 #
 # test_vanilla
 %endif
-sed -i -e '/BFD_VERSION_DATE/s/$/-%(echo %release | sed 's/\.[0-9]*$//')/' 
bfd/version.h
+%if 0%{?qemu_user_space_build}
+# Work around bug in qemu (make: execvp: /bin/sh: Argument list too long)
+sed -i 's/\.EXPORT_ALL_VARIABLES:/#&/' gold/testsuite/Makefile.{am,in}
+%endif
 
 %build
+sed -i -e '/BFD_VERSION_DATE/s/$/-%(echo %release | sed 's/\.[0-9]*$//')/' 
bfd/version.h
 RPM_OPT_FLAGS="$RPM_OPT_FLAGS -Wno-error"
 %if 0%{!?cross:1}
 # Building native binutils
@@ -277,15 +294,15 @@
 EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
 %endif
 %if "%{TARGET}" == "avr" || "%{TARGET}" == "spu"
-TARGET_OS=%{TARGET}
+%define TARGET_OS %{TARGET}
 %else
-%if "%{TARGET}" == "epiphany"
-TARGET_OS=epiphany-elf
+%if "%{TARGET}" == "epiphany" || "%{TARGET}" == "rx"
+%define TARGET_OS %{TARGET}-elf
 %else
 %if "%{TARGET}" == "arm"
-TARGET_OS=%{TARGET}-suse-linux-gnueabi
+%define TARGET_OS %{TARGET}-suse-linux-gnueabi
 %else
-TARGET_OS=%{TARGET}-suse-linux
+%define TARGET_OS %{TARGET}-suse-linux
 %endif
 %endif
 %endif
@@ -294,11 +311,11 @@
   --with-bugurl=http://bugs.opensuse.org/ \
   --with-pkgversion="GNU Binutils; %{DIST}" \
   --disable-nls \
-  --build=%{HOST} --target=$TARGET_OS \
+  --build=%{HOST} --target=%{TARGET_OS} \
 %if "%{TARGET}" == "spu"
   --with-sysroot=/usr/spu \
 %else
-  --with-sysroot=%{_prefix}/$TARGET_OS/sys-root \
+  --with-sysroot=%{_prefix}/%{TARGET_OS}/sys-root \
 %endif
   ${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"}
 make %{?_smp_mflags} all-bfd TARGET-bfd=headers
@@ -381,13 +398,13 @@
 # installing cross-TARGET-binutils and TARGET-binutils
 make DESTDIR=$RPM_BUILD_ROOT install
 # Replace hard links by symlinks, so that rpmlint doesn't complain
-T=$(basename %buildroot/usr/%{TARGET}*)
+T=$(basename %buildroot/usr/%{TARGET_OS})
 for f in %buildroot/usr/$T/bin/* ; do
    ln -sf /usr/bin/$T-$(basename $f) $f
 done
 %if "%{TARGET}" == "avr"
-install -c gas-nesc/as-new $RPM_BUILD_ROOT%{_prefix}/bin/%{TARGET}-nesc-as
-ln -sf ../../bin/%{TARGET}-nesc-as 
$RPM_BUILD_ROOT%{_prefix}/%{TARGET}/bin/nesc-as
+install -c gas-nesc/as-new $RPM_BUILD_ROOT%{_prefix}/bin/%{TARGET_OS}-nesc-as
+ln -sf ../../bin/%{TARGET_OS}-nesc-as 
$RPM_BUILD_ROOT%{_prefix}/%{TARGET_OS}/bin/nesc-as
 %endif
 rm -rf $RPM_BUILD_ROOT%{_mandir}
 rm -rf $RPM_BUILD_ROOT%{_infodir}
@@ -411,14 +428,12 @@
 "%_sbindir/update-alternatives" --install \
        "%_bindir/ld" ld "%_bindir/ld.gold" 1
 
-%postun
+%preun
 %install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz
 %install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
 %install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
 %install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
 %install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz
-
-%preun
 if [ "$1" = 0 ]; then
        "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
 fi;
@@ -447,7 +462,7 @@
 %{_libdir}/lib*-%{version}*.so
 %doc %{_mandir}/man1/*.1.gz
 %else
-%{_prefix}/%{TARGET}*
+%{_prefix}/%{TARGET_OS}
 %{_prefix}/bin/*
 %endif
 

++++++ cross-aarch64-binutils.spec ++++++
--- /var/tmp/diff_new_pack.Y9aru5/_old  2015-08-21 07:34:45.000000000 +0200
+++ /var/tmp/diff_new_pack.Y9aru5/_new  2015-08-21 07:34:45.000000000 +0200
@@ -85,6 +85,7 @@
 Source1:        pre_checkin.sh
 Source2:        README.First-for.SuSE.packagers
 Source3:        baselibs.conf
+Patch1:         binutils-2.25-branch.diff.gz
 Patch3:         binutils-skip-rpaths.patch
 Patch4:         s390-biarch.diff
 Patch5:         x86-64-biarch.patch
@@ -99,8 +100,12 @@
 Patch18:        gold-depend-on-opcodes.diff
 Patch22:        binutils-bfd_h.patch
 Patch23:        binutils-fix-gold-aarch64.diff
-Patch24:        eh-frame-hdr-on-shared-lib-bfd.patch
-Patch25:        gold-opd-visibility.patch
+Patch26:        binutils-fix--dynamic-list.patch
+Patch27:        0001-S-390-Add-support-for-IBM-z13.patch
+Patch28:        0002-S-390-Add-check-for-length-field-operand.patch
+Patch29:        0003-S-390-Add-more-IBM-z13-instructions.patch
+Patch30:        0004-S-390-Fixes-for-z13-instructions.patch
+Patch31:        0005-S-390-z13-use-GNU-attribute-to-indicate-vector-ABI.patch
 Patch90:        cross-avr-nesc-as.patch
 Patch92:        cross-avr-omit_section_dynsym.patch
 Patch93:        cross-avr-size.patch
@@ -121,7 +126,7 @@
 PreReq:         update-alternatives
 %if 0%{suse_version} > 1100
 %if 0%{!?cross:1}
-%define gold_archs %ix86 %arm x86_64 ppc ppc64 ppc64le %sparc
+%define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le %sparc
 %endif
 %endif
 
@@ -156,7 +161,7 @@
 %setup -q -n binutils-%{binutils_version}
 # Patch1 is outside test_vanilla because it's supposed to be the
 # patch bringing the tarball to the newest upstream version
-#%patch1 -p1
+%patch1 -p1
 %if !%{test_vanilla}
 %patch3
 %patch4
@@ -166,14 +171,22 @@
 %patch8
 %patch9
 %patch10
+%if "%{TARGET}" != "mips"
+# The MIPS ABI is incompatible with .gnu.hash, so don't
+# use it there
 %patch11
+%endif
 %patch12
 %patch14
 %patch18
 %patch22
 %patch23
-%patch24 -p1
-%patch25 -p1
+%patch26 -p1
+%patch27 -p1
+%patch28 -p1
+%patch29 -p1
+%patch30 -p1
+%patch31 -p1
 %if "%{TARGET}" == "avr"
 cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
 %patch90
@@ -183,9 +196,13 @@
 #
 # test_vanilla
 %endif
-sed -i -e '/BFD_VERSION_DATE/s/$/-%(echo %release | sed 's/\.[0-9]*$//')/' 
bfd/version.h
+%if 0%{?qemu_user_space_build}
+# Work around bug in qemu (make: execvp: /bin/sh: Argument list too long)
+sed -i 's/\.EXPORT_ALL_VARIABLES:/#&/' gold/testsuite/Makefile.{am,in}
+%endif
 
 %build
+sed -i -e '/BFD_VERSION_DATE/s/$/-%(echo %release | sed 's/\.[0-9]*$//')/' 
bfd/version.h
 RPM_OPT_FLAGS="$RPM_OPT_FLAGS -Wno-error"
 %if 0%{!?cross:1}
 # Building native binutils
@@ -280,15 +297,15 @@
 EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
 %endif
 %if "%{TARGET}" == "avr" || "%{TARGET}" == "spu"
-TARGET_OS=%{TARGET}
+%define TARGET_OS %{TARGET}
 %else
-%if "%{TARGET}" == "epiphany"
-TARGET_OS=epiphany-elf
+%if "%{TARGET}" == "epiphany" || "%{TARGET}" == "rx"
+%define TARGET_OS %{TARGET}-elf
 %else
 %if "%{TARGET}" == "arm"
-TARGET_OS=%{TARGET}-suse-linux-gnueabi
+%define TARGET_OS %{TARGET}-suse-linux-gnueabi
 %else
-TARGET_OS=%{TARGET}-suse-linux
+%define TARGET_OS %{TARGET}-suse-linux
 %endif
 %endif
 %endif
@@ -297,11 +314,11 @@
   --with-bugurl=http://bugs.opensuse.org/ \
   --with-pkgversion="GNU Binutils; %{DIST}" \
   --disable-nls \
-  --build=%{HOST} --target=$TARGET_OS \
+  --build=%{HOST} --target=%{TARGET_OS} \
 %if "%{TARGET}" == "spu"
   --with-sysroot=/usr/spu \
 %else
-  --with-sysroot=%{_prefix}/$TARGET_OS/sys-root \
+  --with-sysroot=%{_prefix}/%{TARGET_OS}/sys-root \
 %endif
   ${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"}
 make %{?_smp_mflags} all-bfd TARGET-bfd=headers
@@ -384,13 +401,13 @@
 # installing cross-TARGET-binutils and TARGET-binutils
 make DESTDIR=$RPM_BUILD_ROOT install
 # Replace hard links by symlinks, so that rpmlint doesn't complain
-T=$(basename %buildroot/usr/%{TARGET}*)
+T=$(basename %buildroot/usr/%{TARGET_OS})
 for f in %buildroot/usr/$T/bin/* ; do
    ln -sf /usr/bin/$T-$(basename $f) $f
 done
 %if "%{TARGET}" == "avr"
-install -c gas-nesc/as-new $RPM_BUILD_ROOT%{_prefix}/bin/%{TARGET}-nesc-as
-ln -sf ../../bin/%{TARGET}-nesc-as 
$RPM_BUILD_ROOT%{_prefix}/%{TARGET}/bin/nesc-as
+install -c gas-nesc/as-new $RPM_BUILD_ROOT%{_prefix}/bin/%{TARGET_OS}-nesc-as
+ln -sf ../../bin/%{TARGET_OS}-nesc-as 
$RPM_BUILD_ROOT%{_prefix}/%{TARGET_OS}/bin/nesc-as
 %endif
 rm -rf $RPM_BUILD_ROOT%{_mandir}
 rm -rf $RPM_BUILD_ROOT%{_infodir}
@@ -414,14 +431,12 @@
 "%_sbindir/update-alternatives" --install \
        "%_bindir/ld" ld "%_bindir/ld.gold" 1
 
-%postun
+%preun
 %install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz
 %install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
 %install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
 %install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
 %install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz
-
-%preun
 if [ "$1" = 0 ]; then
        "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
 fi;
@@ -450,7 +465,7 @@
 %{_libdir}/lib*-%{version}*.so
 %doc %{_mandir}/man1/*.1.gz
 %else
-%{_prefix}/%{TARGET}*
+%{_prefix}/%{TARGET_OS}
 %{_prefix}/bin/*
 %endif
 

cross-arm-binutils.spec: same change
cross-avr-binutils.spec: same change
cross-epiphany-binutils.spec: same change
cross-hppa-binutils.spec: same change
cross-hppa64-binutils.spec: same change
cross-i386-binutils.spec: same change
cross-ia64-binutils.spec: same change
cross-m68k-binutils.spec: same change
cross-mips-binutils.spec: same change
cross-ppc-binutils.spec: same change
cross-ppc64-binutils.spec: same change
cross-ppc64le-binutils.spec: same change
++++++ cross-rx-binutils.spec ++++++
#
# spec file for package cross-rx-binutils
#
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


Name:           cross-rx-binutils
ExcludeArch:    rx
%define cross 1
%define TARGET rx
BuildRequires:  bison
BuildRequires:  dejagnu
BuildRequires:  flex
BuildRequires:  gcc-c++
# for the testsuite
%if 0%{suse_version} >= 1210
BuildRequires:  glibc-devel-static
%endif
%if 0%{suse_version} > 1220
BuildRequires:  makeinfo
%endif
# for some gold tests
BuildRequires:  bc
%if 0%{suse_version} > 1110
BuildRequires:  zlib-devel-static
%else
BuildRequires:  zlib-devel
%endif
Version:        2.25.0
Release:        0
#
# RUN_TESTS
%define run_tests %(test ! -f %_sourcedir/RUN_TESTS ; echo $?)
# check the vanilla binutils, with no patches applied
# TEST_VANILLA
%define test_vanilla %(test ! -f %_sourcedir/TEST_VANILLA ; echo $?)
#
# handle test suite failures
#
%ifarch alpha %arm aarch64 hppa mips sh4 %sparc
%define make_check_handling     true
%else
# XXX check again
# XXX disabled because gold is seriously broken for now
%define make_check_handling     true
%endif
# let make check fail anyway if RUN_TESTS was requested
%if %{run_tests}
%define make_check_handling     false
%endif
# handle all binary object formats supported by SuSE (and a few more)
%ifarch %ix86 %arm aarch64 ia64 ppc ppc64 ppc64le s390 s390x x86_64
%define build_multitarget 1
%else
%define build_multitarget 0
%endif
%define target_list aarch64 alpha armv5l armv6l armv7l armv8l hppa hppa64 i686 
ia64 m68k mips powerpc powerpc64 powerpc64le s390 s390x sh4 sparc sparc64 x86_64
#
#
#
Url:            http://www.gnu.org/software/binutils/
PreReq:         %{install_info_prereq}
# bug437293
%ifarch ppc64
Obsoletes:      binutils-64bit
%endif
#
%define binutils_version %(echo %version | sed 's/\\.[0-9]\\{8\\}$//')
Summary:        GNU Binutils
License:        GFDL-1.3 and GPL-3.0+
Group:          Development/Tools/Building
Source:         binutils-%{binutils_version}.tar.bz2
Source1:        pre_checkin.sh
Source2:        README.First-for.SuSE.packagers
Source3:        baselibs.conf
Patch1:         binutils-2.25-branch.diff.gz
Patch3:         binutils-skip-rpaths.patch
Patch4:         s390-biarch.diff
Patch5:         x86-64-biarch.patch
Patch6:         unit-at-a-time.patch
Patch7:         ld-dtags.diff
Patch8:         ld-relro.diff
Patch9:         testsuite.diff
Patch10:        enable-targets-gold.diff
Patch11:        use-hashtype-both-by-default.diff
Patch12:        s390-pic-dso.diff
Patch14:        binutils-build-as-needed.diff
Patch18:        gold-depend-on-opcodes.diff
Patch22:        binutils-bfd_h.patch
Patch23:        binutils-fix-gold-aarch64.diff
Patch26:        binutils-fix--dynamic-list.patch
Patch27:        0001-S-390-Add-support-for-IBM-z13.patch
Patch28:        0002-S-390-Add-check-for-length-field-operand.patch
Patch29:        0003-S-390-Add-more-IBM-z13-instructions.patch
Patch30:        0004-S-390-Fixes-for-z13-instructions.patch
Patch31:        0005-S-390-z13-use-GNU-attribute-to-indicate-vector-ABI.patch
Patch90:        cross-avr-nesc-as.patch
Patch92:        cross-avr-omit_section_dynsym.patch
Patch93:        cross-avr-size.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
PreReq:         update-alternatives

%description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
size, strings, and strip. These utilities are needed whenever you want
to compile a program or kernel.


%package gold
Summary:        The gold linker
License:        GPL-3.0+
Group:          Development/Tools/Building
Requires:       binutils = %{version}-%{release}
PreReq:         update-alternatives
%if 0%{suse_version} > 1100
%if 0%{!?cross:1}
%define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le %sparc
%endif
%endif

%description gold
gold is an ELF linker.  It is intended to have complete support for ELF
and to run as fast as possible on modern systems.  For normal use it is
a drop-in replacement for the older GNU linker.

%package devel
Summary:        GNU binutils (BFD development files)
License:        GPL-3.0+
Group:          Development/Libraries/C and C++
Requires:       binutils = %{version}-%{release}
Requires:       zlib-devel
Provides:       binutils:/usr/include/bfd.h

%description devel
This package includes header files and static libraries necessary to
build programs which use the GNU BFD library, which is part of
binutils.


%ifarch %arm
%define HOST %{_target_cpu}-suse-linux-gnueabi
%else
%define HOST %(echo %{_target_cpu} | sed -e "s/parisc/hppa/" -e "s/i.86/i586/" 
-e "s/ppc/powerpc/" -e "s/sparc64v.*/sparc64/" -e 
"s/sparcv.*/sparc/")-suse-linux
%endif 
%define DIST %(echo '%distribution' | sed 's/ (.*)//')

%prep
echo "make check will return with %{make_check_handling} in case of testsuite 
failures."
%setup -q -n binutils-%{binutils_version}
# Patch1 is outside test_vanilla because it's supposed to be the
# patch bringing the tarball to the newest upstream version
%patch1 -p1
%if !%{test_vanilla}
%patch3
%patch4
%patch5
%patch6
%patch7 -p1
%patch8
%patch9
%patch10
%if "%{TARGET}" != "mips"
# The MIPS ABI is incompatible with .gnu.hash, so don't
# use it there
%patch11
%endif
%patch12
%patch14
%patch18
%patch22
%patch23
%patch26 -p1
%patch27 -p1
%patch28 -p1
%patch29 -p1
%patch30 -p1
%patch31 -p1
%if "%{TARGET}" == "avr"
cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
%patch90
%patch92
%patch93
%endif
#
# test_vanilla
%endif
%if 0%{?qemu_user_space_build}
# Work around bug in qemu (make: execvp: /bin/sh: Argument list too long)
sed -i 's/\.EXPORT_ALL_VARIABLES:/#&/' gold/testsuite/Makefile.{am,in}
%endif

%build
sed -i -e '/BFD_VERSION_DATE/s/$/-%(echo %release | sed 's/\.[0-9]*$//')/' 
bfd/version.h
RPM_OPT_FLAGS="$RPM_OPT_FLAGS -Wno-error"
%if 0%{!?cross:1}
# Building native binutils
echo "Building native binutils." 
%if %build_multitarget
EXTRA_TARGETS="%(printf ,%%s-suse-linux %target_list)"
EXTRA_TARGETS="$EXTRA_TARGETS,powerpc-macos,powerpc-macos10,spu-elf,x86_64-pep"
%else
EXTRA_TARGETS=
%ifarch sparc
EXTRA_TARGETS="$EXTRA_TARGETS,sparc64-suse-linux"
%endif
%ifarch ppc
EXTRA_TARGETS="$EXTRA_TARGETS,powerpc64-suse-linux"
%endif
%ifarch s390
EXTRA_TARGETS="$EXTRA_TARGETS,s390x-suse-linux"
%endif
%ifarch s390x
EXTRA_TARGETS="$EXTRA_TARGETS,s390-suse-linux"
%endif
%ifarch %ix86
EXTRA_TARGETS="$EXTRA_TARGETS,x86_64-suse-linux"
%endif
%ifarch ppc ppc64 ppc64le
EXTRA_TARGETS="$EXTRA_TARGETS,spu-elf"
%endif
%ifarch %arm
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif
%ifarch aarch64
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%endif
# Normally we'd like to add --enable-deterministic-archives
# here (which by default makes uid/mtime be zero for archive
# members), to increase chances of getting a reproducable build
# But this breaks Makefile rules when directly accessing archives:
# rebuilding the same archive from unchanged .o files recreates
# it, because timestamps in the .a are 0, unequal to the actual timestamp
# of the .o files :-/
%define common_flags CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" \\\
        --prefix=%{_prefix} --libdir=%{_libdir} \\\
        --infodir=%{_infodir} --mandir=%{_mandir} \\\
        --with-bugurl=http://bugs.opensuse.org/ \\\
        --with-pkgversion="GNU Binutils; %{DIST}" \\\
        --with-separate-debug-dir=%{_prefix}/lib/debug \\\
        --with-pic --build=%{HOST}
mkdir build-dir
cd build-dir
../configure %common_flags \
        ${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"} \
        --enable-plugins \
%ifarch %gold_archs
        --enable-gold \
        --enable-threads \
%endif
        --enable-shared
make %{?_smp_mflags} all-bfd TARGET-bfd=headers
# force reconfiguring (???)
rm bfd/Makefile
make %{?_smp_mflags}

%else
# building cross-TARGET-binutils
echo "Building cross binutils." 
mkdir build-dir
cd build-dir
EXTRA_TARGETS=
%if "%{TARGET}" == "sparc"
EXTRA_TARGETS="$EXTRA_TARGETS,sparc64-suse-linux"
%endif
%if "%{TARGET}" == "powerpc"
EXTRA_TARGETS="$EXTRA_TARGETS,powerpc64-suse-linux"
%endif
%if "%{TARGET}" == "s390"
EXTRA_TARGETS="$EXTRA_TARGETS,s390x-suse-linux"
%endif
%if "%{TARGET}" == "s390x"
EXTRA_TARGETS="$EXTRA_TARGETS,s390-suse-linux"
%endif
%if "%{TARGET}" == "i586"
EXTRA_TARGETS="$EXTRA_TARGETS,x86_64-suse-linux"
%endif
%if "%{TARGET}" == "hppa"
EXTRA_TARGETS="$EXTRA_TARGETS,hppa64-suse-linux"
%endif
%if "%{TARGET}" == "arm"
EXTRA_TARGETS="$EXTRA_TARGETS,arm-suse-linux-gnueabi"
%endif
%if "%{TARGET}" == "aarch64"
EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
%endif
%if "%{TARGET}" == "avr" || "%{TARGET}" == "spu"
%define TARGET_OS %{TARGET}
%else
%if "%{TARGET}" == "epiphany" || "%{TARGET}" == "rx"
%define TARGET_OS %{TARGET}-elf
%else
%if "%{TARGET}" == "arm"
%define TARGET_OS %{TARGET}-suse-linux-gnueabi
%else
%define TARGET_OS %{TARGET}-suse-linux
%endif
%endif
%endif
../configure CFLAGS="${RPM_OPT_FLAGS}" \
  --prefix=%{_prefix} \
  --with-bugurl=http://bugs.opensuse.org/ \
  --with-pkgversion="GNU Binutils; %{DIST}" \
  --disable-nls \
  --build=%{HOST} --target=%{TARGET_OS} \
%if "%{TARGET}" == "spu"
  --with-sysroot=/usr/spu \
%else
  --with-sysroot=%{_prefix}/%{TARGET_OS}/sys-root \
%endif
  ${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"}
make %{?_smp_mflags} all-bfd TARGET-bfd=headers
# force reconfiguring
rm bfd/Makefile
make %{?_smp_mflags}
%if "%{TARGET}" == "avr"
# build an extra nesC version because nesC requires $'s in identifiers
cp -a gas gas-nesc
echo '#include "tc-%{TARGET}-nesc.h"' > gas-nesc/targ-cpu.h
make -C gas-nesc clean
make -C gas-nesc %{?_smp_mflags}
%endif
%endif

%check
unset SUSE_ASNEEDED
cd build-dir
%if 0%{?cross:1}
make -k check CFLAGS="-O2 -g" CXXFLAGS="-O2 -g" || %{make_check_handling}
%else
make -k check CFLAGS="$RPM_OPT_FLAGS -Wno-unused -Wno-unprototyped-calls" || :
%endif

%install
cd build-dir
%if 0%{!?cross:1}
# installing native binutils
%ifarch %gold_archs
make DESTDIR=$RPM_BUILD_ROOT install-gold
ln -sf ld.gold $RPM_BUILD_ROOT%{_bindir}/gold
%endif
make DESTDIR=$RPM_BUILD_ROOT install-info install
make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am
make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes
if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
  mv "%buildroot/%_bindir"/{ld,ld.bfd};
else
  rm -f "%buildroot/%_bindir/ld";
fi
mkdir -p "%buildroot/%_sysconfdir/alternatives";
# Keep older versions of brp-symlink happy
%if %{suse_version} < 1310
ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld"
%endif
ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} 
$RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
mv $RPM_BUILD_ROOT%{_prefix}/%{HOST}/lib/ldscripts $RPM_BUILD_ROOT%{_libdir}
ln -sf ../../%{_lib}/ldscripts $RPM_BUILD_ROOT%{_prefix}/%{HOST}/lib/ldscripts
# Install header files
make -C libiberty install_to_libdir target_header_dir=/usr/include 
DESTDIR=$RPM_BUILD_ROOT
# We want the PIC libiberty.a
install -m 644 libiberty/pic/libiberty.a $RPM_BUILD_ROOT%{_libdir}
#
chmod a+x $RPM_BUILD_ROOT%{_libdir}/libbfd-*
chmod a+x $RPM_BUILD_ROOT%{_libdir}/libopcodes-*
# No shared linking outside binutils
rm $RPM_BUILD_ROOT%{_libdir}/lib{bfd,opcodes}.so
rm $RPM_BUILD_ROOT%{_libdir}/lib{bfd,opcodes}.la
# Remove unwanted files to shut up rpm
rm -f $RPM_BUILD_ROOT%{_infodir}/configure* 
$RPM_BUILD_ROOT%{_infodir}/standards.info*
rm -f $RPM_BUILD_ROOT%{_mandir}/man1/dlltool.1 
$RPM_BUILD_ROOT%{_mandir}/man1/windres.1 $RPM_BUILD_ROOT%{_mandir}/man1/windmc.1
cd ..
%find_lang binutils
%find_lang bfd binutils.lang
%find_lang gas binutils.lang
%find_lang ld binutils.lang
%find_lang opcodes binutils.lang
%find_lang gprof binutils.lang
%ifarch %gold_archs
%find_lang gold binutils-gold.lang
%endif
mkdir -p $RPM_BUILD_ROOT%{_docdir}/%{name}
install -m 644 binutils/NEWS $RPM_BUILD_ROOT%{_docdir}/%{name}/NEWS-binutils
install -m 644 gas/NEWS $RPM_BUILD_ROOT%{_docdir}/%{name}/NEWS-gas
install -m 644 ld/NEWS $RPM_BUILD_ROOT%{_docdir}/%{name}/NEWS-ld
%else
# installing cross-TARGET-binutils and TARGET-binutils
make DESTDIR=$RPM_BUILD_ROOT install
# Replace hard links by symlinks, so that rpmlint doesn't complain
T=$(basename %buildroot/usr/%{TARGET_OS})
for f in %buildroot/usr/$T/bin/* ; do
   ln -sf /usr/bin/$T-$(basename $f) $f
done
%if "%{TARGET}" == "avr"
install -c gas-nesc/as-new $RPM_BUILD_ROOT%{_prefix}/bin/%{TARGET_OS}-nesc-as
ln -sf ../../bin/%{TARGET_OS}-nesc-as 
$RPM_BUILD_ROOT%{_prefix}/%{TARGET_OS}/bin/nesc-as
%endif
rm -rf $RPM_BUILD_ROOT%{_mandir}
rm -rf $RPM_BUILD_ROOT%{_infodir}
rm -rf $RPM_BUILD_ROOT%{_prefix}/lib*
rm -rf $RPM_BUILD_ROOT%{_prefix}/include
rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
> ../binutils.lang
%endif

%if 0%{!?cross:1}
%post
"%_sbindir/update-alternatives" --install \
        "%_bindir/ld" ld "%_bindir/ld.bfd" 2
%install_info --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info --info-dir=%{_infodir} %{_infodir}/ld.info.gz

%post gold
"%_sbindir/update-alternatives" --install \
        "%_bindir/ld" ld "%_bindir/ld.gold" 1

%preun
%install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
%install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz
if [ "$1" = 0 ]; then
        "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
fi;

%preun gold
if [ "$1" = 0 ]; then
        "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
fi;

%endif

%files -f binutils.lang
%defattr(-,root,root)
%if 0%{!?cross:1}
%{_docdir}/%{name}
%{_prefix}/%{HOST}/bin/*
%{_prefix}/%{HOST}/lib/ldscripts
%{_libdir}/ldscripts
%{_bindir}/*
%ghost %_sysconfdir/alternatives/ld
%ifarch %gold_archs
%exclude %{_bindir}/gold
%exclude %{_bindir}/ld.gold
%endif
%doc %{_infodir}/*.gz
%{_libdir}/lib*-%{version}*.so
%doc %{_mandir}/man1/*.1.gz
%else
%{_prefix}/%{TARGET_OS}
%{_prefix}/bin/*
%endif

%ifarch %gold_archs
%files gold -f binutils-gold.lang
%defattr(-,root,root)
%doc gold/NEWS gold/README
%{_bindir}/gold
%{_bindir}/ld.gold
%endif

%if 0%{!?cross:1}
%files devel
%defattr(-,root,root)
%{_prefix}/include/*.h
%{_libdir}/lib*.*a
%endif

%changelog
++++++ cross-s390-binutils.spec ++++++
--- /var/tmp/diff_new_pack.Y9aru5/_old  2015-08-21 07:34:46.000000000 +0200
+++ /var/tmp/diff_new_pack.Y9aru5/_new  2015-08-21 07:34:46.000000000 +0200
@@ -85,6 +85,7 @@
 Source1:        pre_checkin.sh
 Source2:        README.First-for.SuSE.packagers
 Source3:        baselibs.conf
+Patch1:         binutils-2.25-branch.diff.gz
 Patch3:         binutils-skip-rpaths.patch
 Patch4:         s390-biarch.diff
 Patch5:         x86-64-biarch.patch
@@ -99,8 +100,12 @@
 Patch18:        gold-depend-on-opcodes.diff
 Patch22:        binutils-bfd_h.patch
 Patch23:        binutils-fix-gold-aarch64.diff
-Patch24:        eh-frame-hdr-on-shared-lib-bfd.patch
-Patch25:        gold-opd-visibility.patch
+Patch26:        binutils-fix--dynamic-list.patch
+Patch27:        0001-S-390-Add-support-for-IBM-z13.patch
+Patch28:        0002-S-390-Add-check-for-length-field-operand.patch
+Patch29:        0003-S-390-Add-more-IBM-z13-instructions.patch
+Patch30:        0004-S-390-Fixes-for-z13-instructions.patch
+Patch31:        0005-S-390-z13-use-GNU-attribute-to-indicate-vector-ABI.patch
 Patch90:        cross-avr-nesc-as.patch
 Patch92:        cross-avr-omit_section_dynsym.patch
 Patch93:        cross-avr-size.patch
@@ -121,7 +126,7 @@
 PreReq:         update-alternatives
 %if 0%{suse_version} > 1100
 %if 0%{!?cross:1}
-%define gold_archs %ix86 %arm x86_64 ppc ppc64 ppc64le %sparc
+%define gold_archs %ix86 aarch64 %arm x86_64 ppc ppc64 ppc64le %sparc
 %endif
 %endif
 
@@ -156,7 +161,7 @@
 %setup -q -n binutils-%{binutils_version}
 # Patch1 is outside test_vanilla because it's supposed to be the
 # patch bringing the tarball to the newest upstream version
-#%patch1 -p1
+%patch1 -p1
 %if !%{test_vanilla}
 %patch3
 %patch4
@@ -166,14 +171,22 @@
 %patch8
 %patch9
 %patch10
+%if "%{TARGET}" != "mips"
+# The MIPS ABI is incompatible with .gnu.hash, so don't
+# use it there
 %patch11
+%endif
 %patch12
 %patch14
 %patch18
 %patch22
 %patch23
-%patch24 -p1
-%patch25 -p1
+%patch26 -p1
+%patch27 -p1
+%patch28 -p1
+%patch29 -p1
+%patch30 -p1
+%patch31 -p1
 %if "%{TARGET}" == "avr"
 cp gas/config/tc-avr.h gas/config/tc-avr-nesc.h
 %patch90
@@ -183,9 +196,13 @@
 #
 # test_vanilla
 %endif
-sed -i -e '/BFD_VERSION_DATE/s/$/-%(echo %release | sed 's/\.[0-9]*$//')/' 
bfd/version.h
+%if 0%{?qemu_user_space_build}
+# Work around bug in qemu (make: execvp: /bin/sh: Argument list too long)
+sed -i 's/\.EXPORT_ALL_VARIABLES:/#&/' gold/testsuite/Makefile.{am,in}
+%endif
 
 %build
+sed -i -e '/BFD_VERSION_DATE/s/$/-%(echo %release | sed 's/\.[0-9]*$//')/' 
bfd/version.h
 RPM_OPT_FLAGS="$RPM_OPT_FLAGS -Wno-error"
 %if 0%{!?cross:1}
 # Building native binutils
@@ -280,15 +297,15 @@
 EXTRA_TARGETS="$EXTRA_TARGETS,aarch64-suse-linux"
 %endif
 %if "%{TARGET}" == "avr" || "%{TARGET}" == "spu"
-TARGET_OS=%{TARGET}
+%define TARGET_OS %{TARGET}
 %else
-%if "%{TARGET}" == "epiphany"
-TARGET_OS=epiphany-elf
+%if "%{TARGET}" == "epiphany" || "%{TARGET}" == "rx"
+%define TARGET_OS %{TARGET}-elf
 %else
 %if "%{TARGET}" == "arm"
-TARGET_OS=%{TARGET}-suse-linux-gnueabi
+%define TARGET_OS %{TARGET}-suse-linux-gnueabi
 %else
-TARGET_OS=%{TARGET}-suse-linux
+%define TARGET_OS %{TARGET}-suse-linux
 %endif
 %endif
 %endif
@@ -297,11 +314,11 @@
   --with-bugurl=http://bugs.opensuse.org/ \
   --with-pkgversion="GNU Binutils; %{DIST}" \
   --disable-nls \
-  --build=%{HOST} --target=$TARGET_OS \
+  --build=%{HOST} --target=%{TARGET_OS} \
 %if "%{TARGET}" == "spu"
   --with-sysroot=/usr/spu \
 %else
-  --with-sysroot=%{_prefix}/$TARGET_OS/sys-root \
+  --with-sysroot=%{_prefix}/%{TARGET_OS}/sys-root \
 %endif
   ${EXTRA_TARGETS:+--enable-targets="${EXTRA_TARGETS#,}"}
 make %{?_smp_mflags} all-bfd TARGET-bfd=headers
@@ -384,13 +401,13 @@
 # installing cross-TARGET-binutils and TARGET-binutils
 make DESTDIR=$RPM_BUILD_ROOT install
 # Replace hard links by symlinks, so that rpmlint doesn't complain
-T=$(basename %buildroot/usr/%{TARGET}*)
+T=$(basename %buildroot/usr/%{TARGET_OS})
 for f in %buildroot/usr/$T/bin/* ; do
    ln -sf /usr/bin/$T-$(basename $f) $f
 done
 %if "%{TARGET}" == "avr"
-install -c gas-nesc/as-new $RPM_BUILD_ROOT%{_prefix}/bin/%{TARGET}-nesc-as
-ln -sf ../../bin/%{TARGET}-nesc-as 
$RPM_BUILD_ROOT%{_prefix}/%{TARGET}/bin/nesc-as
+install -c gas-nesc/as-new $RPM_BUILD_ROOT%{_prefix}/bin/%{TARGET_OS}-nesc-as
+ln -sf ../../bin/%{TARGET_OS}-nesc-as 
$RPM_BUILD_ROOT%{_prefix}/%{TARGET_OS}/bin/nesc-as
 %endif
 rm -rf $RPM_BUILD_ROOT%{_mandir}
 rm -rf $RPM_BUILD_ROOT%{_infodir}
@@ -414,14 +431,12 @@
 "%_sbindir/update-alternatives" --install \
        "%_bindir/ld" ld "%_bindir/ld.gold" 1
 
-%postun
+%preun
 %install_info_delete --info-dir=%{_infodir} %{_infodir}/as.info.gz
 %install_info_delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz
 %install_info_delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz
 %install_info_delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz
 %install_info_delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz
-
-%preun
 if [ "$1" = 0 ]; then
        "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
 fi;
@@ -450,7 +465,7 @@
 %{_libdir}/lib*-%{version}*.so
 %doc %{_mandir}/man1/*.1.gz
 %else
-%{_prefix}/%{TARGET}*
+%{_prefix}/%{TARGET_OS}
 %{_prefix}/bin/*
 %endif
 

cross-s390x-binutils.spec: same change
cross-sparc-binutils.spec: same change
cross-sparc64-binutils.spec: same change
cross-spu-binutils.spec: same change
cross-x86_64-binutils.spec: same change
++++++ 0001-S-390-Add-support-for-IBM-z13.patch ++++++
++++ 3882 lines (skipped)

++++++ 0002-S-390-Add-check-for-length-field-operand.patch ++++++
>From ae2046d38892cc42febb799141b2457f4e519fd0 Mon Sep 17 00:00:00 2001
From: Andreas Krebbel <kreb...@linux.vnet.ibm.com>
Date: Tue, 10 Mar 2015 12:41:57 +0100
Subject: [PATCH 2/5] S/390: Add check for length field operand

gas/
2015-03-10  Andreas Krebbel  <kreb...@linux.vnet.ibm.com>

        * gas/config/tc-s390.c (md_gather_operands): Check for valid
        length field operands.

# Conflicts:
#       gas/ChangeLog
---
 gas/config/tc-s390.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/gas/config/tc-s390.c b/gas/config/tc-s390.c
index 052baf1..a8394c5 100644
--- a/gas/config/tc-s390.c
+++ b/gas/config/tc-s390.c
@@ -1216,6 +1216,9 @@ md_gather_operands (char *str,
            }
          else
            {
+             if ((operand->flags & S390_OPERAND_LENGTH)
+                 && ex.X_op != O_constant)
+               as_fatal (_("invalid length field specified"));
              if ((operand->flags & S390_OPERAND_INDEX)
                  && ex.X_add_number == 0
                  && warn_areg_zero)
-- 
2.3.0

++++++ 0003-S-390-Add-more-IBM-z13-instructions.patch ++++++
>From ac7c37a5eec4299bfae164839a04b03eae27b962 Mon Sep 17 00:00:00 2001
From: Andreas Krebbel <kreb...@linux.vnet.ibm.com>
Date: Tue, 10 Mar 2015 12:44:54 +0100
Subject: [PATCH 3/5] S/390: Add more IBM z13 instructions

opcodes/
2015-03-10  Andreas Krebbel  <kreb...@linux.vnet.ibm.com>

        * s390-opc.c: Add new IBM z13 instructions.
        * s390-opc.txt: Likewise.

gas/testsuite/
2015-03-10  Andreas Krebbel  <kreb...@linux.vnet.ibm.com>

        * gas/s390/zarch-z13.d: Add more z13 instructions.
        * gas/s390/zarch-z13.s: Likewise.

# Conflicts:
#       gas/testsuite/ChangeLog
#       opcodes/ChangeLog
---
 gas/testsuite/gas/s390/zarch-z13.d | 134 +++++++++++++++++++++++++++++++++++++
 gas/testsuite/gas/s390/zarch-z13.s | 134 +++++++++++++++++++++++++++++++++++++
 opcodes/s390-opc.c                 |   2 +
 opcodes/s390-opc.txt               |  23 +++++++
 4 files changed, 293 insertions(+)

diff --git a/gas/testsuite/gas/s390/zarch-z13.d 
b/gas/testsuite/gas/s390/zarch-z13.d
index f74b9f8..b2e010d 100644
--- a/gas/testsuite/gas/s390/zarch-z13.d
+++ b/gas/testsuite/gas/s390/zarch-z13.d
@@ -546,3 +546,137 @@ Disassembly of section .text:
 .*:    e7 f1 ff db c4 4a [     ]*vftci %v15,%v17,4093,12,11
 .*:    e7 f1 ff d0 34 4a [     ]*vftcidb       %v15,%v17,4093
 .*:    e7 f1 ff d8 34 4a [     ]*wftcidb       %v15,%v17,4093
+.*:    ed fa 6f a0 3c ae [     ]*cdpt  %f3,4000\(251,%r6\),12
+.*:    ed fa 6f a0 1c af [     ]*cxpt  %f1,4000\(251,%r6\),12
+.*:    ed fa 6f a0 3c ac [     ]*cpdt  %f3,4000\(251,%r6\),12
+.*:    ed fa 6f a0 1c ad [     ]*cpxt  %f1,4000\(251,%r6\),12
+.*:    b9 e0 d0 69 [   ]*locfhrnh      %r6,%r9
+.*:    b9 e0 10 69 [   ]*locfhro       %r6,%r9
+.*:    b9 e0 20 69 [   ]*locfhrh       %r6,%r9
+.*:    b9 e0 20 69 [   ]*locfhrh       %r6,%r9
+.*:    b9 e0 30 69 [   ]*locfhrnle     %r6,%r9
+.*:    b9 e0 40 69 [   ]*locfhrl       %r6,%r9
+.*:    b9 e0 40 69 [   ]*locfhrl       %r6,%r9
+.*:    b9 e0 50 69 [   ]*locfhrnhe     %r6,%r9
+.*:    b9 e0 60 69 [   ]*locfhrlh      %r6,%r9
+.*:    b9 e0 70 69 [   ]*locfhrne      %r6,%r9
+.*:    b9 e0 70 69 [   ]*locfhrne      %r6,%r9
+.*:    b9 e0 80 69 [   ]*locfhre       %r6,%r9
+.*:    b9 e0 80 69 [   ]*locfhre       %r6,%r9
+.*:    b9 e0 90 69 [   ]*locfhrnlh     %r6,%r9
+.*:    b9 e0 a0 69 [   ]*locfhrhe      %r6,%r9
+.*:    b9 e0 b0 69 [   ]*locfhrnl      %r6,%r9
+.*:    b9 e0 b0 69 [   ]*locfhrnl      %r6,%r9
+.*:    b9 e0 c0 69 [   ]*locfhrle      %r6,%r9
+.*:    b9 e0 d0 69 [   ]*locfhrnh      %r6,%r9
+.*:    b9 e0 d0 69 [   ]*locfhrnh      %r6,%r9
+.*:    b9 e0 e0 69 [   ]*locfhrno      %r6,%r9
+.*:    eb 6d 98 f0 fd e0 [     ]*locfhnh       %r6,-10000\(%r9\)
+.*:    eb 61 98 f0 fd e0 [     ]*locfho        %r6,-10000\(%r9\)
+.*:    eb 62 98 f0 fd e0 [     ]*locfhh        %r6,-10000\(%r9\)
+.*:    eb 62 98 f0 fd e0 [     ]*locfhh        %r6,-10000\(%r9\)
+.*:    eb 63 98 f0 fd e0 [     ]*locfhnle      %r6,-10000\(%r9\)
+.*:    eb 64 98 f0 fd e0 [     ]*locfhl        %r6,-10000\(%r9\)
+.*:    eb 64 98 f0 fd e0 [     ]*locfhl        %r6,-10000\(%r9\)
+.*:    eb 65 98 f0 fd e0 [     ]*locfhnhe      %r6,-10000\(%r9\)
+.*:    eb 66 98 f0 fd e0 [     ]*locfhlh       %r6,-10000\(%r9\)
+.*:    eb 67 98 f0 fd e0 [     ]*locfhne       %r6,-10000\(%r9\)
+.*:    eb 67 98 f0 fd e0 [     ]*locfhne       %r6,-10000\(%r9\)
+.*:    eb 68 98 f0 fd e0 [     ]*locfhe        %r6,-10000\(%r9\)
+.*:    eb 68 98 f0 fd e0 [     ]*locfhe        %r6,-10000\(%r9\)
+.*:    eb 69 98 f0 fd e0 [     ]*locfhnlh      %r6,-10000\(%r9\)
+.*:    eb 6a 98 f0 fd e0 [     ]*locfhhe       %r6,-10000\(%r9\)
+.*:    eb 6b 98 f0 fd e0 [     ]*locfhnl       %r6,-10000\(%r9\)
+.*:    eb 6b 98 f0 fd e0 [     ]*locfhnl       %r6,-10000\(%r9\)
+.*:    eb 6c 98 f0 fd e0 [     ]*locfhle       %r6,-10000\(%r9\)
+.*:    eb 6d 98 f0 fd e0 [     ]*locfhnh       %r6,-10000\(%r9\)
+.*:    eb 6d 98 f0 fd e0 [     ]*locfhnh       %r6,-10000\(%r9\)
+.*:    eb 6e 98 f0 fd e0 [     ]*locfhno       %r6,-10000\(%r9\)
+.*:    ec 6c 80 03 00 42 [     ]*lochile       %r6,-32765
+.*:    ec 61 80 03 00 42 [     ]*lochio        %r6,-32765
+.*:    ec 62 80 03 00 42 [     ]*lochih        %r6,-32765
+.*:    ec 62 80 03 00 42 [     ]*lochih        %r6,-32765
+.*:    ec 63 80 03 00 42 [     ]*lochinle      %r6,-32765
+.*:    ec 64 80 03 00 42 [     ]*lochil        %r6,-32765
+.*:    ec 64 80 03 00 42 [     ]*lochil        %r6,-32765
+.*:    ec 65 80 03 00 42 [     ]*lochinhe      %r6,-32765
+.*:    ec 66 80 03 00 42 [     ]*lochilh       %r6,-32765
+.*:    ec 67 80 03 00 42 [     ]*lochine       %r6,-32765
+.*:    ec 67 80 03 00 42 [     ]*lochine       %r6,-32765
+.*:    ec 68 80 03 00 42 [     ]*lochie        %r6,-32765
+.*:    ec 68 80 03 00 42 [     ]*lochie        %r6,-32765
+.*:    ec 69 80 03 00 42 [     ]*lochinlh      %r6,-32765
+.*:    ec 6a 80 03 00 42 [     ]*lochihe       %r6,-32765
+.*:    ec 6b 80 03 00 42 [     ]*lochinl       %r6,-32765
+.*:    ec 6b 80 03 00 42 [     ]*lochinl       %r6,-32765
+.*:    ec 6c 80 03 00 42 [     ]*lochile       %r6,-32765
+.*:    ec 6d 80 03 00 42 [     ]*lochinh       %r6,-32765
+.*:    ec 6d 80 03 00 42 [     ]*lochinh       %r6,-32765
+.*:    ec 6e 80 03 00 42 [     ]*lochino       %r6,-32765
+.*:    ec 6c 80 03 00 46 [     ]*locghile      %r6,-32765
+.*:    ec 61 80 03 00 46 [     ]*locghio       %r6,-32765
+.*:    ec 62 80 03 00 46 [     ]*locghih       %r6,-32765
+.*:    ec 62 80 03 00 46 [     ]*locghih       %r6,-32765
+.*:    ec 63 80 03 00 46 [     ]*locghinle     %r6,-32765
+.*:    ec 64 80 03 00 46 [     ]*locghil       %r6,-32765
+.*:    ec 64 80 03 00 46 [     ]*locghil       %r6,-32765
+.*:    ec 65 80 03 00 46 [     ]*locghinhe     %r6,-32765
+.*:    ec 66 80 03 00 46 [     ]*locghilh      %r6,-32765
+.*:    ec 67 80 03 00 46 [     ]*locghine      %r6,-32765
+.*:    ec 67 80 03 00 46 [     ]*locghine      %r6,-32765
+.*:    ec 68 80 03 00 46 [     ]*locghie       %r6,-32765
+.*:    ec 68 80 03 00 46 [     ]*locghie       %r6,-32765
+.*:    ec 69 80 03 00 46 [     ]*locghinlh     %r6,-32765
+.*:    ec 6a 80 03 00 46 [     ]*locghihe      %r6,-32765
+.*:    ec 6b 80 03 00 46 [     ]*locghinl      %r6,-32765
+.*:    ec 6b 80 03 00 46 [     ]*locghinl      %r6,-32765
+.*:    ec 6c 80 03 00 46 [     ]*locghile      %r6,-32765
+.*:    ec 6d 80 03 00 46 [     ]*locghinh      %r6,-32765
+.*:    ec 6d 80 03 00 46 [     ]*locghinh      %r6,-32765
+.*:    ec 6e 80 03 00 46 [     ]*locghino      %r6,-32765
+.*:    ec 6c 80 03 00 4e [     ]*lochhile      %r6,-32765
+.*:    ec 61 80 03 00 4e [     ]*lochhio       %r6,-32765
+.*:    ec 62 80 03 00 4e [     ]*lochhih       %r6,-32765
+.*:    ec 62 80 03 00 4e [     ]*lochhih       %r6,-32765
+.*:    ec 63 80 03 00 4e [     ]*lochhinle     %r6,-32765
+.*:    ec 64 80 03 00 4e [     ]*lochhil       %r6,-32765
+.*:    ec 64 80 03 00 4e [     ]*lochhil       %r6,-32765
+.*:    ec 65 80 03 00 4e [     ]*lochhinhe     %r6,-32765
+.*:    ec 66 80 03 00 4e [     ]*lochhilh      %r6,-32765
+.*:    ec 67 80 03 00 4e [     ]*lochhine      %r6,-32765
+.*:    ec 67 80 03 00 4e [     ]*lochhine      %r6,-32765
+.*:    ec 68 80 03 00 4e [     ]*lochhie       %r6,-32765
+.*:    ec 68 80 03 00 4e [     ]*lochhie       %r6,-32765
+.*:    ec 69 80 03 00 4e [     ]*lochhinlh     %r6,-32765
+.*:    ec 6a 80 03 00 4e [     ]*lochhihe      %r6,-32765
+.*:    ec 6b 80 03 00 4e [     ]*lochhinl      %r6,-32765
+.*:    ec 6b 80 03 00 4e [     ]*lochhinl      %r6,-32765
+.*:    ec 6c 80 03 00 4e [     ]*lochhile      %r6,-32765
+.*:    ec 6d 80 03 00 4e [     ]*lochhinh      %r6,-32765
+.*:    ec 6d 80 03 00 4e [     ]*lochhinh      %r6,-32765
+.*:    ec 6e 80 03 00 4e [     ]*lochhino      %r6,-32765
+.*:    eb 6d 98 f0 fd e1 [     ]*stocfhnh      %r6,-10000\(%r9\)
+.*:    eb 61 98 f0 fd e1 [     ]*stocfho       %r6,-10000\(%r9\)
+.*:    eb 62 98 f0 fd e1 [     ]*stocfhh       %r6,-10000\(%r9\)
+.*:    eb 62 98 f0 fd e1 [     ]*stocfhh       %r6,-10000\(%r9\)
+.*:    eb 63 98 f0 fd e1 [     ]*stocfhnle     %r6,-10000\(%r9\)
+.*:    eb 64 98 f0 fd e1 [     ]*stocfhl       %r6,-10000\(%r9\)
+.*:    eb 64 98 f0 fd e1 [     ]*stocfhl       %r6,-10000\(%r9\)
+.*:    eb 65 98 f0 fd e1 [     ]*stocfhnhe     %r6,-10000\(%r9\)
+.*:    eb 66 98 f0 fd e1 [     ]*stocfhlh      %r6,-10000\(%r9\)
+.*:    eb 67 98 f0 fd e1 [     ]*stocfhne      %r6,-10000\(%r9\)
+.*:    eb 67 98 f0 fd e1 [     ]*stocfhne      %r6,-10000\(%r9\)
+.*:    eb 68 98 f0 fd e1 [     ]*stocfhe       %r6,-10000\(%r9\)
+.*:    eb 68 98 f0 fd e1 [     ]*stocfhe       %r6,-10000\(%r9\)
+.*:    eb 69 98 f0 fd e1 [     ]*stocfhnlh     %r6,-10000\(%r9\)
+.*:    eb 6a 98 f0 fd e1 [     ]*stocfhhe      %r6,-10000\(%r9\)
+.*:    eb 6b 98 f0 fd e1 [     ]*stocfhnl      %r6,-10000\(%r9\)
+.*:    eb 6b 98 f0 fd e1 [     ]*stocfhnl      %r6,-10000\(%r9\)
+.*:    eb 6c 98 f0 fd e1 [     ]*stocfhle      %r6,-10000\(%r9\)
+.*:    eb 6d 98 f0 fd e1 [     ]*stocfhnh      %r6,-10000\(%r9\)
+.*:    eb 6d 98 f0 fd e1 [     ]*stocfhnh      %r6,-10000\(%r9\)
+.*:    eb 6e 98 f0 fd e1 [     ]*stocfhno      %r6,-10000\(%r9\)
+.*:    e3 69 b8 f0 fd 3a [     ]*llzrgf        %r6,-10000\(%r9,%r11\)
+.*:    e3 69 b8 f0 fd 3b [     ]*lzrf  %r6,-10000\(%r9,%r11\)
+.*:    e3 69 b8 f0 fd 2a [     ]*lzrg  %r6,-10000\(%r9,%r11\)
+.*:    b9 ec 00 69 [   ]*ppno  %r6,%r9
diff --git a/gas/testsuite/gas/s390/zarch-z13.s 
b/gas/testsuite/gas/s390/zarch-z13.s
index 812e3e8..688020d 100644
--- a/gas/testsuite/gas/s390/zarch-z13.s
+++ b/gas/testsuite/gas/s390/zarch-z13.s
@@ -540,3 +540,137 @@ foo:
        vftci   %v15,%v17,4093,12,11
        vftcidb %v15,%v17,4093
        wftcidb %v15,%v17,4093
+       cdpt    %f3,4000(251,%r6),12
+       cxpt    %f1,4000(251,%r6),12
+       cpdt    %f3,4000(251,%r6),12
+       cpxt    %f1,4000(251,%r6),12
+       locfhr  %r6,%r9,13
+       locfhro %r6,%r9
+       locfhrh %r6,%r9
+       locfhrp %r6,%r9
+       locfhrnle       %r6,%r9
+       locfhrl %r6,%r9
+       locfhrm %r6,%r9
+       locfhrnhe       %r6,%r9
+       locfhrlh        %r6,%r9
+       locfhrne        %r6,%r9
+       locfhrnz        %r6,%r9
+       locfhre %r6,%r9
+       locfhrz %r6,%r9
+       locfhrnlh       %r6,%r9
+       locfhrhe        %r6,%r9
+       locfhrnl        %r6,%r9
+       locfhrnm        %r6,%r9
+       locfhrle        %r6,%r9
+       locfhrnh        %r6,%r9
+       locfhrnp        %r6,%r9
+       locfhrno        %r6,%r9
+       locfh   %r6,-10000(%r9),13
+       locfho  %r6,-10000(%r9)
+       locfhh  %r6,-10000(%r9)
+       locfhp  %r6,-10000(%r9)
+       locfhnle        %r6,-10000(%r9)
+       locfhl  %r6,-10000(%r9)
+       locfhm  %r6,-10000(%r9)
+       locfhnhe        %r6,-10000(%r9)
+       locfhlh %r6,-10000(%r9)
+       locfhne %r6,-10000(%r9)
+       locfhnz %r6,-10000(%r9)
+       locfhe  %r6,-10000(%r9)
+       locfhz  %r6,-10000(%r9)
+       locfhnlh        %r6,-10000(%r9)
+       locfhhe %r6,-10000(%r9)
+       locfhnl %r6,-10000(%r9)
+       locfhnm %r6,-10000(%r9)
+       locfhle %r6,-10000(%r9)
+       locfhnh %r6,-10000(%r9)
+       locfhnp %r6,-10000(%r9)
+       locfhno %r6,-10000(%r9)
+       lochi   %r6,-32765,12
+       lochio  %r6,-32765
+       lochih  %r6,-32765
+       lochip  %r6,-32765
+       lochinle        %r6,-32765
+       lochil  %r6,-32765
+       lochim  %r6,-32765
+       lochinhe        %r6,-32765
+       lochilh %r6,-32765
+       lochine %r6,-32765
+       lochinz %r6,-32765
+       lochie  %r6,-32765
+       lochiz  %r6,-32765
+       lochinlh        %r6,-32765
+       lochihe %r6,-32765
+       lochinl %r6,-32765
+       lochinm %r6,-32765
+       lochile %r6,-32765
+       lochinh %r6,-32765
+       lochinp %r6,-32765
+       lochino %r6,-32765
+       locghi  %r6,-32765,12
+       locghio %r6,-32765
+       locghih %r6,-32765
+       locghip %r6,-32765
+       locghinle       %r6,-32765
+       locghil %r6,-32765
+       locghim %r6,-32765
+       locghinhe       %r6,-32765
+       locghilh        %r6,-32765
+       locghine        %r6,-32765
+       locghinz        %r6,-32765
+       locghie %r6,-32765
+       locghiz %r6,-32765
+       locghinlh       %r6,-32765
+       locghihe        %r6,-32765
+       locghinl        %r6,-32765
+       locghinm        %r6,-32765
+       locghile        %r6,-32765
+       locghinh        %r6,-32765
+       locghinp        %r6,-32765
+       locghino        %r6,-32765
+       lochhi  %r6,-32765,12
+       lochhio %r6,-32765
+       lochhih %r6,-32765
+       lochhip %r6,-32765
+       lochhinle       %r6,-32765
+       lochhil %r6,-32765
+       lochhim %r6,-32765
+       lochhinhe       %r6,-32765
+       lochhilh        %r6,-32765
+       lochhine        %r6,-32765
+       lochhinz        %r6,-32765
+       lochhie %r6,-32765
+       lochhiz %r6,-32765
+       lochhinlh       %r6,-32765
+       lochhihe        %r6,-32765
+       lochhinl        %r6,-32765
+       lochhinm        %r6,-32765
+       lochhile        %r6,-32765
+       lochhinh        %r6,-32765
+       lochhinp        %r6,-32765
+       lochhino        %r6,-32765
+       stocfh  %r6,-10000(%r9),13
+       stocfho %r6,-10000(%r9)
+       stocfhh %r6,-10000(%r9)
+       stocfhp %r6,-10000(%r9)
+       stocfhnle       %r6,-10000(%r9)
+       stocfhl %r6,-10000(%r9)
+       stocfhm %r6,-10000(%r9)
+       stocfhnhe       %r6,-10000(%r9)
+       stocfhlh        %r6,-10000(%r9)
+       stocfhne        %r6,-10000(%r9)
+       stocfhnz        %r6,-10000(%r9)
+       stocfhe %r6,-10000(%r9)
+       stocfhz %r6,-10000(%r9)
+       stocfhnlh       %r6,-10000(%r9)
+       stocfhhe        %r6,-10000(%r9)
+       stocfhnl        %r6,-10000(%r9)
+       stocfhnm        %r6,-10000(%r9)
+       stocfhle        %r6,-10000(%r9)
+       stocfhnh        %r6,-10000(%r9)
+       stocfhnp        %r6,-10000(%r9)
+       stocfhno        %r6,-10000(%r9)
+       llzrgf  %r6,-10000(%r9,%r11)
+       lzrf    %r6,-10000(%r9,%r11)
+       lzrg    %r6,-10000(%r9,%r11)
+       ppno    %r6,%r9
diff --git a/opcodes/s390-opc.c b/opcodes/s390-opc.c
index ca82ce5..6f66fd8 100644
--- a/opcodes/s390-opc.c
+++ b/opcodes/s390-opc.c
@@ -311,6 +311,7 @@ const struct s390_operand s390_operands[] =
 #define INSTR_RIE_R0I0     6, { R_8,I16_16,0,0,0,0 }             /* e.g. citne 
*/
 #define INSTR_RIE_R0UU     6, { R_8,U16_16,U4_32,0,0,0 }         /* e.g. clfit 
*/
 #define INSTR_RIE_R0U0     6, { R_8,U16_16,0,0,0,0 }             /* e.g. 
clfitne */
+#define INSTR_RIE_RUI0     6, { R_8,I16_16,U4_12,0,0,0 }         /* e.g. lochi 
*/
 #define INSTR_RIE_RRUUU    6, { R_8,R_12,U8_16,U8_24,U8_32,0 }   /* e.g. rnsbg 
*/
 #define INSTR_RIL_0P       6, { J32_16,0,0,0,0 }                 /* e.g. jg    
*/
 #define INSTR_RIL_RP       6, { R_8,J32_16,0,0,0,0 }             /* e.g. brasl 
*/
@@ -515,6 +516,7 @@ const struct s390_operand s390_operands[] =
 #define MASK_RIE_R0I0     { 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff }
 #define MASK_RIE_R0UU     { 0xff, 0x0f, 0x00, 0x00, 0x0f, 0xff }
 #define MASK_RIE_R0U0     { 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff }
+#define MASK_RIE_RUI0     { 0xff, 0x00, 0x00, 0x00, 0xff, 0xff }
 #define MASK_RIE_RRUUU    { 0xff, 0x00, 0x00, 0x00, 0x00, 0xff }
 #define MASK_RIL_0P       { 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 }
 #define MASK_RIL_RP       { 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00 }
diff --git a/opcodes/s390-opc.txt b/opcodes/s390-opc.txt
index 2a5e1dd..3429494 100644
--- a/opcodes/s390-opc.txt
+++ b/opcodes/s390-opc.txt
@@ -1656,3 +1656,26 @@ e700000830e2 wfsdb VRR_VVV "vector fp subtract" z13 zarch
 e7000000004a vftci VRI_VVUUU "vector fp test data class immediate" z13 zarch
 e7000000304a vftcidb VRI_VVU2 "vector fp test data class immediate" z13 zarch
 e7000008304a wftcidb VRI_VVU2 "vector fp test data class immediate" z13 zarch
+
+ed00000000ae cdpt RSL_LRDFU "convert from packed to long dfp" z13 zarch
+ed00000000af cxpt RSL_LRDFEU "convert from packed to extended dfp" z13 zarch
+ed00000000ac cpdt RSL_LRDFU "convert from long dfp to packed" z13 zarch
+ed00000000ad cpxt RSL_LRDFEU "convert from extended dfp to packed" z13 zarch
+
+b9e0 locfhr RRF_U0RR "load high on condition from gpr" z13 zarch
+b9e000000000 locfhr*16 RRF_00RR "load high on condition from gpr" z13 zarch
+eb00000000e0 locfh RSY_RURD2 "load high on condition from memory" z13 zarch
+eb00000000e0 locfh*12 RSY_R0RD "load high on condition from memory" z13 zarch
+ec0000000042 lochi RIE_RUI0 "load halfword immediate on condition into 32 bit 
gpr" z13 zarch
+ec0000000042 lochi*12 RIE_R0I0 "load halfword immediate on condition into 32 
bit gpr" z13 zarch
+ec0000000046 locghi RIE_RUI0 "load halfword immediate on condition into 64 bit 
gpr" z13 zarch
+ec0000000046 locghi*12 RIE_R0I0 "load halfword immediate on condition into 64 
bit gpr" z13 zarch
+ec000000004e lochhi RIE_RUI0 "load halfword high immediate on condition" z13 
zarch
+ec000000004e lochhi*12 RIE_R0I0 "load halfword high immediate on condition" 
z13 zarch
+eb00000000e1 stocfh RSY_RURD2 "store high on condition" z13 zarch
+eb00000000e1 stocfh*12 RSY_R0RD "store high on condition" z13 zarch
+
+e3000000003a llzrgf RXY_RRRD "load logical and zero rightmost bytes 32->64" 
z13 zarch
+e3000000003b lzrf RXY_RRRD "load and zero rightmost byte 32->32" z13 zarch
+e3000000002a lzrg RXY_RRRD "load and zero rightmost byte 64->64" z13 zarch
+b9ec ppno RRE_RR "perform pseudorandom number operation" z13 zarch
-- 
2.3.0

++++++ 0004-S-390-Fixes-for-z13-instructions.patch ++++++
>From 29983261245edabe68ab379d8e8f7691de467a57 Mon Sep 17 00:00:00 2001
From: Andreas Krebbel <kreb...@linux.vnet.ibm.com>
Date: Mon, 27 Apr 2015 10:29:16 +0200
Subject: [PATCH 4/5] S/390: Fixes for z13 instructions.

opcodes/
        * s390-opc.c: New instruction type VV0UU2.
        * s390-opc.txt: Fix instruction types for VFCE, VLDE, VFSQ, WFK,
        and WFC.

gas/testsuite/
        * gas/s390/zarch-z13.d: Fix tests for VFCE, VLDE, VFSQ, WFK, and
        WFC.
        * gas/s390/zarch-z13.s: Likewise.

# Conflicts:
#       gas/testsuite/ChangeLog
#       opcodes/ChangeLog
---
 gas/testsuite/gas/s390/zarch-z13.d | 10 +++++-----
 gas/testsuite/gas/s390/zarch-z13.s |  2 +-
 opcodes/s390-opc.c                 |  2 ++
 opcodes/s390-opc.txt               | 10 +++++-----
 4 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/gas/testsuite/gas/s390/zarch-z13.d 
b/gas/testsuite/gas/s390/zarch-z13.d
index b2e010d..66808d6 100644
--- a/gas/testsuite/gas/s390/zarch-z13.d
+++ b/gas/testsuite/gas/s390/zarch-z13.d
@@ -476,11 +476,11 @@ Disassembly of section .text:
 .*:    e7 f1 40 0c d6 e3 [     ]*vfa   %v15,%v17,%v20,13,12
 .*:    e7 f1 40 00 36 e3 [     ]*vfadb %v15,%v17,%v20
 .*:    e7 f1 40 08 36 e3 [     ]*wfadb %v15,%v17,%v20
-.*:    e7 f1 00 cd 04 cb [     ]*wfc   %v15,%v17,13,12
+.*:    e7 f1 00 0c d4 cb [     ]*wfc   %v15,%v17,13,12
 .*:    e7 f1 00 00 34 cb [     ]*wfcdb %v15,%v17
-.*:    e7 f1 00 cd 04 ca [     ]*wfk   %v15,%v17,13,12
+.*:    e7 f1 00 0c d4 ca [     ]*wfk   %v15,%v17,13,12
 .*:    e7 f1 00 00 34 ca [     ]*wfkdb %v15,%v17
-.*:    e7 f1 40 00 06 e8 [     ]*vfce  %v15,%v17,%v20
+.*:    e7 f1 40 bc d6 e8 [     ]*vfce  %v15,%v17,%v20,13,12,11
 .*:    e7 f1 40 00 36 e8 [     ]*vfcedb        %v15,%v17,%v20
 .*:    e7 f1 40 10 36 e8 [     ]*vfcedbs       %v15,%v17,%v20
 .*:    e7 f1 40 08 36 e8 [     ]*wfcedb        %v15,%v17,%v20
@@ -513,7 +513,7 @@ Disassembly of section .text:
 .*:    e7 f1 00 bc d4 c7 [     ]*vfi   %v15,%v17,13,12,11
 .*:    e7 f1 00 cd 34 c7 [     ]*wfidb %v15,%v17,5,12
 .*:    e7 f1 00 cd 34 c7 [     ]*wfidb %v15,%v17,5,12
-.*:    e7 f1 00 cd 04 c4 [     ]*vlde  %v15,%v17,13,12
+.*:    e7 f1 00 0c d4 c4 [     ]*vlde  %v15,%v17,13,12
 .*:    e7 f1 00 00 24 c4 [     ]*vldeb %v15,%v17
 .*:    e7 f1 00 08 24 c4 [     ]*wldeb %v15,%v17
 .*:    e7 f1 00 bc d4 c5 [     ]*vled  %v15,%v17,13,12,11
@@ -537,7 +537,7 @@ Disassembly of section .text:
 .*:    e7 f1 00 18 34 cc [     ]*wflndb        %v15,%v17
 .*:    e7 f1 00 20 34 cc [     ]*vflpdb        %v15,%v17
 .*:    e7 f1 00 28 34 cc [     ]*wflpdb        %v15,%v17
-.*:    e7 f1 00 cd 04 ce [     ]*vfsq  %v15,%v17,13,12
+.*:    e7 f1 00 0c d4 ce [     ]*vfsq  %v15,%v17,13,12
 .*:    e7 f1 00 00 34 ce [     ]*vfsqdb        %v15,%v17
 .*:    e7 f1 00 08 34 ce [     ]*wfsqdb        %v15,%v17
 .*:    e7 f1 40 0c d6 e2 [     ]*vfs   %v15,%v17,%v20,13,12
diff --git a/gas/testsuite/gas/s390/zarch-z13.s 
b/gas/testsuite/gas/s390/zarch-z13.s
index 688020d..c2964d8 100644
--- a/gas/testsuite/gas/s390/zarch-z13.s
+++ b/gas/testsuite/gas/s390/zarch-z13.s
@@ -474,7 +474,7 @@ foo:
        wfcdb   %v15,%v17
        wfk     %v15,%v17,13,12
        wfkdb   %v15,%v17
-       vfce    %v15,%v17,%v20
+       vfce    %v15,%v17,%v20,13,12,11
        vfcedb  %v15,%v17,%v20
        vfcedbs %v15,%v17,%v20
        wfcedb  %v15,%v17,%v20
diff --git a/opcodes/s390-opc.c b/opcodes/s390-opc.c
index 6f66fd8..9c557fa 100644
--- a/opcodes/s390-opc.c
+++ b/opcodes/s390-opc.c
@@ -484,6 +484,7 @@ const struct s390_operand s390_operands[] =
 #define INSTR_VRR_VV0U     6, { V_8,V_12,U4_32,0,0,0 }           /* e.g. vseg  
*/
 #define INSTR_VRR_VV0U2    6, { V_8,V_12,U4_24,0,0,0 }           /* e.g. 
vistrb*/
 #define INSTR_VRR_VV0UU    6, { V_8,V_12,U4_28,U4_24,0,0 }       /* e.g. vcdgb 
*/
+#define INSTR_VRR_VV0UU2   6, { V_8,V_12,U4_32,U4_28,0,0 }       /* e.g. wfc */
 #define INSTR_VRR_VV0UU8   6, { V_8,V_12,U4_OR8_28,U4_24,0,0 }   /* e.g. wcdgb 
*/
 #define INSTR_VRR_VV       6, { V_8,V_12,0,0,0,0 }               /* e.g. vsegb 
*/
 #define INSTR_VRR_VVVUU0V  6, { V_8,V_12,V_16,V_32,U4_20,U4_24 } /* e.g. vstrc 
*/
@@ -690,6 +691,7 @@ const struct s390_operand s390_operands[] =
 #define MASK_VRR_VV0U     { 0xff, 0x00, 0xff, 0xff, 0x00, 0xff }
 #define MASK_VRR_VV0U2    { 0xff, 0x00, 0xff, 0x0f, 0xf0, 0xff }
 #define MASK_VRR_VV0UU    { 0xff, 0x00, 0xff, 0x00, 0xf0, 0xff }
+#define MASK_VRR_VV0UU2   { 0xff, 0x00, 0xff, 0xf0, 0x00, 0xff }
 #define MASK_VRR_VV0UU8   { 0xff, 0x00, 0xff, 0x08, 0xf0, 0xff }
 #define MASK_VRR_VV       { 0xff, 0x00, 0xff, 0xff, 0xf0, 0xff }
 #define MASK_VRR_VVVUU0V  { 0xff, 0x00, 0x00, 0x0f, 0x00, 0xff }
diff --git a/opcodes/s390-opc.txt b/opcodes/s390-opc.txt
index 3429494..b86da96 100644
--- a/opcodes/s390-opc.txt
+++ b/opcodes/s390-opc.txt
@@ -1586,11 +1586,11 @@ e7000230008a vstrczfs VRR_VVVU0VB3 "vector string range 
compare word" z13 zarch
 e700000000e3 vfa VRR_VVV0UU "vector fp add" z13 zarch
 e700000030e3 vfadb VRR_VVV "vector fp add" z13 zarch
 e700000830e3 wfadb VRR_VVV "vector fp add" z13 zarch
-e700000000cb wfc VRR_VV0UU "vector fp compare scalar" z13 zarch
+e700000000cb wfc VRR_VV0UU2 "vector fp compare scalar" z13 zarch
 e700000030cb wfcdb VRR_VV "vector fp compare scalar" z13 zarch
-e700000000ca wfk VRR_VV0UU "vector fp compare and signal scalar" z13 zarch
+e700000000ca wfk VRR_VV0UU2 "vector fp compare and signal scalar" z13 zarch
 e700000030ca wfkdb VRR_VV "vector fp compare and signal scalar" z13 zarch
-e700000000e8 vfce VRR_VVV "vector fp compare equal" z13 zarch
+e700000000e8 vfce VRR_VVV0UUU "vector fp compare equal" z13 zarch
 e700000030e8 vfcedb VRR_VVV "vector fp compare equal" z13 zarch
 e700001030e8 vfcedbs VRR_VVV "vector fp compare equal" z13 zarch
 e700000830e8 wfcedb VRR_VVV "vector fp compare equal" z13 zarch
@@ -1623,7 +1623,7 @@ e700000830e5 wfddb VRR_VVV "vector fp divide" z13 zarch
 e700000000c7 vfi VRR_VV0UUU "vector load fp integer" z13 zarch
 e700000030c7 vfidb VRR_VV0UU "vector load fp integer" z13 zarch
 e700000830c7 wfidb VRR_VV0UU8 "vector load fp integer" z13 zarch
-e700000000c4 vlde VRR_VV0UU "vector fp load lengthened" z13 zarch
+e700000000c4 vlde VRR_VV0UU2 "vector fp load lengthened" z13 zarch
 e700000020c4 vldeb VRR_VV "vector fp load lengthened" z13 zarch
 e700000820c4 wldeb VRR_VV "vector fp load lengthened" z13 zarch
 e700000000c5 vled VRR_VV0UUU "vector fp load rounded" z13 zarch
@@ -1647,7 +1647,7 @@ e700001030cc vflndb VRR_VV "vector fp perform sign 
operation" z13 zarch
 e700001830cc wflndb VRR_VV "vector fp perform sign operation" z13 zarch
 e700002030cc vflpdb VRR_VV "vector fp perform sign operation" z13 zarch
 e700002830cc wflpdb VRR_VV "vector fp perform sign operation" z13 zarch
-e700000000ce vfsq VRR_VV0UU "vector fp square root" z13 zarch
+e700000000ce vfsq VRR_VV0UU2 "vector fp square root" z13 zarch
 e700000030ce vfsqdb VRR_VV "vector fp square root" z13 zarch
 e700000830ce wfsqdb VRR_VV "vector fp square root" z13 zarch
 e700000000e2 vfs VRR_VVV0UU "vector fp subtract" z13 zarch
-- 
2.3.0

++++++ 0005-S-390-z13-use-GNU-attribute-to-indicate-vector-ABI.patch ++++++
>From d77ae458893b48e4e4ad5aa74a94023dff4ec4e1 Mon Sep 17 00:00:00 2001
From: Andreas Krebbel <kreb...@linux.vnet.ibm.com>
Date: Mon, 27 Apr 2015 10:32:23 +0200
Subject: [PATCH 5/5] S/390: z13 use GNU attribute to indicate vector ABI

bfd/
        * elf-s390-common.c (elf_s390_merge_obj_attributes): New function.
        * elf32-s390.c (elf32_s390_merge_private_bfd_data): Call
        elf_s390_merge_obj_attributes.
        * elf64-s390.c (elf64_s390_merge_private_bfd_data): New function.

binutils/
        * readelf.c (display_s390_gnu_attribute): New function.
        (process_s390_specific): New function.
        (process_arch_specific): Call process_s390_specific.

gas/
        * doc/as.texinfo: Document Tag_GNU_S390_ABI_Vector.

include/elf/
        * s390.h: Define Tag_GNU_S390_ABI_Vector.

# Conflicts:
#       bfd/ChangeLog
#       binutils/ChangeLog
#       gas/testsuite/ChangeLog
#       include/elf/ChangeLog

# Conflicts:
#       bfd/elf-s390-common.c
---
 bfd/elf-s390-common.c | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++
 bfd/elf32-s390.c      |  9 ++++++++
 bfd/elf64-s390.c      | 18 +++++++++++++++-
 binutils/readelf.c    | 46 ++++++++++++++++++++++++++++++++++++++++
 gas/doc/as.texinfo    | 16 ++++++++++++++
 include/elf/s390.h    | 15 +++++++++++--
 6 files changed, 159 insertions(+), 3 deletions(-)

Index: binutils-2.25.0/bfd/elf-s390-common.c
===================================================================
--- binutils-2.25.0.orig/bfd/elf-s390-common.c  2015-07-09 16:44:50.000000000 
+0200
+++ binutils-2.25.0/bfd/elf-s390-common.c       2015-07-09 16:44:51.000000000 
+0200
@@ -254,3 +254,61 @@ elf_s390_elf_sort_relocs_p (asection *se
 {
   return (sec->flags & SEC_CODE) == 0;
 }
+
+/* Merge object attributes from IBFD into OBFD.  Raise an error if
+   there are conflicting attributes.  */
+static bfd_boolean
+elf_s390_merge_obj_attributes (bfd *ibfd, bfd *obfd)
+{
+  obj_attribute *in_attr, *in_attrs;
+  obj_attribute *out_attr, *out_attrs;
+
+  if (!elf_known_obj_attributes_proc (obfd)[0].i)
+    {
+      /* This is the first object.  Copy the attributes.  */
+      _bfd_elf_copy_obj_attributes (ibfd, obfd);
+
+      /* Use the Tag_null value to indicate the attributes have been
+        initialized.  */
+      elf_known_obj_attributes_proc (obfd)[0].i = 1;
+
+      return TRUE;
+    }
+
+  in_attrs = elf_known_obj_attributes (ibfd)[OBJ_ATTR_GNU];
+  out_attrs = elf_known_obj_attributes (obfd)[OBJ_ATTR_GNU];
+
+  /* Check for conflicting Tag_GNU_S390_ABI_Vector attributes and
+     merge non-conflicting ones.  */
+  in_attr = &in_attrs[Tag_GNU_S390_ABI_Vector];
+  out_attr = &out_attrs[Tag_GNU_S390_ABI_Vector];
+
+  if (in_attr->i > 2)
+    _bfd_error_handler
+      (_("Warning: %B uses unknown vector ABI %d"), ibfd,
+       in_attr->i);
+  else if (out_attr->i > 2)
+    _bfd_error_handler
+      (_("Warning: %B uses unknown vector ABI %d"), obfd,
+       out_attr->i);
+  else if (in_attr->i != out_attr->i)
+    {
+      out_attr->type = ATTR_TYPE_FLAG_INT_VAL;
+
+      if (in_attr->i && out_attr->i)
+       {
+         const char abi_str[3][9] = { "none", "software", "hardware" };
+
+         _bfd_error_handler
+           (_("Warning: %B uses vector %s ABI, %B uses %s ABI"),
+            ibfd, obfd, abi_str[in_attr->i], abi_str[out_attr->i]);
+       }
+      if (in_attr->i > out_attr->i)
+       out_attr->i = in_attr->i;
+    }
+
+  /* Merge Tag_compatibility attributes and any common GNU ones.  */
+  _bfd_elf_merge_object_attributes (ibfd, obfd);
+
+  return TRUE;
+}
Index: binutils-2.25.0/bfd/elf32-s390.c
===================================================================
--- binutils-2.25.0.orig/bfd/elf32-s390.c       2015-07-09 16:44:50.000000000 
+0200
+++ binutils-2.25.0/bfd/elf32-s390.c    2015-07-09 16:44:51.000000000 +0200
@@ -4001,9 +4001,18 @@ elf_s390_plt_sym_val (bfd_vma i, const a
   return plt->vma + PLT_FIRST_ENTRY_SIZE + i * PLT_ENTRY_SIZE;
 }
 
+/* Merge backend specific data from an object file to the output
+   object file when linking.  */
+
 static bfd_boolean
 elf32_s390_merge_private_bfd_data (bfd *ibfd, bfd *obfd)
 {
+  if (!is_s390_elf (ibfd) || !is_s390_elf (obfd))
+    return TRUE;
+
+  if (!elf_s390_merge_obj_attributes (ibfd, obfd))
+    return FALSE;
+
   elf_elfheader (obfd)->e_flags |= elf_elfheader (ibfd)->e_flags;
   return TRUE;
 }
Index: binutils-2.25.0/bfd/elf64-s390.c
===================================================================
--- binutils-2.25.0.orig/bfd/elf64-s390.c       2015-07-09 16:44:50.000000000 
+0200
+++ binutils-2.25.0/bfd/elf64-s390.c    2015-07-09 16:44:51.000000000 +0200
@@ -3766,6 +3766,21 @@ elf_s390_plt_sym_val (bfd_vma i, const a
   return plt->vma + PLT_FIRST_ENTRY_SIZE + i * PLT_ENTRY_SIZE;
 }
 
+/* Merge backend specific data from an object file to the output
+   object file when linking.  */
+
+static bfd_boolean
+elf64_s390_merge_private_bfd_data (bfd *ibfd, bfd *obfd)
+{
+  if (!is_s390_elf (ibfd) || !is_s390_elf (obfd))
+    return TRUE;
+
+  if (!elf_s390_merge_obj_attributes (ibfd, obfd))
+    return FALSE;
+
+  return TRUE;
+}
+
 /* Why was the hash table entry size definition changed from
    ARCH_SIZE/8 to 4? This breaks the 64 bit dynamic linker and
    this is the only reason for the s390_elf64_size_info structure.  */
@@ -3824,7 +3839,8 @@ const struct elf_size_info s390_elf64_si
 #define bfd_elf64_bfd_is_local_label_name     elf_s390_is_local_label_name
 #define bfd_elf64_bfd_link_hash_table_create  elf_s390_link_hash_table_create
 #define bfd_elf64_bfd_reloc_type_lookup              elf_s390_reloc_type_lookup
-#define bfd_elf64_bfd_reloc_name_lookup elf_s390_reloc_name_lookup
+#define bfd_elf64_bfd_reloc_name_lookup       elf_s390_reloc_name_lookup
+#define bfd_elf64_bfd_merge_private_bfd_data  elf64_s390_merge_private_bfd_data
 
 #define elf_backend_adjust_dynamic_symbol     elf_s390_adjust_dynamic_symbol
 #define elf_backend_check_relocs             elf_s390_check_relocs
Index: binutils-2.25.0/binutils/readelf.c
===================================================================
--- binutils-2.25.0.orig/binutils/readelf.c     2015-07-09 16:44:50.000000000 
+0200
+++ binutils-2.25.0/binutils/readelf.c  2015-07-09 16:44:51.000000000 +0200
@@ -12462,6 +12462,41 @@ display_power_gnu_attribute (unsigned ch
   return display_tag_value (tag & 1, p, end);
 }
 
+static unsigned char *
+display_s390_gnu_attribute (unsigned char * p,
+                           int tag,
+                           const unsigned char * const end)
+{
+  unsigned int len;
+  int val;
+
+  if (tag == Tag_GNU_S390_ABI_Vector)
+    {
+      val = read_uleb128 (p, &len, end);
+      p += len;
+      printf ("  Tag_GNU_S390_ABI_Vector: ");
+
+      switch (val)
+       {
+       case 0:
+         printf (_("any\n"));
+         break;
+       case 1:
+         printf (_("software\n"));
+         break;
+       case 2:
+         printf (_("hardware\n"));
+         break;
+       default:
+         printf ("??? (%d)\n", val);
+         break;
+       }
+      return p;
+   }
+
+  return display_tag_value (tag & 1, p, end);
+}
+
 static void
 display_sparc_hwcaps (int mask)
 {
@@ -13233,6 +13268,13 @@ process_power_specific (FILE * file)
 }
 
 static int
+process_s390_specific (FILE * file)
+{
+  return process_attributes (file, NULL, SHT_GNU_ATTRIBUTES, NULL,
+                            display_s390_gnu_attribute);
+}
+
+static int
 process_sparc_specific (FILE * file)
 {
   return process_attributes (file, NULL, SHT_GNU_ATTRIBUTES, NULL,
@@ -15046,6 +15088,10 @@ process_arch_specific (FILE * file)
     case EM_PPC:
       return process_power_specific (file);
       break;
+    case EM_S390:
+    case EM_S390_OLD:
+      return process_s390_specific (file);
+      break;
     case EM_SPARC:
     case EM_SPARC32PLUS:
     case EM_SPARCV9:
Index: binutils-2.25.0/gas/doc/as.texinfo
===================================================================
--- binutils-2.25.0.orig/gas/doc/as.texinfo     2015-07-09 16:44:51.000000000 
+0200
+++ binutils-2.25.0/gas/doc/as.texinfo  2015-07-09 16:44:51.000000000 +0200
@@ -7086,6 +7086,22 @@ The vector ABI used by this object file.
 @end itemize
 @end table
 
+@subsection IBM z Systems Attributes
+
+@table @r
+@item Tag_GNU_S390_ABI_Vector (8)
+The vector ABI used by this object file.  The value will be:
+
+@itemize @bullet
+@item
+0 for files not affected by the vector ABI.
+@item
+1 for files using software vector ABI.
+@item
+2 for files using hardware vector ABI.
+@end itemize
+@end table
+
 @node Defining New Object Attributes
 @section Defining New Object Attributes
 
Index: binutils-2.25.0/include/elf/s390.h
===================================================================
--- binutils-2.25.0.orig/include/elf/s390.h     2015-01-15 09:57:57.000000000 
+0100
+++ binutils-2.25.0/include/elf/s390.h  2015-07-09 16:44:51.000000000 +0200
@@ -129,6 +129,17 @@ START_RELOC_NUMBERS (elf_s390_reloc_type
     RELOC_NUMBER (R_390_GNU_VTENTRY, 251)
 END_RELOC_NUMBERS (R_390_max)
 
-#endif /* _ELF_390_H */
+/* Object attribute tags.  */
+enum
+{
+  /* 0-3 are generic. */
+  /* 4 is reserved for the FP ABI. */
 
+  /* Vector ABI:
+     0 = not affected by the vector ABI, or not tagged.
+     1 = software vector ABI being used
+     2 = hardware vector ABI being used.  */
+  Tag_GNU_S390_ABI_Vector = 8,
+};
 
+#endif /* _ELF_390_H */
++++++ binutils-2.25-branch.diff.gz ++++++
++++ 31989 lines (skipped)

++++++ binutils-fix--dynamic-list.patch ++++++
>From e9c1bdad269c0c3352eebcc9481ed65144001b0b Mon Sep 17 00:00:00 2001
From: Cary Coutant <ccout...@google.com>
Date: Mon, 16 Feb 2015 22:15:12 -0800
Subject: [PATCH] Fix --dynamic-list so that symbols not in the list are still
 exported.

In PR 13577, the complaint was that -Bsymbolic was overriding the binding
behavior for symbols listed in the --dynamic-list by setting the DT_SYMBOLIC
tag in the dynamic table. In reading the Gnu ld manual, I decided that
--dynamic-list should be mutually exclusive of -Bsymbolic, and modified
gold so that --dynamic-list would treat symbols listed as preemptible,
and all other symbols as internally bound. I was wrong.

PR 16992 shows that with --dynamic-list (and not -Bsymbolic), a symbol
not listed in the dynamic list is being internally bound within the
shared library, but because it's still in the dynamic symbol table, we
expose it to a COPY relocation, and things go really bad from there.

(I can reproduce the same failure, simply by turning on -Bsymbolic-functions
with the Gnu linker. Even though the symbol is bound internally, it's
still exported to the dynamic symbol table, and is exposed to a COPY
relocation.)

I've backed out part of the fix for PR 13577, and -Bsymbolic (or
-Bsymbolic-functions) can now be used with --dynamic-list, but if the
two are used together, we do not set DT_SYMBOLIC or DF_SYMBOLIC
(this matches Gnu ld behavior). We now treat symbols listed in the
dynamic list as premptible, but we do not automatically treat symbols
not listed there as non-premptible.

gold/
        PR gold/13577
        PR gold/16992
        * layout.cc (Layout::finish_dynamic_section): Don't set DT_SYMBOLIC or
        DF_SYMBOLIC if --dynamic-list option is used.
        * options.cc (General_options::finalize): --dynamic-list is not
        mutually exclusive with -Bsymbolic.
        * symtab.h (Symbol::is_preemptible): Don't exclude dynamic symbols not
        listed in --dynamic-list.
        * testsuite/Makefile.am (dynamic_list_lib2.so): Add
        -Bsymbolic-functions.
        * testsuite/Makefile.in: Regenerate.
---
 gold/layout.cc             |  3 ++-
 gold/options.cc            |  7 -------
 gold/symtab.h              |  6 ++----
 gold/testsuite/Makefile.am |  2 +-
 gold/testsuite/Makefile.in |  2 +-
 5 files changed, 6 insertions(+), 14 deletions(-)

diff --git a/gold/layout.cc b/gold/layout.cc
index bcdaac8..7836640 100644
--- a/gold/layout.cc
+++ b/gold/layout.cc
@@ -4873,7 +4873,8 @@ Layout::finish_dynamic_section(const Input_objects* 
input_objects,
     flags |= elfcpp::DF_STATIC_TLS;
   if (parameters->options().origin())
     flags |= elfcpp::DF_ORIGIN;
-  if (parameters->options().Bsymbolic())
+  if (parameters->options().Bsymbolic()
+      && !parameters->options().have_dynamic_list())
     {
       flags |= elfcpp::DF_SYMBOLIC;
       // Add DT_SYMBOLIC for compatibility with older loaders.
diff --git a/gold/options.cc b/gold/options.cc
index 7eb8f27..7f1f69e 100644
--- a/gold/options.cc
+++ b/gold/options.cc
@@ -1200,13 +1200,6 @@ General_options::finalize()
   // in the path, as appropriate.
   this->add_sysroot();
 
-  // --dynamic-list overrides -Bsymbolic and -Bsymbolic-functions.
-  if (this->have_dynamic_list())
-    {
-      this->set_Bsymbolic(false);
-      this->set_Bsymbolic_functions(false);
-    }
-
   // Now that we've normalized the options, check for contradictory ones.
   if (this->shared() && this->is_static())
     gold_fatal(_("-shared and -static are incompatible"));
diff --git a/gold/symtab.h b/gold/symtab.h
index aa0cb68..9413360 100644
--- a/gold/symtab.h
+++ b/gold/symtab.h
@@ -604,10 +604,8 @@ class Symbol
     if (parameters->options().in_dynamic_list(this->name()))
       return true;
 
-    // If the user used -Bsymbolic or provided a --dynamic-list script,
-    // then nothing (else) is preemptible.
-    if (parameters->options().Bsymbolic()
-        || parameters->options().have_dynamic_list())
+    // If the user used -Bsymbolic, then nothing (else) is preemptible.
+    if (parameters->options().Bsymbolic())
       return false;
 
     // If the user used -Bsymbolic-functions, then functions are not
diff --git a/gold/testsuite/Makefile.am b/gold/testsuite/Makefile.am
index f767c21..7b73f9d 100644
--- a/gold/testsuite/Makefile.am
+++ b/gold/testsuite/Makefile.am
@@ -1518,7 +1518,7 @@ dynamic_list_lib1.o: dynamic_list_lib1.cc
        $(CXXCOMPILE) -c -fpic -o $@ $<
 
 dynamic_list_lib2.so: gcctestdir/ld dynamic_list_lib2.o 
$(srcdir)/dynamic_list_2.t
-       $(CXXLINK) -Bgcctestdir/ -shared 
-Wl,--dynamic-list,$(srcdir)/dynamic_list_2.t dynamic_list_lib2.o
+       $(CXXLINK) -Bgcctestdir/ -shared -Wl,-Bsymbolic-functions 
-Wl,--dynamic-list,$(srcdir)/dynamic_list_2.t dynamic_list_lib2.o
 dynamic_list_lib2.o: dynamic_list_lib2.cc
        $(CXXCOMPILE) -c -fpic -o $@ $<
 
diff --git a/gold/testsuite/Makefile.in b/gold/testsuite/Makefile.in
index 217e472..b4ae3fd 100644
--- a/gold/testsuite/Makefile.in
+++ b/gold/testsuite/Makefile.in
@@ -5319,7 +5319,7 @@ uninstall-am:
 @GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXCOMPILE) -c -fpic -o $@ $<
 
 @GCC_TRUE@@NATIVE_LINKER_TRUE@dynamic_list_lib2.so: gcctestdir/ld 
dynamic_list_lib2.o $(srcdir)/dynamic_list_2.t
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXLINK) -Bgcctestdir/ -shared 
-Wl,--dynamic-list,$(srcdir)/dynamic_list_2.t dynamic_list_lib2.o
+@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXLINK) -Bgcctestdir/ -shared 
-Wl,-Bsymbolic-functions -Wl,--dynamic-list,$(srcdir)/dynamic_list_2.t 
dynamic_list_lib2.o
 @GCC_TRUE@@NATIVE_LINKER_TRUE@dynamic_list_lib2.o: dynamic_list_lib2.cc
 @GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXCOMPILE) -c -fpic -o $@ $<
 
-- 
1.9.4
++++++ pre_checkin.sh ++++++
--- /var/tmp/diff_new_pack.Y9aru5/_old  2015-08-21 07:34:46.000000000 +0200
+++ /var/tmp/diff_new_pack.Y9aru5/_new  2015-08-21 07:34:46.000000000 +0200
@@ -5,7 +5,7 @@
 rm -f cross-*-binutils.spec cross-*-binutils.changes
 
 # sh4 is stuck in the testsuite
-for arch in aarch64 hppa hppa64 arm i386 x86_64 s390 s390x ppc ppc64 ppc64le 
ia64 sparc sparc64 spu avr mips m68k epiphany; do 
+for arch in aarch64 hppa hppa64 arm i386 x86_64 s390 s390x ppc ppc64 ppc64le 
ia64 sparc sparc64 spu avr mips m68k epiphany rx; do 
 
    echo -n "Building package for $arch --> cross-$arch-binutils ..."
 


Reply via email to