bug-autoconf
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: meaning of CFLAGS


From: Ralf Corsepius
Subject: Re: meaning of CFLAGS
Date: Thu, 20 Jul 2006 16:38:40 +0200

On Thu, 2006-07-20 at 16:08 +0200, Bruno Haible wrote:
> Hi,
> 
> The autoconf manual describes CFLAGS like this:
> 
>    "Variable: CFLAGS
>      Debugging and optimization options for the C compiler.  If it is
>      not set in the environment when `configure' runs, the default
>      value is set when you call `AC_PROG_CC' (or empty if you don't).
>      `configure' uses this variable when compiling programs to test for
>      C features."
> 
> Based on this text, in a Makefile.in of mine, I use CFLAGS for .c to .o
> compilation, but not for linking. Because debugging and optimization
> flags are useless for linking.
This assumption is wrong. Such flags can affect linking, e.g. pull
different startup files, different run time libraries and imply
different linker flags (consider profiling).

> But the GNU standards say:
>    "`CFLAGS' should be used in every invocation of the C compiler, both
>     those which do compilation and those which do linking."
> 
> Now it makes a difference. A user on Solaris/x86_64 tried to use
> 
>    CC=cc CFLAGS=-xarch=amd64
> 
> and it didn't work with my Makefile.in. Is the user supposed to use such
> setting? Or does he need to use
> 
>    CC="cc -xarch=amd64"
It depends on what -xarch=... does.

The fundamental question would be: "Which component of a toolchain does
a flag affect/is a flag processed by"?

There exist cases where first form is needed and there exist cases where
the latter form is needed and there exists a fairly large grey zone
inbetween.

Ralf






reply via email to

[Prev in Thread] Current Thread [Next in Thread]