Change 13568 by jhi@alpha on 2001/12/09 21:49:06
Apply NetBSD patch-ag: shared/static linking,
but make the change less intrusive on non-NetBSD.
Affected files ...
.... //depot/perl/lib/ExtUtils/MM_Unix.pm#128 edit
Differences ...
==== //depot/perl/lib/ExtUtils/MM_Unix.pm#128 (text) ====
Index: perl/lib/ExtUtils/MM_Unix.pm
--- perl/lib/ExtUtils/MM_Unix.pm.~1~ Sun Dec 9 15:00:05 2001
+++ perl/lib/ExtUtils/MM_Unix.pm Sun Dec 9 15:00:05 2001
@@ -1088,6 +1088,12 @@
my $ldrun = qq{-rpath "$self->{LD_RUN_PATH}"}
if ($^O eq 'irix' && $self->{LD_RUN_PATH});
+ my $libs = $self->{LDLOADLIBS};
+
+ if ($^O eq 'netbsd') {
+ $libs = '$(LLIBPERL)';
+ }
+
# 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
@@ -1096,8 +1102,9 @@
push(@m,' $(RM_F) $@
');
- push(@m,' LD_RUN_PATH="$(LD_RUN_PATH)" $(LD) '.$ldrun.' $(LDDLFLAGS) '.$ldfrom.
- ' $(OTHERLDFLAGS) -o $@ $(MYEXTLIB) $(PERL_ARCHIVE) $(LDLOADLIBS)
$(PERL_ARCHIVE_AFTER) $(EXPORT_LIST)');
+ push(@m,
+' LD_RUN_PATH="$(LD_RUN_PATH)" $(LD) '.$ldrun.' $(LDDLFLAGS) '.$ldfrom.
+' $(OTHERLDFLAGS) -o $@ $(MYEXTLIB) $(PERL_ARCHIVE) '.$libs.' $(PERL_ARCHIVE_AFTER)
+$(EXPORT_LIST)');
push @m, '
$(CHMOD) $(PERM_RWX) $@
';
@@ -3207,6 +3214,22 @@
sub realclean {
my($self, %attribs) = @_;
my(@m);
+
+ # Set LLIBPERL to nothing on static perl platforms, and to the flags
+ # needed to link against the shared libperl library on shared perl
+ # platforms. We peek at lddlflags to see if we need -Wl,-R or -R
+ # to add paths to the run-time library search path.
+ #
+ my($llibperl) = '';
+ if ($Config{'useshrplib'}) {
+ if ($Config{'lddlflags'} =~ /-Wl,-R/) {
+ $llibperl = '-L$(PERL_INC) -Wl,-R$(INSTALLARCHLIB)/CORE -lperl';
+ } elsif ($Config{'lddlflags'} =~ /-R/) {
+ $llibperl = '-L$(PERL_INC) -R$(INSTALLARCHLIB)/CORE -lperl';
+ }
+ }
+ push(@m,'LLIBPERL = '.$llibperl."\n");
+
push(@m,'
# Delete temporary files (via clean) and also delete installed files
realclean purge :: clean
End of Patch.