summaryrefslogtreecommitdiff
path: root/Configure
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2019-05-05 18:30:55 +0200
committerRichard Levitte <levitte@openssl.org>2019-12-11 18:31:33 +0100
commit098404128383ded87ba390dd74ecd9e2ffa6f530 (patch)
treec619dd708dce2777ce88f3e739bd03774be818ff /Configure
parent34ab13b7d8e3e723adb60be8142e38b7c9cd382a (diff)
downloadopenssl-new-098404128383ded87ba390dd74ecd9e2ffa6f530.tar.gz
Configure: use ELFv2 ABI on some ppc64 big endian systems
If _CALL_ELF is defined to be 2, it's an ELFv2 system. Conditionally switch to the v2 perlasm scheme. Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/8883)
Diffstat (limited to 'Configure')
-rwxr-xr-xConfigure10
1 files changed, 7 insertions, 3 deletions
diff --git a/Configure b/Configure
index 22082deb4c..e303d98deb 100755
--- a/Configure
+++ b/Configure
@@ -1394,14 +1394,18 @@ if ($target{sys_id} ne "")
push @{$config{openssl_sys_defines}}, "OPENSSL_SYS_$target{sys_id}";
}
-unless ($disabled{asm}) {
-}
-
my %predefined_C = compiler_predefined($config{CROSS_COMPILE}.$config{CC});
my %predefined_CXX = $config{CXX}
? compiler_predefined($config{CROSS_COMPILE}.$config{CXX})
: ();
+unless ($disabled{asm}) {
+ # big endian systems can use ELFv2 ABI
+ if ($target eq "linux-ppc64") {
+ $target{perlasm_scheme} = "linux64v2" if ($predefined_C{_CALL_ELF} == 2);
+ }
+}
+
# Check for makedepend capabilities.
if (!$disabled{makedepend}) {
if ($config{target} =~ /^(VC|vms)-/) {