diff mbox

[[nfs-utils] ] locktes/rpcgen: tweak how we override compiler settings

Message ID 1364163668-15490-1-git-send-email-vapier@gentoo.org (mailing list archive)
State New, archived
Headers show

Commit Message

Mike Frysinger March 24, 2013, 10:21 p.m. UTC
Newer autotools will use both CFLAGS and <target>_CFLAGS when compiling
the <target>.  Adding the build settings to the target-specific flags no
longer works as a way to compile build-time tools.

Instead, clobber the global flags.  This triggers an automake warning,
but the end result actually works (unlike the existing code).

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
---
 tools/locktest/Makefile.am | 7 +++----
 tools/rpcgen/Makefile.am   | 7 +++----
 2 files changed, 6 insertions(+), 8 deletions(-)

Comments

Steve Dickson March 25, 2013, 12:42 p.m. UTC | #1
Hello,

On 24/03/13 18:21, Mike Frysinger wrote:
> Newer autotools will use both CFLAGS and <target>_CFLAGS when compiling
> the <target>.  Adding the build settings to the target-specific flags no
> longer works as a way to compile build-time tools.
> 
> Instead, clobber the global flags.  This triggers an automake warning,
> but the end result actually works (unlike the existing code).
> 
> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
> ---
>  tools/locktest/Makefile.am | 7 +++----
>  tools/rpcgen/Makefile.am   | 7 +++----
>  2 files changed, 6 insertions(+), 8 deletions(-)
> 
> diff --git a/tools/locktest/Makefile.am b/tools/locktest/Makefile.am
> index 3156815..efe6fcd 100644
> --- a/tools/locktest/Makefile.am
> +++ b/tools/locktest/Makefile.am
> @@ -1,12 +1,11 @@
>  ## Process this file with automake to produce Makefile.in
>  
>  CC=$(CC_FOR_BUILD)
> -LIBTOOL = @LIBTOOL@ --tag=CC
> +CFLAGS=$(CFLAGS_FOR_BUILD)
> +CPPFLAGS=$(CPPFLAGS_FOR_BUILD)
> +LDFLAGS=$(LDFLAGS_FOR_BUILD)
>  
>  noinst_PROGRAMS = testlk
>  testlk_SOURCES = testlk.c
> -testlk_CFLAGS=$(CFLAGS_FOR_BUILD)
> -testlk_CPPFLAGS=$(CPPFLAGS_FOR_BUILD)
> -testlk_LDFLAGS=$(LDFLAGS_FOR_BUILD)
>  
>  MAINTAINERCLEANFILES = Makefile.in
> diff --git a/tools/rpcgen/Makefile.am b/tools/rpcgen/Makefile.am
> index 8a9ec89..3adeec1 100644
> --- a/tools/rpcgen/Makefile.am
> +++ b/tools/rpcgen/Makefile.am
> @@ -1,7 +1,9 @@
>  ## Process this file with automake to produce Makefile.in
>  
>  CC=$(CC_FOR_BUILD)
> -LIBTOOL = @LIBTOOL@ --tag=CC
> +CFLAGS=$(CFLAGS_FOR_BUILD)
> +CPPFLAGS=$(CPPFLAGS_FOR_BUILD)
> +LDFLAGS=$(LDFLAGS_FOR_BUILD)
>  
>  noinst_PROGRAMS = rpcgen
>  rpcgen_SOURCES = rpc_clntout.c rpc_cout.c rpc_hout.c rpc_main.c \
> @@ -9,9 +11,6 @@ rpcgen_SOURCES = rpc_clntout.c rpc_cout.c rpc_hout.c rpc_main.c \
>  		 rpc_util.c rpc_sample.c rpc_output.h rpc_parse.h \
>  		 rpc_scan.h rpc_util.h
>  
> -rpcgen_CFLAGS=$(CFLAGS_FOR_BUILD)
> -rpcgen_CPPLAGS=$(CPPFLAGS_FOR_BUILD)
> -rpcgen_LDFLAGS=$(LDFLAGS_FOR_BUILD)
>  rpcgen_LDADD=$(LIBTIRPC)
>  
>  MAINTAINERCLEANFILES = Makefile.in
> -- 1.8.1.2 -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
> 
This patch is causing the following warnings:

