Force a checkpoint in CREATE DATABASE before starting to copy the files,
[PostgreSQL.git] / src / backend / port / dynloader / hpux.c
bloba8e5ed74c89a113d99f5682bc86b699becf95e5b
1 /*-------------------------------------------------------------------------
3 * dynloader.c
4 * dynamic loader for HP-UX using the shared library mechanism
6 * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
7 * Portions Copyright (c) 1994, Regents of the University of California
10 * IDENTIFICATION
11 * $PostgreSQL$
13 * NOTES
14 * all functions are defined here -- it's impossible to trace the
15 * shl_* routines from the bundled HP-UX debugger.
17 *-------------------------------------------------------------------------
19 #include "postgres.h"
21 /* System includes */
22 #include <a.out.h>
23 #include <dl.h>
25 #include "dynloader.h"
26 #include "utils/dynamic_loader.h"
28 void *
29 pg_dlopen(char *filename)
32 * Use BIND_IMMEDIATE so that undefined symbols cause a failure return
33 * from shl_load(), rather than an abort() later on when we attempt to
34 * call the library!
36 shl_t handle = shl_load(filename,
37 BIND_IMMEDIATE | BIND_VERBOSE | DYNAMIC_PATH,
38 0L);
40 return (void *) handle;
43 PGFunction
44 pg_dlsym(void *handle, char *funcname)
46 PGFunction f;
48 if (shl_findsym((shl_t *) & handle, funcname, TYPE_PROCEDURE, &f) == -1)
49 f = (PGFunction) NULL;
50 return f;
53 void
54 pg_dlclose(void *handle)
56 shl_unload((shl_t) handle);
59 char *
60 pg_dlerror(void)
62 static char errmsg[] = "shl_load failed";
64 if (errno)
65 return strerror(errno);
67 return errmsg;