2013-03-24 22:16:54

by Mike Frysinger

[permalink] [raw]
Subject: [PATCH [nfs-utils]] locktes/rpcgen: tweak how we override compiler settings

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 <[email protected]>
---
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



2013-03-25 12:42:38

by Steve Dickson

[permalink] [raw]
Subject: Re: [PATCH [nfs-utils]] locktes/rpcgen: tweak how we override compiler settings

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 <[email protected]>
> ---
> 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 [email protected] 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.

2013-03-25 18:28:58

by Mike Frysinger

[permalink] [raw]
Subject: Re: [PATCH [nfs-utils]] locktes/rpcgen: tweak how we override compiler settings

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


Attachments:
signature.asc (836.00 B)
This is a digitally signed message part.

2013-03-25 16:51:09

by Steve Dickson

[permalink] [raw]
Subject: Re: [PATCH [nfs-utils]] locktes/rpcgen: tweak how we override compiler settings



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.


2013-03-25 16:14:45

by Mike Frysinger

[permalink] [raw]
Subject: Re: [PATCH [nfs-utils]] locktes/rpcgen: tweak how we override compiler settings

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


Attachments:
signature.asc (836.00 B)
This is a digitally signed message part.