PPC assembly pack: improve AIX support (enable vpaes-ppc).
authorAndy Polyakov <appro@openssl.org>
Wed, 18 Dec 2013 20:19:08 +0000 (21:19 +0100)
committerAndy Polyakov <appro@openssl.org>
Wed, 18 Dec 2013 20:19:08 +0000 (21:19 +0100)
Configure
TABLE
crypto/perlasm/ppc-xlate.pl

index e7d450e..4ae9199 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -476,12 +476,12 @@ my %table=(
 
 #### IBM's AIX.
 "aix3-cc",  "cc:-O -DB_ENDIAN -qmaxmem=16384::(unknown):AIX::BN_LLONG RC4_CHAR:::",
-"aix-gcc",  "gcc:-O -DB_ENDIAN::-pthread:AIX::BN_LLONG RC4_CHAR:".eval{my $asm=$ppc32_asm;$asm=~s/vpaes\-ppc\.o//;$asm}.":aix32:dlfcn:aix-shared::-shared -Wl,-G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X32",
-"aix64-gcc","gcc:-maix64 -O -DB_ENDIAN::-pthread:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR:".eval{my $asm=$ppc64_asm;$asm=~s/vpaes\-ppc\.o//;$asm}.":aix64:dlfcn:aix-shared::-maix64 -shared -Wl,-G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X64",
+"aix-gcc",  "gcc:-O -DB_ENDIAN::-pthread:AIX::BN_LLONG RC4_CHAR:$ppc32_asm:aix32:dlfcn:aix-shared::-shared -Wl,-G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X32",
+"aix64-gcc","gcc:-maix64 -O -DB_ENDIAN::-pthread:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR:$ppc64_asm:aix64:dlfcn:aix-shared::-maix64 -shared -Wl,-G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X64",
 # Below targets assume AIX 5. Idea is to effectively disregard $OBJECT_MODE
 # at build time. $OBJECT_MODE is respected at ./config stage!
-"aix-cc",   "cc:-q32 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded -D_THREAD_SAFE:AIX::BN_LLONG RC4_CHAR:".eval{my $asm=$ppc32_asm;$asm=~s/vpaes\-ppc\.o//;$asm}.":aix32:dlfcn:aix-shared::-q32 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32",
-"aix64-cc", "cc:-q64 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded -D_THREAD_SAFE:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR:".eval{my $asm=$ppc64_asm;$asm=~s/vpaes\-ppc\.o//;$asm}.":aix64:dlfcn:aix-shared::-q64 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 64",
+"aix-cc",   "cc:-q32 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded -D_THREAD_SAFE:AIX::BN_LLONG RC4_CHAR:$ppc32_asm:aix32:dlfcn:aix-shared::-q32 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32",
+"aix64-cc", "cc:-q64 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded -D_THREAD_SAFE:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR:$ppc64_asm:aix64:dlfcn:aix-shared::-q64 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 64",
 
 #
 # Cray T90 and similar (SDSC)
diff --git a/TABLE b/TABLE
index 3cae42b..b64b753 100644 (file)
--- a/TABLE
+++ b/TABLE
@@ -902,7 +902,7 @@ $bn_ops       = BN_LLONG RC4_CHAR
 $cpuid_obj    = ppccpuid.o ppccap.o
 $bn_obj       = bn-ppc.o ppc-mont.o ppc64-mont.o
 $des_obj      = 
-$aes_obj      = aes_core.o aes_cbc.o aes-ppc.o
+$aes_obj      = aes_core.o aes_cbc.o aes-ppc.o vpaes-ppc.o
 $bf_obj       = 
 $md5_obj      = 
 $sha1_obj     = sha1-ppc.o sha256-ppc.o sha512-ppc.o
@@ -935,7 +935,7 @@ $bn_ops       = BN_LLONG RC4_CHAR
 $cpuid_obj    = ppccpuid.o ppccap.o
 $bn_obj       = bn-ppc.o ppc-mont.o ppc64-mont.o
 $des_obj      = 
-$aes_obj      = aes_core.o aes_cbc.o aes-ppc.o
+$aes_obj      = aes_core.o aes_cbc.o aes-ppc.o vpaes-ppc.o
 $bf_obj       = 
 $md5_obj      = 
 $sha1_obj     = sha1-ppc.o sha256-ppc.o sha512-ppc.o
@@ -1001,7 +1001,7 @@ $bn_ops       = SIXTY_FOUR_BIT_LONG RC4_CHAR
 $cpuid_obj    = ppccpuid.o ppccap.o
 $bn_obj       = bn-ppc.o ppc-mont.o ppc64-mont.o
 $des_obj      = 
-$aes_obj      = aes_core.o aes_cbc.o aes-ppc.o
+$aes_obj      = aes_core.o aes_cbc.o aes-ppc.o vpaes-ppc.o
 $bf_obj       = 
 $md5_obj      = 
 $sha1_obj     = sha1-ppc.o sha256-ppc.o sha512-ppc.o
@@ -1034,7 +1034,7 @@ $bn_ops       = SIXTY_FOUR_BIT_LONG RC4_CHAR
 $cpuid_obj    = ppccpuid.o ppccap.o
 $bn_obj       = bn-ppc.o ppc-mont.o ppc64-mont.o
 $des_obj      = 
-$aes_obj      = aes_core.o aes_cbc.o aes-ppc.o
+$aes_obj      = aes_core.o aes_cbc.o aes-ppc.o vpaes-ppc.o
 $bf_obj       = 
 $md5_obj      = 
 $sha1_obj     = sha1-ppc.o sha256-ppc.o sha512-ppc.o
index 89f749f..a67eef5 100755 (executable)
@@ -50,7 +50,7 @@ my $globl = sub {
     $ret;
 };
 my $text = sub {
-    my $ret = ($flavour =~ /aix/) ? ".csect" : ".text";
+    my $ret = ($flavour =~ /aix/) ? ".csect\t.text[PR],7" : ".text";
     $ret = ".abiversion        2\n".$ret       if ($flavour =~ /linux.*64le/);
     $ret;
 };