[MacPorts] #70787: libsodium @ 1.0.19 fails to build on Sequoia for aarch64

MacPorts noreply at macports.org
Wed Sep 18 19:08:08 UTC 2024


#70787: libsodium @ 1.0.19 fails to build on Sequoia for aarch64
---------------------+-----------------------
 Reporter:  mthused  |      Owner:  (none)
     Type:  defect   |     Status:  new
 Priority:  Normal   |  Milestone:
Component:  ports    |    Version:  2.10.1
 Keywords:           |       Port:  libsodium
---------------------+-----------------------
 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        |
 ^

 }}}

-- 
Ticket URL: <https://trac.macports.org/ticket/70787>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list