gcc 4.3.1, with minor patches  
 build=host=i686-pc-cygwin  
 target=i686-pc-mingw32  

sys-root setup how I believe is appropriatev
(well, er, um..maybe not, due to later problems, but I don't think that's the 
problem here;  
there indeed varying declarations of getpagesize)   

=>  


  /obj/gcc.1/i686-pc-cygwin/i686-pc-mingw32/./gcc/xgcc 
-B/obj/gcc.1/i686-pc-cygwin  
  /i686-pc-mingw32/./gcc/ 
-L/obj/gcc.1/i686-pc-cygwin/i686-pc-mingw32/i686-pc-ming  
  w32/winsup/mingw 
-L/obj/gcc.1/i686-pc-cygwin/i686-pc-mingw32/i686-pc-mingw32/win  
  sup/w32api/lib -isystem /src/gcc/winsup/mingw/include -isystem 
/src/gcc/winsup/w  
  32api/include -B/usr/local/i686-pc-mingw32/bin/ 
-B/usr/local/i686-pc-mingw32/lib  
  / -isystem /usr/local/i686-pc-mingw32/include -isystem 
/usr/local/i686-pc-mingw3  
  2/sys-include -L/obj/gcc.1/i686-pc-cygwin/i686-pc-mingw32/./ld -O2 -g -g -O2 
-I/  
  src/gcc/gcc/../winsup/w32api/include -O2 -g -g   -DIN_GCC 
-DCROSS_DIRECTORY_STRU  
  CTURE   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes 
-Wold-  
  style-definition  -isystem ./include   -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 
-D__G  
  CC_FLOAT_NOT_NEEDED   -I. -I. -I../.././gcc -I/src/gcc/libgcc 
-I/src/gcc/libgcc/  
  . -I/src/gcc/libgcc/../gcc -I/src/gcc/libgcc/../include  -DHAVE_CC_TLS -o 
_tramp  
  oline.o -MT _trampoline.o -MD -MP -MF _trampoline.dep -DL_trampoline -c 
/src/gcc  
  /libgcc/../gcc/libgcc2.c \  


/src/gcc/libgcc/../gcc/libgcc2.c:2052: error: conflicting types for 'getpagesize
'
  /usr/local/i686-pc-mingw32/sys-root/mingw/include/sys/unistd.h:75: error: 
previo  
  us declaration of 'getpagesize' was here  
  /src/gcc/libgcc/../gcc/libgcc2.c:2066: warning: no previous prototype for 
'mprot  
  ect'  
  make[2]: *** [_trampoline.o] Error 1  
  make[2]: Leaving directory 
`/obj/gcc.1/i686-pc-cygwin/i686-pc-mingw32/i686-pc-mi  
  ngw32/libgcc'  
  make[1]: *** [all-target-libgcc] Error 2  
  make[1]: Leaving directory `/obj/gcc.1/i686-pc-cygwin/i686-pc-mingw32'  
  make: *** [all] Error 2  
  
  
  The two protoypes are  
    int getpagesize(void)  
    size_t getpagesize(void)  
  
  
I can't prove to myself the function is even used, so I'll try #if 0 it.  
  
  
I do understand the point.  
Nested functions generate code on the stack.  
The stack might not be executable.  
Make the page with the trampoline executable via mprotect/VirtualProtect.  
I just don't see where __enable_execute_stack comes from for this target, other 
than a no-op.  


 - Jay  

Reply via email to