diff options
-rw-r--r-- | Configurations/10-main.conf | 3 | ||||
-rw-r--r-- | Configurations/platform/AIX.pm | 27 |
2 files changed, 28 insertions, 2 deletions
diff --git a/Configurations/10-main.conf b/Configurations/10-main.conf index 859e3d9d85..1e49118486 100644 --- a/Configurations/10-main.conf +++ b/Configurations/10-main.conf @@ -1100,8 +1100,7 @@ my %targets = ( module_ldflags => "-Wl,-G,-bsymbolic,-bexpall", shared_ldflag => "-Wl,-G,-bsymbolic", shared_defflag => "-Wl,-bE:", - lib_extension => shared("_a.a"), - shared_extension_simple => shared(".a"), + perl_platform => 'AIX', }, "aix-gcc" => { inherit_from => [ "aix-common", asm("ppc32_asm") ], diff --git a/Configurations/platform/AIX.pm b/Configurations/platform/AIX.pm new file mode 100644 index 0000000000..f441c157de --- /dev/null +++ b/Configurations/platform/AIX.pm @@ -0,0 +1,27 @@ +package platform::AIX; + +use strict; +use warnings; +use Carp; + +use vars qw(@ISA); + +require platform::Unix; +@ISA = qw(platform::Unix); + +# Assume someone set @INC right before loading this module +use configdata; + +sub shlibextsimple { '.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. +sub staticname { + # Non-installed libraries are *always* static, and their names remain + # the same, except for the mandatory extension + my $in_libname = platform::BASE->staticname($_[1]); + return $in_libname if $unified_info{attributes}->{$_[1]}->{noinst}; + + return platform::BASE->staticname($_[1]) . '_a'; +} |