diff options
author | Peter Eisentraut <peter_e@gmx.net> | 2000-10-31 19:55:20 +0000 |
---|---|---|
committer | Peter Eisentraut <peter_e@gmx.net> | 2000-10-31 19:55:20 +0000 |
commit | b99ee7f37d41803ac643d525c4e700644ddb6030 (patch) | |
tree | 8ed656fc59d04e2cdbb55cf5f98a827d2fdf779b /src | |
parent | dc0f5cb09025bf8c5cc3900bfa4738a83457028f (diff) |
This is the minimal version of the Darwin support patch from
Bruce Hartzler <bruceh@mail.utexas.edu>. It contains shared library
support, regression test map, and the usual template files. The dynamic
loader is missing, the spin lock code apparently doesn't assemble due to
syntax problems, and semaphores are to be hoped for from Apple.
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile.shlib | 11 | ||||
-rw-r--r-- | src/backend/port/dynloader/darwin.c | 36 | ||||
-rw-r--r-- | src/backend/port/dynloader/darwin.h | 5 | ||||
-rw-r--r-- | src/include/port/darwin.h | 6 | ||||
-rw-r--r-- | src/makefiles/Makefile.darwin | 7 | ||||
-rw-r--r-- | src/template/darwin | 4 | ||||
-rw-r--r-- | src/test/regress/resultmap | 3 |
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 |