summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2000-11-20 22:02:16 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2000-11-20 22:02:16 +0000
commita84e0cefe392652252f998db397cb3e944414915 (patch)
tree8495d1faea71a6207349b93c86994732a9c6c344 /lib
parent7b69f83de7dc469cd4999c03687ff50aea3b0c29 (diff)
downloadperl-a84e0cefe392652252f998db397cb3e944414915.tar.gz
Remove the shared object before attempting to create
(by linking) a new one. E.g. in AIX not removing becomes quite painful if one tries to do more than one build in the same tree (an interrupted build, for example), since the AIX' shared dynaloader seemingly keeps the shared objects open and therefore 'busy' for quite a while, even when nobody is using the objects, leading into link failures. p4raw-id: //depot/perl@7782
Diffstat (limited to 'lib')
-rw-r--r--lib/ExtUtils/MM_Unix.pm8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/ExtUtils/MM_Unix.pm b/lib/ExtUtils/MM_Unix.pm
index f538818a8d..31aa1220ff 100644
--- a/lib/ExtUtils/MM_Unix.pm
+++ b/lib/ExtUtils/MM_Unix.pm
@@ -1074,6 +1074,14 @@ $(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(BOOTSTRAP) $(INST_ARCHAUTODIR)/.exists
$ldrun = qq{-rpath "$self->{LD_RUN_PATH}"}
if ($^O eq 'irix' && $self->{LD_RUN_PATH});
+ # For example in AIX the shared objects/libraries from previous builds
+ # linger quite a while in the shared dynalinker cache even when nobody
+ # is using them. This is painful if one for instance tries to restart
+ # a failed build because the link command will fail unnecessarily 'cos
+ # the shared object/library is 'busy'.
+ push(@m,' $(RM_F) $@
+');
+
push(@m,' LD_RUN_PATH="$(LD_RUN_PATH)" $(LD) -o $@ '.$ldrun.' $(LDDLFLAGS) '.$ldfrom.
' $(OTHERLDFLAGS) $(MYEXTLIB) $(PERL_ARCHIVE) $(LDLOADLIBS) $(EXPORT_LIST)');
push @m, '