]> granicus.if.org Git - postgresql/commitdiff
From: Brian E Gallew <geek+@cmu.edu>
authorMarc G. Fournier <scrappy@hub.org>
Sat, 14 Feb 1998 19:56:21 +0000 (19:56 +0000)
committerMarc G. Fournier <scrappy@hub.org>
Sat, 14 Feb 1998 19:56:21 +0000 (19:56 +0000)
dgux 5.4R4.11

Missing port-protos.h (not needed, I think).  Wants dld.h.  Should
really use the system dl stuff (like i386_solaris).  Needs to include
<netinet/in.h> before <arpa/inet.h>.  Here are some patches...

src/backend/port/dynloader/dgux.c
src/backend/port/dynloader/dgux.h
src/include/config.h.in

index adc81b621510fa1fa16495c48c30143d3806cb13..37e836c2e63e005294d619f56e16bef4a0a4a605 100644 (file)
@@ -1,101 +1,7 @@
-/*-------------------------------------------------------------------------
+/* Dummy file used for nothing at this point
  *
- * dynloader.c--
- *       Dynamic Loader for Postgres for DG/UX, generated from those for
- *       Linux.
+ * see dgux.h
  *
- * Copyright (c) 1994, Regents of the University of California
- *
- *
- * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/port/dynloader/dgux.c,v 1.1 1997/12/20 04:48:02 scrappy Exp $
- *
- *-------------------------------------------------------------------------
+ * $Id: dgux.c,v 1.2 1998/02/14 19:56:19 scrappy Exp $
  */
-#include <stdio.h>
-#include <dld.h>
-#include "postgres.h"
-#include "port-protos.h"
-#include "utils/elog.h"
-#include "fmgr.h"
-
-extern char pg_pathname[];
-
-void      *
-pg_dlopen(char *filename)
-{
-       static int      dl_initialized = 0;
-
-       /*
-        * initializes the dynamic loader with the executable's pathname.
-        * (only needs to do this the first time pg_dlopen is called.)
-        */
-       if (!dl_initialized)
-       {
-               if (dld_init(dld_find_executable(pg_pathname)))
-               {
-                       return NULL;
-               }
-
-               /*
-                * if there are undefined symbols, we want dl to search from the
-                * following libraries also.
-                */
-               dl_initialized = 1;
-       }
-
-       /*
-        * link the file, then check for undefined symbols!
-        */
-       if (dld_link(filename))
-       {
-               return NULL;
-       }
-
-       /*
-        * If undefined symbols: try to link with the C and math libraries!
-        * This could be smarter, if the dynamic linker was able to handle
-        * shared libs!
-        */
-       if (dld_undefined_sym_count > 0)
-       {
-               if (dld_link("/usr/lib/libc.a"))
-               {
-                       elog(NOTICE, "dld: Cannot link C library!");
-                       return NULL;
-               }
-               if (dld_undefined_sym_count > 0)
-               {
-                       if (dld_link("/usr/lib/libm.a"))
-                       {
-                               elog(NOTICE, "dld: Cannot link math library!");
-                               return NULL;
-                       }
-                       if (dld_undefined_sym_count > 0)
-                       {
-                               int                     count = dld_undefined_sym_count;
-                               char      **list = dld_list_undefined_sym();
-
-                               /* list the undefined symbols, if any */
-                               elog(NOTICE, "dld: Undefined:");
-                               do
-                               {
-                                       elog(NOTICE, "  %s", *list);
-                                       list++;
-                                       count--;
-                               } while (count > 0);
-
-                               dld_unlink_by_file(filename, 1);
-                               return NULL;
-                       }
-               }
-       }
-
-       return (void *) strdup(filename);
-}
 
-char      *
-pg_dlerror()
-{
-       return dld_strerror(dld_errno);
-}
index 89705cac27f53a94926a1a4c889bb248c0f5a2e9..c7b5a53d48cef6c7ebb47b2ca54f3cd3ee8d43da 100644 (file)
@@ -1,30 +1,31 @@
 /*-------------------------------------------------------------------------
  *
- * port-protos.h--
- *       port-specific prototypes for SunOS 4
- *
- *
+ * dgux.h--
+ *       
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: dgux.h,v 1.1 1997/12/20 04:48:04 scrappy Exp $
+ * $Id: dgux.h,v 1.2 1998/02/14 19:56:21 scrappy Exp $
  *
  *-------------------------------------------------------------------------
  */
 #ifndef PORT_PROTOS_H
 #define PORT_PROTOS_H
 
+#include <dlfcn.h>
 #include "fmgr.h"                              /* for func_ptr */
 #include "utils/dynamic_loader.h"
-#include "dlfcn.h"
 
-/* dynloader.c */
-
-/* #define             pg_dlopen(f)    dlopen(f, 1) */
-#define pg_dlopen(f)   dlopen(f, 2)
+/*
+ * Dynamic Loader on DG/UX.
+ *
+ * this dynamic loader uses the system dynamic loading interface for shared
+ * libraries (ie. dlopen/dlsym/dlclose). The user must specify a shared
+ * library as the file to be dynamically loaded.
+ *
+ */
+#define pg_dlopen(f)  dlopen(f,1)
 #define pg_dlsym               dlsym
 #define pg_dlclose             dlclose
 #define pg_dlerror             dlerror
 
-/* port.c */
-
 #endif                                                 /* PORT_PROTOS_H */
index a40161eac838e16d426ccc5a2618007fbe418882..5a3893feaab91dc3f61ed0a814f4f5ab4ee6ac34 100644 (file)
@@ -17,6 +17,9 @@
 /* Set to 1 if you have <fp_class.h> */
 #undef HAVE_FP_CLASS_H
 
+/* Set to 1 if you have <netinet/in.h> */
+#undef HAVE_NETINET_IN_H
+
 /* Set to 1 if you have <ieeefp.h> */
 #undef HAVE_IEEEFP_H
 
@@ -96,6 +99,9 @@ int  gethostname(char *name, int namelen);
 #undef HAVE_INET_ATON
 #ifndef HAVE_INET_ATON
 # ifdef HAVE_ARPA_INET_H
+#  ifdef HAVE_NETINET_IN_H
+#   include <netinet/in.h>
+#  endif
 #  include <arpa/inet.h>
 # endif
 extern int  inet_aton(const char *cp, struct in_addr * addr);