Opened 2 months ago
Closed 2 months ago
#70787 closed defect (fixed)
libsodium @ 1.0.19 fails to build on Sequoia for aarch64- fix included
Reported by: | mthused | Owned by: | jmroot (Joshua Root) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.10.1 |
Keywords: | Cc: | ||
Port: | libsodium |
Description
Problem is in the source used by this port, but is actually fixed in the upstream version (same tagged rev of 1.0.19). Recommend updating port source from upstream if possible, otherwise apply the diff below.
Issue is caused by including 'arm_neon.h' after a '#pragma clang attribute push(...' statement in aead_aes256gcm_armcrypto.c. Fix is to move the include above the pragma as in this diff:
*** src/libsodium/crypto_aead/aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c 2023-09-13 06:46:16 --- /tmp/aead_aes256gcm_armcrypto_fix.c 2024-09-18 11:38:37 *************** *** 19,24 **** --- 19,26 ---- #define __vectorcall #endif + #include <arm_neon.h> + #ifdef __clang__ #pragma clang attribute push(__attribute__((target("neon,crypto,aes"))), apply_to = function) #elif defined(__GNUC__) *************** *** 32,38 **** #define __ARM_FEATURE_AES 1 #endif - #include <arm_neon.h> #define ABYTES crypto_aead_aes256gcm_ABYTES #define NPUBBYTES crypto_aead_aes256gcm_NPUBBYTES --- 34,39 ----
Error detail from build log:
:info:build libtool: compile: /usr/bin/clang -DPACKAGE_NAME=\"libsodium\" -DPACKAGE_TARNAME=\"libsodium\" -DPACKAGE_VERSION=\"1.0.19\" "-DPACKAGE_STRING=\"libsodium 1.0.19\"" -DPACKAGE_BUGREPORT=\"https://github.com/jedisct1/libsodium/issues\" -DPACKAGE_URL=\"https://libsodium.org\" -DPACKAGE=\"libsodium\" -DVERSION=\"1.0.19\" -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DHAVE_WCHAR_H=1 -DSTDC_HEADERS=1 -D_ALL_SOURCE=1 -D_DARWIN_C_SOURCE=1 -D_GNU_SOURCE=1 -D_HPUX_ALT_XOPEN_SOCKET_API=1 -D_NETBSD_SOURCE=1 -D_OPENBSD_SOURCE=1 -D_POSIX_PTHREAD_SEMANTICS=1 -D__STDC_WANT_IEC_60559_ATTRIBS_EXT__=1 -D__STDC_WANT_IEC_60559_BFP_EXT__=1 -D__STDC_WANT_IEC_60559_DFP_EXT__=1 -D__STDC_WANT_IEC_60559_FUNCS_EXT__=1 -D__STDC_WANT_IEC_60559_TYPES_EXT__=1 -D__STDC_WANT_LIB_EXT2__=1 -D__STDC_WANT_MATH_SPEC_FUNCS__=1 -D_TANDEM_SOURCE=1 -D__EXTENSIONS__=1 -DHAVE_PTHREAD_PRIO_INHERIT=1 -DHAVE_PTHREAD=1 -DHAVE_C_VARARRAYS=1 -DHAVE_CATCHABLE_SEGV=1 -DHAVE_CATCHABLE_ABRT=1 -DTLS=_Thread_local -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_ARMCRYPTO=1 -DHAVE_SYS_MMAN_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_RANDOM_H=1 -DHAVE_COMMONCRYPTO_COMMONRANDOM_H=1 -DHAVE_CET_H=1 -DNATIVE_LITTLE_ENDIAN=1 -DHAVE_INLINE_ASM=1 -DHAVE_TI_MODE=1 -DASM_HIDE_SYMBOL=.private_extern -DHAVE_WEAK_SYMBOLS=1 -DHAVE_ATOMIC_OPS=1 -DHAVE_C11_MEMORY_FENCES=1 -DHAVE_GCC_MEMORY_FENCES=1 -DHAVE_ALLOCA_H=1 -DHAVE_ALLOCA=1 -DHAVE_ARC4RANDOM=1 -DHAVE_ARC4RANDOM_BUF=1 -DHAVE_MMAP=1 -DHAVE_MLOCK=1 -DHAVE_MADVISE=1 -DHAVE_MPROTECT=1 -DHAVE_RAISE=1 -DHAVE_SYSCONF=1 -DHAVE_GETENTROPY=1 -DHAVE_GETPID=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_NANOSLEEP=1 -DHAVE_CLOCK_GETTIME=1 -DHAVE_MEMSET_S=1 -DCONFIGURED=1 -I. -I./include/sodium -I./include/sodium -I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX15.sdk -Os -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX15.sdk -arch arm64 -pthread -fvisibility=hidden -fPIC -fno-strict-aliasing -fno-strict-overflow -fstack-protector -Wno-deprecated-declarations -Wno-unknown-pragmas -ftls-model=local-dynamic -MT crypto_onetimeauth/poly1305/sse2/libsse2_la-poly1305_sse2.lo -MD -MP -MF crypto_onetimeauth/poly1305/sse2/.deps/libsse2_la-poly1305_sse2.Tpo -c crypto_onetimeauth/poly1305/sse2/poly1305_sse2.c -fPIE -o crypto_onetimeauth/poly1305/sse2/libsse2_la-poly1305_sse2.o >/dev/null 2>&1 :info:build In file included from crypto_aead/aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c:35: :info:build /Library/Developer/CommandLineTools/usr/lib/clang/16/include/arm_neon.h:62828:32: error: always_inline function 'vget_high_p64' requires target feature 'crypto', but would be inlined into function 'vmull_high_p64' that is compiled without support for 'crypto' :info:build 62828 | __ret = vmull_p64((poly64_t)(vget_high_p64(__p0)), (poly64_t)(vget_high_p64(__p1))); :info:build | ^ :info:build /Library/Developer/CommandLineTools/usr/lib/clang/16/include/arm_neon.h:62828:65: error: always_inline function 'vget_high_p64' requires target feature 'crypto', but would be inlined into function 'vmull_high_p64' that is compiled without support for 'crypto' :info:build 62828 | __ret = vmull_p64((poly64_t)(vget_high_p64(__p0)), (poly64_t)(vget_high_p64(__p1))); :info:build | ^
Change History (2)
comment:1 Changed 2 months ago by mthused
Summary: | libsodium @ 1.0.19 fails to build on Sequoia for aarch64 → libsodium @ 1.0.19 fails to build on Sequoia for aarch64- fix included |
---|
comment:2 Changed 2 months ago by jmroot (Joshua Root)
Owner: | set to jmroot |
---|---|
Resolution: | → fixed |
Status: | new → closed |
Note: See
TracTickets for help on using
tickets.
In d837855692b64d94a5c22a74ca0b164298555a7d/macports-ports (master):