diff options
Diffstat (limited to 'src/backend/port/ultrix4/dynloader.c')
-rw-r--r-- | src/backend/port/ultrix4/dynloader.c | 85 |
1 files changed, 45 insertions, 40 deletions
diff --git a/src/backend/port/ultrix4/dynloader.c b/src/backend/port/ultrix4/dynloader.c index 1acc54260a1..d896eebf901 100644 --- a/src/backend/port/ultrix4/dynloader.c +++ b/src/backend/port/ultrix4/dynloader.c @@ -1,15 +1,15 @@ /*------------------------------------------------------------------------- * * dynloader.c-- - * This dynamic loader uses Andrew Yu's libdl-1.0 package for Ultrix 4.x. - * (Note that pg_dlsym and pg_dlclose are actually macros defined in - * "port-protos.h".) - * + * This dynamic loader uses Andrew Yu's libdl-1.0 package for Ultrix 4.x. + * (Note that pg_dlsym and pg_dlclose are actually macros defined in + * "port-protos.h".) + * * Copyright (c) 1994, Regents of the University of California * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/port/ultrix4/Attic/dynloader.c,v 1.3 1996/11/26 03:18:50 bryanh Exp $ + * $Header: /cvsroot/pgsql/src/backend/port/ultrix4/Attic/dynloader.c,v 1.4 1997/09/07 04:47:21 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -22,49 +22,54 @@ #include "port-protos.h" #include "utils/elog.h" -extern char pg_pathname[]; +extern char pg_pathname[]; -void * +void * pg_dlopen(char *filename) { - static int dl_initialized= 0; - void *handle; + static int dl_initialized = 0; + void *handle; - /* - * 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 (!dl_init(pg_pathname)) { - return NULL; - } /* - * if there are undefined symbols, we want dl to search from the - * following libraries also. + * initializes the dynamic loader with the executable's pathname. + * (only needs to do this the first time pg_dlopen is called.) */ - dl_setLibraries("/usr/lib/libm_G0.a:/usr/lib/libc_G0.a"); - dl_initialized= 1; - } + if (!dl_initialized) + { + if (!dl_init(pg_pathname)) + { + return NULL; + } - /* - * open the file. We do the symbol resolution right away so that we - * will know if there are undefined symbols. (This is in fact the - * same semantics as "ld -A". ie. you cannot have undefined symbols. - */ - if ((handle=dl_open(filename, DL_NOW))==NULL) { - int count; - char **list= dl_undefinedSymbols(&count); + /* + * if there are undefined symbols, we want dl to search from the + * following libraries also. + */ + dl_setLibraries("/usr/lib/libm_G0.a:/usr/lib/libc_G0.a"); + dl_initialized = 1; + } - /* list the undefined symbols, if any */ - if(count) { - elog(NOTICE, "dl: Undefined:"); - while(*list) { - elog(NOTICE, " %s", *list); - list++; - } + /* + * open the file. We do the symbol resolution right away so that we + * will know if there are undefined symbols. (This is in fact the same + * semantics as "ld -A". ie. you cannot have undefined symbols. + */ + if ((handle = dl_open(filename, DL_NOW)) == NULL) + { + int count; + char **list = dl_undefinedSymbols(&count); + + /* list the undefined symbols, if any */ + if (count) + { + elog(NOTICE, "dl: Undefined:"); + while (*list) + { + elog(NOTICE, " %s", *list); + list++; + } + } } - } - return (void *)handle; + return (void *) handle; } - |