All of lore.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.