diff --git a/pkgs/development/libraries/openssl/3.5/openssl-aes-gcm-ppc-remove-localentry-directive.patch b/pkgs/development/libraries/openssl/3.5/openssl-aes-gcm-ppc-remove-localentry-directive.patch new file mode 100644 index 000000000000..43e6d333844d --- /dev/null +++ b/pkgs/development/libraries/openssl/3.5/openssl-aes-gcm-ppc-remove-localentry-directive.patch @@ -0,0 +1,65 @@ +From 5aaa7e5fdc59e88a13d2911cb86d814d4e2669da Mon Sep 17 00:00:00 2001 +From: Danny Tsen +Date: Wed, 28 Jan 2026 07:23:13 -0500 +Subject: [PATCH] aes-gcm-ppc.pl: Removed .localentry directive + +Otherwise there is mixing of ELFv1 ABI and ELFv2 ABI directives +and PPC64 big endian builds fail. + +Fixes #29815 + +Signed-off-by: Danny Tsen + +Reviewed-by: Paul Dale +Reviewed-by: Shane Lontis +Reviewed-by: Tomas Mraz +MergeDate: Tue Feb 3 08:39:50 2026 +(Merged from https://github.com/openssl/openssl/pull/29827) +--- + crypto/modes/asm/aes-gcm-ppc.pl | 5 ----- + 1 file changed, 5 deletions(-) + +diff --git a/crypto/modes/asm/aes-gcm-ppc.pl b/crypto/modes/asm/aes-gcm-ppc.pl +index 68918a9305a2b..fd5dcc22a6117 100644 +--- a/crypto/modes/asm/aes-gcm-ppc.pl ++++ b/crypto/modes/asm/aes-gcm-ppc.pl +@@ -409,7 +409,6 @@ + ################################################################################ + .align 4 + aes_gcm_crypt_1x: +-.localentry aes_gcm_crypt_1x,0 + + cmpdi 5, 16 + bge __More_1x +@@ -492,7 +491,6 @@ + ################################################################################ + .align 4 + __Process_partial: +-.localentry __Process_partial,0 + + # create partial mask + vspltisb 16, -1 +@@ -564,7 +562,6 @@ + .global ppc_aes_gcm_encrypt + .align 5 + ppc_aes_gcm_encrypt: +-.localentry ppc_aes_gcm_encrypt,0 + + SAVE_REGS + LOAD_HASH_TABLE +@@ -752,7 +749,6 @@ + .global ppc_aes_gcm_decrypt + .align 5 + ppc_aes_gcm_decrypt: +-.localentry ppc_aes_gcm_decrypt, 0 + + SAVE_REGS + LOAD_HASH_TABLE +@@ -1032,7 +1028,6 @@ + .size ppc_aes_gcm_decrypt,.-ppc_aes_gcm_decrypt + + aes_gcm_out: +-.localentry aes_gcm_out,0 + + mr 3, 11 # return count + diff --git a/pkgs/development/libraries/openssl/default.nix b/pkgs/development/libraries/openssl/default.nix index 4d6913e02494..541ba75ff1a6 100644 --- a/pkgs/development/libraries/openssl/default.nix +++ b/pkgs/development/libraries/openssl/default.nix @@ -482,6 +482,10 @@ in else ./3.5/use-etc-ssl-certs.patch ) + + # Don't cause ELF ABI mismatch on powerpc64 + # https://github.com/openssl/openssl/issues/29815 + ./3.5/openssl-aes-gcm-ppc-remove-localentry-directive.patch ] ++ lib.optionals stdenv.hostPlatform.isMinGW [ ./3.5/fix-mingw-linking.patch @@ -518,6 +522,10 @@ in else ./3.5/use-etc-ssl-certs.patch ) + + # Don't cause ELF ABI mismatch on powerpc64 + # https://github.com/openssl/openssl/issues/29815 + ./3.5/openssl-aes-gcm-ppc-remove-localentry-directive.patch ] ++ lib.optionals stdenv.hostPlatform.isMinGW [ # Fix from https://github.com/openssl/openssl/pull/29826