linux-mips
[Top] [All Lists]

Re: Compiler error in drivers/video/cirrusfb.c: syntax error before ‘vol

To: Martin Michlmayr <tbm@cyrius.com>
Subject: Re: Compiler error in drivers/video/cirrusfb.c: syntax error before ‘volatile’
From: Ralf Baechle <ralf@linux-mips.org>
Date: Tue, 24 Jan 2006 13:58:53 +0000
Cc: linux-fbdev-devel@lists.sourceforge.net, jgarzik@pobox.com, linux-mips@linux-mips.org
In-reply-to: <20060124025130.GA8418@deprecation.cyrius.com>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <20060124025130.GA8418@deprecation.cyrius.com>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.4.2.1i
On Tue, Jan 24, 2006 at 02:51:30AM +0000, Martin Michlmayr wrote:

> I get the following compiler error for drivers/video/cirrusfb.c on
> mips:
> 
>   CC      drivers/video/cirrusfb.o
> In file included from include/video/vga.h:25,
>                  from drivers/video/cirrusfb.c:70:
> include/asm/vga.h:29: error: syntax error before ‘volatile’
> include/asm/vga.h:34: error: syntax error before ‘volatile’
> make[2]: *** [drivers/video/cirrusfb.o] Error 1
> 
> These lines define scr_writew() and scr_readw():
> 
> 29:static inline void scr_writew(u16 val, volatile u16 *addr)
> 34:static inline u16 scr_readw(volatile const u16 *addr)
> 
> Note that some other arches (powerpc, alpha) have the same
> definitions in vga.h.
> 
> This is with 2.6.15.

Interesting catch.  The reason is this code in <linux/vt_buffer.h>:

[...]
#if defined(CONFIG_VGA_CONSOLE) || defined(CONFIG_MDA_CONSOLE)
#include <asm/vga.h>
#endif

#ifndef VT_BUF_HAVE_RW
#define scr_writew(val, addr) (*(addr) = (val))
#define scr_readw(addr) (*(addr))
#define scr_memcpyw(d, s, c) memcpy(d, s, c)
[...]

But VT_BUF_HAVE_RW is defined in <asm/vga.h>, so if neither
CONFIG_VGA_CONSOLE nor CONFIG_MDA_CONSOLE is defined compilation will
blow up when <asm/vga.h> is being imported later.

  Ralf

<Prev in Thread] Current Thread [Next in Thread>