diff options
-rw-r--r-- | djgpp/config.over | 2 | ||||
-rw-r--r-- | ext/Storable/Storable.pm | 15 | ||||
-rw-r--r-- | hints/dos_djgpp.sh | 5 |
3 files changed, 16 insertions, 6 deletions
diff --git a/djgpp/config.over b/djgpp/config.over index b48774f6f0..f9c167ec24 100644 --- a/djgpp/config.over +++ b/djgpp/config.over @@ -1,5 +1,5 @@ ln='cp' -pager='less' +pager='${DJDIR}/bin/less.exe' # fix extension names under DOS repair() diff --git a/ext/Storable/Storable.pm b/ext/Storable/Storable.pm index 7b46317ac1..d2a631c0ee 100644 --- a/ext/Storable/Storable.pm +++ b/ext/Storable/Storable.pm @@ -135,7 +135,10 @@ sub _store { open(FILE, ">$file") || logcroak "can't create $file: $!"; binmode FILE; # Archaic systems... if ($use_locking) { - if ($^O eq 'dos') { + require Config; import Config; + if (!$Config{'d_flock'} && + !$Config{'d_fcntl_can_lock'} && + !$Config{'d_lockf'}) { logcarp "Storable::lock_store: fcntl/flock emulation broken on $^O"; return undef; } @@ -255,11 +258,15 @@ sub _retrieve { my $self; my $da = $@; # Could be from exception handler if ($use_locking) { - if ($^O eq 'dos') { - logcarp "Storable::lock_store: fcntl/flock emulation broken on $^O"; + require Config; import Config; + if (!$Config{'d_flock'} && + !$Config{'d_fcntl_can_lock'} && + !$Config{'d_lockf'}) { + logcarp "Storable::lock_retrieve: fcntl/flock emulation broken on $^O"; return undef; } - flock(FILE, LOCK_SH) || logcroak "can't get shared lock on $file: $!"; + flock(FILE, LOCK_SH) || + logcroak "can't get shared lock on $file: $!"; # Unlocking will happen when FILE is closed } eval { $self = pretrieve(*FILE) }; # Call C routine diff --git a/hints/dos_djgpp.sh b/hints/dos_djgpp.sh index d50bca4b25..ebbd786b45 100644 --- a/hints/dos_djgpp.sh +++ b/hints/dos_djgpp.sh @@ -41,10 +41,13 @@ startperl='#!perl' case "X$optimize" in X) optimize="-O2 -malign-loops=2 -malign-jumps=2 -malign-functions=2" + ldflags='-s' + ;; + X*) + ldflags=' ' ;; esac ccflags="$ccflags -DPERL_EXTERNAL_GLOB" -ldflags='-s' usemymalloc='n' timetype='time_t' |