aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/port/linux/dynloader.c13
-rw-r--r--src/backend/port/linux/port-protos.h9
-rwxr-xr-xsrc/configure2
-rw-r--r--src/configure.in2
-rw-r--r--src/include/config.h.in11
5 files changed, 29 insertions, 8 deletions
diff --git a/src/backend/port/linux/dynloader.c b/src/backend/port/linux/dynloader.c
index ebf0625dd73..a3b551b6f95 100644
--- a/src/backend/port/linux/dynloader.c
+++ b/src/backend/port/linux/dynloader.c
@@ -10,12 +10,14 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/port/linux/Attic/dynloader.c,v 1.1.1.1 1996/07/09 06:21:44 scrappy Exp $
+ * $Header: /cvsroot/pgsql/src/backend/port/linux/Attic/dynloader.c,v 1.2 1997/02/06 08:39:40 scrappy Exp $
*
*-------------------------------------------------------------------------
*/
#include <stdio.h>
+#ifdef HAVE_DLD_H
#include <dld.h>
+#endif
#include "postgres.h"
#include "port-protos.h"
#include "utils/elog.h"
@@ -26,6 +28,10 @@ extern char pg_pathname[];
void *
pg_dlopen(char *filename)
{
+#ifndef HAVE_DLD_H
+ elog(WARN, "dynamic load not supported");
+ return(NULL);
+#else
static int dl_initialized= 0;
/*
@@ -84,10 +90,15 @@ pg_dlopen(char *filename)
}
return (void *) strdup(filename);
+#endif
}
char *
pg_dlerror()
{
+#ifndef HAVE_DLD_H
+ return("dynaloader unspported");
+#else
return dld_strerror(dld_errno);
+#endif
}
diff --git a/src/backend/port/linux/port-protos.h b/src/backend/port/linux/port-protos.h
index f80cd62d424..76f02b48fe9 100644
--- a/src/backend/port/linux/port-protos.h
+++ b/src/backend/port/linux/port-protos.h
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: port-protos.h,v 1.1.1.1 1996/07/09 06:21:44 scrappy Exp $
+ * $Id: port-protos.h,v 1.2 1997/02/06 08:39:53 scrappy Exp $
*
*-------------------------------------------------------------------------
*/
@@ -22,8 +22,13 @@
/* dynloader.c */
#ifndef LINUX_ELF
+# ifndef HAVE_DLD_H
+#define pg_dlsym(handle, funcname) (NULL)
+# define pg_dlclose(handle) ({})
+# else
#define pg_dlsym(handle, funcname) ((func_ptr) dld_get_func((funcname)))
-#define pg_dlclose(handle) ({ dld_unlink_by_file(handle, 1); free(handle); })
+# define pg_dlclose(handle) ({ dld_unlink_by_file(handle, 1); free(handle); })
+# endif
#else
/* #define pg_dlopen(f) dlopen(f, 1) */
#define pg_dlopen(f) dlopen(f, 2)
diff --git a/src/configure b/src/configure
index 6496662e41a..2e65a09bdee 100755
--- a/src/configure
+++ b/src/configure
@@ -2255,7 +2255,7 @@ else
fi
done
-for ac_hdr in readline.h history.h
+for ac_hdr in readline.h history.h dld.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
diff --git a/src/configure.in b/src/configure.in
index bc8184a5e5c..782c6aa131f 100644
--- a/src/configure.in
+++ b/src/configure.in
@@ -120,7 +120,7 @@ dnl Checks for header files.
AC_HEADER_STDC
AC_HEADER_SYS_WAIT
AC_CHECK_HEADERS(limits.h unistd.h termios.h values.h sys/select.h)
-AC_CHECK_HEADERS(readline.h history.h)
+AC_CHECK_HEADERS(readline.h history.h dld.h)
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
diff --git a/src/include/config.h.in b/src/include/config.h.in
index 8167e597759..add6142b97d 100644
--- a/src/include/config.h.in
+++ b/src/include/config.h.in
@@ -32,6 +32,9 @@
/* Set to 1 if you have <history.h> */
#undef HAVE_HISTORY
+/* Set to 1 if you have <dld.h> */
+#undef HAVE_DLD_H
+
/* Set to 1 if you have isinf() */
#undef HAVE_ISINF
@@ -162,9 +165,11 @@
*/
# define JMP_BUF
# define USE_POSIX_TIME
-# define NEED_I386_TAS_ASM
-# define HAS_TEST_AND_SET
- typedef unsigned char slock_t;
+# if !defined(PPC)
+# define NEED_I386_TAS_ASM
+# define HAS_TEST_AND_SET
+ typedef unsigned char slock_t;
+# endif
#endif
#if defined(nextstep)