BuildRequires: bc
BuildRequires: makeinfo
BuildRequires: zlib-devel-static
+Requires(pre): update-alternatives
Version: 2.23.1
Release: 0
#
#
#
Url: http://www.gnu.org/software/binutils/
-%define binutils_version %(echo %version | sed 's/\\.[0-9]\\{8\\}$//')
+#%define binutils_version %(echo %version | sed 's/\\.[0-9]\\{8\\}$//')
Summary: GNU Binutils
License: GFDL-1.3 and GPL-3.0+
Group: Development/Tools/Building
-Source: binutils-%{binutils_version}.tar.bz2
+Source: binutils-%{version}.tar.bz2
Source1: pre_checkin.sh
Source3: baselibs.conf
-# Patches auto-generated by git-buildpackage:
-Patch0: 0001-skip-rpaths.patch
-Patch1: 0002-x86-64-biarch.patch
-Patch2: 0003-unit-at-a-time.patch
-Patch3: 0004-ld-dtags.patch
-Patch4: 0005-ld-relro.patch
-Patch5: 0006-testsuite.patch
-Patch6: 0007-enable-targets-gold.patch
-Patch7: 0008-use-hashtype-both-by-default.patch
-Patch8: 0009-build-as-needed.patch
-Patch9: 0010-fixup-testcase-perturb.patch
-Patch10: 0011-gold-depend-on-opcodes.patch
-Patch11: 0012-bso12451.patch
%description
C compiler utilities: ar, as, gprof, ld, nm, objcopy, objdump, ranlib,
%prep
echo "make check will return with %{make_check_handling} in case of testsuite failures."
-%setup -q -n binutils-%{binutils_version}
-# 0001-skip-rpaths.patch
-%patch0 -p1
-# 0002-x86-64-biarch.patch
-%patch1 -p1
-# 0003-unit-at-a-time.patch
-%patch2 -p1
-# 0004-ld-dtags.patch
-%patch3 -p1
-# 0005-ld-relro.patch
-%patch4 -p1
-# 0006-testsuite.patch
-%patch5 -p1
-# 0007-enable-targets-gold.patch
-%patch6 -p1
-# 0008-use-hashtype-both-by-default.patch
-%patch7 -p1
-# 0009-build-as-needed.patch
-%patch8 -p1
-# 0010-fixup-testcase-perturb.patch
-%patch9 -p1
-# 0011-gold-depend-on-opcodes.patch
-%patch10 -p1
-# 0012-bso12451.patch
-%patch11 -p1
+%setup -q
sed -i -e '/BFD_VERSION_DATE/s/$/-%(echo %release | sed 's/\.[0-9]*$//')/' bfd/version.h
%build
make DESTDIR=$RPM_BUILD_ROOT install-info install
make -C gas/doc DESTDIR=$RPM_BUILD_ROOT install-info-am install-am
make DESTDIR=$RPM_BUILD_ROOT install-bfd install-opcodes
-# we could eventually use alternatives for /usr/bin/ld
-if test -f $RPM_BUILD_ROOT%{_bindir}/ld.bfd; then
- rm $RPM_BUILD_ROOT%{_bindir}/ld
- ln -sf ld.bfd $RPM_BUILD_ROOT%{_bindir}/ld;
+
+if [ ! -f "%buildroot/%_bindir/ld.bfd" ]; then
+ mv "%buildroot/%_bindir"/{ld,ld.bfd};
+else
+ rm -f "%buildroot/%_bindir/ld";
fi
+mkdir -p "%buildroot/%_sysconfdir/alternatives";
+ln -s "%_bindir/ld" "%buildroot/%_sysconfdir/alternatives/ld";
+ln -s "%_sysconfdir/alternatives/ld" "%buildroot/%_bindir/ld";
rm -rf $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
mkdir -p $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
ln -sf ../../bin/{ar,as,ld,nm,ranlib,strip} $RPM_BUILD_ROOT%{_prefix}/%{HOST}/bin
-#mv $RPM_BUILD_ROOT%{_prefix}/%{HOST}/lib/ldscripts $RPM_BUILD_ROOT%{_libdir}
-#ln -sf ../../%{_lib}/ldscripts $RPM_BUILD_ROOT%{_prefix}/%{HOST}/lib/ldscripts
+
+mv $RPM_BUILD_ROOT%{_prefix}/%{HOST}/lib/ldscripts $RPM_BUILD_ROOT%{_libdir}
+ln -sf ../../%{_lib}/ldscripts $RPM_BUILD_ROOT%{_prefix}/%{HOST}/lib/ldscripts
+
# Install header files
make -C libiberty install_to_libdir target_header_dir=/usr/include DESTDIR=$RPM_BUILD_ROOT
# We want the PIC libiberty.a
%endif
cd $RPM_BUILD_DIR/binutils-%version
-%clean
-rm -rf $RPM_BUILD_ROOT
%if 0%{!?cross:1}
%docs_package
+%post
+"%_sbindir/update-alternatives" --install \
+ "%_bindir/ld" ld "%_bindir/ld.bfd" 1
+
+%post gold
+"%_sbindir/update-alternatives" --install \
+ "%_bindir/ld" ld "%_bindir/ld.gold" 2
+
+
+%preun
+if [ "$1" = 0 ]; then
+ "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.bfd";
+fi;
+
+%preun gold
+if [ "$1" = 0 ]; then
+ "%_sbindir/update-alternatives" --remove ld "%_bindir/ld.gold";
+fi;
+
%endif
%files
%{_docdir}/%{name}
%{_prefix}/%{HOST}/bin/*
%{_prefix}/%{HOST}/lib/ldscripts
-#%{_libdir}/ldscripts
+%ghost %_sysconfdir/alternatives/ld
+%{_libdir}/ldscripts
%{_bindir}/*
%ifarch %gold_archs
%exclude %{_bindir}/gold
%ifarch %gold_archs
%files gold
%defattr(-,root,root)
-%doc gold/NEWS gold/README
%{_bindir}/gold
%{_bindir}/ld.gold
%endif