aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmanuel Haupt <ehaupt@FreeBSD.org>2023-02-19 10:14:16 +0000
committerEmanuel Haupt <ehaupt@FreeBSD.org>2023-02-19 10:14:39 +0000
commit4cfb25743893e2abc3c9cda87e2e720f420c39f1 (patch)
treeac246e549d470ed6c146bc532557f77e47fc9ff6
parentfd4899a4cc955ec834e88f686491c93330eaa942 (diff)
downloadports-4cfb25743893e2abc3c9cda87e2e720f420c39f1.tar.gz
ports-4cfb25743893e2abc3c9cda87e2e720f420c39f1.zip
net-p2p/xmrig: Fix build with clang15 on i386
-rw-r--r--net-p2p/xmrig/Makefile2
-rw-r--r--net-p2p/xmrig/files/patch-src_crypto_cn_CryptoNight__x86.h11
2 files changed, 11 insertions, 2 deletions
diff --git a/net-p2p/xmrig/Makefile b/net-p2p/xmrig/Makefile
index 4867f6c7b049..330693d4674d 100644
--- a/net-p2p/xmrig/Makefile
+++ b/net-p2p/xmrig/Makefile
@@ -12,8 +12,6 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
BROKEN_powerpc64= fails to compile: g++9: error: unrecognized command line option '-maes'; did you mean '-mads'?
BROKEN_riscv64= fails to compile: /nxb-bin/usr/lib/clang/11.0.0/include/cpuid.h:11:2: error: this header is for x86 only
-# See: https://github.com/xmrig/xmrig/issues/3212
-BROKEN_FreeBSD_14_i386= fails to compile with llvm15 on i386
USES= cmake compiler:c++11-lang ssl
USE_GITHUB= yes
diff --git a/net-p2p/xmrig/files/patch-src_crypto_cn_CryptoNight__x86.h b/net-p2p/xmrig/files/patch-src_crypto_cn_CryptoNight__x86.h
new file mode 100644
index 000000000000..97b199971b98
--- /dev/null
+++ b/net-p2p/xmrig/files/patch-src_crypto_cn_CryptoNight__x86.h
@@ -0,0 +1,11 @@
+--- src/crypto/cn/CryptoNight_x86.h.orig 2023-02-02 04:51:11 UTC
++++ src/crypto/cn/CryptoNight_x86.h
+@@ -80,7 +80,7 @@ static inline void do_skein_hash(const uint8_t *input,
+ void (* const extra_hashes[4])(const uint8_t *, size_t, uint8_t *) = {do_blake_hash, do_groestl_hash, do_jh_hash, do_skein_hash};
+
+
+-#if defined(__i386__) || defined(_M_IX86)
++#if (defined(__i386__) || defined(_M_IX86)) && !(defined(__clang__) && defined(__clang_major__) && (__clang_major__ >= 15))
+ static inline int64_t _mm_cvtsi128_si64(__m128i a)
+ {
+ return ((uint64_t)(uint32_t)_mm_cvtsi128_si32(a) | ((uint64_t)(uint32_t)_mm_cvtsi128_si32(_mm_srli_si128(a, 4)) << 32));