From b6837a3b27252f74ff8399514c00fa18a38dd3a6 Mon Sep 17 00:00:00 2001 From: Charles Bailey Date: Mon, 28 Feb 2000 02:51:00 +0000 Subject: Support case-sensitive symbols usage in linker p4raw-id: //depot/vmsperl@5302 --- ext/DynaLoader/DynaLoader_pm.PL | 1 + ext/DynaLoader/dl_vms.xs | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'ext') 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 #include +#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; } -- cgit v1.2.1