[openssl-dev] [openssl.org #4632] AutoReply: Configure does not honor ARMv8 and Aarch32 flags

noloader@gmail.com via RT rt at openssl.org
Fri Jul 29 09:49:51 UTC 2016


Attached is a patch that adds two Configure targets: linux-aarch32 and
linux-aarch32hf. It might make a good starting point for Aarch32
support.

The patch enables CRC and Crypto extensions by default. It allows the
library and users with custom engines to use the instructions to
offload to hardware.

Users will have to add their preference for -mtune.

It tested OK under the RPI3, except for the EVP failure reported at
http://rt.openssl.org/Ticket/Display.html?id=4633&user=guest&pass=guest
.

**********

diff --git a/Configurations/10-main.conf b/Configurations/10-main.conf
index d7db9a8..656b169 100644
--- a/Configurations/10-main.conf
+++ b/Configurations/10-main.conf
@@ -677,6 +677,16 @@ sub vms_info {
         inherit_from     => [ "linux-generic32", asm("armv4_asm") ],
         perlasm_scheme   => "linux32",
     },
+    "linux-aarch32" => {
+        inherit_from     => [ "linux-generic32", asm("armv4_asm") ],
+        cflags           => add("-march=armv8-a+crc
-mfpu=crypto-neon-fp-armv8 -mfloat-abi=softfp"),
+        perlasm_scheme   => "linux32",
+    },
+    "linux-aarch32hf" => {
+        inherit_from     => [ "linux-generic32", asm("armv4_asm") ],
+        cflags           => add("-march=armv8-a+crc
-mfpu=crypto-neon-fp-armv8 -mfloat-abi=hard"),
+        perlasm_scheme   => "linux32",
+    },
     "linux-aarch64" => {
         inherit_from     => [ "linux-generic64", asm("aarch64_asm") ],
         perlasm_scheme   => "linux64",

On Fri, Jul 29, 2016 at 4:01 AM, The default queue via RT
<rt at openssl.org> wrote:
>
> Greetings,
>
> This message has been automatically generated in response to the
> creation of a trouble ticket regarding:
>         "Configure does not honor ARMv8 and Aarch32 flags",
> a summary of which appears below.
>
> There is no need to reply to this message right now.  Your ticket has been
> assigned an ID of [openssl.org #4632].
>
> Please include the string:
>
>          [openssl.org #4632]
>
> -------------------------------------------------------------------------
> Working from 1a627771634adba9d4f3b5cf7be74d6bab428a5f on a Raspberry
> Pi 3. Its ARMv8 with Broadcom SoC using A53 cores. It lacks Crypto
> extensions, but includes vmull and crc32 (vmull include arrangements
> other than u8). The gadget also runs Raspian, which is a 32-bit OS
> with hard floats.
>
> After Configure completes, the library's -march=armv7 takes precedence
> over the user's -march=armv8-a{+crc}.
>
> $ ./config -march=armv8-a+crc -mtune=cortex-a53
> -mfpu=crypto-neon-fp-armv8 -mfloat-abi=hard
> Operating system: armv7l-whatever-linux2
> Configuring for linux-armv4
> Configuring OpenSSL version 1.1.0-pre6-dev (0x0x10100006L)
>     no-asan         [default]  OPENSSL_NO_ASAN (skip dir)
>     no-crypto-mdebug [default]  OPENSSL_NO_CRYPTO_MDEBUG (skip dir)
>     no-crypto-mdebug-backtrace [default]
> OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE (skip dir)
>     no-ec_nistp_64_gcc_128 [default]  OPENSSL_NO_EC_NISTP_64_GCC_128 (skip dir)
>     no-egd          [default]  OPENSSL_NO_EGD (skip dir)
>     no-fuzz-afl     [default]  OPENSSL_NO_FUZZ_AFL (skip dir)
>     no-fuzz-libfuzzer [default]  OPENSSL_NO_FUZZ_LIBFUZZER (skip dir)
>     no-heartbeats   [default]  OPENSSL_NO_HEARTBEATS (skip dir)
>     no-md2          [default]  OPENSSL_NO_MD2 (skip dir)
>     no-msan         [default]  OPENSSL_NO_MSAN (skip dir)
>     no-rc5          [default]  OPENSSL_NO_RC5 (skip dir)
>     no-sctp         [default]  OPENSSL_NO_SCTP (skip dir)
>     no-ssl-trace    [default]  OPENSSL_NO_SSL_TRACE (skip dir)
>     no-ssl3         [default]  OPENSSL_NO_SSL3 (skip dir)
>     no-ssl3-method  [default]  OPENSSL_NO_SSL3_METHOD (skip dir)
>     no-ubsan        [default]  OPENSSL_NO_UBSAN (skip dir)
>     no-unit-test    [default]  OPENSSL_NO_UNIT_TEST (skip dir)
>     no-weak-ssl-ciphers [default]  OPENSSL_NO_WEAK_SSL_CIPHERS (skip dir)
>     no-zlib         [default]
>     no-zlib-dynamic [default]
> Configuring for linux-armv4
> CC            =gcc
> CFLAG         =-Wall -O3 -pthread  -march=armv8-a+crc
> -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8 -mfloat-abi=hard
> -march=armv7-a -Wa,--noexecstack
...

-- 
Ticket here: http://rt.openssl.org/Ticket/Display.html?id=4632
Please log in as guest with password guest if prompted

-------------- next part --------------
diff --git a/Configurations/10-main.conf b/Configurations/10-main.conf
index d7db9a8..656b169 100644
--- a/Configurations/10-main.conf
+++ b/Configurations/10-main.conf
@@ -677,6 +677,16 @@ sub vms_info {
         inherit_from     => [ "linux-generic32", asm("armv4_asm") ],
         perlasm_scheme   => "linux32",
     },
+    "linux-aarch32" => {
+        inherit_from     => [ "linux-generic32", asm("armv4_asm") ],
+		cflags           => add("-march=armv8-a+crc -mfpu=crypto-neon-fp-armv8 -mfloat-abi=softfp"),
+        perlasm_scheme   => "linux32",
+    },
+    "linux-aarch32hf" => {
+        inherit_from     => [ "linux-generic32", asm("armv4_asm") ],
+		cflags           => add("-march=armv8-a+crc -mfpu=crypto-neon-fp-armv8 -mfloat-abi=hard"),
+        perlasm_scheme   => "linux32",
+    },
     "linux-aarch64" => {
         inherit_from     => [ "linux-generic64", asm("aarch64_asm") ],
         perlasm_scheme   => "linux64",


More information about the openssl-dev mailing list