• Mikael Pettersson's avatar
    x86: fix readb() et al compile error with gcc-3.2.3 · 1c5b0eb6
    Mikael Pettersson authored
    Building 2.6.27-rc1 on x86 with gcc-3.2.3 fails with:
    
    In file included from include/asm/dma.h:12,
                     from include/linux/bootmem.h:8,
                     from init/main.c:26:
    include/asm/io.h: In function `readb':
    include/asm/io.h:32: syntax error before string constant
    include/asm/io.h: In function `readw':
    include/asm/io.h:33: syntax error before string constant
    include/asm/io.h: In function `readl':
    include/asm/io.h:34: syntax error before string constant
    include/asm/io.h: In function `__readb':
    include/asm/io.h:36: syntax error before string constant
    include/asm/io.h: In function `__readw':
    include/asm/io.h:37: syntax error before string constant
    include/asm/io.h: In function `__readl':
    include/asm/io.h:38: syntax error before string constant
    make[1]: *** [init/main.o] Error 1
    make: *** [init] Error 2
    
    Starting with 2.6.27-rc1 readb() et al are generated by a
    build_mmio_read() macro, which generates asm() statements with
    output register constraints like "=" "q", i.e. as two adjacent
    string literals. This doesn't work with gcc-3.2.3.
    
    Fixed by moving the "=" part into the callers' reg parameter
    (as suggested by Ingo).
    
    Build and boot-tested with gcc-3.2.3 on 32 and 64-bit x86.
    
    Fixes <http://bugzilla.kernel.org/show_bug.cgi?id=11205>.
    Signed-off-by: default avatarMikael Pettersson <mikpe@it.uu.se>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    1c5b0eb6
io.h 3.37 KB