lto: Always quote path to touch

Message ID 20221021122414.3375395-1-torbjorn.svensson@foss.st.com
State Accepted
Headers
Series lto: Always quote path to touch |

Checks

Context Check Description
snail/gcc-patch-check success Github commit url

Commit Message

Torbjorn SVENSSON Oct. 21, 2022, 12:24 p.m. UTC
  When generating the makefile, make sure that the paths are quoted so
that a native Windows path works within Cygwin.

Without this patch, this error is reported by the DejaGNU test suite:

make: [T:\ccMf0kI3.mk:3: T:\ccGEvdDp.ltrans0.ltrans.o] Error 1 (ignored)

The generated makefile fragment without the patch:

T:\ccGEvdDp.ltrans0.ltrans.o:
  @T:\build\bin\arm-none-eabi-g++.exe '-xlto' ... '-o' 'T:\ccGEvdDp.ltrans0.ltrans.o' 'T:\ccGEvdDp.ltrans0.o'
  @-touch -r T:\ccGEvdDp.ltrans0.o T:\ccGEvdDp.ltrans0.o.tem > /dev/null 2>&1 && mv T:\ccGEvdDp.ltrans0.o.tem T:\ccGEvdDp.ltrans0.o
.PHONY: all
all: \
  T:\ccGEvdDp.ltrans0.ltrans.o

With the patch, the touch line would be replace with:

  @-touch -r "T:\ccGEvdDp.ltrans0.o" "T:\ccGEvdDp.ltrans0.o.tem" > /dev/null 2>&1 && mv "T:\ccGEvdDp.ltrans0.o.tem" "T:\ccGEvdDp.ltrans0.o"

gcc/ChangeLog:

	* lto-wrapper.cc: Quote paths in makefile.

Co-Authored-By: Yvan ROUX <yvan.roux@foss.st.com>
Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
---
 gcc/lto-wrapper.cc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
  

Comments

Richard Biener Oct. 24, 2022, 8:07 a.m. UTC | #1
On Fri, 21 Oct 2022, Torbj?rn SVENSSON wrote:

> When generating the makefile, make sure that the paths are quoted so
> that a native Windows path works within Cygwin.
> 
> Without this patch, this error is reported by the DejaGNU test suite:
> 
> make: [T:\ccMf0kI3.mk:3: T:\ccGEvdDp.ltrans0.ltrans.o] Error 1 (ignored)
> 
> The generated makefile fragment without the patch:
> 
> T:\ccGEvdDp.ltrans0.ltrans.o:
>   @T:\build\bin\arm-none-eabi-g++.exe '-xlto' ... '-o' 'T:\ccGEvdDp.ltrans0.ltrans.o' 'T:\ccGEvdDp.ltrans0.o'
>   @-touch -r T:\ccGEvdDp.ltrans0.o T:\ccGEvdDp.ltrans0.o.tem > /dev/null 2>&1 && mv T:\ccGEvdDp.ltrans0.o.tem T:\ccGEvdDp.ltrans0.o
> .PHONY: all
> all: \
>   T:\ccGEvdDp.ltrans0.ltrans.o
> 
> With the patch, the touch line would be replace with:
> 
>   @-touch -r "T:\ccGEvdDp.ltrans0.o" "T:\ccGEvdDp.ltrans0.o.tem" > /dev/null 2>&1 && mv "T:\ccGEvdDp.ltrans0.o.tem" "T:\ccGEvdDp.ltrans0.o"
> 
> gcc/ChangeLog:

OK.

Thanks,
Richard.

> 	* lto-wrapper.cc: Quote paths in makefile.
> 
> Co-Authored-By: Yvan ROUX <yvan.roux@foss.st.com>
> Signed-off-by: Torbj?rn SVENSSON <torbjorn.svensson@foss.st.com>
> ---
>  gcc/lto-wrapper.cc | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/gcc/lto-wrapper.cc b/gcc/lto-wrapper.cc
> index 9a764702ffc..b12bcc1ad27 100644
> --- a/gcc/lto-wrapper.cc
> +++ b/gcc/lto-wrapper.cc
> @@ -2010,8 +2010,8 @@ cont:
>  	         truncate them as soon as we have processed it.  This
>  		 reduces temporary disk-space usage.  */
>  	      if (! save_temps)
> -		fprintf (mstream, "\t@-touch -r %s %s.tem > /dev/null 2>&1 "
> -			 "&& mv %s.tem %s\n",
> +		fprintf (mstream, "\t@-touch -r \"%s\" \"%s.tem\" > /dev/null "
> +			 "2>&1 && mv \"%s.tem\" \"%s\"\n",
>  			 input_name, input_name, input_name, input_name); 
>  	    }
>  	  else
>
  
