[EMAIL PROTECTED] wrote on 15.04.2008 14:40:15:

> [EMAIL PROTECTED] wrote on 15.04.2008 14:28:17:
> 
> > I'm not exactly sure how this one was introduced, but a bootstrap on
> > native i686-pc-mingw32 dies in stage1 libgcc with:
> > 
> > ../../../trunk/libgcc/../gcc/libgcc2.c:2052: warning: no previous
> > prototype for 'getpagesize'
> > ../../../trunk/libgcc/../gcc/libgcc2.c:2062: error: conflicting types
> > for 'VirtualProtect'
> > c:/MinGW/include/winbase.h:1995: error: previous declaration of
> > 'VirtualProtect' was here
> > ../../../trunk/libgcc/../gcc/libgcc2.c:2066: warning: no previous
> > prototype for 'mprotect'
> > 
> > The prototype for VirtualProtect in libgcc2.c is:
> >   extern int VirtualProtect (char *, int, int, int *) 
> > __attribute__((stdcall));
> > 
> > In <winbase.h>, it is:
> >   BOOL __attribute__((__stdcall__)) 
> VirtualProtect(PVOID,DWORD,DWORD,PDWORD);
> > with:
> >   typedef unsigned long DWORD;
> >   typedef int WINBOOL;
> >   typedef WINBOOL BOOL;
> >   typedef DWORD *PDWORD;
> >   typedef void *PVOID;
> > 
> > 
> > Does that ring a bell to anyone? Any idea why it's showing up now even
> > though it looks like this code wasn't modified in the recent past (and
> > my winbase.h hasn't changed since my last successful bootstrap, a
> > month ago).

Here is a patch fixing this problem

2008-04-15  Kai Tietz  <[EMAIL PROTECTED]>

        * libgcc2.c (L_trampoline): Disable VirtualProtect declaration
        if _WIN32 is defined.

Cheers,
  Kai

Index: gcc/gcc/libgcc2.c
===================================================================
--- gcc.orig/gcc/libgcc2.c
+++ gcc/gcc/libgcc2.c
@@ -2058,7 +2058,7 @@ getpagesize (void)
 #endif
 }
 
-#ifdef __i386__
+#if defined(__i386__) && !defined(_WIN32)
 extern int VirtualProtect (char *, int, int, int *) __attribute__((stdcall));
 #endif
 
=

Reply via email to