Lines 27-32
Link Here
|
27 |
#include <sys/cdefs.h> |
27 |
#include <sys/cdefs.h> |
28 |
__FBSDID("$FreeBSD$"); |
28 |
__FBSDID("$FreeBSD$"); |
29 |
|
29 |
|
|
|
30 |
#if !defined(IN_LIBDL) || defined(PIC) |
31 |
|
30 |
/* |
32 |
/* |
31 |
* Linkage to services provided by the dynamic linker. |
33 |
* Linkage to services provided by the dynamic linker. |
32 |
*/ |
34 |
*/ |
Lines 57-151
void _rtld_atfork_post(int *);
Link Here
|
57 |
|
59 |
|
58 |
#pragma weak _rtld_error |
60 |
#pragma weak _rtld_error |
59 |
void |
61 |
void |
60 |
_rtld_error(const char *fmt, ...) |
62 |
_rtld_error(const char *fmt __unused, ...) |
61 |
{ |
63 |
{ |
62 |
} |
64 |
} |
63 |
|
65 |
|
64 |
#pragma weak dladdr |
66 |
#pragma weak dladdr |
65 |
int |
67 |
int |
66 |
dladdr(const void *addr, Dl_info *dlip) |
68 |
dladdr(const void *addr __unused, Dl_info *dlip __unused) |
67 |
{ |
69 |
{ |
|
|
70 |
|
68 |
_rtld_error(sorry); |
71 |
_rtld_error(sorry); |
69 |
return 0; |
72 |
return (0); |
70 |
} |
73 |
} |
71 |
|
74 |
|
72 |
#pragma weak dlclose |
75 |
#pragma weak dlclose |
73 |
int |
76 |
int |
74 |
dlclose(void *handle) |
77 |
dlclose(void *handle __unused) |
75 |
{ |
78 |
{ |
|
|
79 |
|
76 |
_rtld_error(sorry); |
80 |
_rtld_error(sorry); |
77 |
return -1; |
81 |
return (-1); |
78 |
} |
82 |
} |
79 |
|
83 |
|
80 |
#pragma weak dlerror |
84 |
#pragma weak dlerror |
81 |
char * |
85 |
char * |
82 |
dlerror(void) |
86 |
dlerror(void) |
83 |
{ |
87 |
{ |
84 |
return sorry; |
88 |
|
|
|
89 |
return (sorry); |
85 |
} |
90 |
} |
86 |
|
91 |
|
87 |
#pragma weak dllockinit |
92 |
#pragma weak dllockinit |
88 |
void |
93 |
void |
89 |
dllockinit(void *context, |
94 |
dllockinit(void *context, |
90 |
void *(*lock_create)(void *context), |
95 |
void *(*lock_create)(void *context) __unused, |
91 |
void (*rlock_acquire)(void *lock), |
96 |
void (*rlock_acquire)(void *lock) __unused, |
92 |
void (*wlock_acquire)(void *lock), |
97 |
void (*wlock_acquire)(void *lock) __unused, |
93 |
void (*lock_release)(void *lock), |
98 |
void (*lock_release)(void *lock) __unused, |
94 |
void (*lock_destroy)(void *lock), |
99 |
void (*lock_destroy)(void *lock) __unused, |
95 |
void (*context_destroy)(void *context)) |
100 |
void (*context_destroy)(void *context) __unused) |
96 |
{ |
101 |
{ |
|
|
102 |
|
97 |
if (context_destroy != NULL) |
103 |
if (context_destroy != NULL) |
98 |
context_destroy(context); |
104 |
context_destroy(context); |
99 |
} |
105 |
} |
100 |
|
106 |
|
101 |
#pragma weak dlopen |
107 |
#pragma weak dlopen |
102 |
void * |
108 |
void * |
103 |
dlopen(const char *name, int mode) |
109 |
dlopen(const char *name __unused, int mode __unused) |
104 |
{ |
110 |
{ |
|
|
111 |
|
105 |
_rtld_error(sorry); |
112 |
_rtld_error(sorry); |
106 |
return NULL; |
113 |
return (NULL); |
107 |
} |
114 |
} |
108 |
|
115 |
|
109 |
#pragma weak dlsym |
116 |
#pragma weak dlsym |
110 |
void * |
117 |
void * |
111 |
dlsym(void * __restrict handle, const char * __restrict name) |
118 |
dlsym(void * __restrict handle __unused, const char * __restrict name __unused) |
112 |
{ |
119 |
{ |
|
|
120 |
|
113 |
_rtld_error(sorry); |
121 |
_rtld_error(sorry); |
114 |
return NULL; |
122 |
return (NULL); |
115 |
} |
123 |
} |
116 |
|
124 |
|
117 |
#pragma weak dlfunc |
125 |
#pragma weak dlfunc |
118 |
dlfunc_t |
126 |
dlfunc_t |
119 |
dlfunc(void * __restrict handle, const char * __restrict name) |
127 |
dlfunc(void * __restrict handle __unused, const char * __restrict name __unused) |
120 |
{ |
128 |
{ |
|
|
129 |
|
121 |
_rtld_error(sorry); |
130 |
_rtld_error(sorry); |
122 |
return NULL; |
131 |
return (NULL); |
123 |
} |
132 |
} |
124 |
|
133 |
|
125 |
#pragma weak dlvsym |
134 |
#pragma weak dlvsym |
126 |
void * |
135 |
void * |
127 |
dlvsym(void * __restrict handle, const char * __restrict name, |
136 |
dlvsym(void * __restrict handle __unused, const char * __restrict name __unused, |
128 |
const char * __restrict version) |
137 |
const char * __restrict version __unused) |
129 |
{ |
138 |
{ |
|
|
139 |
|
130 |
_rtld_error(sorry); |
140 |
_rtld_error(sorry); |
131 |
return NULL; |
141 |
return (NULL); |
132 |
} |
142 |
} |
133 |
|
143 |
|
134 |
#pragma weak dlinfo |
144 |
#pragma weak dlinfo |
135 |
int |
145 |
int |
136 |
dlinfo(void * __restrict handle, int request, void * __restrict p) |
146 |
dlinfo(void * __restrict handle __unused, int request __unused, |
|
|
147 |
void * __restrict p __unused) |
137 |
{ |
148 |
{ |
|
|
149 |
|
138 |
_rtld_error(sorry); |
150 |
_rtld_error(sorry); |
139 |
return 0; |
151 |
return (0); |
140 |
} |
152 |
} |
141 |
|
153 |
|
142 |
#pragma weak _rtld_thread_init |
154 |
#pragma weak _rtld_thread_init |
143 |
void |
155 |
void |
144 |
_rtld_thread_init(void * li) |
156 |
_rtld_thread_init(void *li __unused) |
145 |
{ |
157 |
{ |
|
|
158 |
|
146 |
_rtld_error(sorry); |
159 |
_rtld_error(sorry); |
147 |
} |
160 |
} |
148 |
|
161 |
|
|
|
162 |
#ifndef IN_LIBDL |
149 |
static pthread_once_t dl_phdr_info_once = PTHREAD_ONCE_INIT; |
163 |
static pthread_once_t dl_phdr_info_once = PTHREAD_ONCE_INIT; |
150 |
static struct dl_phdr_info phdr_info; |
164 |
static struct dl_phdr_info phdr_info; |
151 |
|
165 |
|
Lines 181-224
dl_init_phdr_info(void)
Link Here
|
181 |
} |
195 |
} |
182 |
phdr_info.dlpi_adds = 1; |
196 |
phdr_info.dlpi_adds = 1; |
183 |
} |
197 |
} |
|
|
198 |
#endif |
184 |
|
199 |
|
185 |
#pragma weak dl_iterate_phdr |
200 |
#pragma weak dl_iterate_phdr |
186 |
int |
201 |
int |
187 |
dl_iterate_phdr(int (*callback)(struct dl_phdr_info *, size_t, void *), |
202 |
dl_iterate_phdr(int (*callback)(struct dl_phdr_info *, size_t, void *) __unused, |
188 |
void *data) |
203 |
void *data __unused) |
189 |
{ |
204 |
{ |
190 |
|
205 |
|
|
|
206 |
#ifndef IN_LIBDL |
191 |
__init_elf_aux_vector(); |
207 |
__init_elf_aux_vector(); |
192 |
if (__elf_aux_vector == NULL) |
208 |
if (__elf_aux_vector == NULL) |
193 |
return (1); |
209 |
return (1); |
194 |
_once(&dl_phdr_info_once, dl_init_phdr_info); |
210 |
_once(&dl_phdr_info_once, dl_init_phdr_info); |
195 |
return (callback(&phdr_info, sizeof(phdr_info), data)); |
211 |
return (callback(&phdr_info, sizeof(phdr_info), data)); |
|
|
212 |
#else |
213 |
return (0); |
214 |
#endif |
196 |
} |
215 |
} |
197 |
|
216 |
|
198 |
#pragma weak fdlopen |
217 |
#pragma weak fdlopen |
199 |
void * |
218 |
void * |
200 |
fdlopen(int fd, int mode) |
219 |
fdlopen(int fd __unused, int mode __unused) |
201 |
{ |
220 |
{ |
202 |
|
221 |
|
203 |
_rtld_error(sorry); |
222 |
_rtld_error(sorry); |
204 |
return NULL; |
223 |
return (NULL); |
205 |
} |
224 |
} |
206 |
|
225 |
|
207 |
#pragma weak _rtld_atfork_pre |
226 |
#pragma weak _rtld_atfork_pre |
208 |
void |
227 |
void |
209 |
_rtld_atfork_pre(int *locks) |
228 |
_rtld_atfork_pre(int *locks __unused) |
210 |
{ |
229 |
{ |
211 |
} |
230 |
} |
212 |
|
231 |
|
213 |
#pragma weak _rtld_atfork_post |
232 |
#pragma weak _rtld_atfork_post |
214 |
void |
233 |
void |
215 |
_rtld_atfork_post(int *locks) |
234 |
_rtld_atfork_post(int *locks __unused) |
216 |
{ |
235 |
{ |
217 |
} |
236 |
} |
218 |
|
237 |
|
219 |
#pragma weak _rtld_addr_phdr |
238 |
#pragma weak _rtld_addr_phdr |
220 |
int |
239 |
int |
221 |
_rtld_addr_phdr(const void *addr, struct dl_phdr_info *phdr_info) |
240 |
_rtld_addr_phdr(const void *addr __unused, |
|
|
241 |
struct dl_phdr_info *phdr_info_a __unused) |
222 |
{ |
242 |
{ |
223 |
|
243 |
|
224 |
return (0); |
244 |
return (0); |
Lines 234-241
_rtld_get_stack_prot(void)
Link Here
|
234 |
|
254 |
|
235 |
#pragma weak _rtld_is_dlopened |
255 |
#pragma weak _rtld_is_dlopened |
236 |
int |
256 |
int |
237 |
_rtld_is_dlopened(void *arg) |
257 |
_rtld_is_dlopened(void *arg __unused) |
238 |
{ |
258 |
{ |
239 |
|
259 |
|
240 |
return (0); |
260 |
return (0); |
241 |
} |
261 |
} |
|
|
262 |
|
263 |
#endif /* !defined(IN_LIBDL) || defined(PIC) */ |