On Fri, Dec 17, 2010 at 11:14 AM, Mike Williams
<mike.willi...@globalgraphics.com> wrote:
> On 17/12/2010 16:09, Cesar Romani wrote:
>>
>> By building vim 7.3.083 on Win XP with MinGW, I'm getting:
>>
>> --------------------
>> ...
>> gcc -c -Iproto -DWIN32 ... fileio.c -o gobjZ/fileio.o
>> fileio.c:10306:1: error: expected declaration specifiers or '...' before
>> '(' token
>> fileio.c:10306:1: error: expected declaration specifiers or '...' before
>> '(' token
>> fileio.c:10306:1: error: expected declaration specifiers or '...' before
>> '(' token
>> fileio.c:10306:1: error: conflicting types for 'read'
>> c:\mingw\bin\../lib/gcc/mingw32/4.5.0/../../../../include/io.h:452:37:
>> note: previous declaration of 'read' was here
>> fileio.c: In function 'read':
>> fileio.c:10309:13: error: declaration for parameter 'bufsize' but no
>> such parameter
>> fileio.c:10308:14: error: declaration for parameter 'buf' but no such
>> parameter
>> fileio.c:10307:13: error: declaration for parameter 'fd' but no such
>> parameter
>> fileio.c: At top level:
>> fileio.c:10327:1: error: expected declaration specifiers or '...' before
>> '(' token
>> fileio.c:10327:1: error: expected declaration specifiers or '...' before
>> '(' token
>> fileio.c:10327:1: error: expected declaration specifiers or '...' before
>> '(' token
>> fileio.c:10327:1: error: conflicting types for 'write'
>> c:\mingw\bin\../lib/gcc/mingw32/4.5.0/../../../../include/io.h:458:37:
>> note: previous declaration of 'write' was here
>> fileio.c: In function 'write':
>> fileio.c:10330:13: error: declaration for parameter 'bufsize' but no
>> such parameter
>> fileio.c:10329:14: error: declaration for parameter 'buf' but no such
>> parameter
>> fileio.c:10328:13: error: declaration for parameter 'fd' but no such
>> parameter
>> make: *** [gobjZ/fileio.o] Error 1
>> --------------------
>
> Similar with VC8:
>
> fileio.c(10306) : error C2143: syntax error : missing ')' before '('
> fileio.c(10306) : error C2143: syntax error : missing ')' before '('
> fileio.c(10306) : error C2091: function returns function
> fileio.c(10306) : error C2091: function returns function
> fileio.c(10306) : error C2059: syntax error : ')'
> fileio.c(10306) : error C2373: 'read' : redefinition; different type
> modifiers
>        H:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\io.h(329) : see
> declaration of 'read'
> fileio.c(10306) : error C2059: syntax error : 'type'
> fileio.c(10310) : error C2449: found '{' at file scope (missing function
> header?)
> fileio.c(10320) : error C2059: syntax error : '}'
> fileio.c(10330) : error C2449: found '{' at file scope (missing function
> header?)
> fileio.c(10348) : error C2059: syntax error : '}'
> fileio.c(10348) : error C2014: preprocessor command must start as first
> nonwhite space
> fileio.c(10350) : fatal error C1070: mismatched #if/#endif pair in file
> 'h:\vim\vim\src\fileio.c'
>
> A quick look shows that macros for read_eintr and write_eintr are being
> defined as well as trying to compiler the code for them.  So in vim.h EINTR
> is undefined and in fileio.c it is undefined.  Not a good idea.

EINTR is defined by errno.h.  Attached patch moves include of errno.h to
the relevant os_win*.h from the respective os_win*.c files.  The former
are included in vim.h, so EINTR will be defined before trying to define
the read_eintr/write_eintr macros.

-- 
James
GPG Key: 1024D/61326D40 2003-09-02 James Vega <james...@jamessan.com>

-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Attachment: errno.diff
Description: Binary data

Raspunde prin e-mail lui