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 ..."