aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.shlib11
-rw-r--r--src/backend/port/dynloader/darwin.c36
-rw-r--r--src/backend/port/dynloader/darwin.h5
-rw-r--r--src/include/port/darwin.h6
-rw-r--r--src/makefiles/Makefile.darwin7
-rw-r--r--src/template/darwin4
-rw-r--r--src/test/regress/resultmap3
7 files changed, 69 insertions, 3 deletions
diff --git a/src/Makefile.shlib b/src/Makefile.shlib
index 8f60f3a196e..2d7cc4a0e1f 100644
--- a/src/Makefile.shlib
+++ b/src/Makefile.shlib
@@ -6,7 +6,7 @@
# Copyright (c) 1998, Regents of the University of California
#
# IDENTIFICATION
-# $Header: /cvsroot/pgsql/src/Makefile.shlib,v 1.30 2000/10/27 23:59:39 petere Exp $
+# $Header: /cvsroot/pgsql/src/Makefile.shlib,v 1.31 2000/10/31 19:55:18 petere Exp $
#
#-------------------------------------------------------------------------
@@ -52,9 +52,9 @@
# Got that? Look at src/interfaces/libpq/Makefile for an example.
ifndef cplusplus
-COMPILER = $(CC)
+COMPILER = $(CC) $(CFLAGS)
else
-COMPILER = $(CXX)
+COMPILER = $(CXX) $(CXXFLAGS)
endif
@@ -103,6 +103,11 @@ ifeq ($(PORTNAME), aix)
SHLIB_LINK += -lc
endif
+ifeq ($(PORTNAME), darwin)
+ shlib := lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
+ LINK.shared = $(COMPILER) $(CFLAGS_SL)
+endif
+
ifeq ($(PORTNAME), openbsd)
shlib := lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
ifdef ELF_SYSTEM
diff --git a/src/backend/port/dynloader/darwin.c b/src/backend/port/dynloader/darwin.c
new file mode 100644
index 00000000000..fa39a7dd319
--- /dev/null
+++ b/src/backend/port/dynloader/darwin.c
@@ -0,0 +1,36 @@
+/*
+ * This is a place holder until someone supplies a dynamic loader
+ * interface for this platform.
+ *
+ * $Header: /cvsroot/pgsql/src/backend/port/dynloader/darwin.c,v 1.1 2000/10/31 19:55:19 petere Exp $
+ */
+
+#include "postgres.h"
+#include "fmgr.h"
+#include "utils/dynamic_loader.h"
+#include "dynloader.h"
+
+void *
+pg_dlopen(char *filename)
+{
+ return (void *) NULL;
+}
+
+PGFunction
+pg_dlsym(void *handle, char *funcname)
+{
+ return NULL;
+}
+
+void
+pg_dlclose(void *handle)
+{
+}
+
+char *
+pg_dlerror()
+{
+ static char errmsg[] = "the dynamic loader for darwin doesn't exist yet";
+
+ return errmsg;
+}
diff --git a/src/backend/port/dynloader/darwin.h b/src/backend/port/dynloader/darwin.h
new file mode 100644
index 00000000000..9ab7e857615
--- /dev/null
+++ b/src/backend/port/dynloader/darwin.h
@@ -0,0 +1,5 @@
+/* $Header: /cvsroot/pgsql/src/backend/port/dynloader/darwin.h,v 1.1 2000/10/31 19:55:19 petere Exp $ */
+void *pg_dlopen(char *filename);
+PGFunction pg_dlsym(void *handle, char *funcname);
+void pg_dlclose(void *handle);
+char *pg_dlerror();
diff --git a/src/include/port/darwin.h b/src/include/port/darwin.h
new file mode 100644
index 00000000000..597b998a017
--- /dev/null
+++ b/src/include/port/darwin.h
@@ -0,0 +1,6 @@
+#define HAS_TEST_AND_SET
+#if defined(__powerpc__)
+typedef unsigned int slock_t;
+#else
+typedef unsigned char slock_t;
+#endif
diff --git a/src/makefiles/Makefile.darwin b/src/makefiles/Makefile.darwin
new file mode 100644
index 00000000000..09f270bf7be
--- /dev/null
+++ b/src/makefiles/Makefile.darwin
@@ -0,0 +1,7 @@
+AROPT = cr
+
+DLSUFFIX = .so
+CFLAGS_SL = -bundle -undefined suppress
+
+%.so: %.o
+ $(CC) $(CFLAGS) $(CFLAGS_SL) -o $@ $<
diff --git a/src/template/darwin b/src/template/darwin
new file mode 100644
index 00000000000..fb99dffb89c
--- /dev/null
+++ b/src/template/darwin
@@ -0,0 +1,4 @@
+# regular cpp is broken in current development releases
+CC="$CC -traditional-cpp"
+# be on safe side while they sort out their compiler
+CFLAGS=-O0
diff --git a/src/test/regress/resultmap b/src/test/regress/resultmap
index d7c72635796..b274de07f8b 100644
--- a/src/test/regress/resultmap
+++ b/src/test/regress/resultmap
@@ -12,6 +12,7 @@ float8/.*-qnx=float8-exp-three-digits
float8/alpha.*-dec-osf=float8-fp-exception
float8/i.86-pc-cygwin=float8-small-is-zero
geometry/.*-bsdi=geometry-positive-zeros-bsd
+geometry/.*-darwin=geometry-positive-zeros
geometry/.*-freebsd=geometry-positive-zeros
geometry/.*-freebsd4.0=geometry-positive-zeros-bsd
geometry/.*-irix6=geometry-irix
@@ -35,6 +36,7 @@ horology/sparc-sun-solaris=horology-solaris-1947
horology/.*-sysv5uw=horology-solaris-1947
int2/.*-aix4=int2-too-large
int2/.*-bsdi=int2-too-large
+int2/.*-darwin=int2-too-large
int2/.*-freebsd=int2-too-large
int2/.*-irix6=int2-too-large
int2/.*-netbsd=int2-too-large
@@ -50,6 +52,7 @@ int2/.*-sysv5uw=int2-too-large
int2/.*-beos=int2-range-error
int4/.*-aix4=int4-too-large
int4/.*-bsdi=int4-too-large
+int4/.*-darwin=int4-too-large
int4/.*-freebsd=int4-too-large
int4/.*-irix6=int4-too-large
int4/.*-netbsd=int4-too-large