2005-03-03 16:18:05

by Mikael Pettersson

[permalink] [raw]
Subject: [PATCH][2.6.11] gcc4 fix for <asm-m68k/setup.h>

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__ */


2005-03-04 02:50:32

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH][2.6.11] gcc4 fix for <asm-m68k/setup.h>

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__ */