• D
    module: deal with alignment issues in built-in module versions · b4bc8428
    Dmitry Torokhov 提交于
    On m68k natural alignment is 2-byte boundary but we are trying to
    align structures in __modver section on sizeof(void *) boundary.
    This causes trouble when we try to access elements in this section
    in array-like fashion when create "version" attributes for built-in
    modules.
    
    Moreover, as DaveM said, we can't reliably put structures into
    independent objects, put them into a special section, and then expect
    array access over them (via the section boundaries) after linking the
    objects together to just "work" due to variable alignment choices in
    different situations. The only solution that seems to work reliably
    is to make an array of plain pointers to the objects in question and
    put those pointers in the special section.
    Reported-by: NGeert Uytterhoeven <geert@linux-m68k.org>
    Signed-off-by: NDmitry Torokhov <dtor@vmware.com>
    Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
    b4bc8428
params.c 21.4 KB