Added win64 support
This commit is contained in:
parent
258f92f109
commit
78a21954d1
@ -1,32 +1,60 @@
|
||||
%global mingw_build_win32 1
|
||||
%global mingw_build_win64 1
|
||||
%global run_testsuite 1
|
||||
|
||||
Name: mingw-binutils
|
||||
Version: 2.22.52
|
||||
Release: 2%{?dist}
|
||||
Summary: MinGW Windows binutils
|
||||
Release: 3%{?dist}
|
||||
Summary: Cross-compiled version of binutils for Win32 and Win64 environments
|
||||
|
||||
License: GPLv2+ and LGPLv2+ and GPLv3+ and LGPLv3+
|
||||
Group: Development/Libraries
|
||||
|
||||
URL: http://www.gnu.org/software/binutils/
|
||||
Source0: http://ftp.gnu.org/gnu/binutils/binutils-%{version}.tar.bz2
|
||||
Source0: ftp://sourceware.org/pub/binutils/snapshots/binutils-%{version}.tar.bz2
|
||||
|
||||
BuildRequires: flex
|
||||
BuildRequires: bison
|
||||
BuildRequires: texinfo
|
||||
BuildRequires: mingw32-filesystem >= 95
|
||||
BuildRequires: mingw64-filesystem >= 95
|
||||
%if %{run_testsuite}
|
||||
BuildRequires: dejagnu
|
||||
BuildRequires: sharutils
|
||||
%endif
|
||||
|
||||
|
||||
%description
|
||||
Cross compiled binutils (utilities like 'strip', 'as', 'ld') which
|
||||
understand Windows executables and DLLs.
|
||||
|
||||
%package -n mingw-binutils-generic
|
||||
Summary: Utilities which are needed for both the Win32 and Win64 toolchains
|
||||
|
||||
%description -n mingw-binutils-generic
|
||||
Utilities (like strip and objdump) which are needed for
|
||||
both the Win32 and Win64 toolchains
|
||||
|
||||
%package -n mingw32-binutils
|
||||
Summary: Cross-compiled version of binutils for the Win32 environment
|
||||
Requires: mingw-binutils-generic = %{version}-%{release}
|
||||
|
||||
# NB: This must be left in.
|
||||
Requires: mingw32-filesystem >= 95
|
||||
|
||||
|
||||
%description
|
||||
MinGW Windows binutils (utilities like 'strip', 'as', 'ld') which
|
||||
%description -n mingw32-binutils
|
||||
Cross compiled binutils (utilities like 'strip', 'as', 'ld') which
|
||||
understand Windows executables and DLLs.
|
||||
|
||||
%package -n mingw64-binutils
|
||||
Summary: Cross-compiled version of binutils for the Win64 environment
|
||||
Requires: mingw-binutils-generic = %{version}-%{release}
|
||||
|
||||
%package -n mingw32-binutils
|
||||
Summary: MinGW Windows binutils
|
||||
# NB: This must be left in.
|
||||
Requires: mingw64-filesystem >= 95
|
||||
|
||||
%description -n mingw32-binutils
|
||||
MinGW Windows binutils (utilities like 'strip', 'as', 'ld') which
|
||||
%description -n mingw64-binutils
|
||||
Cross compiled binutils (utilities like 'strip', 'as', 'ld') which
|
||||
understand Windows executables and DLLs.
|
||||
|
||||
|
||||
@ -35,8 +63,8 @@ understand Windows executables and DLLs.
|
||||
|
||||
|
||||
%build
|
||||
mkdir -p build
|
||||
cd build
|
||||
mkdir build_win32
|
||||
pushd build_win32
|
||||
CFLAGS="$RPM_OPT_FLAGS" \
|
||||
../configure \
|
||||
--build=%_build --host=%_host \
|
||||
@ -51,34 +79,182 @@ CFLAGS="$RPM_OPT_FLAGS" \
|
||||
--infodir=%{_infodir}
|
||||
|
||||
make all %{?_smp_mflags}
|
||||
popd
|
||||
|
||||
mkdir build_win64
|
||||
pushd build_win64
|
||||
CFLAGS="$RPM_OPT_FLAGS" \
|
||||
../configure \
|
||||
--build=%_build --host=%_host \
|
||||
--target=%{mingw64_target} \
|
||||
--disable-nls \
|
||||
--with-sysroot=%{mingw64_sysroot} \
|
||||
--prefix=%{_prefix} \
|
||||
--bindir=%{_bindir} \
|
||||
--includedir=%{_includedir} \
|
||||
--libdir=%{_libdir} \
|
||||
--mandir=%{_mandir} \
|
||||
--infodir=%{_infodir}
|
||||
|
||||
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" \
|
||||
../configure \
|
||||
--build=%_build --host=%_host \
|
||||
--target=%{mingw64_target} \
|
||||
--enable-targets=%{mingw64_target},%{mingw32_target} \
|
||||
--disable-nls \
|
||||
--with-sysroot=%{mingw64_sysroot} \
|
||||
--prefix=%{_prefix} \
|
||||
--bindir=%{_bindir} \
|
||||
--includedir=%{_includedir} \
|
||||
--libdir=%{_libdir} \
|
||||
--mandir=%{_mandir} \
|
||||
--infodir=%{_infodir}
|
||||
|
||||
make %{?_smp_mflags}
|
||||
popd
|
||||
|
||||
|
||||
%check
|
||||
%if !%{run_testsuite}
|
||||
echo ====================TESTSUITE DISABLED=========================
|
||||
%else
|
||||
pushd build_win32
|
||||
make -k check < /dev/null || :
|
||||
echo ====================TESTING WIN32 =========================
|
||||
cat {gas/testsuite/gas,ld/ld,binutils/binutils}.sum
|
||||
echo ====================TESTING WIN32 END=====================
|
||||
for file in {gas/testsuite/gas,ld/ld,binutils/binutils}.{sum,log}
|
||||
do
|
||||
ln $file binutils-%{mingw32_target}-$(basename $file) || :
|
||||
done
|
||||
tar cjf binutils-%{mingw32_target}.tar.bz2 binutils-%{mingw32_target}-*.{sum,log}
|
||||
uuencode binutils-%{mingw32_target}.tar.bz2 binutils-%{mingw32_target}.tar.bz2
|
||||
rm -f binutils-%{mingw32_target}.tar.bz2 binutils-%{mingw32_target}-*.{sum,log}
|
||||
popd
|
||||
|
||||
pushd build_win64
|
||||
make -k check < /dev/null || :
|
||||
echo ====================TESTING WIN64 =========================
|
||||
cat {gas/testsuite/gas,ld/ld,binutils/binutils}.sum
|
||||
echo ====================TESTING WIN64 END=====================
|
||||
for file in {gas/testsuite/gas,ld/ld,binutils/binutils}.{sum,log}
|
||||
do
|
||||
ln $file binutils-%{mingw64_target}-$(basename $file) || :
|
||||
done
|
||||
tar cjf binutils-%{mingw64_target}.tar.bz2 binutils-%{mingw64_target}-*.{sum,log}
|
||||
uuencode binutils-%{mingw64_target}.tar.bz2 binutils-%{mingw64_target}.tar.bz2
|
||||
rm -f binutils-%{mingw64_target}.tar.bz2 binutils-%{mingw64_target}-*.{sum,log}
|
||||
popd
|
||||
%endif
|
||||
|
||||
|
||||
%install
|
||||
cd build
|
||||
make DESTDIR=$RPM_BUILD_ROOT install
|
||||
%mingw_make_install DESTDIR=$RPM_BUILD_ROOT
|
||||
make -C build_multilib DESTDIR=$RPM_BUILD_ROOT/multilib install
|
||||
|
||||
# These files conflict with ordinary binutils.
|
||||
rm -rf $RPM_BUILD_ROOT%{_infodir}
|
||||
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libiberty*
|
||||
rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty*
|
||||
|
||||
# Temporary provide mingw-strip, mingw-objdump and mingw-objcopy
|
||||
# in preparation for win32+win64 support
|
||||
ln -s %{mingw32_strip} $RPM_BUILD_ROOT%{_bindir}/%{mingw_strip}
|
||||
ln -s %{mingw32_objdump} $RPM_BUILD_ROOT%{_bindir}/%{mingw_objdump}
|
||||
ln -s %{mingw32_objcopy} $RPM_BUILD_ROOT%{_bindir}/%{mingw_objcopy}
|
||||
# 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 win32 and win64 binaries
|
||||
mv $RPM_BUILD_ROOT/multilib%{_bindir}/%{mingw64_strip} $RPM_BUILD_ROOT%{_bindir}/%{mingw_strip}
|
||||
mv $RPM_BUILD_ROOT/multilib%{_bindir}/%{mingw64_objdump} $RPM_BUILD_ROOT%{_bindir}/%{mingw_objdump}
|
||||
mv $RPM_BUILD_ROOT/multilib%{_bindir}/%{mingw64_objcopy} $RPM_BUILD_ROOT%{_bindir}/%{mingw_objcopy}
|
||||
rm -rf $RPM_BUILD_ROOT/multilib
|
||||
|
||||
|
||||
%files -n mingw32-binutils
|
||||
%files -n mingw-binutils-generic
|
||||
%doc COPYING
|
||||
%{_mandir}/man1/*
|
||||
%{_bindir}/%{mingw_strip}
|
||||
%{_bindir}/%{mingw_objdump}
|
||||
%{_bindir}/%{mingw_objcopy}
|
||||
%{_bindir}/%{mingw32_target}-*
|
||||
%{_prefix}/%{mingw32_target}/bin/*
|
||||
|
||||
%files -n mingw32-binutils
|
||||
%{_bindir}/%{mingw32_target}-addr2line
|
||||
%{_bindir}/%{mingw32_target}-ar
|
||||
%{_bindir}/%{mingw32_target}-as
|
||||
%{_bindir}/%{mingw32_target}-c++filt
|
||||
%{_bindir}/%{mingw32_target}-dlltool
|
||||
%{_bindir}/%{mingw32_target}-dllwrap
|
||||
%{_bindir}/%{mingw32_target}-elfedit
|
||||
%{_bindir}/%{mingw32_target}-gprof
|
||||
%{_bindir}/%{mingw32_target}-ld
|
||||
%{_bindir}/%{mingw32_target}-ld.bfd
|
||||
%{_bindir}/%{mingw32_target}-nm
|
||||
%{_bindir}/%{mingw32_target}-objcopy
|
||||
%{_bindir}/%{mingw32_target}-objdump
|
||||
%{_bindir}/%{mingw32_target}-ranlib
|
||||
%{_bindir}/%{mingw32_target}-readelf
|
||||
%{_bindir}/%{mingw32_target}-size
|
||||
%{_bindir}/%{mingw32_target}-strings
|
||||
%{_bindir}/%{mingw32_target}-strip
|
||||
%{_bindir}/%{mingw32_target}-windmc
|
||||
%{_bindir}/%{mingw32_target}-windres
|
||||
%{_prefix}/%{mingw32_target}/bin/ar
|
||||
%{_prefix}/%{mingw32_target}/bin/as
|
||||
%{_prefix}/%{mingw32_target}/bin/dlltool
|
||||
%{_prefix}/%{mingw32_target}/bin/ld
|
||||
%{_prefix}/%{mingw32_target}/bin/ld.bfd
|
||||
%{_prefix}/%{mingw32_target}/bin/nm
|
||||
%{_prefix}/%{mingw32_target}/bin/objcopy
|
||||
%{_prefix}/%{mingw32_target}/bin/objdump
|
||||
%{_prefix}/%{mingw32_target}/bin/ranlib
|
||||
%{_prefix}/%{mingw32_target}/bin/strip
|
||||
%{_prefix}/%{mingw32_target}/lib/ldscripts
|
||||
|
||||
%files -n mingw64-binutils
|
||||
%{_bindir}/%{mingw64_target}-addr2line
|
||||
%{_bindir}/%{mingw64_target}-ar
|
||||
%{_bindir}/%{mingw64_target}-as
|
||||
%{_bindir}/%{mingw64_target}-c++filt
|
||||
%{_bindir}/%{mingw64_target}-dlltool
|
||||
%{_bindir}/%{mingw64_target}-dllwrap
|
||||
%{_bindir}/%{mingw64_target}-elfedit
|
||||
%{_bindir}/%{mingw64_target}-gprof
|
||||
%{_bindir}/%{mingw64_target}-ld
|
||||
%{_bindir}/%{mingw64_target}-ld.bfd
|
||||
%{_bindir}/%{mingw64_target}-nm
|
||||
%{_bindir}/%{mingw64_target}-objcopy
|
||||
%{_bindir}/%{mingw64_target}-objdump
|
||||
%{_bindir}/%{mingw64_target}-ranlib
|
||||
%{_bindir}/%{mingw64_target}-readelf
|
||||
%{_bindir}/%{mingw64_target}-size
|
||||
%{_bindir}/%{mingw64_target}-strings
|
||||
%{_bindir}/%{mingw64_target}-strip
|
||||
%{_bindir}/%{mingw64_target}-windmc
|
||||
%{_bindir}/%{mingw64_target}-windres
|
||||
%{_prefix}/%{mingw64_target}/bin/ar
|
||||
%{_prefix}/%{mingw64_target}/bin/as
|
||||
%{_prefix}/%{mingw64_target}/bin/dlltool
|
||||
%{_prefix}/%{mingw64_target}/bin/ld
|
||||
%{_prefix}/%{mingw64_target}/bin/ld.bfd
|
||||
%{_prefix}/%{mingw64_target}/bin/nm
|
||||
%{_prefix}/%{mingw64_target}/bin/objcopy
|
||||
%{_prefix}/%{mingw64_target}/bin/objdump
|
||||
%{_prefix}/%{mingw64_target}/bin/ranlib
|
||||
%{_prefix}/%{mingw64_target}/bin/strip
|
||||
%{_prefix}/%{mingw64_target}/lib/ldscripts
|
||||
|
||||
|
||||
%changelog
|
||||
* Tue Mar 6 2012 Erik van Pienbroek <epienbro@fedoraproject.org> - 2.22.52-3
|
||||
- Made the package compliant with the new MinGW packaging guidelines
|
||||
- Added win64 support
|
||||
- Added a mingw-binutils-generic package containing toolchain
|
||||
utilities which can be used by both the win32 and win64 toolchains
|
||||
- Enable the testsuite
|
||||
- Package the license
|
||||
- Fix source URL
|
||||
|
||||
* Tue Mar 6 2012 Erik van Pienbroek <epienbro@fedoraproject.org> - 2.22.52-2
|
||||
- Renamed the source package to mingw-binutils (RHBZ #673786)
|
||||
- Use mingw macros without leading underscore
|
||||
|
||||
Loading…
Reference in New Issue
Block a user