2017-12-23 17:32:15 +01:00
|
|
|
################################################################################
|
|
|
|
#
|
|
|
|
# wolfssl
|
|
|
|
#
|
|
|
|
################################################################################
|
|
|
|
|
2019-12-22 11:18:07 +01:00
|
|
|
WOLFSSL_VERSION = 4.3.0-stable
|
2019-10-31 23:47:02 +01:00
|
|
|
WOLFSSL_SITE = $(call github,wolfSSL,wolfssl,v$(WOLFSSL_VERSION))
|
2018-10-30 11:23:00 +01:00
|
|
|
WOLFSSL_INSTALL_STAGING = YES
|
2017-12-23 17:32:15 +01:00
|
|
|
|
|
|
|
WOLFSSL_LICENSE = GPL-2.0
|
|
|
|
WOLFSSL_LICENSE_FILES = COPYING LICENSING
|
|
|
|
|
|
|
|
WOLFSSL_DEPENDENCIES = host-pkgconf
|
|
|
|
|
|
|
|
# wolfssl's source code is released without a configure
|
|
|
|
# script, so we need autoreconf
|
|
|
|
WOLFSSL_AUTORECONF = YES
|
|
|
|
|
|
|
|
ifeq ($(BR2_PACKAGE_WOLFSSL_ALL),y)
|
|
|
|
WOLFSSL_CONF_OPTS += --enable-all
|
|
|
|
else
|
|
|
|
WOLFSSL_CONF_OPTS += --disable-all
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifeq ($(BR2_PACKAGE_WOLFSSL_SSLV3),y)
|
|
|
|
WOLFSSL_CONF_OPTS += --enable-sslv3
|
|
|
|
else
|
|
|
|
WOLFSSL_CONF_OPTS += --disable-sslv3
|
|
|
|
endif
|
|
|
|
|
package/wolfssl: enable ARMv8 hardware acceleration
Enable hardware acceleration for ARMv8 targets.
When ARMv8 hardware acceleration is enabled on AArch64 without any
additional flags, the build fails with the following messages:
/tmp/cciv7Oei.s: Assembler messages:
/tmp/cciv7Oei.s:580: Error: invalid addressing mode at operand 2 -- `ld1 {v0.2d},[x0,256]'
/tmp/cciv7Oei.s:616: Error: invalid addressing mode at operand 2 -- `st1 {v0.2d},[x0,256]'
/tmp/cciv7Oei.s:629: Error: invalid addressing mode at operand 2 -- `ld1 {v0.2d},[x0,256]'
/tmp/cciv7Oei.s:669: Error: invalid addressing mode at operand 2 -- `st1 {v0.2d},[x0,256]'
/tmp/cciv7Oei.s:1211: Error: invalid addressing mode at operand 2 -- `ld1 {v16.2d},[x0,304]'
/tmp/cciv7Oei.s:1368: Error: invalid addressing mode at operand 2 -- `ld1 {v17.16b},[x19,304]'
/tmp/cciv7Oei.s:1554: Error: invalid addressing mode at operand 2 -- `ld1 {v16.2d},[x0,304]'
/tmp/cciv7Oei.s:1719: Error: invalid addressing mode at operand 2 -- `ld1 {v17.16b},[x19,304]'
/tmp/cciv7Oei.s:1870: Error: invalid addressing mode at operand 2 -- `ld1 {v16.2d},[x0,304]'
/tmp/cciv7Oei.s:2043: Error: invalid addressing mode at operand 2 -- `ld1 {v17.16b},[x19,304]'
make[3]: *** [Makefile:3801: wolfcrypt/src/port/arm/src_libwolfssl_la-armv8-aes.lo] Error 1
This is because of some inline assembly in parts of the AES structure
using the "m" constraint.
So lets use the flag -mstrict-align to prevent this error.
Signed-off-by: Sergio Prado <sergio.prado@e-labworks.com>
[Thomas: restrict the -mstrict-align workaround to AArch64, as ARMv8-A
can also be used in an AArch32 build, and in this case, gcc doesn't
support the -mstrict-align flag]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2018-11-25 10:20:27 +01:00
|
|
|
# enable ARMv8 hardware acceleration
|
|
|
|
ifeq ($(BR2_ARM_CPU_ARMV8A),y)
|
|
|
|
WOLFSSL_CONF_OPTS += --enable-armasm
|
|
|
|
# the flag -mstrict-align is needed to prevent build errors caused by
|
|
|
|
# some inline assembly in parts of the AES structure using the "m"
|
|
|
|
# constraint
|
|
|
|
ifeq ($(BR2_aarch64),y)
|
|
|
|
WOLFSSL_CONF_ENV += CPPFLAGS="$(TARGET_CPPFLAGS) -mstrict-align"
|
|
|
|
endif
|
|
|
|
else
|
2017-12-23 17:32:15 +01:00
|
|
|
WOLFSSL_CONF_OPTS += --disable-armasm
|
package/wolfssl: enable ARMv8 hardware acceleration
Enable hardware acceleration for ARMv8 targets.
When ARMv8 hardware acceleration is enabled on AArch64 without any
additional flags, the build fails with the following messages:
/tmp/cciv7Oei.s: Assembler messages:
/tmp/cciv7Oei.s:580: Error: invalid addressing mode at operand 2 -- `ld1 {v0.2d},[x0,256]'
/tmp/cciv7Oei.s:616: Error: invalid addressing mode at operand 2 -- `st1 {v0.2d},[x0,256]'
/tmp/cciv7Oei.s:629: Error: invalid addressing mode at operand 2 -- `ld1 {v0.2d},[x0,256]'
/tmp/cciv7Oei.s:669: Error: invalid addressing mode at operand 2 -- `st1 {v0.2d},[x0,256]'
/tmp/cciv7Oei.s:1211: Error: invalid addressing mode at operand 2 -- `ld1 {v16.2d},[x0,304]'
/tmp/cciv7Oei.s:1368: Error: invalid addressing mode at operand 2 -- `ld1 {v17.16b},[x19,304]'
/tmp/cciv7Oei.s:1554: Error: invalid addressing mode at operand 2 -- `ld1 {v16.2d},[x0,304]'
/tmp/cciv7Oei.s:1719: Error: invalid addressing mode at operand 2 -- `ld1 {v17.16b},[x19,304]'
/tmp/cciv7Oei.s:1870: Error: invalid addressing mode at operand 2 -- `ld1 {v16.2d},[x0,304]'
/tmp/cciv7Oei.s:2043: Error: invalid addressing mode at operand 2 -- `ld1 {v17.16b},[x19,304]'
make[3]: *** [Makefile:3801: wolfcrypt/src/port/arm/src_libwolfssl_la-armv8-aes.lo] Error 1
This is because of some inline assembly in parts of the AES structure
using the "m" constraint.
So lets use the flag -mstrict-align to prevent this error.
Signed-off-by: Sergio Prado <sergio.prado@e-labworks.com>
[Thomas: restrict the -mstrict-align workaround to AArch64, as ARMv8-A
can also be used in an AArch32 build, and in this case, gcc doesn't
support the -mstrict-align flag]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2018-11-25 10:20:27 +01:00
|
|
|
endif
|
2017-12-23 17:32:15 +01:00
|
|
|
|
|
|
|
$(eval $(autotools-package))
|