tools/locktest/Makefile.am:4: warning: 'CFLAGS' is a user variable, you should not override it;
tools/locktest/Makefile.am:4: use 'AM_CFLAGS' instead
tools/locktest/Makefile.am:5: warning: 'CPPFLAGS' is a user variable, you should not override it;
tools/locktest/Makefile.am:5: use 'AM_CPPFLAGS' instead
tools/locktest/Makefile.am:6: warning: 'LDFLAGS' is a user variable, you should not override it;
tools/locktest/Makefile.am:6: use 'AM_LDFLAGS' instead
tools/rpcgen/Makefile.am:4: warning: 'CFLAGS' is a user variable, you should not override it;
tools/rpcgen/Makefile.am:4: use 'AM_CFLAGS' instead
tools/rpcgen/Makefile.am:5: warning: 'CPPFLAGS' is a user variable, you should not override it;
tools/rpcgen/Makefile.am:5: use 'AM_CPPFLAGS' instead
tools/rpcgen/Makefile.am:6: warning: 'LDFLAGS' is a user variable, you should not override it;
tools/rpcgen/Makefile.am:6: use 'AM_LDFLAGS' instead

You didn't see these in your testing?

Also what exactly broke that this patch fixes? 

steved.
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Mike Frysinger March 25, 2013, 4:19 p.m. UTC | #2
On Monday 25 March 2013 08:42:32 Steve Dickson wrote:
> On 24/03/13 18:21, Mike Frysinger wrote:
> > Newer autotools will use both CFLAGS and <target>_CFLAGS when compiling
> > the <target>.  Adding the build settings to the target-specific flags no
> > longer works as a way to compile build-time tools.
> > 
> > Instead, clobber the global flags.  This triggers an automake warning,
> > but the end result actually works (unlike the existing code).
> 
> This patch is causing the following warnings:
> ...
> You didn't see these in your testing?

in my summary:

	Instead, clobber the global flags.  This triggers an automake warning,
	but the end result actually works (unlike the existing code).

> Also what exactly broke that this patch fixes?

also in my summary:

	Newer autotools will use both CFLAGS and <target>_CFLAGS when compiling
	the <target>.

so when you cross-compile (e.g. --build=x86_64-linux-gnu --host=arm-linux-
gnu), and you set CFLAGS to include settings which are valid only for the host 
(e.g. -mfloat-abi=hard -mfp=neon), those flags will also get passed to the build 
compiler when compiling these tools and they'll error out (because the build 
gcc doesn't recognize these flags).
-mike
Steve Dickson March 25, 2013, 4:51 p.m. UTC | #3
On 25/03/13 12:19, Mike Frysinger wrote:
> On Monday 25 March 2013 08:42:32 Steve Dickson wrote:
>> On 24/03/13 18:21, Mike Frysinger wrote:
>>> Newer autotools will use both CFLAGS and <target>_CFLAGS when compiling
>>> the <target>.  Adding the build settings to the target-specific flags no
>>> longer works as a way to compile build-time tools.
>>>
>>> Instead, clobber the global flags.  This triggers an automake warning,
>>> but the end result actually works (unlike the existing code).
>>
>> This patch is causing the following warnings:
>> ...
>> You didn't see these in your testing?
> 
> in my summary:
> 
> 	Instead, clobber the global flags.  This triggers an automake warning,
> 	but the end result actually works (unlike the existing code).
Ok... I did miss that part of the summary... 

> 
>> Also what exactly broke that this patch fixes?
> 
> also in my summary:
> 
> 	Newer autotools will use both CFLAGS and <target>_CFLAGS when compiling
> 	the <target>.
> 
> so when you cross-compile (e.g. --build=x86_64-linux-gnu --host=arm-linux-
> gnu), and you set CFLAGS to include settings which are valid only for the host 
> (e.g. -mfloat-abi=hard -mfp=neon), those flags will also get passed to the build 
> compiler when compiling these tools and they'll error out (because the build 
> gcc doesn't recognize these flags).
And setting AM_CFLAGS does on take care of this problem...

