From d3273ef6c549d1bf74d18c9056218c1d8b98a2b9 Mon Sep 17 00:00:00 2001 From: Andy Polyakov Date: Mon, 11 Jun 2018 12:50:25 +0200 Subject: [PATCH] Configurations/10-main.conf: replace -bexpall with explicit list on AIX. [omit even -b:SRE, as it's implied by -G flag.] Reviewed-by: Rich Salz (Merged from https://github.com/openssl/openssl/pull/6453) --- Configurations/10-main.conf | 4 +++- build.info | 8 ++++++++ util/mkdef.pl | 16 +++++++++++----- 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/Configurations/10-main.conf b/Configurations/10-main.conf index 1d2ee64250..63862e7c20 100644 --- a/Configurations/10-main.conf +++ b/Configurations/10-main.conf @@ -1127,7 +1127,9 @@ my %targets = ( shared_target => "self", shared_extension => ".so.\$(SHLIB_VERSION_NUMBER)", bin_lflags => shared("-Wl,-bsvr4"), - shared_ldflag => "-Wl,-G,-bsymbolic,-bexpall,-bnolibpath,-bM:SRE", + module_ldflags => "-Wl,-G,-bsymbolic,-bexpall,-bnolibpath", + shared_ldflag => "-Wl,-G,-bsymbolic,-bnolibpath", + shared_defflag => "-Wl,-bE:", }, "aix-gcc" => { inherit_from => [ "aix-common", asm("ppc32_asm") ], diff --git a/build.info b/build.info index 13ca90d360..3dda4e89bf 100644 --- a/build.info +++ b/build.info @@ -33,6 +33,14 @@ IF[{- defined $target{shared_defflag} -}] SHARED_SOURCE[libcrypto]=libcrypto.def SHARED_SOURCE[libssl]=libssl.def + ELSIF[{- $config{target} =~ /^aix/ -}] + GENERATE[libcrypto.map]=util/mkdef.pl crypto aix + DEPEND[libcrypto.map]=util/libcrypto.num + GENERATE[libssl.map]=util/mkdef.pl ssl aix + DEPEND[libssl.map]=util/libssl.num + + SHARED_SOURCE[libcrypto]=libcrypto.map + SHARED_SOURCE[libssl]=libssl.map ELSE GENERATE[libcrypto.map]=util/mkdef.pl crypto linux DEPEND[libcrypto.map]=util/libcrypto.num diff --git a/util/mkdef.pl b/util/mkdef.pl index b7cf9b2852..327728eeda 100755 --- a/util/mkdef.pl +++ b/util/mkdef.pl @@ -126,6 +126,7 @@ my $W32=0; my $NT=0; my $UNIX=0; my $linux=0; +my $aix=0; # Set this to make typesafe STACK definitions appear in DEF my $safe_stack_def = 0; @@ -171,12 +172,15 @@ foreach (@ARGV, split(/ /, $config{options})) if($_ eq "NT") { $W32 = 1; $NT = 1; - } - if ($_ eq "linux") { + } elsif ($_ eq "linux") { $linux=1; $UNIX=1; + } elsif ($_ eq "aix") { + $aix=1; + $UNIX=1; + } elsif ($_ eq "VMS") { + $VMS=1; } - $VMS=1 if $_ eq "VMS"; if ($_ eq "zlib" || $_ eq "enable-zlib" || $_ eq "zlib-dynamic" || $_ eq "enable-zlib-dynamic") { $zlib = 1; @@ -204,11 +208,11 @@ if (!$libname) { } # If no platform is given, assume WIN32 -if ($W32 + $VMS + $linux == 0) { +if ($W32 + $VMS + $linux + $aix == 0) { $W32 = 1; } die "Please, only one platform at a time" - if ($W32 + $VMS + $linux > 1); + if ($W32 + $VMS + $linux + $aix > 1); if (!$do_ssl && !$do_crypto) { @@ -1237,6 +1241,8 @@ EOF $prevsymversion = $symversion; } print OUT " $s2;\n"; + } elsif ($aix) { + print OUT "$s2\n"; } elsif ($VMS) { while(++$prevnum < $n) { my $symline=" ,SPARE -\n ,SPARE -\n"; -- 2.34.1