From 0a2c82b5f73cc2d7f1a5963b6d320cbe57dd10d1 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Tue, 11 Nov 2003 03:53:33 +0000 Subject: [PATCH] Add .exe to Win32 stat calls. Don't symlink postmaster on Win32. --- src/backend/Makefile | 10 +++++++--- src/backend/utils/init/findbe.c | 13 ++++++++++++- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/backend/Makefile b/src/backend/Makefile index 82cdd0f568..4b807ed6de 100644 --- a/src/backend/Makefile +++ b/src/backend/Makefile @@ -4,7 +4,7 @@ # # Copyright (c) 1994, Regents of the University of California # -# $Header: /cvsroot/pgsql/src/backend/Makefile,v 1.95 2003/03/21 17:18:34 petere Exp $ +# $Header: /cvsroot/pgsql/src/backend/Makefile,v 1.96 2003/11/11 03:53:32 momjian Exp $ # #------------------------------------------------------------------------- @@ -138,8 +138,12 @@ endif install-bin: postgres $(POSTGRES_IMP) installdirs $(INSTALL_PROGRAM) postgres$(X) $(DESTDIR)$(bindir)/postgres$(X) - @rm -f $(DESTDIR)$(bindir)/postmaster - ln -s postgres$(X) $(DESTDIR)$(bindir)/postmaster +ifneq ($(PORTNAME), win32) + @rm -f $(DESTDIR)$(bindir)/postmaster$(X) + ln -s postgres$(X) $(DESTDIR)$(bindir)/postmaster$(X) +else + $(INSTALL_PROGRAM) postgres$(X) $(DESTDIR)$(bindir)/postmaster$(X) +endif ifeq ($(MAKE_EXPORTS), true) $(INSTALL_DATA) $(POSTGRES_IMP) $(DESTDIR)$(pkglibdir)/$(POSTGRES_IMP) endif diff --git a/src/backend/utils/init/findbe.c b/src/backend/utils/init/findbe.c index f08d2991a8..1839b7a264 100644 --- a/src/backend/utils/init/findbe.c +++ b/src/backend/utils/init/findbe.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/init/Attic/findbe.c,v 1.37 2003/08/04 02:40:06 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/init/Attic/findbe.c,v 1.38 2003/11/11 03:53:33 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -49,12 +49,23 @@ ValidateBinary(char *path) uid_t euid; struct group *gp; struct passwd *pwp; + char path_exe[MAXPGPATH + 2 + strlen(".exe")]; #endif int i; int is_r = 0; int is_x = 0; int in_grp = 0; +#ifdef WIN32 + /* Win32 requires a .exe suffix for stat() */ + if (strlen(path) >= 4 && strcmp(path + strlen(path) - strlen(".exe"), ".exe") != 0) + { + strcpy(path_exe, path); + strcat(path_exe, ".exe"); + path = path_exe; + } +#endif + /* * Ensure that the file exists and is a regular file. *