This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: Review of --enable-gold=both patch
- From: Matthias Klose <doko at ubuntu dot com>
- To: Nick Clifton <nickc at redhat dot com>
- Cc: Paolo Bonzini <bonzini at gnu dot org>, Mark Mitchell <mark at codesourcery dot com>, "Joseph S. Myers" <joseph at codesourcery dot com>, "H.J. Lu" <hjl dot tools at gmail dot com>, Ian Lance Taylor <iant at google dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>, binutils <binutils at sourceware dot org>, Tristan Gingold <gingold at adacore dot com>
- Date: Tue, 23 Nov 2010 14:26:12 +0100
- Subject: Re: Review of --enable-gold=both patch
- References: <4C27E695.9070802@codesourcery.com> <4C286200.30402@gnu.org> <Pine.LNX.4.64.1006281009290.17565@digraph.polyomino.org.uk> <4C2886C7.4040408@gnu.org> <4C28CA2A.7060703@codesourcery.com> <4C28CE9C.9030809@gnu.org> <4C28D9F1.6030309@codesourcery.com> <4CC83135.4080603@ubuntu.com> <4CCA91ED.7010909@redhat.com> <4CCAE033.3010009@ubuntu.com> <4CCAE45F.20201@gnu.org> <4CDB3413.1090900@ubuntu.com> <4CEBB272.3080708@redhat.com>
On 23.11.2010 13:24, Nick Clifton wrote:
Hi Matthias,
[Sorry about the delay in replying - I am in a bit of a muddle right now].
The attached patch implements this proposal, tested the combinations
above, and disabling ld without gold (leading to an error).
I did choose to always install the bfd linker as ld.bfd and the gold
linker as ld.gold, and pointing the link to one of the above.
Nick, is this ok with you?
Yes, it is fine. Thanks for doing this.
checked in in gcc as r167076. Nick, Tristan, could you check it into binutils
trunk and branch?
Matthias
toplevel
2010-11-23 Matthias Klose <doko@ubuntu.com>
* configure.ac: For --enable-gold, handle value `default' instead of
`both*'. New configure option --{en,dis}able-ld.
ld/
2010-11-23 Matthias Klose <doko@ubuntu.com>
* configure.in: For --enable-gold, handle value `default' instead of
`both*'. Always install ld as ld.bfd, install as ld if gold is
not the default.
gold/
2010-11-23 Matthias Klose <doko@ubuntu.com>
* configure.ac: For --enable-gold, handle value `default' instead of
`both*'. Always install ld as ld.gold, install as ld if gold is
the default.
--- binutils-2.20.90.20101105.orig/configure.ac
+++ binutils-2.20.90.20101105/configure.ac
@@ -321,19 +321,27 @@
yes) skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'` ;;
esac
-# Handle --enable-gold.
-# --enable-gold Build only gold
-# --disable-gold [default] Build only ld
-# --enable-gold=both Build both gold and ld, ld is default
-# --enable-gold=both/ld Same
-# --enable-gold=both/gold Build both gold and ld, gold is default, ld is renamed ld.bfd
+# Handle --enable-gold, --enable-ld.
+# --disable-gold [--enable-ld]
+# Build only ld. Default option.
+# --enable-gold[=default] [--enable-ld]
+# Build both gold and ld. Install gold as "ld.gold" and "ld",
+# install ld as "ld.bfd".
+# --enable-gold[=default] --disable-ld
+# Build only gold, which is then installed as both "ld.gold" and "ld".
+# --enable-gold --enable-ld=default
+# Build both gold (installed as "gold") and ld (installed as "ld").
+# In other words, ld is default
+# --enable-gold=default --enable-ld=default
+# Error.
+default_ld=
AC_ARG_ENABLE(gold,
-[[ --enable-gold[=ARG] build gold [ARG={both}[/{gold,ld}]]]],
+[[ --enable-gold[=ARG] build gold [ARG={default,yes,no}]]],
ENABLE_GOLD=$enableval,
ENABLE_GOLD=no)
- case "${ENABLE_GOLD}" in
- yes|both|both/gold|both/ld)
+case "${ENABLE_GOLD}" in
+ yes|default)
# Check for ELF target.
is_elf=no
case "${target}" in
@@ -353,14 +361,10 @@
# Check for target supported by gold.
case "${target}" in
i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-*)
- case "${ENABLE_GOLD}" in
- both*)
- configdirs="$configdirs gold"
- ;;
- *)
- configdirs=`echo " ${configdirs} " | sed -e 's/ ld / gold /'`
- ;;
- esac
+ configdirs="$configdirs gold"
+ if test x${ENABLE_GOLD} = xdefault; then
+ default_ld=gold
+ fi
ENABLE_GOLD=yes
;;
esac
@@ -371,7 +375,31 @@
*)
AC_MSG_ERROR([invalid --enable-gold argument])
;;
- esac
+esac
+
+AC_ARG_ENABLE(ld,
+[[ --enable-ld[=ARG] build ld [ARG={default,yes,no}]]],
+ENABLE_LD=$enableval,
+ENABLE_LD=yes)
+
+case "${ENABLE_LD}" in
+ default)
+ if test x${default_ld} != xgold; then
+ AC_MSG_ERROR([either gold or ld can be the default ld])
+ fi
+ ;;
+ yes)
+ ;;
+ no)
+ if test x${ENABLE_GOLD} != xyes; then
+ AC_MSG_WARN([neither ld nor gold are enabled])
+ fi
+ configdirs=`echo " ${configdirs} " | sed -e 's/ ld / /'`
+ ;;
+ *)
+ AC_MSG_ERROR([invalid --enable-ld argument])
+ ;;
+esac
# Configure extra directories which are host specific
--- binutils-2.20.90.20101105.orig/ld/configure.in
+++ binutils-2.20.90.20101105/ld/configure.in
@@ -73,13 +73,13 @@
dnl "install_as_default" is set to false if gold is the default linker.
dnl "installed_linker" is the installed BFD linker name.
AC_ARG_ENABLE(gold,
-[[ --enable-gold[=ARG] build gold [ARG={both}[/{gold,ld}]]]],
+[[ --enable-gold[=ARG] build gold [ARG={default,yes,no}]]],
[case "${enableval}" in
- yes|both/gold)
+ default)
install_as_default=no
installed_linker=ld.bfd
;;
- both|both/ld)
+ yes|no)
install_as_default=yes
installed_linker=ld.bfd
;;
@@ -87,8 +87,8 @@
AC_MSG_ERROR([invalid --enable-gold argument])
;;
esac],
-[install_as_default=ld
- installed_linker=ld])
+[install_as_default=yes
+ installed_linker=ld.bfd])
AC_SUBST(install_as_default)
AC_SUBST(installed_linker)
--- binutils-2.20.90.20101105.orig/gold/configure.ac
+++ binutils-2.20.90.20101105/gold/configure.ac
@@ -41,27 +41,33 @@
dnl "install_as_default" is true if the linker to be installed as the
dnl default linker, ld.
dnl "installed_linker" is the installed gold linker name.
-AC_ARG_ENABLE(gold,
-[[ --enable-gold[=ARG] build gold [ARG={both}[/{gold,ld}]]]],
+
+default_ld=
+AC_ARG_ENABLE(ld,
+[[ --enable-ld[=ARG] build ld [ARG={default,yes,no}]]],
[case "${enableval}" in
- yes)
- install_as_default=gold
- installed_linker=ld
- ;;
- both/gold)
- install_as_default=yes
+ default)
+ default_ld=ld.bfd
+ ;;
+esac])
+
+AC_ARG_ENABLE(gold,
+[[ --enable-gold[=ARG] build gold [ARG={default,yes,no}]]],
+[case "${enableval}" in
+ yes|default)
+ if test x${default_ld} = x; then
+ install_as_default=yes
+ fi
installed_linker=ld.gold
;;
- both|both/ld)
- install_as_default=no
- installed_linker=ld.gold
+ no)
;;
*)
AC_MSG_ERROR([invalid --enable-gold argument])
;;
esac],
-[install_as_default=gold
- installed_linker=ld])
+[install_as_default=no
+ installed_linker=ld.gold])
AC_SUBST(install_as_default)
AC_SUBST(installed_linker)