From 823efa4f9c45181cce8ac011167470c2ee4a4994 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Date: Fri, 14 Jan 2022 20:52:08 +0400 Subject: [PATCH] Add ucrt64 target --- mingw-binutils.spec | 90 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 86 insertions(+), 4 deletions(-) diff --git a/mingw-binutils.spec b/mingw-binutils.spec index 6cd9c2f..8021943 100644 --- a/mingw-binutils.spec +++ b/mingw-binutils.spec @@ -1,8 +1,9 @@ %global run_testsuite 1 +%global mingw_build_ucrt64 1 Name: mingw-binutils Version: 2.37 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Cross-compiled version of binutils for Win32 and Win64 environments License: GPLv2+ and LGPLv2+ and GPLv3+ and LGPLv3+ @@ -129,8 +130,9 @@ BuildRequires: flex BuildRequires: bison BuildRequires: texinfo BuildRequires: zlib-devel -BuildRequires: mingw32-filesystem >= 102 -BuildRequires: mingw64-filesystem >= 102 +BuildRequires: mingw32-filesystem >= 133 +BuildRequires: mingw64-filesystem >= 133 +BuildRequires: ucrt64-filesystem >= 133 %if %{run_testsuite} BuildRequires: dejagnu BuildRequires: sharutils @@ -171,6 +173,17 @@ Requires: mingw64-filesystem >= 95 Cross compiled binutils (utilities like 'strip', 'as', 'ld') which understand Windows executables and DLLs. +%package -n ucrt64-binutils +Summary: Cross-compiled version of binutils for the Win64 environment +Requires: mingw-binutils-generic = %{version}-%{release} + +# NB: This must be left in. +Requires: ucrt64-filesystem >= 133 + +%description -n ucrt64-binutils +Cross compiled binutils (utilities like 'strip', 'as', 'ld') which +understand Windows executables and DLLs. + %prep %autosetup -p1 -n binutils-%{version} @@ -222,6 +235,24 @@ CFLAGS="%{optflags}" \ %make_build popd +mkdir build_ucrt64 +pushd build_ucrt64 +CFLAGS="%{optflags}" \ +../configure \ + --build=%_build --host=%_host \ + --target=%{ucrt64_target} \ + --disable-nls \ + --with-sysroot=%{ucrt64_sysroot} \ + --prefix=%{_prefix} \ + --bindir=%{_bindir} \ + --includedir=%{_includedir} \ + --libdir=%{_libdir} \ + --mandir=%{_mandir} \ + --infodir=%{_infodir} + +%make_build +popd + # Create multilib versions for the tools strip, objdump nm, and objcopy mkdir build_multilib pushd build_multilib @@ -229,7 +260,7 @@ CFLAGS="%{optflags}" \ ../configure \ --build=%_build --host=%_host \ --target=%{mingw64_target} \ - --enable-targets=%{mingw64_target},%{mingw32_target} \ + --enable-targets=%{mingw64_target},%{mingw32_target},%{ucrt64_target} \ --disable-nls \ --with-sysroot=%{mingw64_sysroot} \ --prefix=%{_prefix} \ @@ -274,6 +305,20 @@ pushd build_win64 uuencode binutils-%{mingw64_target}.tar.bz2 binutils-%{mingw64_target}.tar.bz2 rm -f binutils-%{mingw64_target}.tar.bz2 binutils-%{mingw64_target}-*.{sum,log} popd + +pushd build_ucrt64 + make -k check < /dev/null || : + echo ====================TESTING UCRT64 ========================= + cat {gas/testsuite/gas,ld/ld,binutils/binutils}.sum + echo ====================TESTING UCRT64 END===================== + for file in {gas/testsuite/gas,ld/ld,binutils/binutils}.{sum,log} + do + ln $file binutils-%{ucrt64_target}-$(basename $file) || : + done + tar cjf binutils-%{ucrt64_target}.tar.bz2 binutils-%{ucrt64_target}-*.{sum,log} + uuencode binutils-%{ucrt64_target}.tar.bz2 binutils-%{ucrt64_target}.tar.bz2 + rm -f binutils-%{ucrt64_target}.tar.bz2 binutils-%{ucrt64_target}-*.{sum,log} +popd %endif @@ -374,8 +419,45 @@ rm -rf %{buildroot}%{_mandir}/man1/* %{_prefix}/%{mingw64_target}/bin/strip %{_prefix}/%{mingw64_target}/lib/ldscripts +%files -n ucrt64-binutils +%{_bindir}/%{ucrt64_target}-addr2line +%{_bindir}/%{ucrt64_target}-ar +%{_bindir}/%{ucrt64_target}-as +%{_bindir}/%{ucrt64_target}-c++filt +%{_bindir}/%{ucrt64_target}-dlltool +%{_bindir}/%{ucrt64_target}-dllwrap +%{_bindir}/%{ucrt64_target}-elfedit +%{_bindir}/%{ucrt64_target}-gprof +%{_bindir}/%{ucrt64_target}-ld +%{_bindir}/%{ucrt64_target}-ld.bfd +%{_bindir}/%{ucrt64_target}-nm +%{_bindir}/%{ucrt64_target}-objcopy +%{_bindir}/%{ucrt64_target}-objdump +%{_bindir}/%{ucrt64_target}-ranlib +%{_bindir}/%{ucrt64_target}-readelf +%{_bindir}/%{ucrt64_target}-size +%{_bindir}/%{ucrt64_target}-strings +%{_bindir}/%{ucrt64_target}-strip +%{_bindir}/%{ucrt64_target}-windmc +%{_bindir}/%{ucrt64_target}-windres +%{_prefix}/%{ucrt64_target}/bin/ar +%{_prefix}/%{ucrt64_target}/bin/as +%{_prefix}/%{ucrt64_target}/bin/dlltool +%{_prefix}/%{ucrt64_target}/bin/ld +%{_prefix}/%{ucrt64_target}/bin/ld.bfd +%{_prefix}/%{ucrt64_target}/bin/nm +%{_prefix}/%{ucrt64_target}/bin/objcopy +%{_prefix}/%{ucrt64_target}/bin/objdump +%{_prefix}/%{ucrt64_target}/bin/ranlib +%{_prefix}/%{ucrt64_target}/bin/readelf +%{_prefix}/%{ucrt64_target}/bin/strip +%{_prefix}/%{ucrt64_target}/lib/ldscripts + %changelog +* Wed Feb 23 2022 Marc-André Lureau - 2.37-5 +- Add ucrt64 target. Related to rhbz#2055254. + * Thu Jan 20 2022 Fedora Release Engineering - 2.37-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild