net-p2p/xmrig: Fix build with clang15 on i386

Upstream issue: https://github.com/xmrig/xmrig/issues/3212
This commit is contained in:
Emanuel Haupt 2023-02-19 11:14:16 +01:00
parent fd4899a4cc
commit 4cfb257438
2 changed files with 11 additions and 2 deletions

View file

@ -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

View file

@ -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));