Page Menu
Home
GnuPG
Search
Configure Global Search
Log In
Files
F35198420
0001-rijndael-vaes-avx512-add-PIC-PLT-for-AVX2-function-j.patch
jukivili (Jussi Kivilinna)
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Authored By
jukivili
Sun, Feb 1, 9:18 AM
2026-02-01 09:18:37 (UTC+1)
Size
3 KB
Subscribers
None
0001-rijndael-vaes-avx512-add-PIC-PLT-for-AVX2-function-j.patch
View Options
From 927850875c6254282697dbbed8aff65275bdeff5 Mon Sep 17 00:00:00 2001
From: Jussi Kivilinna <jussi.kivilinna@iki.fi>
Date: Sun, 1 Feb 2026 09:50:50 +0200
Subject: [PATCH] rijndael-vaes-avx512: add PIC @PLT for AVX2 function jumps
* cipher/asm-common-amd64.h (AT_PLT): New.
* cipher/rijndael-vaes-avx512-amd64.S: Use AT_PLT for jumps to
AVX2/VAES functions.
--
GnuPG-bug-id: 8071
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
---
cipher/asm-common-amd64.h | 6 ++++++
cipher/rijndael-vaes-avx512-amd64.S | 14 +++++++-------
2 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/cipher/asm-common-amd64.h b/cipher/asm-common-amd64.h
index 465ef62b..d0cc6426 100644
--- a/cipher/asm-common-amd64.h
+++ b/cipher/asm-common-amd64.h
@@ -53,6 +53,12 @@
# define ADD_RIP
#endif
+#ifdef __PIC__
+# define AT_PLT ELF(@PLT)
+#else
+# define AT_PLT
+#endif
+
#if defined(HAVE_COMPATIBLE_GCC_WIN64_PLATFORM_AS) || !defined(__PIC__)
# define GET_EXTERN_POINTER(name, reg) movabsq $name, reg
#else
diff --git a/cipher/rijndael-vaes-avx512-amd64.S b/cipher/rijndael-vaes-avx512-amd64.S
index b7dba5e3..f20998b0 100644
--- a/cipher/rijndael-vaes-avx512-amd64.S
+++ b/cipher/rijndael-vaes-avx512-amd64.S
@@ -277,7 +277,7 @@ _gcry_vaes_avx512_cbc_dec_amd64:
.Lcbc_dec_skip_avx512:
/* Handle trailing blocks with AVX2 implementation. */
cmpq $0, %r8;
- ja _gcry_vaes_avx2_cbc_dec_amd64;
+ ja _gcry_vaes_avx2_cbc_dec_amd64 AT_PLT;
ret_spec_stop
CFI_ENDPROC();
@@ -491,7 +491,7 @@ _gcry_vaes_avx512_cfb_dec_amd64:
.Lcfb_dec_skip_avx512:
/* Handle trailing blocks with AVX2 implementation. */
cmpq $0, %r8;
- ja _gcry_vaes_avx2_cfb_dec_amd64;
+ ja _gcry_vaes_avx2_cfb_dec_amd64 AT_PLT;
ret_spec_stop
CFI_ENDPROC();
@@ -813,7 +813,7 @@ _gcry_vaes_avx512_ctr_enc_amd64:
.Lctr_enc_skip_avx512:
/* Handle trailing blocks with AVX2 implementation. */
cmpq $0, %r8;
- ja _gcry_vaes_avx2_ctr_enc_amd64;
+ ja _gcry_vaes_avx2_ctr_enc_amd64 AT_PLT;
ret_spec_stop
CFI_ENDPROC();
@@ -1037,7 +1037,7 @@ _gcry_vaes_avx512_ctr32le_enc_amd64:
.Lctr32le_enc_skip_avx512:
/* Handle trailing blocks with AVX2 implementation. */
cmpq $0, %r8;
- ja _gcry_vaes_avx2_ctr32le_enc_amd64;
+ ja _gcry_vaes_avx2_ctr32le_enc_amd64 AT_PLT;
ret_spec_stop
CFI_ENDPROC();
@@ -1721,7 +1721,7 @@ _gcry_vaes_avx512_ocb_aligned_crypt_amd64:
.Locb_skip_avx512:
/* Handle trailing blocks with AVX2 implementation. */
cmpq $0, %r8;
- ja _gcry_vaes_avx2_ocb_crypt_amd64;
+ ja _gcry_vaes_avx2_ocb_crypt_amd64 AT_PLT;
xorl %eax, %eax;
ret_spec_stop
@@ -2084,7 +2084,7 @@ _gcry_vaes_avx512_xts_crypt_amd64:
.Lxts_crypt_skip_avx512:
/* Handle trailing blocks with AVX2 implementation. */
cmpq $0, %r8;
- ja _gcry_vaes_avx2_xts_crypt_amd64;
+ ja _gcry_vaes_avx2_xts_crypt_amd64 AT_PLT;
ret_spec_stop
CFI_ENDPROC();
@@ -2347,7 +2347,7 @@ _gcry_vaes_avx512_ecb_crypt_amd64:
.Lecb_crypt_skip_avx512:
/* Handle trailing blocks with AVX2 implementation. */
cmpq $0, %r8;
- ja _gcry_vaes_avx2_ecb_crypt_amd64;
+ ja _gcry_vaes_avx2_ecb_crypt_amd64 AT_PLT;
ret_spec_stop
CFI_ENDPROC();
--
2.51.0
File Metadata
Details
Attached
Mime Type
text/x-diff
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
1d/b3/a13d3d38ab5adb117ce931340381
Attached To
T8071: libgrcypt 1.12.0: SmartOS (Solaris) build problem
Event Timeline
Log In to Comment