|
Message-ID: <20151023051604.GF8645@brightrain.aerifal.cx> Date: Fri, 23 Oct 2015 01:16:04 -0400 From: Rich Felker <dalias@...c.org> To: musl@...ts.openwall.com Subject: Re: Having hard time adding to CFLAGS On Fri, Oct 23, 2015 at 06:53:29AM +0200, Denys Vlasenko wrote: > On Fri, Oct 23, 2015 at 6:09 AM, Rich Felker <dalias@...c.org> wrote: > > On Thu, Oct 22, 2015 at 11:02:36PM -0400, Rich Felker wrote: > >> > the attached patch makes this work, but i > >> > consider -Os to be not part of 'needed' > >> > >> > diff --git a/Makefile b/Makefile > >> > index 844a017..f713286 100644 > >> > --- a/Makefile > >> > +++ b/Makefile > >> > @@ -94,22 +94,22 @@ crt/crt1.o crt/Scrt1.o crt/rcrt1.o src/ldso/dlstart.lo: $(wildcard arch/$(ARCH)/ > >> > > >> > crt/rcrt1.o: src/ldso/dlstart.c > >> > > >> > -crt/Scrt1.o crt/rcrt1.o: CFLAGS += -fPIC > >> > +crt/Scrt1.o crt/rcrt1.o: CFLAGS_ALL += -fPIC > >> > >> This is the correct fix. I was not aware that make variables set from > >> the make command line would take precedence over the target-specific > >> += concatenations. The intent has always been that editing CFLAGS > >> should not break the build (unless you put really inapproriate stuff > >> there, of course). > > > > I've committed this with one change (omitting the -O3 thing that's > > really optional) and another related fix. > > > > Note however that overriding CFLAGS at make time is still a bad idea. > > It will suppress all the warning options configure detected and other > > useful but non-essential things like -fno-unwind-tables and > > -fno-asynchronous-unwind-tables. We should probably discuss whether > > this behavior is desirable. We could factor out all of the stuff > > configure detects into a CFLAGS_AUTO and leave CFLAGS just containing > > the user-provided options. Opinions? > > Make configure --help warn/explain what would happen if > make CFLAGS=foo is run. > > Currently, it is confusing. See for yourself: > > > Usage: $0 [OPTION]... [VAR=VALUE]... [TARGET] > > To assign environment variables (e.g., CC, CFLAGS...), specify them as > VAR=VALUE. See below for descriptions of some of the useful variables. > .... > ("ok, I got it. CFLAGS should go to configure's command line!") > .... > Some influential environment variables: > CC C compiler command [detected] > CFLAGS C compiler flags [-Os -pipe ...] > CROSS_COMPILE prefix for cross compiler and tools [none] > LIBCC compiler runtime library [detected] > > Use these variables to override the choices made by configure. > > ("What? You just said that CFLAGS should be on command line! > Now you are saying it should be in the environment! > What it is?") The behavior is the same as autoconf: they're accepted either as environment variables or on the configure command line. Some users do: CFLAGS=... ./configure ... and others do: ./configure CFLAGS=... ... Following a principle of least surprise, I've tried to match the behavior of autoconf-generated configure scripts, which actually has something resembling a specification outside of the autoconf implementation: https://www.gnu.org/prep/standards/html_node/Configuration.html I can add some language to the help text to make it explicit that either is accepted. Rich
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.