Re: [patch 1/2] m68k: runtime patching infrastructure

Eric Dumazet
2007-05-30T05:48:37Z

Andrew Morton a écrit :
> On Mon, 28 May 2007 21:16:31 +0200
> Geert Uytterhoeven <geert@linux-m68k.org> wrote:
>
>> --- a/include/asm-m68k/module.h
>> +++ b/include/asm-m68k/module.h
>> @@ -1,7 +1,38 @@
>> #ifndef _ASM_M68K_MODULE_H
>> #define _ASM_M68K_MODULE_H
>> -struct mod_arch_specific { };
>> +
>> +struct mod_arch_specific {
>> + struct m68k_fixup_info *fixup_start, *fixup_end;
>> +};
>
> Here we use struct m68k_fixup_info.
>
>> +#define MODULE_ARCH_INIT { \
>> + .fixup_start = __start_fixup, \
>> + .fixup_end = __stop_fixup, \
>> +}
>> +
>> #define Elf_Shdr Elf32_Shdr
>> #define Elf_Sym Elf32_Sym
>> #define Elf_Ehdr Elf32_Ehdr
>> +
>> +
>> +enum m68k_fixup_type {
>> + m68k_fixup_memoffset,
>> +};
>> +
>> +struct m68k_fixup_info {
>> + enum m68k_fixup_type type;
>> + void *addr;
>> +};
>
> and later we define it.
>
> How come it doesn't spit warnings?
>
> I think it could be tightened up even if it happens not to warn?

struct a {
struct not_yet_defined *start, *end;
};

struct not_yet_defined {
void *foo;
};

Is a valid and gives no warnings.

Still I didnt tried to compile a m68k kernel, so I guess I shouldnt speak here :)