develooper Front page | perl.perl5.porters | Postings from March 2000

Re: XS_DynaLoader_dl_unload_file (was: beep R beep C beep 3)

Thread Previous | Thread Next
From:
Gurusamy Sarathy
Date:
March 22, 2000 10:43
Subject:
Re: XS_DynaLoader_dl_unload_file (was: beep R beep C beep 3)
Message ID:
200003221843.KAA06186@maul.ActiveState.com
On 22 Mar 2000 16:01:55 +0100, Ulrich Pfeifer wrote:
>>>>>> "Uli" == Ulrich Pfeifer <pfeifer@wait.de> writes:
>
>    Uli> I'll build a debugging version of perl now ....
> ,-----
> | 
> | Does not reveal too much:
> | 
> | 223             void *  libref = INT2PTR(void *,SvIV(ST(0)));
> | (gdb) n
> | 225             dXSTARG;
> | (gdb) x libref
> | 0x8218c50:      0x401a0000
> | (gdb) n
> | Cannot access memory at address 0x406cd014.
> | (gdb) where
> | #0  0x4000a43d in _dl_debug_state () from /lib/ld-linux.so.2
> | #1  0x4014d2af in _dl_close () from /lib/libc.so.6
> | #2  0x400663b7 in dlopen () from /lib/libdl.so.2
> | #3  0x4000a145 in _dl_catch_error () from /lib/ld-linux.so.2
> | #4  0x4006693e in dlerror () from /lib/libdl.so.2
> | #5  0x400663dd in dlclose () from /lib/libdl.so.2
> | #6  0x805a4c9 in XS_DynaLoader_dl_unload_file (cv=0x818ef5c)
> |     at DynaLoader.xs:202

FYI.


Sarathy
gsar@ActiveState.com
-----------------------------------8<-----------------------------------
Change 5885 by gsar@auger on 2000/03/22 18:41:50

	make unloading of extension shared objects (change#5381) a build
	option (use "Configure -Accflags=-DDL_UNLOAD_ALL_AT_EXIT" to enable)

Affected files ...

... //depot/perl/ext/DynaLoader/dlutils.c#17 edit
... //depot/perl/pod/perldelta.pod#199 edit

Differences ...

==== //depot/perl/ext/DynaLoader/dlutils.c#17 (text) ====
Index: perl/ext/DynaLoader/dlutils.c
--- perl/ext/DynaLoader/dlutils.c.~1~	Wed Mar 22 10:41:56 2000
+++ perl/ext/DynaLoader/dlutils.c	Wed Mar 22 10:41:56 2000
@@ -69,7 +69,9 @@
     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
 }
 
 

==== //depot/perl/pod/perldelta.pod#199 (text) ====
Index: perl/pod/perldelta.pod
--- perl/pod/perldelta.pod.~1~	Wed Mar 22 10:41:56 2000
+++ perl/pod/perldelta.pod	Wed Mar 22 10:41:56 2000
@@ -1484,6 +1484,16 @@
 
 The Dumpvalue module provides screen dumps of Perl data.
 
+=item DynaLoader
+
+DynaLoader now supports a dl_unload_file() function on platforms that
+support unloading shared objects using dlclose().
+
+Perl can also optionally arrange to unload all extension shared objects
+loaded by Perl.  To enable this, build Perl with the Configure option
+C<-Accflags=-DDL_UNLOAD_ALL_AT_EXIT>.  (This maybe useful if you are
+using Apache with mod_perl.)
+
 =item Benchmark
 
 Overall, Benchmark results exhibit lower average error and better timing
@@ -1852,6 +1862,11 @@
 a two-element list containing the fully qualified directory name and
 the filename.  See L<Win32>.
 
+=item XSLoader
+
+The XSLoader extension is a simpler alternative to DynaLoader.
+See L<XSLoader>.
+
 =item DBM Filters
 
 A new feature called "DBM Filters" has been added to all the
End of Patch.

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About