This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
mingwin getpagesize int vs. size_t
- From: Jay <jay dot krell at cornell dot edu>
- To: <gcc at gcc dot gnu dot org>
- Date: Wed, 27 Aug 2008 07:34:26 +0000
- Subject: mingwin getpagesize int vs. size_t
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