ExtUtils::Mkbootstrap - 为 DynaLoader 创建引导文件
Mkbootstrap
Mkbootstrap 通常由扩展的 Makefile 调用。
扩展没有提供 *.bs
文件。相反,可能存在一个 *_BS
文件,其中包含特殊情况的代码,例如 NeXT 上的 berkeley db 的 posix。
该文件将被解析,并为当前架构生成一个可能为空的 @DynaLoader::dl_resolve_using
数组。该数组将由 $BSLOADLIBS
扩展,该数组由 ExtUtils::Liblist::ext() 计算。如果该数组仍然为空,则不执行任何操作,否则我们将使用 @DynaLoader::dl_resolve_using
数组写入一个 .bs 文件。
*_BS
文件可以通过将代码放置在 $bscode
中,将其放入生成的 *.bs
文件中。这是一种方便的“转义”机制,在复杂情况下可能很有用。
如果 @DynaLoader::dl_resolve_using 包含 -L*
或 -l*
条目,则 Mkbootstrap 会自动将 dl_findfile() 调用添加到生成的 *.bs
文件中。