%global run_testsuite 0 Name: cygwin-binutils Version: 2.46.0 Release: 2%{?dist} Summary: Binutils for cross-compiling to Cygwin environments License: GPLv2+ and LGPLv2+ and GPLv3+ and LGPLv3+ Group: Development/Libraries URL: https://www.gnu.org/software/binutils/ Source0: https://ftp.gnu.org/gnu/binutils/binutils-%{version}.tar.xz Patch1: binutils-2.45.1-cygwin-config-rpath.patch Patch101: 0001-WIP-fix-to-dll-relocations.patch Patch102: 0002-Add-error-messages-for-invalid-relocations.patch Patch103: 0003-aarch64-Fix-IMAGE_REL_ARM64_PAGEBASE_REL21-relocatio.patch Patch105: 0005-Add-aarch64-pc-cygwin-target.patch Patch106: 0006-Adjust-pdata-function-table-entries-sorting-for-AArc.patch Patch107: 0007-Define-unwinding-and-SEH-data-structures-for-aarch64.patch Patch108: 0008-Adjust-x64-SEH-implementation-for-AArch64.patch Patch109: 0009-Add-aarch64-specific-SEH-commands.patch Patch110: 0010-Write-SEH-records-to-pdata-xdata.patch Patch111: 0011-Apply-SEH-to-AArch64.patch Patch112: 0012-Fix-the-calculation-of-the-function-length.patch Patch114: 0014-Add-auto-import-support-to-AArch64-9.patch Patch115: 0015-Support-relocation-for-weak-references-4-1.patch Patch116: 0016-Fix-SEH-unwind-code-mapping-2.patch Patch118: 0018-Drop-pep-dll-aarch64-x86_64-.c.patch Patch1000: w32api-sysroot.patch Patch1001: binutils-textdomain.patch BuildRequires: gcc BuildRequires: gettext-devel BuildRequires: flex BuildRequires: bison BuildRequires: texinfo BuildRequires: zlib-devel BuildRequires: cygwin32-filesystem >= 7 BuildRequires: cygwin64-filesystem >= 7 BuildRequires: cygwin-aarch64-filesystem >= 151 %if %{run_testsuite} BuildRequires: dejagnu BuildRequires: sharutils %endif Provides: bundled(libiberty) %description Cross compiled binutils (utilities like 'strip', 'as', 'ld') which understand Cygwin executables and DLLs. %package -n cygwin-binutils-generic Summary: Utilities which are needed for all the Cygwin cross-toolchains %description -n cygwin-binutils-generic Utilities (like strip and objdump) which are needed for all the Cygwin cross-toolchains %package -n cygwin32-binutils Summary: Binutils for cross-compiling to the x86 Cygwin environment Requires: cygwin-binutils-generic = %{version}-%{release} Requires: cygwin32-filesystem >= 7 Provides: cygwin-binutils = %{version}-%{release} Obsoletes: cygwin-binutils < %{version}-%{release} %description -n cygwin32-binutils Cross compiling binutils (utilities like 'strip', 'as', 'ld') which understand Cygwin executables and DLLs. %package -n cygwin64-binutils Summary: Binutils for cross-compiling to the x86_64 Cygwin environment Requires: cygwin-binutils-generic = %{version}-%{release} Requires: cygwin64-filesystem >= 7 %description -n cygwin64-binutils Cross compiling binutils (utilities like 'strip', 'as', 'ld') which understand Cygwin executables and DLLs. %package -n cygwin-aarch64-binutils Summary: Binutils for cross-compiling to the aarch64 Cygwin environment Requires: cygwin-binutils-generic = %{version}-%{release} Requires: cygwin-aarch64-filesystem >= 151 %description -n cygwin-aarch64-binutils Cross compiling binutils (utilities like 'strip', 'as', 'ld') which understand Cygwin executables and DLLs. %prep %autosetup -n binutils-%{version} -p1 %build mkdir build_cyg32 pushd build_cyg32 CFLAGS="$RPM_OPT_FLAGS -Wno-error" \ ../configure \ --build=%_build --host=%_host \ --target=%{cygwin32_target} \ --with-sysroot=%{cygwin32_sysroot} \ --prefix=%{_prefix} \ --bindir=%{_bindir} \ --includedir=%{_includedir} \ --libdir=%{_libdir} \ --mandir=%{_mandir} \ --infodir=%{_infodir} \ --with-system-zlib \ --disable-gdb \ --disable-libdecnumber \ --disable-readline \ --disable-sim make all %{?_smp_mflags} popd mkdir build_cyg64 pushd build_cyg64 CFLAGS="$RPM_OPT_FLAGS -Wno-error" \ ../configure \ --build=%_build --host=%_host \ --target=%{cygwin64_target} \ --with-sysroot=%{cygwin64_sysroot} \ --prefix=%{_prefix} \ --bindir=%{_bindir} \ --includedir=%{_includedir} \ --libdir=%{_libdir} \ --mandir=%{_mandir} \ --infodir=%{_infodir} \ --with-system-zlib \ --disable-gdb \ --disable-libdecnumber \ --disable-readline \ --disable-sim make all %{?_smp_mflags} popd mkdir build_cygaarch64 pushd build_cygaarch64 CFLAGS="$RPM_OPT_FLAGS -Wno-error" \ ../configure \ --build=%_build --host=%_host \ --target=%{cygwin_aarch64_target} \ --with-sysroot=%{cygwin_aarch64_sysroot} \ --prefix=%{_prefix} \ --bindir=%{_bindir} \ --includedir=%{_includedir} \ --libdir=%{_libdir} \ --mandir=%{_mandir} \ --infodir=%{_infodir} \ --with-system-zlib \ --disable-gdb \ --disable-libdecnumber \ --disable-readline \ --disable-sim make all %{?_smp_mflags} popd # Create multilib versions for the tools strip, objdump and objcopy mkdir build_multilib pushd build_multilib CFLAGS="$RPM_OPT_FLAGS -Wno-error" \ ../configure \ --build=%_build --host=%_host \ --target=%{cygwin64_target} \ --enable-targets=%{cygwin64_target},%{cygwin32_target},%{cygwin_aarch64_target} \ --with-sysroot=%{cygwin64_sysroot} \ --prefix=%{_prefix} \ --bindir=%{_bindir} \ --includedir=%{_includedir} \ --libdir=%{_libdir} \ --mandir=%{_mandir} \ --infodir=%{_infodir} \ --with-system-zlib \ --disable-gdb \ --disable-libdecnumber \ --disable-readline \ --disable-sim make %{?_smp_mflags} popd %check %if !%{run_testsuite} echo ====================TESTSUITE DISABLED========================= %else pushd build_cyg32 make -k check < /dev/null || : echo ====================TESTING CYGWIN32 ========================= cat {gas/testsuite/gas,ld/ld,binutils/binutils}.sum echo ====================TESTING CYGWIN32 END===================== for file in {gas/testsuite/gas,ld/ld,binutils/binutils}.{sum,log} do ln $file binutils-%{cygwin32_target}-$(basename $file) || : done tar cjf binutils-%{cygwin32_target}.tar.bz2 binutils-%{cygwin32_target}-*.{sum,log} uuencode binutils-%{cygwin32_target}.tar.bz2 binutils-%{cygwin32_target}.tar.bz2 rm -f binutils-%{cygwin32_target}.tar.bz2 binutils-%{cygwin32_target}-*.{sum,log} popd pushd build_cyg64 make -k check < /dev/null || : echo ====================TESTING CYGWIN64 ========================= cat {gas/testsuite/gas,ld/ld,binutils/binutils}.sum echo ====================TESTING CYGWIN64 END===================== for file in {gas/testsuite/gas,ld/ld,binutils/binutils}.{sum,log} do ln $file binutils-%{cygwin64_target}-$(basename $file) || : done tar cjf binutils-%{cygwin64_target}.tar.bz2 binutils-%{cygwin64_target}-*.{sum,log} uuencode binutils-%{cygwin64_target}.tar.bz2 binutils-%{cygwin64_target}.tar.bz2 rm -f binutils-%{cygwin64_target}.tar.bz2 binutils-%{cygwin64_target}-*.{sum,log} popd %endif %install make -C build_cyg32 install DESTDIR=$RPM_BUILD_ROOT make -C build_cyg64 install DESTDIR=$RPM_BUILD_ROOT make -C build_cygaarch64 install DESTDIR=$RPM_BUILD_ROOT make -C build_multilib install DESTDIR=$RPM_BUILD_ROOT/multilib # These files conflict with ordinary binutils. rm -rf $RPM_BUILD_ROOT%{_infodir} rm -f $RPM_BUILD_ROOT%{_libdir}/bfd-plugins/libdep.* # Keep the multilib versions of the strip, objdump and objcopy commands # We need these for the RPM integration as these tools must be able to # both process all Cygwin binaries mv $RPM_BUILD_ROOT/multilib%{_bindir}/%{cygwin64_strip} $RPM_BUILD_ROOT%{_bindir}/%{cygwin_strip} mv $RPM_BUILD_ROOT/multilib%{_bindir}/%{cygwin64_objdump} $RPM_BUILD_ROOT%{_bindir}/%{cygwin_objdump} mv $RPM_BUILD_ROOT/multilib%{_bindir}/%{cygwin64_objcopy} $RPM_BUILD_ROOT%{_bindir}/%{cygwin_objcopy} rm -rf $RPM_BUILD_ROOT/multilib %find_lang cygwin-binutils %find_lang cygwin-bfd %find_lang cygwin-gas %find_lang cygwin-gprof %find_lang cygwin-ld %find_lang cygwin-opcodes cat cygwin-bfd.lang >> cygwin-binutils.lang cat cygwin-gas.lang >> cygwin-binutils.lang cat cygwin-gprof.lang >> cygwin-binutils.lang cat cygwin-ld.lang >> cygwin-binutils.lang cat cygwin-opcodes.lang >> cygwin-binutils.lang %files -n cygwin-binutils-generic -f cygwin-binutils.lang %doc COPYING %{_mandir}/man1/* %{_bindir}/%{cygwin_strip} %{_bindir}/%{cygwin_objdump} %{_bindir}/%{cygwin_objcopy} %files -n cygwin32-binutils %{_bindir}/%{cygwin32_target}-addr2line %{_bindir}/%{cygwin32_target}-ar %{_bindir}/%{cygwin32_target}-as %{_bindir}/%{cygwin32_target}-c++filt %{_bindir}/%{cygwin32_target}-dlltool %{_bindir}/%{cygwin32_target}-dllwrap %{_bindir}/%{cygwin32_target}-elfedit %{_bindir}/%{cygwin32_target}-gprof %{_bindir}/%{cygwin32_target}-ld %{_bindir}/%{cygwin32_target}-ld.bfd %{_bindir}/%{cygwin32_target}-nm %{_bindir}/%{cygwin32_target}-objcopy %{_bindir}/%{cygwin32_target}-objdump %{_bindir}/%{cygwin32_target}-ranlib %{_bindir}/%{cygwin32_target}-readelf %{_bindir}/%{cygwin32_target}-size %{_bindir}/%{cygwin32_target}-strings %{_bindir}/%{cygwin32_target}-strip %{_bindir}/%{cygwin32_target}-windmc %{_bindir}/%{cygwin32_target}-windres %{_prefix}/%{cygwin32_target}/bin/ar %{_prefix}/%{cygwin32_target}/bin/as %{_prefix}/%{cygwin32_target}/bin/dlltool %{_prefix}/%{cygwin32_target}/bin/ld %{_prefix}/%{cygwin32_target}/bin/ld.bfd %{_prefix}/%{cygwin32_target}/bin/nm %{_prefix}/%{cygwin32_target}/bin/objcopy %{_prefix}/%{cygwin32_target}/bin/objdump %{_prefix}/%{cygwin32_target}/bin/ranlib %{_prefix}/%{cygwin32_target}/bin/readelf %{_prefix}/%{cygwin32_target}/bin/strip %{_prefix}/%{cygwin32_target}/bin/windres %{_prefix}/%{cygwin32_target}/lib/ldscripts %files -n cygwin64-binutils %{_bindir}/%{cygwin64_target}-addr2line %{_bindir}/%{cygwin64_target}-ar %{_bindir}/%{cygwin64_target}-as %{_bindir}/%{cygwin64_target}-c++filt %{_bindir}/%{cygwin64_target}-dlltool %{_bindir}/%{cygwin64_target}-dllwrap %{_bindir}/%{cygwin64_target}-elfedit %{_bindir}/%{cygwin64_target}-gprof %{_bindir}/%{cygwin64_target}-ld %{_bindir}/%{cygwin64_target}-ld.bfd %{_bindir}/%{cygwin64_target}-nm %{_bindir}/%{cygwin64_target}-objcopy %{_bindir}/%{cygwin64_target}-objdump %{_bindir}/%{cygwin64_target}-ranlib %{_bindir}/%{cygwin64_target}-readelf %{_bindir}/%{cygwin64_target}-size %{_bindir}/%{cygwin64_target}-strings %{_bindir}/%{cygwin64_target}-strip %{_bindir}/%{cygwin64_target}-windmc %{_bindir}/%{cygwin64_target}-windres %{_prefix}/%{cygwin64_target}/bin/ar %{_prefix}/%{cygwin64_target}/bin/as %{_prefix}/%{cygwin64_target}/bin/dlltool %{_prefix}/%{cygwin64_target}/bin/ld %{_prefix}/%{cygwin64_target}/bin/ld.bfd %{_prefix}/%{cygwin64_target}/bin/nm %{_prefix}/%{cygwin64_target}/bin/objcopy %{_prefix}/%{cygwin64_target}/bin/objdump %{_prefix}/%{cygwin64_target}/bin/ranlib %{_prefix}/%{cygwin64_target}/bin/readelf %{_prefix}/%{cygwin64_target}/bin/strip %{_prefix}/%{cygwin64_target}/bin/windres %{_prefix}/%{cygwin64_target}/lib/ldscripts %files -n cygwin-aarch64-binutils %{_bindir}/%{cygwin_aarch64_target}-addr2line %{_bindir}/%{cygwin_aarch64_target}-ar %{_bindir}/%{cygwin_aarch64_target}-as %{_bindir}/%{cygwin_aarch64_target}-c++filt %{_bindir}/%{cygwin_aarch64_target}-dlltool %{_bindir}/%{cygwin_aarch64_target}-dllwrap %{_bindir}/%{cygwin_aarch64_target}-elfedit %{_bindir}/%{cygwin_aarch64_target}-gprof %{_bindir}/%{cygwin_aarch64_target}-ld %{_bindir}/%{cygwin_aarch64_target}-ld.bfd %{_bindir}/%{cygwin_aarch64_target}-nm %{_bindir}/%{cygwin_aarch64_target}-objcopy %{_bindir}/%{cygwin_aarch64_target}-objdump %{_bindir}/%{cygwin_aarch64_target}-ranlib %{_bindir}/%{cygwin_aarch64_target}-readelf %{_bindir}/%{cygwin_aarch64_target}-size %{_bindir}/%{cygwin_aarch64_target}-strings %{_bindir}/%{cygwin_aarch64_target}-strip %{_bindir}/%{cygwin_aarch64_target}-windmc %{_bindir}/%{cygwin_aarch64_target}-windres %{_prefix}/%{cygwin_aarch64_target}/bin/ar %{_prefix}/%{cygwin_aarch64_target}/bin/as %{_prefix}/%{cygwin_aarch64_target}/bin/dlltool %{_prefix}/%{cygwin_aarch64_target}/bin/ld %{_prefix}/%{cygwin_aarch64_target}/bin/ld.bfd %{_prefix}/%{cygwin_aarch64_target}/bin/nm %{_prefix}/%{cygwin_aarch64_target}/bin/objcopy %{_prefix}/%{cygwin_aarch64_target}/bin/objdump %{_prefix}/%{cygwin_aarch64_target}/bin/ranlib %{_prefix}/%{cygwin_aarch64_target}/bin/readelf %{_prefix}/%{cygwin_aarch64_target}/bin/strip %{_prefix}/%{cygwin_aarch64_target}/bin/windres %{_prefix}/%{cygwin_aarch64_target}/lib/ldscripts %changelog * Thu Aug 26 2021 Yaakov Selkowitz - 2.37-1 - new version * Wed Apr 01 2020 Yaakov Selkowitz - 2.34-1 - new version * Wed Dec 19 2018 Yaakov Selkowitz - 2.31.1-1 - new version * Wed Nov 15 2017 Yaakov Selkowitz - 2.29.1-1 - new version * Sun Mar 06 2016 Yaakov Selkowitz - 2.25.1-1 - new version * Mon Aug 11 2014 Yaakov Selkowitz - 2.24.51-3 - Patch ld to not export __dso_handle. * Tue Jun 10 2014 Yaakov Selkowitz - 2.24.51-2 - Updated snapshot to fix resource section alignment. * Wed Mar 26 2014 Yaakov Selkowitz - 2.24.51-1 - Updated snapshot with default manifest support. - Enable NLS. * Wed Jun 26 2013 Yaakov Selkowitz - 2.23.52-1 - Make package compliant with new Cygwin packaging scheme. - Add Cygwin 64bit support. - Add generic package containing tools which can used by both toolchains. * Thu Mar 28 2013 Yaakov Selkowitz - 2.23.51-2 - Fix w32api sysroot patch for 64bit BFD support. * Sun Mar 10 2013 Yaakov Selkowitz - 2.23.51-1 - Version bump. - Enable pei-x86-64 support so i686 tools can work properly on cyglsa64.dll. * Tue Mar 27 2012 Yaakov Selkowitz - 2.22.51-2 - Fix --enable-auto-image-base for latest Cygwin releases. * Sun Oct 23 2011 Yaakov Selkowitz - 2.22.51-1 - Version bump to match Cygwin distro. * Sun Jul 31 2011 Yaakov Selkowitz - 2.21.53-1 - Version bump to match Cygwin distro. * Sun Jul 10 2011 Yaakov Selkowitz - 2.21.1-1 - Version bump. * Thu May 26 2011 Yaakov Selkowitz - 2.21-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild * Mon Mar 14 2011 Yaakov Selkowitz - 2.21-2 - Accomodate w32api libs in sys-root/usr/lib/w32api. * Wed Feb 16 2011 Yaakov Selkowitz - 2.21-1 - Initial RPM release, largely based on mingw32-binutils.