summaryrefslogtreecommitdiffstats
path: root/Configurations/platform
diff options
context:
space:
mode:
Diffstat (limited to 'Configurations/platform')
-rw-r--r--Configurations/platform/Unix.pm18
1 files changed, 15 insertions, 3 deletions
diff --git a/Configurations/platform/Unix.pm b/Configurations/platform/Unix.pm
index c7d7d9eb80..8db0ed912e 100644
--- a/Configurations/platform/Unix.pm
+++ b/Configurations/platform/Unix.pm
@@ -63,9 +63,21 @@ sub sharedname_simple {
}
sub sharedlib_simple {
- return undef if $_[0]->shlibext() eq $_[0]->shlibextsimple();
- return platform::BASE::__concat($_[0]->sharedname_simple($_[1]),
- $_[0]->shlibextsimple());
+ # This function returns the simplified shared library name (no version
+ # or variant in the shared library file name) if the simple variants of
+ # the base name or the suffix differ from the full variants of the same.
+
+ # Note: if $_[1] isn't a shared library name, then $_[0]->sharedname()
+ # and $_[0]->sharedname_simple() will return undef. This needs being
+ # accounted for.
+ my $name = $_[0]->sharedname($_[1]);
+ my $simplename = $_[0]->sharedname_simple($_[1]);
+ my $ext = $_[0]->shlibext();
+ my $simpleext = $_[0]->shlibextsimple();
+
+ return undef unless defined $simplename && defined $name;
+ return undef if ($name eq $simplename && $ext eq $simpleext);
+ return platform::BASE::__concat($simplename, $simpleext);
}
sub sharedlib_import {