aboutsummaryrefslogtreecommitdiff
path: root/Configurations/platform/AIX.pm
diff options
context:
space:
mode:
Diffstat (limited to 'Configurations/platform/AIX.pm')
-rw-r--r--Configurations/platform/AIX.pm22
1 files changed, 20 insertions, 2 deletions
diff --git a/Configurations/platform/AIX.pm b/Configurations/platform/AIX.pm
index c6c1437f962a..709242712de0 100644
--- a/Configurations/platform/AIX.pm
+++ b/Configurations/platform/AIX.pm
@@ -13,12 +13,16 @@ require platform::Unix;
use configdata;
sub dsoext { '.so' }
-sub shlibextsimple { '.a' }
+sub shlibextsimple { return '.so' if $target{shared_target} eq "aix-solib";
+ '.a'}
# In shared mode, the default static library names clashes with the final
# "simple" full shared library name, so we add '_a' to the basename of the
-# static libraries in that case.
+# static libraries in that case, unless in solib mode (using only .so
+# files for shared libraries, and not packaging them inside archives)
sub staticname {
+ return platform::Unix->staticname($_[1]) if $target{shared_target} eq "aix-solib";
+
# Non-installed libraries are *always* static, and their names remain
# the same, except for the mandatory extension
my $in_libname = platform::BASE->staticname($_[1]);
@@ -27,3 +31,17 @@ sub staticname {
return platform::BASE->staticname($_[1]) . ($disabled{shared} ? '' : '_a');
}
+
+# In solib mode, we do not install the simple symlink (we install the import
+# library). In regular mode, we install the symlink.
+sub sharedlib_simple {
+ return undef if $target{shared_target} eq "aix-solib";
+ return platform::Unix->sharedlib_simple($_[1], $_[0]->shlibextsimple());
+}
+
+# In solib mode, we install the import library. In regular mode, we have
+# no import library.
+sub sharedlib_import {
+ return platform::Unix->sharedlib_simple($_[1]) if $target{shared_target} eq "aix-solib";
+ return undef;
+}