From 06ea15511d155aeeed11e862c3d2e6c19490efb8 Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Fri, 28 Jun 2013 03:13:03 -0500 Subject: cygwin-binutils 2.23.52-1 --- cygwin-binutils.spec | 259 +++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 218 insertions(+), 41 deletions(-) (limited to 'cygwin-binutils.spec') diff --git a/cygwin-binutils.spec b/cygwin-binutils.spec index 4899ede..81de125 100644 --- a/cygwin-binutils.spec +++ b/cygwin-binutils.spec @@ -1,82 +1,259 @@ -%define cygrel 1 +%global run_testsuite 0 Name: cygwin-binutils -Version: 2.23.51 -Release: 2%{?dist} -Summary: Cygwin binutils +Version: 2.23.52 +Release: 1%{?dist} +Summary: Cross-compiled version of binutils for Cygwin environments License: GPLv2+ and LGPLv2+ and GPLv3+ and LGPLv3+ Group: Development/Libraries -URL: http://www.gnu.org/software/binutils/ -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -Source0: ftp://sourceware.org/pub/cygwin/release/binutils/binutils-%{version}-%{cygrel}-src.tar.bz2 +URL: http://www.gnu.org/software/binutils/ +Source0: ftp://sourceware.org/pub/binutils/snapshots/binutils-%{version}.tar.bz2 Patch0: w32api-sysroot.patch +Patch1: x86-64-pc32-relocs.patch + BuildRequires: flex BuildRequires: bison BuildRequires: texinfo -BuildRequires: cygwin-filesystem +BuildRequires: zlib-devel +BuildRequires: cygwin32-filesystem >= 7 +BuildRequires: cygwin64-filesystem >= 7 +%if %{run_testsuite} +BuildRequires: dejagnu +BuildRequires: sharutils +%endif +Provides: bundled(libiberty) -# NB: This must be left in. -Requires: cygwin-filesystem +%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 both the Cygwin32 and Cygwin64 toolchains -%description -Cygwin binutils (utilities like 'strip', 'as', 'ld') which -understand Cygwin PE executables and DLLs. +%description -n cygwin-binutils-generic +Utilities (like strip and objdump) which are needed for +both the Cygwin32 and Cygwin64 toolchains + +%package -n cygwin32-binutils +Summary: Cross-compiled version of binutils for the Cygwin32 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 compiled binutils (utilities like 'strip', 'as', 'ld') which +understand Cygwin executables and DLLs. + +%package -n cygwin64-binutils +Summary: Cross-compiled version of binutils for the Cygwin64 environment +Requires: cygwin-binutils-generic = %{version}-%{release} +Requires: cygwin64-filesystem >= 7 + +%description -n cygwin64-binutils +Cross compiled binutils (utilities like 'strip', 'as', 'ld') which +understand Cygwin executables and DLLs. %prep -%setup -q -n binutils-%{version}-%{cygrel} +%setup -q -n binutils-%{version} %patch0 -p1 +%patch1 -p0 %build -mkdir -p build -cd build +mkdir build_cyg32 +pushd build_cyg32 CFLAGS="$RPM_OPT_FLAGS" \ ../configure \ --build=%_build --host=%_host \ - --target=%{_cygwin_target} \ - --enable-64-bit-bfd \ - --enable-targets=x86_64-pc-cygwin \ - --verbose --disable-nls \ - --without-included-gettext \ - --disable-win32-registry \ - --disable-werror \ - --with-sysroot=%{_cygwin_sysroot} \ - --prefix=%{_prefix} --bindir=%{_bindir} \ - --includedir=%{_includedir} --libdir=%{_libdir} \ - --mandir=%{_mandir} --infodir=%{_infodir} + --target=%{cygwin32_target} \ + --disable-nls \ + --with-sysroot=%{cygwin32_sysroot} \ + --prefix=%{_prefix} \ + --bindir=%{_bindir} \ + --includedir=%{_includedir} \ + --libdir=%{_libdir} \ + --mandir=%{_mandir} \ + --infodir=%{_infodir} -make all +make all %{?_smp_mflags} +popd +mkdir build_cyg64 +pushd build_cyg64 +CFLAGS="$RPM_OPT_FLAGS" \ +../configure \ + --build=%_build --host=%_host \ + --target=%{cygwin64_target} \ + --disable-nls \ + --with-sysroot=%{cygwin64_sysroot} \ + --prefix=%{_prefix} \ + --bindir=%{_bindir} \ + --includedir=%{_includedir} \ + --libdir=%{_libdir} \ + --mandir=%{_mandir} \ + --infodir=%{_infodir} -%install -rm -rf $RPM_BUILD_ROOT +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=%{cygwin64_target} \ + --enable-targets=%{cygwin64_target},%{cygwin32_target} \ + --disable-nls \ + --with-sysroot=%{cygwin64_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_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 -cd build -make DESTDIR=$RPM_BUILD_ROOT install + +%install +make -C build_cyg32 install DESTDIR=$RPM_BUILD_ROOT +make -C build_cyg64 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}/libiberty* - +rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty* -%clean -rm -rf $RPM_BUILD_ROOT +# 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 Cygwin32 and Cygwin64 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 -%files -%defattr(-,root,root) +%files -n cygwin-binutils-generic +%doc COPYING %{_mandir}/man1/* -%{_bindir}/i686-pc-cygwin-* -%{_prefix}/i686-pc-cygwin/bin -%{_prefix}/i686-pc-cygwin/lib/ldscripts +%{_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/strip +%{_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/strip +%{_prefix}/%{cygwin64_target}/lib/ldscripts %changelog +* 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. -- cgit