2004-04-12 15:36:41

by Samium Gromoff

[permalink] [raw]
Subject: [2.6.5][MIPS] oneliners somehow not made it into mainline [3/3]

Without this one it fails to run the earlyinitcall stuff, and hence
explodes at some point.

diff -urN -X './#cdiff.pattern' ./linux-2.6.5/include/linux/init.h ./mc-2.6.5/include/linux/init.h
--- ./linux-2.6.5/include/linux/init.h 2004-04-12 16:07:45.000000000 +0400
+++ ./mc-2.6.5/include/linux/init.h 2004-04-12 18:05:28.000000000 +0400
@@ -83,6 +83,7 @@
static initcall_t __initcall_##fn __attribute_used__ \
__attribute__((__section__(".initcall" level ".init"))) = fn

+#define early_initcall(fn) __define_initcall(".early1",fn)
#define core_initcall(fn) __define_initcall("1",fn)
#define postcore_initcall(fn) __define_initcall("2",fn)
#define arch_initcall(fn) __define_initcall("3",fn)



2004-04-12 21:04:21

by Andrew Morton

[permalink] [raw]
Subject: Re: [2.6.5][MIPS] oneliners somehow not made it into mainline [3/3]

Samium Gromoff <[email protected]> wrote:
>
> Without this one it fails to run the earlyinitcall stuff, and hence
> explodes at some point.
>
> diff -urN -X './#cdiff.pattern' ./linux-2.6.5/include/linux/init.h ./mc-2.6.5/include/linux/init.h
> --- ./linux-2.6.5/include/linux/init.h 2004-04-12 16:07:45.000000000 +0400
> +++ ./mc-2.6.5/include/linux/init.h 2004-04-12 18:05:28.000000000 +0400
> @@ -83,6 +83,7 @@
> static initcall_t __initcall_##fn __attribute_used__ \
> __attribute__((__section__(".initcall" level ".init"))) = fn
>
> +#define early_initcall(fn) __define_initcall(".early1",fn)
> #define core_initcall(fn) __define_initcall("1",fn)
> #define postcore_initcall(fn) __define_initcall("2",fn)
> #define arch_initcall(fn) __define_initcall("3",fn)

early_initcall() is a mips-specific thing. If we add this macro to
<linux/init.h> then someone will use it in generic code and all the other
architectures explode.

We need to either make this entirely mips-private, or rework the mips code
to not use it at all, or justify its introduction and then introduce it for
all architectures.