On Tue, Sep 10, 2013 at 7:23 PM, Karsten Blees <karsten.blees@xxxxxxxxx> wrote: > In msvc.h, there's a couple of stat related functions defined diffently s/diffently/differently/ > from mingw.h. When we remove these definitions, the only problem we get is > "warning C4005: '_stati64' : macro redefinition" for this line in mingw.h: > > #define _stati64(x,y) mingw_stat(x,y) > > The reason is that as of MSVCR80.dll (distributed with MSVC 2005), the > original _stati64 family of functions was renamed to _stat32i64, and the > former function names became macros (pointing to the appropriate function > based on the definition of _USE_32BIT_TIME_T). > > Defining _stati64 works on MinGW because MinGW by default compiles against > the MSVCRT.DLL that is part of Windows (i.e. _stati64 is a function rather > than a macro). > > Note: MinGW *can* compile for newer MSVC runtime versions, and MSVC > apparently can also compile for the Windows MSVCRT.DLL via the DDK (see > http://www.syndicateofideas.com/posts/fighting-the-msvcrt-dll-hell ). > > Remove the stat definitions from msvc.h, as they are not compiler related. > > In mingw.h, determine the runtime version in use from the definitions of > _stati64 and _USE_32BIT_TIME_T, and define stat() accordingly. > > This also fixes that stat() in MSVC builds still resolves to mingw_lstat() > instead of mingw_stat(). > > Signed-off-by: Karsten Blees <blees@xxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html