summaryrefslogtreecommitdiffstats
path: root/contrib/perl5/ext/DynaLoader/dlutils.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/perl5/ext/DynaLoader/dlutils.c')
-rw-r--r--contrib/perl5/ext/DynaLoader/dlutils.c106
1 files changed, 0 insertions, 106 deletions
diff --git a/contrib/perl5/ext/DynaLoader/dlutils.c b/contrib/perl5/ext/DynaLoader/dlutils.c
deleted file mode 100644
index 9d88f5f..0000000
--- a/contrib/perl5/ext/DynaLoader/dlutils.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/* dlutils.c - handy functions and definitions for dl_*.xs files
- *
- * Currently this file is simply #included into dl_*.xs/.c files.
- * It should really be split into a dlutils.h and dlutils.c
- *
- * Modified:
- * 29th Feburary 2000 - Alan Burlison: Added functionality to close dlopen'd
- * files when the interpreter exits
- */
-
-
-/* pointer to allocated memory for last error message */
-static char *LastError = (char*)NULL;
-
-/* flag for immediate rather than lazy linking (spots unresolved symbol) */
-static int dl_nonlazy = 0;
-
-#ifdef DL_LOADONCEONLY
-static HV *dl_loaded_files = Nullhv; /* only needed on a few systems */
-#endif
-
-
-#ifdef DEBUGGING
-static int dl_debug = 0; /* value copied from $DynaLoader::dl_debug */
-#define DLDEBUG(level,code) if (dl_debug>=level) { code; }
-#else
-#define DLDEBUG(level,code)
-#endif
-
-
-/* Close all dlopen'd files */
-static void
-dl_unload_all_files(pTHXo_ void *unused)
-{
- CV *sub;
- AV *dl_librefs;
- SV *dl_libref;
-
- if ((sub = get_cv("DynaLoader::dl_unload_file", FALSE)) != NULL) {
- dl_librefs = get_av("DynaLoader::dl_librefs", FALSE);
- while ((dl_libref = av_pop(dl_librefs)) != &PL_sv_undef) {
- dSP;
- ENTER;
- SAVETMPS;
- PUSHMARK(SP);
- XPUSHs(sv_2mortal(dl_libref));
- PUTBACK;
- call_sv((SV*)sub, G_DISCARD | G_NODEBUG);
- FREETMPS;
- LEAVE;
- }
- }
-}
-
-
-static void
-dl_generic_private_init(pTHXo) /* called by dl_*.xs dl_private_init() */
-{
- char *perl_dl_nonlazy;
-#ifdef DEBUGGING
- SV *sv = get_sv("DynaLoader::dl_debug", 0);
- dl_debug = sv ? SvIV(sv) : 0;
-#endif
- if ( (perl_dl_nonlazy = getenv("PERL_DL_NONLAZY")) != NULL )
- dl_nonlazy = atoi(perl_dl_nonlazy);
- if (dl_nonlazy)
- DLDEBUG(1,PerlIO_printf(Perl_debug_log, "DynaLoader bind mode is 'non-lazy'\n"));
-#ifdef DL_LOADONCEONLY
- if (!dl_loaded_files)
- dl_loaded_files = newHV(); /* provide cache for dl_*.xs if needed */
-#endif
-#ifdef DL_UNLOAD_ALL_AT_EXIT
- call_atexit(&dl_unload_all_files, (void*)0);
-#endif
-}
-
-
-/* SaveError() takes printf style args and saves the result in LastError */
-static void
-SaveError(pTHXo_ char* pat, ...)
-{
- va_list args;
- SV *msv;
- char *message;
- STRLEN len;
-
- /* This code is based on croak/warn, see mess() in util.c */
-
- va_start(args, pat);
- msv = vmess(pat, &args);
- va_end(args);
-
- message = SvPV(msv,len);
- len++; /* include terminating null char */
-
- /* Allocate some memory for the error message */
- if (LastError)
- LastError = (char*)saferealloc(LastError, len) ;
- else
- LastError = (char *) safemalloc(len) ;
-
- /* Copy message into LastError (including terminating null char) */
- strncpy(LastError, message, len) ;
- DLDEBUG(2,PerlIO_printf(Perl_debug_log, "DynaLoader: stored error msg '%s'\n",LastError));
-}
-
OpenPOWER on IntegriCloud