PATCH: PR driver/46712: exec-tool.in doesn't work with -fuse-linker-plugin in a gcc+binutils combined tree
H.J. Lu
hjl.tools@gmail.com
Mon Nov 29 23:58:00 GMT 2010
On Mon, Nov 29, 2010 at 2:00 PM, Ralf Wildenhues <Ralf.Wildenhues@gmx.de> wrote:
> * 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
I think it is the part of build scripts.
> 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
>
>
I am checking in this patch.
Thanks.
--
H.J.
---
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.
diff --git a/gcc/exec-tool.in b/gcc/exec-tool.in
index 0ae8f2a..dff73a6 100644
--- 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
+ export LT_RCU_$id
$scriptdir/../$dir/$prog ${1+"$@"}
result=$?
exit $result
@@ -83,5 +87,3 @@ case "$original" in
exec $original ${1+"$@"}
;;
esac
-
-
More information about the Gcc-patches
mailing list