From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.haj.ipfire.org (localhost [IPv6:::1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 4frZJL5fcLz340V for ; Wed, 08 Apr 2026 20:23:14 +0000 (UTC) Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (secp384r1 raw public key) server-digest SHA384 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mail01.haj.ipfire.org", Issuer "R12" (not verified)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 4frZJH2kNLz2yBG for ; Wed, 08 Apr 2026 20:23:11 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mail01.ipfire.org (Postfix) with ESMTPSA id 4frZJF3BBVzQ5; Wed, 08 Apr 2026 20:23:09 +0000 (UTC) DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=ipfire.org; s=202003ed25519; t=1775679789; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=ZCIjza21ygJI6tN9eHNM863NKum+lVScIHc3BYq/K+8=; b=5j6ovBeNE6FuXaGdQtahWcsuGi4xxvTM+2UCbD/iZvBphK2yqMU3MdpZSjPbirWS60qRDt cLdSLa6ILaR8bqCQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ipfire.org; s=202003rsa; t=1775679789; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=ZCIjza21ygJI6tN9eHNM863NKum+lVScIHc3BYq/K+8=; b=fwzTC7ajwriqri+a4WLAU6KpTod5+6HB/GB/owqpwrdRMvjxnQmj0ccwTzPLDXs7f/Uzyj SZoQsphTtHvqZT9CypCK17EylMSwzalGMrC9qL1Ju+gpJQj+uw9aYdw44I+n59qight2cR 0sftV1Mt6xcSSKBaS+NoHmWgzDd1iUK1hUxOX5XHxa1uKmdTHgKfYjPqL6wPgpay4bILyx /eQPfufPp25jRT6l8DsJafGJXgCRzKY+awdHVmS0Cu/eE1I6VJ3EG+G0AgjWUfE7x33+co uCmUY/iY1On9gkCrvAQuuoL+t6+RZ1UBKah86sXDmS6PqY71boHLHlYTTmIqYQ== From: Adolf Belka To: development@lists.ipfire.org Cc: Adolf Belka Subject: [PATCH] libsodium: Add patch to enable 1.0.21 to build on aarch64 Date: Wed, 8 Apr 2026 22:23:07 +0200 Message-ID: <20260408202307.1963074-1-adolf.belka@ipfire.org> Precedence: list List-Id: List-Subscribe: , List-Unsubscribe: , List-Post: List-Help: Sender: Mail-Followup-To: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit - The update to 1.0.21 resulted in libsodium not building on aarch64. A fix has b been developed and will ultimately be available with the next release. This uses that patch fix to be applied to 1.0.21 - Build tested on aarch64 and was successfull. Signed-off-by: Adolf Belka --- lfs/libsodium | 1 + ..._fix_compilation_with_GCC_on_aarch64.patch | 33 +++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 src/patches/libsodium-1.0.21_fix_compilation_with_GCC_on_aarch64.patch diff --git a/lfs/libsodium b/lfs/libsodium index acd4a72dc..8f6605643 100644 --- a/lfs/libsodium +++ b/lfs/libsodium @@ -73,6 +73,7 @@ $(subst %,%_BLAKE2,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/libsodium-1.0.21_fix_compilation_with_GCC_on_aarch64.patch cd $(DIR_APP) && ./configure \ --prefix=/usr \ --disable-static diff --git a/src/patches/libsodium-1.0.21_fix_compilation_with_GCC_on_aarch64.patch b/src/patches/libsodium-1.0.21_fix_compilation_with_GCC_on_aarch64.patch new file mode 100644 index 000000000..1ffdbd088 --- /dev/null +++ b/src/patches/libsodium-1.0.21_fix_compilation_with_GCC_on_aarch64.patch @@ -0,0 +1,33 @@ +diff --git a/src/libsodium/crypto_ipcrypt/ipcrypt_armcrypto.c b/src/libsodium/crypto_ipcrypt/ipcrypt_armcrypto.c +index c5a27e92ec..bad4ce3898 100644 +--- a/src/libsodium/crypto_ipcrypt/ipcrypt_armcrypto.c ++++ b/src/libsodium/crypto_ipcrypt/ipcrypt_armcrypto.c +@@ -37,7 +37,7 @@ typedef uint64x2_t BlockVec; + # define XOR128_3(a, b, c) veorq_u64(veorq_u64((a), (b)), (c)) + # define SET64x2(a, b) vsetq_lane_u64((uint64_t) (a), vmovq_n_u64((uint64_t) (b)), 1) + # define BYTESHL128(a, b) \ +- vreinterpretq_u64_u8(vextq_s8(vdupq_n_s8(0), vreinterpretq_s8_u64(a), 16 - (b))) ++ vreinterpretq_u64_u8(vextq_u8(vdupq_n_u8(0), vreinterpretq_u8_u64(a), 16 - (b))) + + # define AES_XENCRYPT(block_vec, rkey) \ + vreinterpretq_u64_u8( \ +@@ -348,12 +348,12 @@ pfx_set_bit(uint8_t ip16[16], const unsigned int bit_index, const uint8_t bit_va + static void + pfx_shift_left(uint8_t ip16[16]) + { +- BlockVec v = LOAD128(ip16); +- const BlockVec shl = vshlq_n_u8(vreinterpretq_u8_u64(v), 1); +- const BlockVec msb = vshrq_n_u8(vreinterpretq_u8_u64(v), 7); +- const BlockVec zero = vdupq_n_u8(0); +- const BlockVec carries = vextq_u8(vreinterpretq_u8_u64(msb), zero, 1); +- v = vreinterpretq_u64_u8(vorrq_u8(shl, carries)); ++ BlockVec v = LOAD128(ip16); ++ const uint8x16_t shl = vshlq_n_u8(vreinterpretq_u8_u64(v), 1); ++ const uint8x16_t msb = vshrq_n_u8(vreinterpretq_u8_u64(v), 7); ++ const uint8x16_t zero = vdupq_n_u8(0); ++ const uint8x16_t carries = vextq_u8(msb, zero, 1); ++ v = vreinterpretq_u64_u8(vorrq_u8(shl, carries)); + STORE128(ip16, v); + } + + -- 2.53.0