On 2023/01/15 10:19, Stuart Henderson wrote: > On 2023/01/14 22:04, Mark Kettenis wrote: > > > Date: Sat, 14 Jan 2023 21:08:38 +0100 > > > From: Theo Buehler <t...@theobuehler.org> > > > > > > This moves constants from .text into .rodata. > > > > > > All tests pass, gnupg tests work, gpgme and gcr build. > > > > Right, and then the idiots did this: > > > > https://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgcrypt.git;a=commit;h=fd02e8e78470deb661269c429f3348f811c054c6 > > > > so future versions will need furher patching. At least they used a > > macro, so it is relatively easy to revert. > > I tried the newer branch before --no-execute-only went in, it doesn't > build as-is so needs further patching anyway. >
Since I still had my WIP of libgcrypt head lying around from when I tried that to see if it would help, I've updated it with the diff from https://marc.info/?l=gcrypt-devel&m=167380913210961 added. It's not important for ports yet (though presumably will be later) and I won't look at this more now, but I've included the diff below (I sighed at the getrandom call that I #ifdef'd out) and FWIW this is how build now fails on aarch64: (On amd64 it builds; most tests pass but "basic" / "basic-disable-all-hwf" fail with SIGFPE.) ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol _gcry_chacha20_aarch64_blocks4_data_rot8; recompile with -fPIC >>> defined in >>> /usr/ports/pobj/libgcrypt-20230106/libgcrypt-5e1a04f/cipher/.libs/libcipher.a(chacha20-aarch64.o) >>> referenced by chacha20-aarch64.S:211 >>> chacha20-aarch64.o:(_gcry_chacha20_aarch64_blocks4) in >>> archive >>> /usr/ports/pobj/libgcrypt-20230106/libgcrypt-5e1a04f/cipher/.libs/libcipher.a ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: _gcry_chacha20_aarch64_blocks4_data_rot8 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text relocations in the output >>> defined in >>> /usr/ports/pobj/libgcrypt-20230106/libgcrypt-5e1a04f/cipher/.libs/libcipher.a(chacha20-aarch64.o) >>> referenced by chacha20-aarch64.S:211 >>> chacha20-aarch64.o:(_gcry_chacha20_aarch64_blocks4) in >>> archive >>> /usr/ports/pobj/libgcrypt-20230106/libgcrypt-5e1a04f/cipher/.libs/libcipher.a ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol _gcry_chacha20_aarch64_blocks4_data_inc_counter; recompile with -fPIC >>> defined in >>> /usr/ports/pobj/libgcrypt-20230106/libgcrypt-5e1a04f/cipher/.libs/libcipher.a(chacha20-aarch64.o) >>> referenced by chacha20-aarch64.S:214 >>> chacha20-aarch64.o:(_gcry_chacha20_aarch64_blocks4) in >>> archive >>> /usr/ports/pobj/libgcrypt-20230106/libgcrypt-5e1a04f/cipher/.libs/libcipher.a ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: _gcry_chacha20_aarch64_blocks4_data_inc_counter in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text relocations in the output >>> defined in >>> /usr/ports/pobj/libgcrypt-20230106/libgcrypt-5e1a04f/cipher/.libs/libcipher.a(chacha20-aarch64.o) >>> referenced by chacha20-aarch64.S:214 >>> chacha20-aarch64.o:(_gcry_chacha20_aarch64_blocks4) in >>> archive >>> /usr/ports/pobj/libgcrypt-20230106/libgcrypt-5e1a04f/cipher/.libs/libcipher.a ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol _gcry_chacha20_aarch64_blocks4_data_rot8; recompile with -fPIC >>> defined in >>> /usr/ports/pobj/libgcrypt-20230106/libgcrypt-5e1a04f/cipher/.libs/libcipher.a(chacha20-aarch64.o) >>> referenced by chacha20-aarch64.S:388 >>> chacha20-aarch64.o:(_gcry_chacha20_poly1305_aarch64_blocks4) >>> in archive >>> /usr/ports/pobj/libgcrypt-20230106/libgcrypt-5e1a04f/cipher/.libs/libcipher.a ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: _gcry_chacha20_aarch64_blocks4_data_rot8 in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text relocations in the output >>> defined in >>> /usr/ports/pobj/libgcrypt-20230106/libgcrypt-5e1a04f/cipher/.libs/libcipher.a(chacha20-aarch64.o) >>> referenced by chacha20-aarch64.S:388 >>> chacha20-aarch64.o:(_gcry_chacha20_poly1305_aarch64_blocks4) >>> in archive >>> /usr/ports/pobj/libgcrypt-20230106/libgcrypt-5e1a04f/cipher/.libs/libcipher.a ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol _gcry_chacha20_aarch64_blocks4_data_inc_counter; recompile with -fPIC >>> defined in >>> /usr/ports/pobj/libgcrypt-20230106/libgcrypt-5e1a04f/cipher/.libs/libcipher.a(chacha20-aarch64.o) >>> referenced by chacha20-aarch64.S:391 >>> chacha20-aarch64.o:(_gcry_chacha20_poly1305_aarch64_blocks4) >>> in archive >>> /usr/ports/pobj/libgcrypt-20230106/libgcrypt-5e1a04f/cipher/.libs/libcipher.a ld: error: can't create dynamic relocation R_AARCH64_ADD_ABS_LO12_NC against symbol: _gcry_chacha20_aarch64_blocks4_data_inc_counter in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text relocations in the output >>> defined in >>> /usr/ports/pobj/libgcrypt-20230106/libgcrypt-5e1a04f/cipher/.libs/libcipher.a(chacha20-aarch64.o) >>> referenced by chacha20-aarch64.S:391 >>> chacha20-aarch64.o:(_gcry_chacha20_poly1305_aarch64_blocks4) >>> in archive >>> /usr/ports/pobj/libgcrypt-20230106/libgcrypt-5e1a04f/cipher/.libs/libcipher.a cc: error: linker command failed with exit code 1 (use -v to see invocation) Index: Makefile =================================================================== RCS file: /cvs/ports/security/libgcrypt/Makefile,v retrieving revision 1.82 diff -u -p -r1.82 Makefile --- Makefile 15 Jan 2023 09:35:41 -0000 1.82 +++ Makefile 16 Jan 2023 13:40:20 -0000 @@ -1,9 +1,13 @@ COMMENT= crypto library based on code used in GnuPG -DISTNAME= libgcrypt-1.10.1 -REVISION= 2 +DISTNAME= libgcrypt-20230106 CATEGORIES= security +C= 5e1a04f77933a8295df69d818e9effc076dc68cd +CS= ${C:C/^(.......)(.*)/\1/} +DISTFILES= libgcrypt-HEAD-5e1a04f.tar.gz{gitweb.cgi?p=libgcrypt.git\;a=snapshot\;h=$C\;sf=tgz} +WRKDIST= ${WRKDIR}/libgcrypt-${CS} + SHARED_LIBS += gcrypt 21.0 # 24.1 HOMEPAGE= https://www.gnupg.org/software/libgcrypt/index.html @@ -15,18 +19,26 @@ PERMIT_PACKAGE= Yes WANTLIB += c gpg-error iconv intl -MASTER_SITES= ${MASTER_SITE_GNUPG:=libgcrypt/} +#MASTER_SITES= ${MASTER_SITE_GNUPG:=libgcrypt/} +MASTER_SITES= https://git.gnupg.org/cgi-bin/ LIB_DEPENDS= security/libgpg-error -CONFIGURE_STYLE= gnu +CONFIGURE_STYLE= autoreconf +AUTORECONF= ./autogen.sh +AUTOCONF_VERSION= 2.71 +AUTOMAKE_VERSION= 1.16 + CONFIGURE_ARGS= --enable-static \ --disable-drng-support -.if ${MACHINE_ARCH} != aarch64 -USE_NOEXECONLY= Yes -.endif +#.if ${MACHINE_ARCH} != aarch64 +#USE_NOEXECONLY= Yes +#.endif DEBUG_PACKAGES= ${BUILD_PACKAGES} + +post-extract: + printf '@set UPDATED 28 March 2022\n@set UPDATED-MONTH March 2022\n@set EDITION 1.10.1\n@set VERSION 1.10.1\n' > ${WRKSRC}/doc/version.texi .include <bsd.port.mk> Index: distinfo =================================================================== RCS file: /cvs/ports/security/libgcrypt/distinfo,v retrieving revision 1.43 diff -u -p -r1.43 distinfo --- distinfo 29 Mar 2022 07:15:13 -0000 1.43 +++ distinfo 16 Jan 2023 13:40:20 -0000 @@ -1,2 +1,2 @@ -SHA256 (libgcrypt-1.10.1.tar.gz) = wDFZxmERfoD/2XoT0Uxe6ItImfi1eQFpPAmdKwQtwSQ= -SIZE (libgcrypt-1.10.1.tar.gz) = 4484715 +SHA256 (libgcrypt-HEAD-5e1a04f.tar.gz) = YkrchpoNEtOSmYj5jyoQK+6ERN0XoldwAiE3AzNmHeE= +SIZE (libgcrypt-HEAD-5e1a04f.tar.gz) = 4012633 Index: patches/patch-cipher_asm-common-aarch64_h =================================================================== RCS file: patches/patch-cipher_asm-common-aarch64_h diff -N patches/patch-cipher_asm-common-aarch64_h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-cipher_asm-common-aarch64_h 16 Jan 2023 13:40:20 -0000 @@ -0,0 +1,23 @@ +https://marc.info/?l=gcrypt-devel&m=167380913210961 + +Index: cipher/asm-common-aarch64.h +--- cipher/asm-common-aarch64.h.orig ++++ cipher/asm-common-aarch64.h +@@ -29,8 +29,15 @@ + # define ELF(...) /*_*/ + #endif + +-#define GET_LOCAL_POINTER(reg, label) \ +- adr reg, label; ++#ifdef __APPLE__ ++#define GET_DATA_POINTER(reg, name) \ ++ adrp reg, name@GOTPAGE ; \ ++ add reg, reg, name@GOTPAGEOFF ; ++#else ++#define GET_DATA_POINTER(reg, name) \ ++ adrp reg, name ; \ ++ add reg, reg, #:lo12:name ; ++#endif + + #ifdef HAVE_GCC_ASM_CFI_DIRECTIVES + /* CFI directives to emit DWARF stack unwinding information. */ Index: patches/patch-cipher_camellia-aarch64_S =================================================================== RCS file: /cvs/ports/security/libgcrypt/patches/patch-cipher_camellia-aarch64_S,v retrieving revision 1.3 diff -u -p -r1.3 patch-cipher_camellia-aarch64_S --- patches/patch-cipher_camellia-aarch64_S 15 Jan 2023 09:35:41 -0000 1.3 +++ patches/patch-cipher_camellia-aarch64_S 16 Jan 2023 13:40:20 -0000 @@ -1,6 +1,26 @@ +first 2 hunks, https://marc.info/?l=gcrypt-devel&m=167380913210961 + Index: cipher/camellia-aarch64.S --- cipher/camellia-aarch64.S.orig +++ cipher/camellia-aarch64.S +@@ -214,7 +214,7 @@ _gcry_camellia_arm_encrypt_block: + * w3: keybitlen + */ + +- GET_LOCAL_POINTER(RTAB1, _gcry_camellia_arm_tables); ++ GET_DATA_POINTER(RTAB1, _gcry_camellia_arm_tables); + mov RMASK, #(0xff<<4); /* byte mask */ + add RTAB2, RTAB1, #(1 * 4); + add RTAB3, RTAB1, #(2 * 4); +@@ -274,7 +274,7 @@ _gcry_camellia_arm_decrypt_block: + * w3: keybitlen + */ + +- GET_LOCAL_POINTER(RTAB1, _gcry_camellia_arm_tables); ++ adr RTAB1, _gcry_camellia_arm_tables; + mov RMASK, #(0xff<<4); /* byte mask */ + add RTAB2, RTAB1, #(1 * 4); + add RTAB3, RTAB1, #(2 * 4); @@ -313,6 +313,7 @@ _gcry_camellia_arm_decrypt_block: .ltorg ELF(.size _gcry_camellia_arm_decrypt_block,.-_gcry_camellia_arm_decrypt_block;) Index: patches/patch-cipher_chacha20-aarch64_S =================================================================== RCS file: /cvs/ports/security/libgcrypt/patches/patch-cipher_chacha20-aarch64_S,v retrieving revision 1.1 diff -u -p -r1.1 patch-cipher_chacha20-aarch64_S --- patches/patch-cipher_chacha20-aarch64_S 15 Jan 2023 09:35:41 -0000 1.1 +++ patches/patch-cipher_chacha20-aarch64_S 16 Jan 2023 13:40:20 -0000 @@ -1,3 +1,5 @@ +GET_LOCAL_POINTER -> GET_DATA_POINTER: https://marc.info/?l=gcrypt-devel&m=167380913210961 + Index: cipher/chacha20-aarch64.S --- cipher/chacha20-aarch64.S.orig +++ cipher/chacha20-aarch64.S @@ -10,12 +12,38 @@ Index: cipher/chacha20-aarch64.S #include "asm-poly1305-aarch64.h" -@@ -192,6 +192,8 @@ _gcry_chacha20_aarch64_blocks4_data_rot8: - .byte 7,4,5,6 +@@ -193,6 +193,8 @@ _gcry_chacha20_aarch64_blocks4_data_rot8: .byte 11,8,9,10 .byte 15,12,13,14 -+ -+.text ++.text ++ .align 3 .globl _gcry_chacha20_aarch64_blocks4 + ELF(.type _gcry_chacha20_aarch64_blocks4,%function;) +@@ -206,10 +208,10 @@ _gcry_chacha20_aarch64_blocks4: + */ + CFI_STARTPROC() + +- GET_LOCAL_POINTER(CTR, _gcry_chacha20_aarch64_blocks4_data_rot8); ++ GET_DATA_POINTER(CTR, _gcry_chacha20_aarch64_blocks4_data_rot8); + add INPUT_CTR, INPUT, #(12*4); + ld1 {ROT8.16b}, [CTR]; +- GET_LOCAL_POINTER(CTR, _gcry_chacha20_aarch64_blocks4_data_inc_counter); ++ GET_DATA_POINTER(CTR, _gcry_chacha20_aarch64_blocks4_data_inc_counter); + mov INPUT_POS, INPUT; + ld1 {VCTR.16b}, [CTR]; + +@@ -383,10 +385,10 @@ _gcry_chacha20_poly1305_aarch64_blocks4: + mov POLY_RSTATE, x4; + mov POLY_RSRC, x5; + +- GET_LOCAL_POINTER(CTR, _gcry_chacha20_aarch64_blocks4_data_rot8); ++ GET_DATA_POINTER(CTR, _gcry_chacha20_aarch64_blocks4_data_rot8); + add INPUT_CTR, INPUT, #(12*4); + ld1 {ROT8.16b}, [CTR]; +- GET_LOCAL_POINTER(CTR, _gcry_chacha20_aarch64_blocks4_data_inc_counter); ++ GET_DATA_POINTER(CTR, _gcry_chacha20_aarch64_blocks4_data_inc_counter); + mov INPUT_POS, INPUT; + ld1 {VCTR.16b}, [CTR]; + Index: patches/patch-cipher_cipher-gcm-armv8-aarch64-ce_S =================================================================== RCS file: /cvs/ports/security/libgcrypt/patches/patch-cipher_cipher-gcm-armv8-aarch64-ce_S,v retrieving revision 1.1 diff -u -p -r1.1 patch-cipher_cipher-gcm-armv8-aarch64-ce_S --- patches/patch-cipher_cipher-gcm-armv8-aarch64-ce_S 15 Jan 2023 09:35:41 -0000 1.1 +++ patches/patch-cipher_cipher-gcm-armv8-aarch64-ce_S 16 Jan 2023 13:40:20 -0000 @@ -1,3 +1,5 @@ +GET_LOCAL_POINTER -> GET_DATA_POINTER: https://marc.info/?l=gcrypt-devel&m=167380913210961 + Index: cipher/cipher-gcm-armv8-aarch64-ce.S --- cipher/cipher-gcm-armv8-aarch64-ce.S.orig +++ cipher/cipher-gcm-armv8-aarch64-ce.S @@ -10,12 +12,39 @@ Index: cipher/cipher-gcm-armv8-aarch64-c /* Constants */ -@@ -170,6 +170,8 @@ gcry_gcm_reduction_constant: - CFI_ADJUST_CFA_OFFSET(-16); \ - ldp d8, d9, [sp], #16; \ - CFI_ADJUST_CFA_OFFSET(-16); -+ -+.text +@@ -149,6 +149,8 @@ gcry_gcm_reduction_constant: + #define _(...) __VA_ARGS__ + #define __ _() ++.text ++ /* * unsigned int _gcry_ghash_armv8_ce_pmull (void *gcm_key, byte *result, + * const byte *buf, size_t nblocks, +@@ -169,7 +171,7 @@ _gcry_ghash_armv8_ce_pmull: + + cbz x3, .Ldo_nothing; + +- GET_LOCAL_POINTER(x5, .Lrconst) ++ GET_DATA_POINTER(x5, .Lrconst) + + eor vZZ.16b, vZZ.16b, vZZ.16b + ld1 {rhash.16b}, [x1] +@@ -368,7 +370,7 @@ _gcry_polyval_armv8_ce_pmull: + + cbz x3, .Lpolyval_do_nothing; + +- GET_LOCAL_POINTER(x5, .Lrconst) ++ GET_DATA_POINTER(x5, .Lrconst) + + eor vZZ.16b, vZZ.16b, vZZ.16b + ld1 {rhash.16b}, [x1] +@@ -589,7 +591,7 @@ _gcry_ghash_setup_armv8_ce_pmull: + */ + CFI_STARTPROC() + +- GET_LOCAL_POINTER(x2, .Lrconst) ++ GET_DATA_POINTER(x2, .Lrconst) + + eor vZZ.16b, vZZ.16b, vZZ.16b + Index: patches/patch-cipher_crc-armv8-aarch64-ce_S =================================================================== RCS file: /cvs/ports/security/libgcrypt/patches/patch-cipher_crc-armv8-aarch64-ce_S,v retrieving revision 1.1 diff -u -p -r1.1 patch-cipher_crc-armv8-aarch64-ce_S --- patches/patch-cipher_crc-armv8-aarch64-ce_S 15 Jan 2023 09:35:41 -0000 1.1 +++ patches/patch-cipher_crc-armv8-aarch64-ce_S 16 Jan 2023 13:40:20 -0000 @@ -1,3 +1,5 @@ +GET_LOCAL_POINTER -> GET_DATA_POINTER: https://marc.info/?l=gcrypt-devel&m=167380913210961 + Index: cipher/crc-armv8-aarch64-ce.S --- cipher/crc-armv8-aarch64-ce.S.orig +++ cipher/crc-armv8-aarch64-ce.S @@ -18,3 +20,21 @@ Index: cipher/crc-armv8-aarch64-ce.S /* * void _gcry_crc32r_armv8_ce_bulk (u32 *pcrc, const byte *inbuf, size_t inlen, +@@ -71,7 +72,7 @@ _gcry_crc32r_armv8_ce_bulk: + */ + CFI_STARTPROC() + +- GET_LOCAL_POINTER(x7, .Lcrc32_constants) ++ GET_DATA_POINTER(x7, .Lcrc32_constants) + add x9, x3, #consts_k(5 - 1) + cmp x2, #128 + +@@ -280,7 +281,7 @@ _gcry_crc32_armv8_ce_bulk: + */ + CFI_STARTPROC() + +- GET_LOCAL_POINTER(x7, .Lcrc32_constants) ++ GET_DATA_POINTER(x7, .Lcrc32_constants) + add x4, x7, #.Lcrc32_bswap_shuf - .Lcrc32_constants + cmp x2, #128 + ld1 {v7.16b}, [x4] Index: patches/patch-cipher_sha1-armv8-aarch64-ce_S =================================================================== RCS file: /cvs/ports/security/libgcrypt/patches/patch-cipher_sha1-armv8-aarch64-ce_S,v retrieving revision 1.1 diff -u -p -r1.1 patch-cipher_sha1-armv8-aarch64-ce_S --- patches/patch-cipher_sha1-armv8-aarch64-ce_S 15 Jan 2023 09:35:41 -0000 1.1 +++ patches/patch-cipher_sha1-armv8-aarch64-ce_S 16 Jan 2023 13:40:20 -0000 @@ -1,3 +1,5 @@ +GET_LOCAL_POINTER -> GET_DATA_POINTER: https://marc.info/?l=gcrypt-devel&m=167380913210961 + Index: cipher/sha1-armv8-aarch64-ce.S --- cipher/sha1-armv8-aarch64-ce.S.orig +++ cipher/sha1-armv8-aarch64-ce.S @@ -18,3 +20,12 @@ Index: cipher/sha1-armv8-aarch64-ce.S /* * unsigned int +@@ -109,7 +110,7 @@ _gcry_sha1_transform_armv8_ce: + + cbz x2, .Ldo_nothing; + +- GET_LOCAL_POINTER(x4, .LK_VEC); ++ GET_DATA_POINTER(x4, .LK_VEC); + + ld1 {vH0123.4s}, [x0] /* load h0,h1,h2,h3 */ + ld1 {vK1.4s-vK4.4s}, [x4] /* load K1,K2,K3,K4 */ Index: patches/patch-cipher_sha256-armv8-aarch64-ce_S =================================================================== RCS file: /cvs/ports/security/libgcrypt/patches/patch-cipher_sha256-armv8-aarch64-ce_S,v retrieving revision 1.1 diff -u -p -r1.1 patch-cipher_sha256-armv8-aarch64-ce_S --- patches/patch-cipher_sha256-armv8-aarch64-ce_S 15 Jan 2023 09:35:41 -0000 1.1 +++ patches/patch-cipher_sha256-armv8-aarch64-ce_S 16 Jan 2023 13:40:20 -0000 @@ -1,3 +1,5 @@ +GET_LOCAL_POINTER -> GET_DATA_POINTER: https://marc.info/?l=gcrypt-devel&m=167380913210961 + Index: cipher/sha256-armv8-aarch64-ce.S --- cipher/sha256-armv8-aarch64-ce.S.orig +++ cipher/sha256-armv8-aarch64-ce.S @@ -18,3 +20,12 @@ Index: cipher/sha256-armv8-aarch64-ce.S /* * unsigned int +@@ -119,7 +120,7 @@ _gcry_sha256_transform_armv8_ce: + + cbz x2, .Ldo_nothing; + +- GET_LOCAL_POINTER(x3, .LK); ++ GET_DATA_POINTER(x3, .LK); + mov x4, x3 + + ld1 {vH0123.4s-vH4567.4s}, [x0] /* load state */ Index: patches/patch-cipher_sm3-aarch64_S =================================================================== RCS file: /cvs/ports/security/libgcrypt/patches/patch-cipher_sm3-aarch64_S,v retrieving revision 1.1 diff -u -p -r1.1 patch-cipher_sm3-aarch64_S --- patches/patch-cipher_sm3-aarch64_S 15 Jan 2023 09:35:41 -0000 1.1 +++ patches/patch-cipher_sm3-aarch64_S 16 Jan 2023 13:40:20 -0000 @@ -1,3 +1,5 @@ +GET_LOCAL_POINTER -> GET_DATA_POINTER: https://marc.info/?l=gcrypt-devel&m=167380913210961 + Index: cipher/sm3-aarch64.S --- cipher/sm3-aarch64.S.orig +++ cipher/sm3-aarch64.S @@ -18,3 +20,12 @@ Index: cipher/sm3-aarch64.S /* * Transform nblks*64 bytes (nblks*16 32-bit words) at DATA. * +@@ -425,7 +426,7 @@ _gcry_sm3_transform_aarch64: + CFI_DEF_CFA_REGISTER(RFRAME); + + sub addr0, sp, #STACK_SIZE; +- GET_LOCAL_POINTER(RKPTR, .LKtable); ++ GET_DATA_POINTER(RKPTR, .LKtable); + and sp, addr0, #(~63); + + /* Preload first block. */ Index: patches/patch-cipher_sm3-armv8-aarch64-ce_S =================================================================== RCS file: patches/patch-cipher_sm3-armv8-aarch64-ce_S diff -N patches/patch-cipher_sm3-armv8-aarch64-ce_S --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-cipher_sm3-armv8-aarch64-ce_S 16 Jan 2023 13:40:20 -0000 @@ -0,0 +1,14 @@ +https://marc.info/?l=gcrypt-devel&m=167380913210961 + +Index: cipher/sm3-armv8-aarch64-ce.S +--- cipher/sm3-armv8-aarch64-ce.S.orig ++++ cipher/sm3-armv8-aarch64-ce.S +@@ -170,7 +170,7 @@ _gcry_sm3_transform_armv8_ce: + ext CTX2.16b, CTX2.16b, CTX2.16b, #8; + + .Lloop: +- GET_LOCAL_POINTER(x3, .Lsm3_Ktable); ++ GET_DATA_POINTER(x3, .Lsm3_Ktable); + ld1 {v0.16b-v3.16b}, [x1], #64; + sub x2, x2, #1; + Index: patches/patch-cipher_sm4-aarch64_S =================================================================== RCS file: patches/patch-cipher_sm4-aarch64_S diff -N patches/patch-cipher_sm4-aarch64_S --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-cipher_sm4-aarch64_S 16 Jan 2023 13:40:20 -0000 @@ -0,0 +1,14 @@ +https://marc.info/?l=gcrypt-devel&m=167380913210961 + +Index: cipher/sm4-aarch64.S +--- cipher/sm4-aarch64.S.orig ++++ cipher/sm4-aarch64.S +@@ -84,7 +84,7 @@ ELF(.size _gcry_sm4_aarch64_consts,.-_gcry_sm4_aarch64 + /* Helper macros. */ + + #define preload_sbox(ptr) \ +- GET_LOCAL_POINTER(ptr, .Lsm4_sbox); \ ++ GET_DATA_POINTER(ptr, .Lsm4_sbox); \ + ld1 {v16.16b-v19.16b}, [ptr], #64; \ + ld1 {v20.16b-v23.16b}, [ptr], #64; \ + ld1 {v24.16b-v27.16b}, [ptr], #64; \ Index: patches/patch-cipher_sm4-armv9-aarch64-sve-ce_S =================================================================== RCS file: patches/patch-cipher_sm4-armv9-aarch64-sve-ce_S diff -N patches/patch-cipher_sm4-armv9-aarch64-sve-ce_S --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-cipher_sm4-armv9-aarch64-sve-ce_S 16 Jan 2023 13:40:20 -0000 @@ -0,0 +1,23 @@ +https://marc.info/?l=gcrypt-devel&m=167380913210961 + +Index: cipher/sm4-armv9-aarch64-sve-ce.S +--- cipher/sm4-armv9-aarch64-sve-ce.S.orig ++++ cipher/sm4-armv9-aarch64-sve-ce.S +@@ -167,7 +167,7 @@ ELF(.size _gcry_sm4_armv9_svesm4_consts,.-_gcry_sm4_ar + /* Helper macros. */ + + #define PREPARE() \ +- GET_LOCAL_POINTER(x7, .Lbswap128_mask); \ ++ GET_DATA_POINTER(x7, .Lbswap128_mask); \ + ptrue p0.b, ALL; \ + rdvl x5, #1; \ + ld1b {RSWAP128.b}, p0/z, [x7]; \ +@@ -811,7 +811,7 @@ _gcry_sm4_armv9_sve_ce_ctr_enc: + PREPARE(); + + dup RZERO.d, #0; +- GET_LOCAL_POINTER(x6, .Lle128_inc); ++ GET_DATA_POINTER(x6, .Lle128_inc); + ld1b {RLE128_INC.b}, p0/z, [x6]; + + ldp x7, x8, [x3]; Index: patches/patch-mpi_longlong_h =================================================================== RCS file: /cvs/ports/security/libgcrypt/patches/patch-mpi_longlong_h,v retrieving revision 1.10 diff -u -p -r1.10 patch-mpi_longlong_h --- patches/patch-mpi_longlong_h 11 Mar 2022 19:53:30 -0000 1.10 +++ patches/patch-mpi_longlong_h 16 Jan 2023 13:40:20 -0000 @@ -1,8 +1,9 @@ Fix build on alpha. ---- mpi/longlong.h.orig Wed Jun 8 18:18:15 2016 -+++ mpi/longlong.h Wed Jun 15 23:15:28 2016 -@@ -174,6 +174,7 @@ MA 02111-1307, USA. */ +Index: mpi/longlong.h +--- mpi/longlong.h.orig ++++ mpi/longlong.h +@@ -184,6 +184,7 @@ MA 02111-1307, USA. */ (pl) = __m0 * __m1; \ } while (0) # define UMUL_TIME 46 @@ -10,7 +11,7 @@ Fix build on alpha. # ifndef LONGLONG_STANDALONE # define udiv_qrnnd(q, r, n1, n0, d) \ do { UDItype __r; \ -@@ -183,6 +184,7 @@ MA 02111-1307, USA. */ +@@ -193,6 +194,7 @@ MA 02111-1307, USA. */ extern UDItype __udiv_qrnnd (); # define UDIV_TIME 220 # endif /* !LONGLONG_STANDALONE */ Index: patches/patch-random_rndgetentropy_c =================================================================== RCS file: patches/patch-random_rndgetentropy_c diff -N patches/patch-random_rndgetentropy_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-random_rndgetentropy_c 16 Jan 2023 13:40:20 -0000 @@ -0,0 +1,21 @@ +don't use getrandom() + +Index: random/rndgetentropy.c +--- random/rndgetentropy.c.orig ++++ random/rndgetentropy.c +@@ -81,6 +81,7 @@ _gcry_rndgetentropy_gather_random (void (*add)(const v + do + { + _gcry_pre_syscall (); ++#if 0 + if (fips_mode ()) + { + /* DRBG chaining defined in SP 800-90A (rev 1) specify +@@ -98,6 +99,7 @@ _gcry_rndgetentropy_gather_random (void (*add)(const v + ret = getrandom (buffer, nbytes, GRND_RANDOM); + } + else ++#endif + { + nbytes = length < sizeof (buffer) ? length : sizeof (buffer); + ret = getentropy (buffer, nbytes); Index: patches/patch-src_hwf-arm_c =================================================================== RCS file: /cvs/ports/security/libgcrypt/patches/patch-src_hwf-arm_c,v retrieving revision 1.1 diff -u -p -r1.1 patch-src_hwf-arm_c --- patches/patch-src_hwf-arm_c 12 Apr 2022 21:04:06 -0000 1.1 +++ patches/patch-src_hwf-arm_c 16 Jan 2023 13:40:20 -0000 @@ -11,9 +11,9 @@ Index: src/hwf-arm.c +#include <machine/cpu.h> +#include <machine/armreg.h> #endif - - #include "g10lib.h" -@@ -62,7 +67,8 @@ static unsigned long getauxval(unsigned long type) + #if defined(__APPLE__) && defined(HAVE_SYS_SYSCTL_H) && \ + defined(HAVE_SYSCTLBYNAME) +@@ -66,7 +71,8 @@ static unsigned long getauxval(unsigned long type) #undef HAS_SYS_AT_HWCAP #if defined(__linux__) || \ @@ -23,7 +23,7 @@ Index: src/hwf-arm.c #define HAS_SYS_AT_HWCAP 1 struct feature_map_s { -@@ -196,6 +202,29 @@ get_hwcap(unsigned int *hwcap, unsigned int *hwcap2) +@@ -243,6 +249,29 @@ get_hwcap(unsigned int *hwcap, unsigned int *hwcap2) *hwcap2 = stored_hwcap2; return 0; }