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_debugEnables 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 to1for minimal information or higher for more detail.@dl_library_pathDefault 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_usingList of additional libraries or other shared objects for resolving undefined symbols. Required only on platforms without automatic handling for dependent libraries.
@dl_require_symbolsList 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.