Torbjorn SVENSSON Oct. 24, 2022, 8:47 a.m. UTC | #2
On 2022-10-24 10:07, Richard Biener wrote:
> On Fri, 21 Oct 2022, Torbj?rn SVENSSON wrote:
> 
>> When generating the makefile, make sure that the paths are quoted so
>> that a native Windows path works within Cygwin.
>>
>> Without this patch, this error is reported by the DejaGNU test suite:
>>
>> make: [T:\ccMf0kI3.mk:3: T:\ccGEvdDp.ltrans0.ltrans.o] Error 1 (ignored)
>>
>> The generated makefile fragment without the patch:
>>
>> T:\ccGEvdDp.ltrans0.ltrans.o:
>>    @T:\build\bin\arm-none-eabi-g++.exe '-xlto' ... '-o' 'T:\ccGEvdDp.ltrans0.ltrans.o' 'T:\ccGEvdDp.ltrans0.o'
>>    @-touch -r T:\ccGEvdDp.ltrans0.o T:\ccGEvdDp.ltrans0.o.tem > /dev/null 2>&1 && mv T:\ccGEvdDp.ltrans0.o.tem T:\ccGEvdDp.ltrans0.o
>> .PHONY: all
>> all: \
>>    T:\ccGEvdDp.ltrans0.ltrans.o
>>
>> With the patch, the touch line would be replace with:
>>
>>    @-touch -r "T:\ccGEvdDp.ltrans0.o" "T:\ccGEvdDp.ltrans0.o.tem" > /dev/null 2>&1 && mv "T:\ccGEvdDp.ltrans0.o.tem" "T:\ccGEvdDp.ltrans0.o"
>>
>> gcc/ChangeLog:
> 
> OK.
> 
> Thanks,
> Richard.
> 
>> 	* lto-wrapper.cc: Quote paths in makefile.
>>
>> Co-Authored-By: Yvan ROUX <yvan.roux@foss.st.com>
>> Signed-off-by: Torbj?rn SVENSSON <torbjorn.svensson@foss.st.com>
>> ---
>>   gcc/lto-wrapper.cc | 4 ++--
>>   1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/gcc/lto-wrapper.cc b/gcc/lto-wrapper.cc
>> index 9a764702ffc..b12bcc1ad27 100644
>> --- a/gcc/lto-wrapper.cc
>> +++ b/gcc/lto-wrapper.cc
>> @@ -2010,8 +2010,8 @@ cont:
>>   	         truncate them as soon as we have processed it.  This
>>   		 reduces temporary disk-space usage.  */
>>   	      if (! save_temps)
>> -		fprintf (mstream, "\t@-touch -r %s %s.tem > /dev/null 2>&1 "
>> -			 "&& mv %s.tem %s\n",
>> +		fprintf (mstream, "\t@-touch -r \"%s\" \"%s.tem\" > /dev/null "
>> +			 "2>&1 && mv \"%s.tem\" \"%s\"\n",
>>   			 input_name, input_name, input_name, input_name);
>>   	    }
>>   	  else
>>
> 


Pushed.
  

Patch

diff --git a/gcc/lto-wrapper.cc b/gcc/lto-wrapper.cc
index 9a764702ffc..b12bcc1ad27 100644
--- a/gcc/lto-wrapper.cc
+++ b/gcc/lto-wrapper.cc
@@ -2010,8 +2010,8 @@  cont:
 	         truncate them as soon as we have processed it.  This
 		 reduces temporary disk-space usage.  */
 	      if (! save_temps)
-		fprintf (mstream, "\t@-touch -r %s %s.tem > /dev/null 2>&1 "
-			 "&& mv %s.tem %s\n",
+		fprintf (mstream, "\t@-touch -r \"%s\" \"%s.tem\" > /dev/null "
+			 "2>&1 && mv \"%s.tem\" \"%s\"\n",
 			 input_name, input_name, input_name, input_name); 
 	    }
 	  else