mirror of
				https://github.com/postgres/postgres.git
				synced 2025-10-28 11:55:03 +03:00 
			
		
		
		
	On Windows, we know the backend stack size limit because we have to
specify it explicitly in backend/Makefile. Arrange for this value to be known by get_stack_depth_rlimit() too. Per suggestion from Magnus.
This commit is contained in:
		| @@ -1,5 +1,5 @@ | |||||||
| # -*-makefile-*- | # -*-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, | # 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? | # systems now.  May be applicable to other systems to? | ||||||
| ELF_SYSTEM= @ELF_SYS@ | 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 | # Pull in platform-specific magic | ||||||
| include $(top_builddir)/src/Makefile.port | include $(top_builddir)/src/Makefile.port | ||||||
|  |  | ||||||
|   | |||||||
| @@ -4,7 +4,7 @@ | |||||||
| # | # | ||||||
| # Copyright (c) 1994, Regents of the University of California | # 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 | 	$(DLLTOOL) --dllname $@$(X) --output-exp $@.exp --def postgres.def | ||||||
| 	$(CC) $(CFLAGS) $(LDFLAGS) -o $@$(X) -Wl,--base-file,$@.base $@.exp $(OBJS) $(LIBS) | 	$(CC) $(CFLAGS) $(LDFLAGS) -o $@$(X) -Wl,--base-file,$@.base $@.exp $(OBJS) $(LIBS) | ||||||
| 	$(DLLTOOL) --dllname $@$(X) --base-file $@.base --output-exp $@.exp --def postgres.def | 	$(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 | 	rm -f $@.exp $@.base | ||||||
|  |  | ||||||
| postgres.def: $(OBJS) | postgres.def: $(OBJS) | ||||||
| @@ -69,7 +69,7 @@ postgres: $(OBJS) postgres.def libpostgres.a $(WIN32RES) | |||||||
| 	$(DLLTOOL) --dllname $@$(X) --output-exp $@.exp --def postgres.def | 	$(DLLTOOL) --dllname $@$(X) --output-exp $@.exp --def postgres.def | ||||||
| 	$(CC) $(CFLAGS) $(LDFLAGS) -o $@$(X) -Wl,--base-file,$@.base $@.exp $(OBJS) $(WIN32RES) $(LIBS) | 	$(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 | 	$(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 | 	rm -f $@.exp $@.base | ||||||
|  |  | ||||||
| postgres.def: $(OBJS) | postgres.def: $(OBJS) | ||||||
|   | |||||||
| @@ -4,7 +4,7 @@ | |||||||
| #    Makefile for tcop | #    Makefile for tcop | ||||||
| # | # | ||||||
| # IDENTIFICATION | # 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 | OBJS= dest.o fastpath.o postgres.o pquery.o utility.o | ||||||
|  |  | ||||||
|  | override CPPFLAGS += -DWIN32_STACK_RLIMIT=$(WIN32_STACK_RLIMIT) | ||||||
|  |  | ||||||
| all: SUBSYS.o | all: SUBSYS.o | ||||||
|  |  | ||||||
| SUBSYS.o: $(OBJS) | SUBSYS.o: $(OBJS) | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ | |||||||
|  * |  * | ||||||
|  * |  * | ||||||
|  * IDENTIFICATION |  * 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 |  * NOTES | ||||||
|  *	  this is the "main" module of the postgres backend and |  *	  this is the "main" module of the postgres backend and | ||||||
| @@ -3678,8 +3678,13 @@ get_stack_depth_rlimit(void) | |||||||
| 	} | 	} | ||||||
| 	return val; | 	return val; | ||||||
| #else /* no getrlimit */ | #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; | 	return -1; | ||||||
| #endif | #endif | ||||||
|  | #endif | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user