lkml.org 
[lkml]   [2008]   [Mar]   [4]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateTue, 4 Mar 2008 09:03:59 +0100
FromSam Ravnborg <>
SubjectRe: [patch] x86: phase out forced inlining
On Mon, Mar 03, 2008 at 10:42:31PM -0800, Andrew Morton wrote:
> On Mon, 3 Mar 2008 13:13:35 +0100 Ingo Molnar <mingo@elte.hu> wrote:
> 
> > +config OPTIMIZE_INLINING
> > +	bool "Allow gcc to uninline functions marked 'inline'"
> > +	default y
> > +	help
> > +	  This option determines if the kernel forces gcc to inline the functions
> > +	  developers have marked 'inline'. Doing so takes away freedom from gcc to
> > +	  do what it thinks is best, which is desirable for the gcc 3.x series of
> > +	  compilers. The gcc 4.x series have a rewritten inlining algorithm and
> > +	  disabling this option will generate a smaller kernel there. Hopefully
> > +	  this algorithm is so good that allowing gcc4 to make the decision can
> > +	  become the default in the future, until then this option is there to
> > +	  test gcc for this.
> 
> urgh.  This will cause whatever problem
> 4507a6a59cfc6997e532cd812a8bd244181e6205 fixed five years ago to resurface
> for incautious gcc-3.x users.
> 
> I'd suggest that this
> 
> > +#ifndef CONFIG_OPTIMIZE_INLINING
> 
> become something along the lines of
> 
> > +#ifndef CONFIG_OPTIMIZE_INLINING && (__GNUC__ > 3)
> 
> It would be nice to be able to feed the gcc version into the Kconfig logic,
> really..
We can do this using a few environment options.

Somewhere in a Makefile:
export CC_MAJOR=`magic`
export CC_MINOR=`more magic`

And in a Kconfig file:

config CC_MAJOR
	string
	option env=CC_MAJOR


And then we can do:
config CC_DEFAULT_INLINE
	bool "Force inline of functions annotated inline"
	default y if CC_MAJOR = 04

Shall I try to cook up a patch for this?
[I may get access to my dev box tonight - cannot promise..]

	Sam


\
 
 \ /
  Last update: 2008-03-04 09:29    [from the cache]
©2003-2008