acpi module failing to load in 1.9.0 preview #4?

Matthew Dillon dillon at
Tue May 29 10:34:43 PDT 2007

    It is possible to 'fix' the problem by adjusting the __asm to actually
    declare that it is referencing the static variable, but I dunno if it
    is worth the hassle.

    Basically, with all versions of GCC, the compiler does not know SQUAT
    about the code that is actually in an __asm() line, EXCEPT for the
    variable declarations in the line.  For example:

    #define fnsave(addr)  __asm __volatile("fnsave %0" : "=m" (*(addr)))

    Here GCC doesn't have a clue about "fnsave %0".  All it knows about
    is the C -> ASM conversion of the variable 'addr'.

    So if you don't specify a variable list with proper attributes, GCC
    will feel free to optimize the hell out of it.  In fact, if you do
    not specify __volatile GCC will consider removing the __asm line
    entirely and if you don't specify the "memory" attribute GCC will feel
    free to reorder memory ops around the assembly (when __asm is used for
    inline code).

    Isn't that fun?


More information about the Bugs mailing list