From 95e8123f5bbc7a7319a3a3924dafd5ca9b189faa Mon Sep 17 00:00:00 2001 From: Wolfgang Bumiller Date: Tue, 19 Dec 2023 08:38:40 +0100 Subject: [PATCH] perlmod: search LD_LIBRARY_PATH before @INC/auto dirs This is for the code generated for `#[package(write = true)]`. Signed-off-by: Wolfgang Bumiller --- perlmod-macro/src/package.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/perlmod-macro/src/package.rs b/perlmod-macro/src/package.rs index 517dc43..c442920 100644 --- a/perlmod-macro/src/package.rs +++ b/perlmod-macro/src/package.rs @@ -11,12 +11,15 @@ use crate::attribs::ModuleAttrs; const MODULE_HEAD: &str = r#" require DynaLoader; +sub autodirs { map { "$_/auto" } @INC; } +sub envdirs { grep { length($_) } split(/:+/, $ENV{LD_LIBRARY_PATH} // '') } + sub bootstrap { my ($pkg) = @_; my ($mod_name) = {{LIB_NAME}}; my $bootstrap_name = 'boot_' . ($pkg =~ s/::/__/gr); - my @dirs = (map "-L$_/auto", @INC); + my @dirs = map { "-L$_" } (envdirs(), autodirs()); my $mod_file = DynaLoader::dl_findfile("#; #[cfg(debug_assertions)] -- 2.39.2