diff --git a/src/Makefile.global.in b/src/Makefile.global.in index 4e55fe9bfdcea07103eed3f76f75b59acf7df574..820dfd596533246d308b1b1d368b9a88431baa58 100644 --- a/src/Makefile.global.in +++ b/src/Makefile.global.in @@ -1,5 +1,5 @@ # -*-makefile-*- -# $PostgreSQL: pgsql/src/Makefile.global.in,v 1.231 2006/10/03 22:18:22 tgl Exp $ +# $PostgreSQL: pgsql/src/Makefile.global.in,v 1.232 2006/10/08 17:15:33 tgl Exp $ #------------------------------------------------------------------------------ # All PostgreSQL makefiles include this file and use the variables it sets, @@ -311,6 +311,9 @@ HAVE_POSIX_SIGNALS= @HAVE_POSIX_SIGNALS@ # systems now. May be applicable to other systems to? ELF_SYSTEM= @ELF_SYS@ +# Backend stack size limit has to be hard-wired on Windows (it's in bytes) +WIN32_STACK_RLIMIT=4194304 + # Pull in platform-specific magic include $(top_builddir)/src/Makefile.port diff --git a/src/backend/Makefile b/src/backend/Makefile index 3f3fe248d164ff4ce141efc9f8d1a47ec255cc55..9329db0af35ff4115031cfc49b3edbd6e41f6374 100644 --- a/src/backend/Makefile +++ b/src/backend/Makefile @@ -4,7 +4,7 @@ # # Copyright (c) 1994, Regents of the University of California # -# $PostgreSQL: pgsql/src/backend/Makefile,v 1.119 2006/09/09 03:15:40 tgl Exp $ +# $PostgreSQL: pgsql/src/backend/Makefile,v 1.120 2006/10/08 17:15:33 tgl Exp $ # #------------------------------------------------------------------------- @@ -52,7 +52,7 @@ postgres: $(OBJS) postgres.def libpostgres.a $(DLLTOOL) --dllname $@$(X) --output-exp $@.exp --def postgres.def $(CC) $(CFLAGS) $(LDFLAGS) -o $@$(X) -Wl,--base-file,$@.base $@.exp $(OBJS) $(LIBS) $(DLLTOOL) --dllname $@$(X) --base-file $@.base --output-exp $@.exp --def postgres.def - $(CC) $(CFLAGS) $(LDFLAGS) -Wl,--stack,4194304 -o $@$(X) $@.exp $(OBJS) $(LIBS) + $(CC) $(CFLAGS) $(LDFLAGS) -Wl,--stack,$(WIN32_STACK_RLIMIT) -o $@$(X) $@.exp $(OBJS) $(LIBS) rm -f $@.exp $@.base postgres.def: $(OBJS) @@ -69,7 +69,7 @@ postgres: $(OBJS) postgres.def libpostgres.a $(WIN32RES) $(DLLTOOL) --dllname $@$(X) --output-exp $@.exp --def postgres.def $(CC) $(CFLAGS) $(LDFLAGS) -o $@$(X) -Wl,--base-file,$@.base $@.exp $(OBJS) $(WIN32RES) $(LIBS) $(DLLTOOL) --dllname $@$(X) --base-file $@.base --output-exp $@.exp --def postgres.def - $(CC) $(CFLAGS) $(LDFLAGS) -Wl,--stack=4194304 -o $@$(X) $@.exp $(OBJS) $(WIN32RES) $(LIBS) + $(CC) $(CFLAGS) $(LDFLAGS) -Wl,--stack=$(WIN32_STACK_RLIMIT) -o $@$(X) $@.exp $(OBJS) $(WIN32RES) $(LIBS) rm -f $@.exp $@.base postgres.def: $(OBJS) diff --git a/src/backend/tcop/Makefile b/src/backend/tcop/Makefile index e90918716db26b8b26ce9dda05ac15112fafe874..200cbad1b234cb7836afb343a89127e60866867e 100644 --- a/src/backend/tcop/Makefile +++ b/src/backend/tcop/Makefile @@ -4,7 +4,7 @@ # Makefile for tcop # # IDENTIFICATION -# $PostgreSQL: pgsql/src/backend/tcop/Makefile,v 1.25 2003/11/29 19:51:57 pgsql Exp $ +# $PostgreSQL: pgsql/src/backend/tcop/Makefile,v 1.26 2006/10/08 17:15:34 tgl Exp $ # #------------------------------------------------------------------------- @@ -14,6 +14,8 @@ include $(top_builddir)/src/Makefile.global OBJS= dest.o fastpath.o postgres.o pquery.o utility.o +override CPPFLAGS += -DWIN32_STACK_RLIMIT=$(WIN32_STACK_RLIMIT) + all: SUBSYS.o SUBSYS.o: $(OBJS) diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c index e22445b4745b5dc9d5b31909632b0672dc77e415..369b40d20527a8949e01f3dcaa3d23096eee1400 100644 --- a/src/backend/tcop/postgres.c +++ b/src/backend/tcop/postgres.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/tcop/postgres.c,v 1.513 2006/10/07 20:16:57 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/tcop/postgres.c,v 1.514 2006/10/08 17:15:34 tgl Exp $ * * NOTES * this is the "main" module of the postgres backend and @@ -3678,8 +3678,13 @@ get_stack_depth_rlimit(void) } return val; #else /* no getrlimit */ +#if defined(WIN32) || defined(__CYGWIN__) + /* On Windows we set the backend stack size in src/backend/Makefile */ + return WIN32_STACK_RLIMIT; +#else /* not windows ... give up */ return -1; #endif +#endif }