public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Adrian Bunk <bunk@kernel.org>
To: David Miller <davem@davemloft.net>
Cc: mingo@elte.hu, sam@ravnborg.org, thomas@archlinux.org,
	tglx@linutronix.de, linux-kernel@vger.kernel.org,
	linux-kbuild@vger.kernel.org, akpm@linux-foundation.org
Subject: Re: 2.6.24-rc1-82798a1 compile failure (x86_64)
Date: Sun, 4 Nov 2007 16:29:30 +0100	[thread overview]
Message-ID: <20071104152930.GL12045@stusta.de> (raw)
In-Reply-To: <20071104.023133.241080055.davem@davemloft.net>

On Sun, Nov 04, 2007 at 02:31:33AM -0800, David Miller wrote:
> From: Ingo Molnar <mingo@elte.hu>
> Date: Sun, 4 Nov 2007 11:04:29 +0100
> 
> > 
> > * Adrian Bunk <bunk@kernel.org> wrote:
> > 
> > > I also have CFLAGS set on some computers in my environments since for 
> > > packages using GNU autoconf that's the correct way to set the compiler 
> > > flags.
> > > 
> > > The kernel already sets all flags correctly, and a user wanting to 
> > > change the flags for the kernel is an exception with very special 
> > > needs (I'd even claim so special that he could simply edit the 
> > > Makefile...).
>  ...
> > At minimum the extra CFLAGS needs to be put into the .config - but 
> > that's not a too nice solution either. How about just adding an 
> > extra-CFLAGS option to .config and perhaps a 'make configpickupCFLAGS' 
> > pass for anyone who wants to propagate the environment CFLAGS into the 
> > kernel build.
> 
> I totally disagree.
> 
> People can't have it both ways.  CFLAGS has global meaning in every
> Makefile based build tree, it's not an "autoconf" thing.  This is well
> established practice, and I think it's a good thing the kernel does it
> now too.

Makefiles do normally not pick such variables from the environment.

> If people set something like CFLAGS in their environment, they must
> understand what that means, and it means that universally it will
> influence your Makefile based builds.  Yes, this means all of them and
> even potentially the kernel build.
> 
> I definitely think the new kbuild CFLAGS behavior is just fine.  I
> would never ever set CFLAGS globally in my environment and expect sane
> things to happen.
> 
> If people do stupid things in their environment without being willing
> to accept all of the consequences, that isn't a reason to not provide
> this feature in kbuild.
> 
> Do you even understand that taking this out of kbuild will just push
> the problem one level of indirection away?  Say this stupid CFLAGS
> setting creaps into someone's gcc bootstrap, and that gcc miscompiles
> the kernel.  You will have fun debugging that too, but I'm sad to say
> you won't be able to pass the blame to kbuild on that one 8-/
> 
> It's just more proof that setting CFLAGS globally in your environment
> is just plain stupid and asking for trouble.
> 
> Don't do it.

I'm not seeing what's stupid about this.

I had for years CFLAGS="-O2 -mcpu=v8" set in the environment on a
machine where I compiled virtually all software (including gcc), and 
different similar settings on other machines, without running into any 
problems.

I also doubt it's wanted that the kernel picks up the -I/-L/-R flags
I have set in some environments where many libraries are installed in 
non-standard places.

Altogether:
- normally, Makefiles don't pick environment variables
- most open source software uses GNU autoconf
- GNU autoconf does pick environment variables
- GNU autoconf documents to set *FLAGS in the environment
- the kernel has different needs regarding the *FLAGS than userspace
- automatically using the *FLAGS people have set in their environment
  for userspace software in the kernel will cause problems
- the kernel should have already picked the optimal *FLAGS for you,
  and wanting different flags in the kernel is something quite exotic

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


  parent reply	other threads:[~2007-11-04 15:30 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-29 21:46 2.6.24-rc1-82798a1 compile failure (x86_64) Thomas Bächler
2007-10-29 22:12 ` Thomas Gleixner
     [not found]   ` <47266BF6.6070206@archlinux.org>
     [not found]     ` <alpine.LFD.0.9999.0710300033470.3186@localhost.localdomain>
2007-10-30  9:10       ` Thomas Bächler
2007-11-03 10:04         ` Thomas Bächler
2007-11-03 12:11           ` Sam Ravnborg
2007-11-04  2:02             ` Adrian Bunk
2007-11-04 10:04               ` Ingo Molnar
2007-11-04 10:19                 ` Sam Ravnborg
2007-11-04 10:31                 ` David Miller
2007-11-04 11:16                   ` Sam Ravnborg
2007-11-04 12:27                     ` Thomas Bächler
2007-11-04 15:29                   ` Adrian Bunk [this message]
2007-11-04 15:55                     ` Oleg Verych
2007-11-04 16:19                     ` Giacomo Catenazzi
2007-11-04 16:34                       ` Adrian Bunk
2007-11-04 18:33                         ` Giacomo Catenazzi
2007-11-05  4:03                         ` David Miller
2007-11-04 18:10                     ` Sam Ravnborg
2007-11-05  4:01                     ` David Miller
2007-11-06 17:32               ` Arjan van de Ven
2007-11-07  0:12                 ` Adrian Bunk

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20071104152930.GL12045@stusta.de \
    --to=bunk@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=davem@davemloft.net \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=sam@ravnborg.org \
    --cc=tglx@linutronix.de \
    --cc=thomas@archlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox