diff --git a/contrib/spi/Makefile b/contrib/spi/Makefile index 7a337d9116..e8c146eae9 100644 --- a/contrib/spi/Makefile +++ b/contrib/spi/Makefile @@ -1,4 +1,4 @@ -# $PostgreSQL: pgsql/contrib/spi/Makefile,v 1.24 2004/08/20 20:13:08 momjian Exp $ +# $PostgreSQL: pgsql/contrib/spi/Makefile,v 1.25 2004/11/17 17:45:59 tgl Exp $ MODULES = autoinc insert_username moddatetime refint timetravel DATA_built = $(addsuffix .sql, $(MODULES)) @@ -17,3 +17,5 @@ top_builddir = ../.. include $(top_builddir)/src/Makefile.global include $(top_srcdir)/contrib/contrib-global.mk endif + +SHLIB_LINK += -L$(top_builddir)/src/port -lpgport diff --git a/src/bin/pg_ctl/pg_ctl.c b/src/bin/pg_ctl/pg_ctl.c index b5379ae0e7..426c705eb6 100644 --- a/src/bin/pg_ctl/pg_ctl.c +++ b/src/bin/pg_ctl/pg_ctl.c @@ -4,7 +4,7 @@ * * Portions Copyright (c) 1996-2004, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/bin/pg_ctl/pg_ctl.c,v 1.46 2004/11/17 16:34:42 tgl Exp $ + * $PostgreSQL: pgsql/src/bin/pg_ctl/pg_ctl.c,v 1.47 2004/11/17 17:46:12 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -22,6 +22,7 @@ #include "getopt_long.h" #if defined(__CYGWIN__) +#include #include /* Cygwin defines WIN32 in windows.h, but we don't want it. */ #undef WIN32 @@ -820,6 +821,9 @@ pgwin32_CommandLine(bool registration) { static char cmdLine[MAXPGPATH]; int ret; +#ifdef __CYGWIN__ + char buf[MAXPGPATH]; +#endif if (registration) { @@ -840,6 +844,12 @@ pgwin32_CommandLine(bool registration) } } +#ifdef __CYGWIN__ + /* need to convert to windows path */ + cygwin_conv_to_full_win32_path(cmdLine, buf); + strcpy(cmdLine, buf); +#endif + if (registration) { if (strcasecmp(cmdLine + strlen(cmdLine) - 4, ".exe")) diff --git a/src/include/port.h b/src/include/port.h index 58df38d963..fcbe499697 100644 --- a/src/include/port.h +++ b/src/include/port.h @@ -6,7 +6,7 @@ * Portions Copyright (c) 1996-2004, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/port.h,v 1.66 2004/11/08 16:34:23 momjian Exp $ + * $PostgreSQL: pgsql/src/include/port.h,v 1.67 2004/11/17 17:46:15 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -73,9 +73,13 @@ extern int find_other_exec(const char *argv0, const char *target, #if defined(WIN32) || defined(__CYGWIN__) #define EXE ".exe" -#define DEVNULL "nul" #else #define EXE "" +#endif + +#if defined(WIN32) && !defined(__CYGWIN__) +#define DEVNULL "nul" +#else #define DEVNULL "/dev/null" #endif @@ -88,13 +92,13 @@ extern int find_other_exec(const char *argv0, const char *target, * See the "Notes" section about quotes at: * http://home.earthlink.net/~rlively/MANUALS/COMMANDS/C/CMD.HTM */ -#ifdef WIN32 +#if defined(WIN32) && !defined(__CYGWIN__) #define SYSTEMQUOTE "\"" #else #define SYSTEMQUOTE "" #endif -#ifdef WIN32 +#if defined(WIN32) && !defined(__CYGWIN__) #define HOMEDIR "USERPROFILE" #else #define HOMEDIR "HOME" @@ -163,8 +167,9 @@ extern int pgunlink(const char *path); * Cygwin has its own symlinks which work on Win95/98/ME where * junction points don't, so use it instead. We have no way of * knowing what type of system Cygwin binaries will be run on. + * Note: Some CYGWIN includes might #define WIN32. */ -#ifdef WIN32 +#if defined(WIN32) && !defined(__CYGWIN__) extern int pgsymlink(const char *oldpath, const char *newpath); #define symlink(oldpath, newpath) pgsymlink(oldpath, newpath) #endif @@ -173,7 +178,7 @@ extern int pgsymlink(const char *oldpath, const char *newpath); extern bool rmtree(char *path, bool rmtopdir); -#ifdef WIN32 +#if defined(WIN32) && !defined(__CYGWIN__) /* open() replacement to allow delete of held files */ #ifndef WIN32_CLIENT_ONLY @@ -266,7 +271,7 @@ extern void srandom(unsigned int seed); /* thread.h */ extern char *pqStrerror(int errnum, char *strerrbuf, size_t buflen); -#ifndef WIN32 +#if !defined(WIN32) || defined(__CYGWIN__) extern int pqGetpwuid(uid_t uid, struct passwd * resultbuf, char *buffer, size_t buflen, struct passwd ** result); #endif diff --git a/src/interfaces/libpq/Makefile b/src/interfaces/libpq/Makefile index 2de4ac5b43..c8a57f898d 100644 --- a/src/interfaces/libpq/Makefile +++ b/src/interfaces/libpq/Makefile @@ -5,7 +5,7 @@ # Portions Copyright (c) 1996-2004, PostgreSQL Global Development Group # Portions Copyright (c) 1994, Regents of the University of California # -# $PostgreSQL: pgsql/src/interfaces/libpq/Makefile,v 1.120 2004/10/16 22:52:49 tgl Exp $ +# $PostgreSQL: pgsql/src/interfaces/libpq/Makefile,v 1.121 2004/11/17 17:46:19 tgl Exp $ # #------------------------------------------------------------------------- @@ -31,6 +31,10 @@ OBJS= fe-auth.o fe-connect.o fe-exec.o fe-misc.o fe-print.o fe-lobj.o \ md5.o ip.o wchar.o encnames.o noblock.o pgstrcasecmp.o thread.o \ $(filter crypt.o getaddrinfo.o inet_aton.o open.o snprintf.o strerror.o, $(LIBOBJS)) +ifeq ($(PORTNAME), cygwin) +override shlib = cyg$(NAME)$(DLSUFFIX) +endif + ifeq ($(PORTNAME), win32) OBJS += win32.o libpqrc.o libpqrc.o : libpq.rc diff --git a/src/template/cygwin b/src/template/cygwin index ae7bb16bd1..e649d88c1b 100644 --- a/src/template/cygwin +++ b/src/template/cygwin @@ -2,5 +2,6 @@ SRCH_LIB="/usr/local/lib" # This is required to link pg_dump because it finds pg_toupper() in # libpq and pgport -LDFLAGS="-Wl,--allow-multiple-definition" - +LDFLAGS="-Wl,--allow-multiple-definition -Wl,--enable-auto-import" +# --enable-auto-import gets rid of a diagnostics linker message +LDFLAGS_SL="-Wl,--enable-auto-import"