From fb82cbfe3da846d61e1d4c6d14bf7f4111cccbb2 Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Mon, 4 Feb 2019 21:28:43 +0100 Subject: [PATCH] Rework build: add special cases for AIX When reworking the way library file names and extensions were formed, AIX was lost in the process. This restores the previous functionality. Fixes #8156 Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/8162) --- Configurations/10-main.conf | 3 +-- Configurations/platform/AIX.pm | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 Configurations/platform/AIX.pm 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'; +}