I'm just trying to get rid of those warnings... 

steved.

--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Mike Frysinger March 25, 2013, 6:33 p.m. UTC | #4
On Monday 25 March 2013 12:51:07 Steve Dickson wrote:
> On 25/03/13 12:19, Mike Frysinger wrote:
> > On Monday 25 March 2013 08:42:32 Steve Dickson wrote:
> >> Also what exactly broke that this patch fixes?
> > 
> > also in my summary:
> > 	Newer autotools will use both CFLAGS and <target>_CFLAGS when compiling
> > 	the <target>.
> > 
> > so when you cross-compile (e.g. --build=x86_64-linux-gnu
> > --host=arm-linux- gnu), and you set CFLAGS to include settings which are
> > valid only for the host (e.g. -mfloat-abi=hard -mfp=neon), those flags
> > will also get passed to the build compiler when compiling these tools
> > and they'll error out (because the build gcc doesn't recognize these
> > flags).
> 
> And setting AM_CFLAGS does on take care of this problem...
> 
> I'm just trying to get rid of those warnings...

yeah, i don't know how to make it work w/out triggering the warnings :(.  
AM_CFLAGS is appended to CFLAGS rather than clobber it.

the concept of having build time tools is a bit foreign to automake atm, so we 
have to open code this stuff :/.
-mike
diff mbox

Patch

diff --git a/tools/locktest/Makefile.am b/tools/locktest/Makefile.am
index 3156815..efe6fcd 100644
--- a/tools/locktest/Makefile.am
+++ b/tools/locktest/Makefile.am
@@ -1,12 +1,11 @@ 
 ## Process this file with automake to produce Makefile.in
 
 CC=$(CC_FOR_BUILD)
-LIBTOOL = @LIBTOOL@ --tag=CC
+CFLAGS=$(CFLAGS_FOR_BUILD)
+CPPFLAGS=$(CPPFLAGS_FOR_BUILD)
+LDFLAGS=$(LDFLAGS_FOR_BUILD)
 
 noinst_PROGRAMS = testlk
 testlk_SOURCES = testlk.c
-testlk_CFLAGS=$(CFLAGS_FOR_BUILD)
-testlk_CPPFLAGS=$(CPPFLAGS_FOR_BUILD)
-testlk_LDFLAGS=$(LDFLAGS_FOR_BUILD)
 
 MAINTAINERCLEANFILES = Makefile.in
diff --git a/tools/rpcgen/Makefile.am b/tools/rpcgen/Makefile.am
index 8a9ec89..3adeec1 100644
--- a/tools/rpcgen/Makefile.am
+++ b/tools/rpcgen/Makefile.am
@@ -1,7 +1,9 @@ 
 ## Process this file with automake to produce Makefile.in
 
 CC=$(CC_FOR_BUILD)
-LIBTOOL = @LIBTOOL@ --tag=CC
+CFLAGS=$(CFLAGS_FOR_BUILD)
+CPPFLAGS=$(CPPFLAGS_FOR_BUILD)
+LDFLAGS=$(LDFLAGS_FOR_BUILD)
 
 noinst_PROGRAMS = rpcgen
 rpcgen_SOURCES = rpc_clntout.c rpc_cout.c rpc_hout.c rpc_main.c \
@@ -9,9 +11,6 @@  rpcgen_SOURCES = rpc_clntout.c rpc_cout.c rpc_hout.c rpc_main.c \
 		 rpc_util.c rpc_sample.c rpc_output.h rpc_parse.h \
 		 rpc_scan.h rpc_util.h
 
-rpcgen_CFLAGS=$(CFLAGS_FOR_BUILD)
-rpcgen_CPPLAGS=$(CPPFLAGS_FOR_BUILD)
-rpcgen_LDFLAGS=$(LDFLAGS_FOR_BUILD)
 rpcgen_LDADD=$(LIBTIRPC)
 
 MAINTAINERCLEANFILES = Makefile.in