This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: PATCH: PR driver/46712: exec-tool.in doesn't work with -fuse-linker-plugin in a gcc+binutils combined tree
- From: Ralf Wildenhues <Ralf dot Wildenhues at gmx dot de>
- To: "H.J. Lu" <hongjiu dot lu at intel dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Mon, 29 Nov 2010 23:00:15 +0100
- Subject: Re: PATCH: PR driver/46712: exec-tool.in doesn't work with -fuse-linker-plugin in a gcc+binutils combined tree
- References: <20101129203628.GA5115@intel.com>
* H.J. Lu wrote on Mon, Nov 29, 2010 at 09:36:28PM CET:
> exec-tool.in uses LT_RCU to check recursive calls on as/ld in a
> gcc+binutils combined tree. However, it doesn't work with
> -fuse-linker-plugin, which calls ld, which calls as. This patch
> checks and exports LT_RCU_$id instead of LT_RCU. OK for trunk?
I'm not sure if a build maintainer can approve this, but it looks good
to me with one nit below.
Thanks,
Ralf
> 2010-11-29 H.J. Lu <hongjiu.lu@intel.com>
>
> PR driver/46712
> * exec-tool.in (id): New.
> Check and export LT_RCU_$id instead of LT_RCU.
> --- a/gcc/exec-tool.in
> +++ b/gcc/exec-tool.in
> @@ -28,6 +28,7 @@ fast_install=@enable_fast_install@
> objdir=@objdir@
>
> invoked=`basename "$0"`
> +id=$invoked
> case "$invoked" in
> as)
> original=$ORIGINAL_AS_FOR_TARGET
> @@ -44,6 +45,7 @@ case "$invoked" in
> fi
> prog=ld-new$exeext
> dir=ld
> + id=ld
> ;;
> nm)
> original=$ORIGINAL_NM_FOR_TARGET
> @@ -68,9 +70,11 @@ case "$original" in
> # libtool has not relinked ld-new yet, but we cannot just use the
> # previous stage (because then the relinking would just never happen!).
> # So we take extra care to use prev-ld/ld-new *on recursive calls*.
> + eval LT_RCU="\${LT_RCU_$id}"
> test x"$LT_RCU" = x"1" && exec $scriptdir/../prev-$dir/$prog ${1+"$@"}
>
> - LT_RCU=1; export LT_RCU
> + eval LT_RCU_$id=1
> + eval export LT_RCU_$id
FWIW, this last eval is not necessary.
> $scriptdir/../$dir/$prog ${1+"$@"}
> result=$?
> exit $result