diff mbox series

[meta-oe] minifi-cpp: Fix libsodium build on aarch64/clang

Message ID 20240327040511.2748702-1-raj.khem@gmail.com
State New
Headers show
Series [meta-oe] minifi-cpp: Fix libsodium build on aarch64/clang | expand

Commit Message

Khem Raj March 27, 2024, 4:05 a.m. UTC
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 .../files/0008-libsodium-aarch64_crypto.patch | 38 +++++++++++++++++++
 .../minifi-cpp/minifi-cpp_0.15.0.bb           |  1 +
 2 files changed, 39 insertions(+)
 create mode 100644 meta-oe/recipes-extended/minifi-cpp/files/0008-libsodium-aarch64_crypto.patch
diff mbox series

Patch

diff --git a/meta-oe/recipes-extended/minifi-cpp/files/0008-libsodium-aarch64_crypto.patch b/meta-oe/recipes-extended/minifi-cpp/files/0008-libsodium-aarch64_crypto.patch
new file mode 100644
index 0000000000..c2c51148f6
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/0008-libsodium-aarch64_crypto.patch
@@ -0,0 +1,38 @@ 
+Move target #pragma after arm_neon.h include
+
+Fix per android/ndk#1945
+
+If the pragma is done before the header include,
+when using clang compiler attribute may apply to the functions in arm_neon.h
+
+Upstream-Status: Submitted [https://github.com/jedisct1/libsodium/pull/1321]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/thirdparty/libsodium-stable/src/libsodium/crypto_aead/aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c
++++ b/thirdparty/libsodium-stable/src/libsodium/crypto_aead/aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c
+@@ -19,12 +19,6 @@
+ #define __vectorcall
+ #endif
+ 
+-#ifdef __clang__
+-#pragma clang attribute push(__attribute__((target("neon,crypto,aes"))), apply_to = function)
+-#elif defined(__GNUC__)
+-#pragma GCC target("+simd+crypto")
+-#endif
+-
+ #ifndef __ARM_FEATURE_CRYPTO
+ #define __ARM_FEATURE_CRYPTO 1
+ #endif
+@@ -34,6 +28,12 @@
+ 
+ #include <arm_neon.h>
+ 
++#ifdef __clang__
++#pragma clang attribute push(__attribute__((target("neon,crypto,aes"))), apply_to = function)
++#elif defined(__GNUC__)
++#pragma GCC target("+simd+crypto")
++#endif
++
+ #define ABYTES    crypto_aead_aes256gcm_ABYTES
+ #define NPUBBYTES crypto_aead_aes256gcm_NPUBBYTES
+ #define KEYBYTES  crypto_aead_aes256gcm_KEYBYTES
diff --git a/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.15.0.bb b/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.15.0.bb
index 0667fdaecf..beb247c254 100644
--- a/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.15.0.bb
+++ b/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.15.0.bb
@@ -26,6 +26,7 @@  SRC_URI = "git://github.com/apache/nifi-minifi-cpp.git;protocol=https;branch=mai
            file://0005-Pass-noline-flag-to-flex.patch \
            file://0006-OsUtils.h-add-missing-header-cstdint-for-int64_t.patch \
            file://0007-CMakeLists.txt-do-not-use-ccache.patch \
+           file://0008-libsodium-aarch64_crypto.patch \
            file://systemd-volatile.conf \
            file://sysvinit-volatile.conf \
           "