use alternatives for gold
authorAnas Nashif <anas.nashif@intel.com>
Tue, 29 Jan 2013 14:10:15 +0000 (06:10 -0800)
committerVyacheslav Barinov <v.barinov@samsung.com>
Mon, 16 Feb 2015 07:34:09 +0000 (10:34 +0300)
packaging/binutils.spec
packaging/cross-arm-binutils.spec
packaging/cross-i386-binutils.spec
packaging/cross-x86_64-binutils.spec

index e6c12b1..04ac57d 100644 (file)
@@ -8,6 +8,7 @@ BuildRequires:  glibc-devel-static
 BuildRequires:  bc
 BuildRequires:  makeinfo
 BuildRequires:  zlib-devel-static
+Requires(pre):  update-alternatives
 Version:        2.23.1
 Release:        0
 #
index 396c8e8..8702b5f 100644 (file)
@@ -51,19 +51,6 @@ Group:          Development/Tools/Building
 Source:         binutils-%{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,
@@ -110,30 +97,6 @@ binutils.
 %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
 
 sed -i -e '/BFD_VERSION_DATE/s/$/-%(echo %release | sed 's/\.[0-9]*$//')/' bfd/version.h
 %build
@@ -272,14 +235,19 @@ ln -sf ld.gold $RPM_BUILD_ROOT%{_bindir}/gold
 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
 # Install header files
@@ -330,11 +298,28 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
 %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" 2
+
+%post gold
+"%_sbindir/update-alternatives" --install \
+    "%_bindir/ld" ld "%_bindir/ld.gold" 1
+
+
+%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 
@@ -343,6 +328,7 @@ rm -rf $RPM_BUILD_ROOT
 %{_docdir}/%{name}
 %{_prefix}/%{HOST}/bin/*
 %{_prefix}/%{HOST}/lib/ldscripts
+%ghost %_sysconfdir/alternatives/ld
 #%{_libdir}/ldscripts
 %{_bindir}/*
 %ifarch %gold_archs
@@ -359,7 +345,6 @@ rm -rf $RPM_BUILD_ROOT
 %ifarch %gold_archs
 %files gold 
 %defattr(-,root,root)
-%doc gold/NEWS gold/README
 %{_bindir}/gold
 %{_bindir}/ld.gold
 %endif
index 6c142a0..cdc60c5 100644 (file)
@@ -51,19 +51,6 @@ Group:          Development/Tools/Building
 Source:         binutils-%{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,
@@ -110,30 +97,6 @@ binutils.
 %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
 
 sed -i -e '/BFD_VERSION_DATE/s/$/-%(echo %release | sed 's/\.[0-9]*$//')/' bfd/version.h
 %build
@@ -272,14 +235,19 @@ ln -sf ld.gold $RPM_BUILD_ROOT%{_bindir}/gold
 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
 # Install header files
@@ -330,11 +298,28 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
 %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" 2
+
+%post gold
+"%_sbindir/update-alternatives" --install \
+    "%_bindir/ld" ld "%_bindir/ld.gold" 1
+
+
+%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 
@@ -343,6 +328,7 @@ rm -rf $RPM_BUILD_ROOT
 %{_docdir}/%{name}
 %{_prefix}/%{HOST}/bin/*
 %{_prefix}/%{HOST}/lib/ldscripts
+%ghost %_sysconfdir/alternatives/ld
 #%{_libdir}/ldscripts
 %{_bindir}/*
 %ifarch %gold_archs
@@ -359,7 +345,6 @@ rm -rf $RPM_BUILD_ROOT
 %ifarch %gold_archs
 %files gold 
 %defattr(-,root,root)
-%doc gold/NEWS gold/README
 %{_bindir}/gold
 %{_bindir}/ld.gold
 %endif
index d00b458..cf89b2e 100644 (file)
@@ -51,19 +51,6 @@ Group:          Development/Tools/Building
 Source:         binutils-%{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,
@@ -110,30 +97,6 @@ binutils.
 %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
 
 sed -i -e '/BFD_VERSION_DATE/s/$/-%(echo %release | sed 's/\.[0-9]*$//')/' bfd/version.h
 %build
@@ -272,14 +235,19 @@ ln -sf ld.gold $RPM_BUILD_ROOT%{_bindir}/gold
 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
 # Install header files
@@ -330,11 +298,28 @@ rm -f $RPM_BUILD_ROOT%{_prefix}/bin/*-c++filt
 %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" 2
+
+%post gold
+"%_sbindir/update-alternatives" --install \
+    "%_bindir/ld" ld "%_bindir/ld.gold" 1
+
+
+%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 
@@ -343,6 +328,7 @@ rm -rf $RPM_BUILD_ROOT
 %{_docdir}/%{name}
 %{_prefix}/%{HOST}/bin/*
 %{_prefix}/%{HOST}/lib/ldscripts
+%ghost %_sysconfdir/alternatives/ld
 #%{_libdir}/ldscripts
 %{_bindir}/*
 %ifarch %gold_archs
@@ -359,7 +345,6 @@ rm -rf $RPM_BUILD_ROOT
 %ifarch %gold_archs
 %files gold 
 %defattr(-,root,root)
-%doc gold/NEWS gold/README
 %{_bindir}/gold
 %{_bindir}/ld.gold
 %endif