Extending to New Architectures
If you want to extend DynaLoader to a new architecture, you need to know about its internal interface. The variables it uses are:
$dl_debug
Enables internal debugging messages on the Perl side of the DynaLoader; by default, is set to
$ENV{'PERL_DL_DEBUG'}
if that is defined. A similar debugging variable is added to the C code (see dlutils.c) and enabled if Perl was built with the -DDEBUGGING flag, or it can be set via the PERL_DL_DEBUG environment variable. Set to1
for minimal information or higher for more detail.@dl_library_path
Default list of directories to search for libraries; initialized to hold the list of directories in
$Config{'libpth'}
. Should also be initialized with other directories that can be determined from the environment at runtime.@dl_resolve_using
List of additional libraries or other shared objects for resolving undefined symbols. Required only on platforms without automatic handling for dependent libraries.
@dl_require_symbols
List of one or more symbol names in the library/object file to be dynamically loaded. Only required on some platforms.
Of the following subroutines, bootstrap
and dl_findfile
are standard across all
platforms and are defined in DynaLoader.pm. The
others are defined in the .xs file that
supplies the implementation for the platform.
Get Perl in a Nutshell, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.