Add ucrt64 target

This commit is contained in:
Marc-André Lureau 2022-01-14 20:52:08 +04:00
parent aed204136e
commit 823efa4f9c

View File

@ -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 <marcandre.lureau@redhat.com> - 2.37-5
- Add ucrt64 target. Related to rhbz#2055254.
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.37-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild