|
1 | 1 | /* |
2 | | - * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group |
3 | | - * Portions Copyright (c) 1990 The Regents of the University of California. |
4 | | - * All rights reserved. |
5 | | - * |
6 | 2 | * src/backend/port/dynloader/openbsd.c |
7 | 3 | * |
8 | | - * Redistribution and use in source and binary forms, with or without |
9 | | - * modification, are permitted provided that the following conditions |
10 | | - * are met: |
11 | | - * 1. Redistributions of source code must retain the above copyright |
12 | | - * notice, this list of conditions and the following disclaimer. |
13 | | - * 2. Redistributions in binary form must reproduce the above copyright |
14 | | - * notice, this list of conditions and the following disclaimer in the |
15 | | - * documentation and/or other materials provided with the distribution. |
16 | | - * 3. Neither the name of the University nor the names of its contributors |
17 | | - * may be used to endorse or promote products derived from this software |
18 | | - * without specific prior written permission. |
| 4 | + * Dummy file used for nothing at this point |
19 | 5 | * |
20 | | - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND |
21 | | - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
22 | | - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
23 | | - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE |
24 | | - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
25 | | - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
26 | | - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
27 | | - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
28 | | - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
29 | | - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
30 | | - * SUCH DAMAGE. |
| 6 | + * see openbsd.h |
31 | 7 | */ |
32 | | - |
33 | | -#if defined(LIBC_SCCS)&& !defined(lint) |
34 | | -staticcharsccsid[]="@(#)dl.c5.4 (Berkeley) 2/23/91"; |
35 | | -#endif/* LIBC_SCCS and not lint */ |
36 | | - |
37 | | -#include"postgres.h" |
38 | | - |
39 | | -#include<nlist.h> |
40 | | -#include<link.h> |
41 | | -#include<dlfcn.h> |
42 | | - |
43 | | -#include"dynloader.h" |
44 | | - |
45 | | -staticcharerror_message[BUFSIZ]; |
46 | | - |
47 | | -char* |
48 | | -BSD44_derived_dlerror(void) |
49 | | -{ |
50 | | -staticcharret[BUFSIZ]; |
51 | | - |
52 | | -strcpy(ret,error_message); |
53 | | -error_message[0]=0; |
54 | | -return (ret[0]==0) ?NULL :ret; |
55 | | -} |
56 | | - |
57 | | -void* |
58 | | -BSD44_derived_dlopen(constchar*file,intnum) |
59 | | -{ |
60 | | -#if !defined(HAVE_DLOPEN) |
61 | | -snprintf(error_message,sizeof(error_message), |
62 | | -"dlopen (%s) not supported",file); |
63 | | -returnNULL; |
64 | | -#else |
65 | | -void*vp; |
66 | | - |
67 | | -if ((vp=dlopen((char*)file,num))==NULL) |
68 | | -snprintf(error_message,sizeof(error_message), |
69 | | -"dlopen (%s) failed: %s",file,dlerror()); |
70 | | -returnvp; |
71 | | -#endif |
72 | | -} |
73 | | - |
74 | | -void* |
75 | | -BSD44_derived_dlsym(void*handle,constchar*name) |
76 | | -{ |
77 | | -#if !defined(HAVE_DLOPEN) |
78 | | -snprintf(error_message,sizeof(error_message), |
79 | | -"dlsym (%s) failed",name); |
80 | | -returnNULL; |
81 | | -#else |
82 | | -void*vp; |
83 | | - |
84 | | -#ifndef__ELF__ |
85 | | -charbuf[BUFSIZ]; |
86 | | - |
87 | | -if (*name!='_') |
88 | | -{ |
89 | | -snprintf(buf,sizeof(buf),"_%s",name); |
90 | | -name=buf; |
91 | | -} |
92 | | -#endif/* !__ELF__ */ |
93 | | -if ((vp=dlsym(handle, (char*)name))==NULL) |
94 | | -snprintf(error_message,sizeof(error_message), |
95 | | -"dlsym (%s) failed",name); |
96 | | -returnvp; |
97 | | -#endif |
98 | | -} |
99 | | - |
100 | | -void |
101 | | -BSD44_derived_dlclose(void*handle) |
102 | | -{ |
103 | | -#if defined(HAVE_DLOPEN) |
104 | | -dlclose(handle); |
105 | | -#endif |
106 | | -} |