Commit 2c9dbc57 authored by Marc G. Fournier's avatar Marc G. Fournier

Various changes to improve/support Mklinux

Submitted by: Tatsuo Ishii
parent 9b914124
...@@ -10,12 +10,14 @@ ...@@ -10,12 +10,14 @@
* *
* *
* IDENTIFICATION * 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> #include <stdio.h>
#ifdef HAVE_DLD_H
#include <dld.h> #include <dld.h>
#endif
#include "postgres.h" #include "postgres.h"
#include "port-protos.h" #include "port-protos.h"
#include "utils/elog.h" #include "utils/elog.h"
...@@ -26,6 +28,10 @@ extern char pg_pathname[]; ...@@ -26,6 +28,10 @@ extern char pg_pathname[];
void * void *
pg_dlopen(char *filename) pg_dlopen(char *filename)
{ {
#ifndef HAVE_DLD_H
elog(WARN, "dynamic load not supported");
return(NULL);
#else
static int dl_initialized= 0; static int dl_initialized= 0;
/* /*
...@@ -84,10 +90,15 @@ pg_dlopen(char *filename) ...@@ -84,10 +90,15 @@ pg_dlopen(char *filename)
} }
return (void *) strdup(filename); return (void *) strdup(filename);
#endif
} }
char * char *
pg_dlerror() pg_dlerror()
{ {
#ifndef HAVE_DLD_H
return("dynaloader unspported");
#else
return dld_strerror(dld_errno); return dld_strerror(dld_errno);
#endif
} }
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* *
* Copyright (c) 1994, Regents of the University of California * 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 @@ ...@@ -22,8 +22,13 @@
/* dynloader.c */ /* dynloader.c */
#ifndef LINUX_ELF #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_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 #else
/* #define pg_dlopen(f) dlopen(f, 1) */ /* #define pg_dlopen(f) dlopen(f, 1) */
#define pg_dlopen(f) dlopen(f, 2) #define pg_dlopen(f) dlopen(f, 2)
......
...@@ -2255,7 +2255,7 @@ else ...@@ -2255,7 +2255,7 @@ else
fi fi
done done
for ac_hdr in readline.h history.h for ac_hdr in readline.h history.h dld.h
do do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
......
...@@ -120,7 +120,7 @@ dnl Checks for header files. ...@@ -120,7 +120,7 @@ dnl Checks for header files.
AC_HEADER_STDC AC_HEADER_STDC
AC_HEADER_SYS_WAIT AC_HEADER_SYS_WAIT
AC_CHECK_HEADERS(limits.h unistd.h termios.h values.h sys/select.h) 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. dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST AC_C_CONST
......
...@@ -32,6 +32,9 @@ ...@@ -32,6 +32,9 @@
/* Set to 1 if you have <history.h> */ /* Set to 1 if you have <history.h> */
#undef HAVE_HISTORY #undef HAVE_HISTORY
/* Set to 1 if you have <dld.h> */
#undef HAVE_DLD_H
/* Set to 1 if you have isinf() */ /* Set to 1 if you have isinf() */
#undef HAVE_ISINF #undef HAVE_ISINF
...@@ -162,9 +165,11 @@ ...@@ -162,9 +165,11 @@
*/ */
# define JMP_BUF # define JMP_BUF
# define USE_POSIX_TIME # define USE_POSIX_TIME
# define NEED_I386_TAS_ASM # if !defined(PPC)
# define HAS_TEST_AND_SET # define NEED_I386_TAS_ASM
typedef unsigned char slock_t; # define HAS_TEST_AND_SET
typedef unsigned char slock_t;
# endif
#endif #endif
#if defined(nextstep) #if defined(nextstep)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment