locale: fix hard-coded reference to gcc -E

Message ID 20160824075705.7148-1-jeremy.rosen@smile.fr
State New, archived
Headers

Commit Message

Jérémy Rosen Aug. 24, 2016, 7:57 a.m. UTC
  When new version of compilers are published, they may not be compatible with 
older versions of software. This is particularly common when software is built
with -Werror.

Autotools provides a way for a user to specify the name of his compiler using a
set of variables ($CC $CXX $CPP etc.). Those variables are used correctly when
compiling glibc but the script used to generate transliterations in the locale/
subdirectory directly calls the gcc binary to get the output of the 
preprocessor instead of using the $CPP variable provided by the build 
environment. 

This patch replaces the hard-coded reference to the gcc binary with the proper
environment variable, thus allowing a user to override it.


---
 locale/gen-translit.pl | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Mike Frysinger Aug. 24, 2016, 5:39 p.m. UTC | #1
On 24 Aug 2016 09:57, Jérémy Rosen wrote:
> When new version of compilers are published, they may not be compatible with 
> older versions of software. This is particularly common when software is built
> with -Werror.
> 
> Autotools provides a way for a user to specify the name of his compiler using a
> set of variables ($CC $CXX $CPP etc.). Those variables are used correctly when
> compiling glibc but the script used to generate transliterations in the locale/
> subdirectory directly calls the gcc binary to get the output of the 
> preprocessor instead of using the $CPP variable provided by the build 
> environment. 
> 
> This patch replaces the hard-coded reference to the gcc binary with the proper
> environment variable, thus allowing a user to override it.
> 
> 
> ---
>  locale/gen-translit.pl | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/locale/gen-translit.pl b/locale/gen-translit.pl
> index 30d3f2f..7b287fa 100644
> --- a/locale/gen-translit.pl
> +++ b/locale/gen-translit.pl
> @@ -1,5 +1,5 @@
>  #!/usr/bin/perl -w
> -open F, "cat C-translit.h.in | gcc -E - |" || die "Cannot preprocess input file";
> +open F, 'cat C-translit.h.in | ${CPP:-gcc -E} - |' || die "Cannot preprocess input file";

should this go even further with:
  ${CPP:-${CC} -E}
-mike
  
Jérémy Rosen Aug. 25, 2016, 8:08 a.m. UTC | #2
On 24/08/2016 19:39, Mike Frysinger wrote:
> On 24 Aug 2016 09:57, Jérémy Rosen wrote:
[...]
>>
>> diff --git a/locale/gen-translit.pl b/locale/gen-translit.pl
>> index 30d3f2f..7b287fa 100644
>> --- a/locale/gen-translit.pl
>> +++ b/locale/gen-translit.pl
>> @@ -1,5 +1,5 @@
>>   #!/usr/bin/perl -w
>> -open F, "cat C-translit.h.in | gcc -E - |" || die "Cannot preprocess input file";
>> +open F, 'cat C-translit.h.in | ${CPP:-gcc -E} - |' || die "Cannot preprocess input file";
> should this go even further with:
>    ${CPP:-${CC} -E}
> -mike
I'm not sure this is a good idea... $CC and $CPP are normally both set 
by autotools, so the chance of CC being set and not CPP are pretty low.
This happens if someone manually runs the script and explicitely sets 
$CC but not $CPP. A rare case since the script itself doesn't use $CC 
anywhere else.

moreover, if the script is run manually, the chances are high that $CC 
won't be set at all. An even more conservative

${CPP:-{CC:-gcc} -E}

would cover all bases, but I personally think it makes things unreadable 
for no real-world gain.

This is,  of course, a matter of taste and I will gladly submit a V2 
with this change if that is the recommanded way

Regards
Jeremy
  
Jérémy Rosen Sept. 2, 2016, 6:54 a.m. UTC | #3
Any news ?


