gcc4 generates compile errors when it sees declarations
of arrays of incomplete element types. <asm-m68k/setup.h>
has one such declaration, which unfortunately breaks ppc32
since <asm-ppc/setup.h> #includes <asm-m68k/setup.h>.
The fix in this case is to simply move the array declaration
to after the corresponding element type declaration.
Signed-off-by: Mikael Pettersson <[email protected]>
diff -rupN linux-2.6.11/include/asm-m68k/setup.h linux-2.6.11.gcc4-fixes-v2/include/asm-m68k/setup.h
--- linux-2.6.11/include/asm-m68k/setup.h 2004-12-25 12:16:22.000000000 +0100
+++ linux-2.6.11.gcc4-fixes-v2/include/asm-m68k/setup.h 2005-03-02 19:36:26.000000000 +0100
@@ -362,12 +362,13 @@ extern int m68k_is040or060;
#ifndef __ASSEMBLY__
extern int m68k_num_memory; /* # of memory blocks found (and used) */
extern int m68k_realnum_memory; /* real # of memory blocks found */
-extern struct mem_info m68k_memory[NUM_MEMINFO];/* memory description */
struct mem_info {
unsigned long addr; /* physical address of memory chunk */
unsigned long size; /* length of memory chunk (in bytes) */
};
+
+extern struct mem_info m68k_memory[NUM_MEMINFO];/* memory description */
#endif
#endif /* __KERNEL__ */
Mikael Pettersson <[email protected]> wrote:
>
> gcc4 generates compile errors when it sees declarations
> of arrays of incomplete element types. <asm-m68k/setup.h>
> has one such declaration, which unfortunately breaks ppc32
> since <asm-ppc/setup.h> #includes <asm-m68k/setup.h>.
>
> The fix in this case is to simply move the array declaration
> to after the corresponding element type declaration.
>
> Signed-off-by: Mikael Pettersson <[email protected]>
Thanks, I'll merge that up.
> diff -rupN linux-2.6.11/include/asm-m68k/setup.h linux-2.6.11.gcc4-fixes-v2/include/asm-m68k/setup.h
> --- linux-2.6.11/include/asm-m68k/setup.h 2004-12-25 12:16:22.000000000 +0100
> +++ linux-2.6.11.gcc4-fixes-v2/include/asm-m68k/setup.h 2005-03-02 19:36:26.000000000 +0100
> @@ -362,12 +362,13 @@ extern int m68k_is040or060;
> #ifndef __ASSEMBLY__
> extern int m68k_num_memory; /* # of memory blocks found (and used) */
> extern int m68k_realnum_memory; /* real # of memory blocks found */
> -extern struct mem_info m68k_memory[NUM_MEMINFO];/* memory description */
>
> struct mem_info {
> unsigned long addr; /* physical address of memory chunk */
> unsigned long size; /* length of memory chunk (in bytes) */
> };
> +
> +extern struct mem_info m68k_memory[NUM_MEMINFO];/* memory description */
> #endif
>
> #endif /* __KERNEL__ */