diff options
author | Charles Bailey <bailey@newman.upenn.edu> | 2000-02-28 02:51:00 +0000 |
---|---|---|
committer | bailey <bailey@newman.upenn.edu> | 2000-02-28 02:51:00 +0000 |
commit | b6837a3b27252f74ff8399514c00fa18a38dd3a6 (patch) | |
tree | 7675b6a013750668456e27509daacd6804832173 /ext/DynaLoader | |
parent | 752635eac25aa1a1ce0245c7df3133d95799c5e4 (diff) | |
download | perl-b6837a3b27252f74ff8399514c00fa18a38dd3a6.tar.gz |
Support case-sensitive symbols usage in linker
p4raw-id: //depot/vmsperl@5302
Diffstat (limited to 'ext/DynaLoader')
-rw-r--r-- | ext/DynaLoader/DynaLoader_pm.PL | 1 | ||||
-rw-r--r-- | ext/DynaLoader/dl_vms.xs | 8 |
2 files changed, 8 insertions, 1 deletions
diff --git a/ext/DynaLoader/DynaLoader_pm.PL b/ext/DynaLoader/DynaLoader_pm.PL index 5cc5aead11..8341b36130 100644 --- a/ext/DynaLoader/DynaLoader_pm.PL +++ b/ext/DynaLoader/DynaLoader_pm.PL @@ -198,6 +198,7 @@ sub bootstrap { croak("Can't locate loadable object for module $module in \@INC (\@INC contains: @INC)") unless $file; # wording similar to error from 'require' + $file = uc($file) if $Is_VMS && $Config{d_vms_case_sensitive_symbols}; my $bootname = "boot_$module"; $bootname =~ s/\W/_/g; @dl_require_symbols = ($bootname); diff --git a/ext/DynaLoader/dl_vms.xs b/ext/DynaLoader/dl_vms.xs index 29ab7c31e2..d7a1f863f3 100644 --- a/ext/DynaLoader/dl_vms.xs +++ b/ext/DynaLoader/dl_vms.xs @@ -65,6 +65,12 @@ static AV *dl_require_symbols = Nullav; #include <ssdef.h> #include <starlet.h> +#if defined(VMS_WE_ARE_CASE_SENSITIVE) +#define DL_CASE_SENSITIVE 1<<4 +#else +#define DL_CASE_SENSITIVE 0 +#endif + typedef unsigned long int vmssts; struct libref { @@ -142,7 +148,7 @@ my_find_image_symbol(struct dsc$descriptor_s *imgname, { unsigned long int retsts; VAXC$ESTABLISH(findsym_handler); - retsts = lib$find_image_symbol(imgname,symname,entry,defspec); + retsts = lib$find_image_symbol(imgname,symname,entry,defspec,DL_CASE_SENSITIVE); return retsts; } |