via RT
2016-07-29 09:49:51 UTC
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
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
Greetings,
This message has been automatically generated in response to the
"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].
[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
...This message has been automatically generated in response to the
"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].
[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
Ticket here: http://rt.openssl.org/Ticket/Display.html?id=4632
Please log in as guest with password guest if prompted