On 24/08/2016 09:57, Jérémy Rosen wrote:
> When new version of compilers are published, they may not be compatible with
> older versions of software. This is particularly common when software is built
> with -Werror.
>
> Autotools provides a way for a user to specify the name of his compiler using a
> set of variables ($CC $CXX $CPP etc.). Those variables are used correctly when
> compiling glibc but the script used to generate transliterations in the locale/
> subdirectory directly calls the gcc binary to get the output of the
> preprocessor instead of using the $CPP variable provided by the build
> environment.
>
> This patch replaces the hard-coded reference to the gcc binary with the proper
> environment variable, thus allowing a user to override it.
>
>
> ---
>   locale/gen-translit.pl | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/locale/gen-translit.pl b/locale/gen-translit.pl
> index 30d3f2f..7b287fa 100644
> --- a/locale/gen-translit.pl
> +++ b/locale/gen-translit.pl
> @@ -1,5 +1,5 @@
>   #!/usr/bin/perl -w
> -open F, "cat C-translit.h.in | gcc -E - |" || die "Cannot preprocess input file";
> +open F, 'cat C-translit.h.in | ${CPP:-gcc -E} - |' || die "Cannot preprocess input file";
>   
>   
>   sub cstrlen {
  
Jérémy Rosen Sept. 12, 2016, 3:58 p.m. UTC | #4
Any news


On 02/09/2016 08:54, Jérémy Rosen wrote:
> Any news ?
>
>
> On 24/08/2016 09:57, J�r�my Rosen wrote:
>> When new version of compilers are published, they may not be compatible with
>> older versions of software. This is particularly common when software is built
>> with -Werror.
>>
>> Autotools provides a way for a user to specify the name of his compiler using a
>> set of variables ($CC $CXX $CPP etc.). Those variables are used correctly when
>> compiling glibc but the script used to generate transliterations in the locale/
>> subdirectory directly calls the gcc binary to get the output of the
>> preprocessor instead of using the $CPP variable provided by the build
>> environment.
>>
>> This patch replaces the hard-coded reference to the gcc binary with the proper
>> environment variable, thus allowing a user to override it.
>>
>>
>> ---
>>    locale/gen-translit.pl | 2 +-
>>    1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/locale/gen-translit.pl b/locale/gen-translit.pl
>> index 30d3f2f..7b287fa 100644
>> --- a/locale/gen-translit.pl
>> +++ b/locale/gen-translit.pl
>> @@ -1,5 +1,5 @@
>>    #!/usr/bin/perl -w
>> -open F, "cat C-translit.h.in | gcc -E - |" || die "Cannot preprocess input file";
>> +open F, 'cat C-translit.h.in | ${CPP:-gcc -E} - |' || die "Cannot preprocess input file";
>>    
>>    
>>    sub cstrlen {
>
>
  
Jérémy Rosen Sept. 19, 2016, 7:23 a.m. UTC | #5
still no news ?

This is a simple one-line fix which only affects build time...


Thx

Jérémy Rosen


On 12/09/2016 17:58, Jérémy Rosen wrote:
> Any news
>
>
> On 02/09/2016 08:54, Jérémy Rosen wrote:
>> Any news ?
>>
>>
>> On 24/08/2016 09:57, J�r�my Rosen wrote:
>>> When new version of compilers are published, they may not be 
>>> compatible with
>>> older versions of software. This is particularly common when 
>>> software is built
>>> with -Werror.
>>>
>>> Autotools provides a way for a user to specify the name of his 
>>> compiler using a
>>> set of variables ($CC $CXX $CPP etc.). Those variables are used 
>>> correctly when
>>> compiling glibc but the script used to generate transliterations in 
>>> the locale/
>>> subdirectory directly calls the gcc binary to get the output of the
>>> preprocessor instead of using the $CPP variable provided by the build
>>> environment.
>>>
>>> This patch replaces the hard-coded reference to the gcc binary with 
>>> the proper
>>> environment variable, thus allowing a user to override it.
>>>
>>>
>>> ---
>>>    locale/gen-translit.pl | 2 +-
>>>    1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/locale/gen-translit.pl b/locale/gen-translit.pl
>>> index 30d3f2f..7b287fa 100644
>>> --- a/locale/gen-translit.pl
>>> +++ b/locale/gen-translit.pl
>>> @@ -1,5 +1,5 @@
>>>    #!/usr/bin/perl -w
>>> -open F, "cat C-translit.h.in | gcc -E - |" || die "Cannot 
>>> preprocess input file";
>>> +open F, 'cat C-translit.h.in | ${CPP:-gcc -E} - |' || die "Cannot 
>>> preprocess input file";
>>>          sub cstrlen {
>>
>>
>
>
  

Patch

diff --git a/locale/gen-translit.pl b/locale/gen-translit.pl
index 30d3f2f..7b287fa 100644
--- a/locale/gen-translit.pl
+++ b/locale/gen-translit.pl
@@ -1,5 +1,5 @@ 
 #!/usr/bin/perl -w
-open F, "cat C-translit.h.in | gcc -E - |" || die "Cannot preprocess input file";
+open F, 'cat C-translit.h.in | ${CPP:-gcc -E} - |' || die "Cannot preprocess input file";
 
 
 sub cstrlen {