source: git/Singular/mod_raw.cc @ 2c694a2

spielwiese
Last change on this file since 2c694a2 was 416465, checked in by Olaf Bachmann <obachman@…>, 24 years ago
* bug-fixes from work with Thomas git-svn-id: file:///usr/local/Singular/svn/trunk@3826 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 5.9 KB
Line 
1/****************************************
2*  Computer Algebra System SINGULAR     *
3****************************************/
4/* $Id: mod_raw.cc,v 1.4 1999-11-15 17:20:28 obachman Exp $ */
5/*
6 * ABSTRACT: machine depend code for dynamic modules
7 *
8 * Provides: dynl_open()
9 *           dynl_sym()
10 *           dynl_error()
11 *           dunl_close()
12*/
13
14#include "mod2.h"
15#if defined(HAVE_DYNAMIC_LOADING) || defined(HAVE_DYN_RL)
16#include "mod_raw.h"
17
18
19/*****************************************************************************
20 * SECTION ix86-linux                                                        *
21 *****************************************************************************/
22#ifdef ix86_Linux
23#include <dlfcn.h>
24
25void *dynl_open(
26  char *filename    /* I: filename to load */
27  )
28{
29  return(dlopen(filename, RTLD_NOW|RTLD_GLOBAL));
30}
31
32void *dynl_sym(void *handle, char *symbol)
33{
34  return(dlsym(handle, symbol));
35}
36
37int dynl_close (void *handle)
38{
39  return(dlclose (handle));
40}
41
42const char *dynl_error()
43{
44  return(dlerror());
45}
46#endif /* ix86_Linux */
47
48/*****************************************************************************
49 * SECTION HPUX-9/10                                                         *
50 *****************************************************************************/
51#if defined(HPUX_9) || defined(HPUX_10)
52#include <dl.h>
53
54typedef char *((*func_ptr) ());
55
56void *dynl_open(char *filename)
57{
58  shl_t           handle = shl_load(filename, BIND_DEFERRED, 0);
59
60  return ((void *) handle);
61}
62
63void *dynl_sym(void *handle, char *symbol)
64{
65  func_ptr        f;
66
67  if (shl_findsym((shl_t *) & handle, symbol, TYPE_PROCEDURE, &f) == -1)
68  {
69    f = (func_ptr) NULL;
70  }
71  return (f);
72}
73
74int dynl_close (void *handle)
75{
76  shl_unload((shl_t) handle);
77  return(0);
78}
79
80const char *dynl_error()
81{
82  static char errmsg[] = "shl_load failed";
83
84  return errmsg;
85}
86#endif /* HPUX_9  or HPUX_10 */
87
88/*****************************************************************************
89 * SECTION 68k-MPW                                                           *
90 *****************************************************************************/
91#ifdef 68k_MPW
92/* #    include <> */
93
94void *dynl_open(char *filename)
95{
96  return(NULL);
97}
98
99void *dynl_sym(void *handle, char *symbol)
100{
101  return(NULL);
102}
103
104int dynl_close (void *handle)
105{
106  return(0);
107}
108
109const char *dynl_error()
110{
111  static char errmsg[] = "support for dynamic loading not implemented";
112
113  return errmsg;
114}
115#  endif /* 68k_MPW */
116
117
118/*****************************************************************************
119 * SECTION AIX-4                                                             *
120 *****************************************************************************/
121#ifdef AIX_4
122/* #    include <> */
123
124void *dynl_open(char *filename)
125{
126  return(NULL);
127}
128
129void *dynl_sym(void *handle, char *symbol)
130{
131  return(NULL);
132}
133
134int dynl_close (void *handle)
135{
136  return(0);
137}
138
139const char *dynl_error()
140{
141  static char errmsg[] = "support for dynamic loading not implemented";
142
143  return errmsg;
144}
145#  endif /* AIX_4 */
146
147/*****************************************************************************
148 * SECTION IRIX-6                                                            *
149 *****************************************************************************/
150#ifdef IRIX_6
151/* #    include <> */
152
153void *dynl_open(char *filename)
154{
155  return(NULL);
156}
157
158void *dynl_sym(void *handle, char *symbol)
159{
160  return(NULL);
161}
162
163int dynl_close (void *handle)
164{
165  return(0);
166}
167
168const char *dynl_error()
169{
170  static char errmsg[] = "support for dynamic loading not implemented";
171
172  return errmsg;
173}
174#  endif /* IRIX_6 */
175
176/*****************************************************************************
177 * SECTION Sun3OS-4                                                          *
178 *****************************************************************************/
179#ifdef Sun3OS_4
180/* #    include <> */
181
182void *dynl_open(char *filename)
183{
184  return(NULL);
185}
186
187void *dynl_sym(void *handle, char *symbol)
188{
189  return(NULL);
190}
191
192int dynl_close (void *handle)
193{
194  return(0);
195}
196
197const char *dynl_error()
198{
199  static char errmsg[] = "support for dynamic loading not implemented";
200
201  return errmsg;
202}
203#endif /* Sun3OS_4 */
204
205/*****************************************************************************
206 * SECTION SunOS-4/5                                                         *
207 *****************************************************************************/
208#if defined(SunOS_4) || defined(SunOS_5)
209/* #    include <> */
210
211void *dynl_open(char *filename)
212{
213  return(NULL);
214}
215
216void *dynl_sym(void *handle, char *symbol)
217{
218  return(NULL);
219}
220
221int dynl_close (void *handle)
222{
223  return(0);
224}
225
226const char *dynl_error()
227{
228  static char errmsg[] = "support for dynamic loading not implemented";
229
230  return errmsg;
231}
232#endif /* SunOS_4 or SunOS_5 */
233
234/*****************************************************************************
235 * SECTION ix86-win                                                          *
236 *****************************************************************************/
237#ifdef ix86_win
238/* #    include <> */
239
240void *dynl_open(char *filename)
241{
242  return(NULL);
243}
244
245void *dynl_sym(void *handle, char *symbol)
246{
247  return(NULL);
248}
249
250int dynl_close (void *handle)
251{
252  return(0);
253}
254
255const char *dynl_error()
256{
257  static char errmsg[] = "support for dynamic loading not implemented";
258
259  return errmsg;
260}
261#endif /* ix86_win */
262
263/*****************************************************************************
264 * SECTION ppc-MPW                                                           *
265 *****************************************************************************/
266#ifdef ppc_MPW
267/* #    include <> */
268
269void *dynl_open(char *filename)
270{
271  return(NULL);
272}
273
274void *dynl_sym(void *handle, char *symbol)
275{
276  return(NULL);
277}
278
279int dynl_close (void *handle)
280{
281  return(0);
282}
283
284const char *dynl_error()
285{
286  static char errmsg[] = "support for dynamic loading not implemented";
287  return errmsg;
288}
289#  endif /* ppc_MPW */
290
291
292#endif /* HAVE_DYNAMIC_LOADING */
Note: See TracBrowser for help on using the repository browser.