2005-12-06 20:27:45

by Olivier MATZ

[permalink] [raw]
Subject: [PATCH] asm-i386 : config.h should not be included out of kernel

--- linux-2.6.14.3.orig/include/asm-i386/param.h 2005-12-06 14:13:15.000000000 +0100
+++ linux-2.6.14.3/include/asm-i386/param.h 2005-12-06 13:51:12.000000000 +0100
@@ -1,9 +1,9 @@
-#include <linux/config.h>
-
#ifndef _ASMi386_PARAM_H
#define _ASMi386_PARAM_H

#ifdef __KERNEL__
+#include <linux/config.h> /* mustn't include <linux/config.h> outside of #ifdef __KERNEL__ */
+
# define HZ CONFIG_HZ /* Internal kernel timer frequency */
# define USER_HZ 100 /* .. some user interfaces are in "ticks" */
# define CLOCKS_PER_SEC (USER_HZ) /* like times() */


Attachments:
asm-i386_dont_include_config.diff (566.00 B)

2005-12-06 21:11:53

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [PATCH] asm-i386 : config.h should not be included out of kernel

Am Dienstag 06 Dezember 2005 21:26 schrieb Olivier MATZ:
> @@ -1,9 +1,9 @@
> -#include <linux/config.h>
> -
>  #ifndef _ASMi386_PARAM_H
>  #define _ASMi386_PARAM_H
>  
>  #ifdef __KERNEL__
> +#include <linux/config.h>  /* mustn't include <linux/config.h> outside of
> #ifdef __KERNEL__ */ +

Just drop that line completely, including linux/config.h is no longer
necessary.

Arnd <><

2005-12-07 17:29:55

by Olivier MATZ

[permalink] [raw]
Subject: Re: [PATCH] asm-i386 : config.h should not be included out of kernel

Hi,

> Just drop that line completely, including linux/config.h is no longer
> necessary.

You're right, including linux/config.h is not necessary because every
file that includes asm/param.h also includes the linux/config.h directly
or indirectly.

But in my opinion, as we use CONFIG_HERTZ in param.h, we should keep the
include of config.h.

Olivier

2005-12-07 19:10:11

by Sam Ravnborg

[permalink] [raw]
Subject: Re: [PATCH] asm-i386 : config.h should not be included out of kernel

On Wed, Dec 07, 2005 at 06:28:53PM +0100, Olivier MATZ wrote:
>
> But in my opinion, as we use CONFIG_HERTZ in param.h, we should keep the
> include of config.h.

If you look at the commandline passed to gcc you will notice -include
include/linux/autoconf.h which tell gcc to pull in autoconf.h.
So it is no longer required to include config.h.

Sam

2005-12-07 20:02:25

by Andrew Walrond

[permalink] [raw]
Subject: Re: [PATCH] asm-i386 : config.h should not be included out of kernel

On Wednesday 07 December 2005 19:10, Sam Ravnborg wrote:
> On Wed, Dec 07, 2005 at 06:28:53PM +0100, Olivier MATZ wrote:
> > But in my opinion, as we use CONFIG_HERTZ in param.h, we should keep the
> > include of config.h.
>
> If you look at the commandline passed to gcc you will notice -include
> include/linux/autoconf.h which tell gcc to pull in autoconf.h.
> So it is no longer required to include config.h.
>

Is it the intention for the real kernel headers to be used by userland apps,
and for linux-libc-headers et-al to be deprecated?

If so, how far down this road are we? I tested a few things recently, out of
interest;

- recent glibc builds fine with real 2.6.14.2 headers
- x11 cvs won't build without real kernel headers
- net-tools will only build with sanitized headers

Andrew Walrond

2005-12-07 20:10:52

by Olivier MATZ

[permalink] [raw]
Subject: Re: [PATCH] asm-i386 : config.h should not be included out of kernel

Hi Sam,

> If you look at the commandline passed to gcc you will notice -include
> include/linux/autoconf.h which tell gcc to pull in autoconf.h.
> So it is no longer required to include config.h.

I'm not sure. On my 2.6.14.3, this is a compilation line :

gcc -m32 -Wp,-MD,kernel/.sys.o.d -nostdinc -isystem
/usr/lib/gcc-lib/i486-linux-gnu/3.3.6/include -D__KERNEL__ -Iinclude
-Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing
-fno-common -ffreestanding -Os -fno-omit-frame-pointer
-fno-optimize-sibling-calls -g -pipe -msoft-float
-mpreferred-stack-boundary=2 -march=i686 -mregparm=3
-Iinclude/asm-i386/mach-default -DKBUILD_BASENAME=sys
-DKBUILD_MODNAME=sys -c -o kernel/.tmp_sys.o kernel/sys.c

Moreover, if I try to compile a C file which only define a variable and
assign it to a CONFIG_XXX, it doesn't work. Did I do something wrong ?

Olivier

2005-12-07 21:32:17

by Sam Ravnborg

[permalink] [raw]
Subject: Re: [PATCH] asm-i386 : config.h should not be included out of kernel

On Wed, Dec 07, 2005 at 09:09:50PM +0100, Olivier MATZ wrote:
> Hi Sam,
>
> > If you look at the commandline passed to gcc you will notice -include
> > include/linux/autoconf.h which tell gcc to pull in autoconf.h.
> > So it is no longer required to include config.h.
>
> I'm not sure. On my 2.6.14.3, this is a compilation line
Ok, I was speaking on the 2.6.15-rc kernels. I was added when 2.6.15
opened up and will first appear in a 'relased' kernel as of 2.6.15.

> Moreover, if I try to compile a C file which only define a variable and
> assign it to a CONFIG_XXX, it doesn't work. Did I do something wrong ?
I do not get what you tried and what did not work.

Sam

2005-12-08 11:34:22

by Olivier MATZ

[permalink] [raw]
Subject: Re: [PATCH] asm-i386 : config.h should not be included out of kernel

Hi,

>>>If you look at the commandline passed to gcc you will notice -include
>>>include/linux/autoconf.h which tell gcc to pull in autoconf.h.
>>>So it is no longer required to include config.h.
>>
>>I'm not sure. On my 2.6.14.3, this is a compilation line
>
> Ok, I was speaking on the 2.6.15-rc kernels. I was added when 2.6.15
> opened up and will first appear in a 'relased' kernel as of 2.6.15.

I have one more question about dependancies : in 2.6.15-rc, if we modify
the config, do we have to recompile everything ?

Olivier

2005-12-08 17:38:57

by Sam Ravnborg

[permalink] [raw]
Subject: Re: [PATCH] asm-i386 : config.h should not be included out of kernel

On Thu, Dec 08, 2005 at 12:33:19PM +0100, Olivier MATZ wrote:
> I have one more question about dependancies : in 2.6.15-rc, if we modify
> the config, do we have to recompile everything ?
No, kbuild will rebuild only what is necessary. That may be a lot,
or it may be only very limited. Depending on what symbol you change.

Sam