Commit 646bf5a6a6 for openssl.org

commit 646bf5a6a602b267967059fd749167d9eb1d788e
Author: Tomas Mraz <tomas@openssl.foundation>
Date:   Fri Oct 23 16:28:22 2026 +0200

    Explicitly add relevant defines to libdefault.a

    Fixes https://github.com/openssl/openssl/issues/33096

    Reviewed-by: Richard Levitte <levitte@openssl.org>
    Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
    Reviewed-by: Mounir Idrassi <mounir.idrassi@idrix.fr>
    Merge-date: Mon Oct 26 19:09:02 2026
    Merged-from: https://github.com/openssl/openssl/pull/33359

diff --git a/crypto/camellia/build.info b/crypto/camellia/build.info
index f13cd8c958..7a559d8e30 100644
--- a/crypto/camellia/build.info
+++ b/crypto/camellia/build.info
@@ -16,6 +16,7 @@ ENDIF

 SOURCE[../../libcrypto]=cmll_ecb.c cmll_ofb.c cmll_cfb.c cmll_ctr.c $CMLLASM
 DEFINE[../../libcrypto]=$CMLLDEF
+DEFINE[../../providers/libdefault.a]=$CMLLDEF

 GENERATE[cmll-x86.S]=asm/cmll-x86.pl
 DEPEND[cmll-x86.S]=../perlasm/x86asm.pl
diff --git a/crypto/chacha/build.info b/crypto/chacha/build.info
index 41c22f7a98..4c93c5d0d6 100644
--- a/crypto/chacha/build.info
+++ b/crypto/chacha/build.info
@@ -39,6 +39,7 @@ ENDIF

 SOURCE[../../libcrypto]=$CHACHAASM
 DEFINE[../../libcrypto]=$CHACHADEF
+DEFINE[../../providers/libdefault.a]=$CHACHADEF

 GENERATE[chacha-x86.S]=asm/chacha-x86.pl
 GENERATE[chacha-x86_64.s]=asm/chacha-x86_64.pl
diff --git a/crypto/des/build.info b/crypto/des/build.info
index 5a13e4f9be..0fe2066fcc 100644
--- a/crypto/des/build.info
+++ b/crypto/des/build.info
@@ -28,6 +28,7 @@ IF[{- !$disabled{module} && !$disabled{shared} -}]
 ENDIF

 DEFINE[../../libcrypto]=$DESDEF
+DEFINE[../../providers/libdefault.a]=$DESDEF
 DEFINE[../../providers/libfips.a]=$DESDEF

 # When all deprecated symbols are removed, libcrypto doesn't export the
diff --git a/crypto/hmac/build.info b/crypto/hmac/build.info
index 90b43cf42b..b8471c6c5a 100644
--- a/crypto/hmac/build.info
+++ b/crypto/hmac/build.info
@@ -17,6 +17,7 @@ IF[{- !$disabled{asm} -}]
 ENDIF

 DEFINE[../../libcrypto]=$HMACDEF
+DEFINE[../../providers/libdefault.a]=$HMACDEF
 DEFINE[../../providers/libfips.a]=$HMACDEF

 SOURCE[../../libcrypto]=$COMMON $HMACASM
diff --git a/crypto/md5/build.info b/crypto/md5/build.info
index 9a73db3951..4ae2df9830 100644
--- a/crypto/md5/build.info
+++ b/crypto/md5/build.info
@@ -33,6 +33,7 @@ ENDIF
 # Implementations are now spread across several libraries, so the defines
 # need to be applied to all affected libraries and modules.
 DEFINE[../../libcrypto]=$MD5DEF
+DEFINE[../../providers/libdefault.a]=$MD5DEF
 DEFINE[../../providers/liblegacy.a]=$MD5DEF

 GENERATE[md5-586.S]=asm/md5-586.pl
diff --git a/crypto/ml_dsa/build.info b/crypto/ml_dsa/build.info
index c23cc9f60f..6e57d0e67a 100644
--- a/crypto/ml_dsa/build.info
+++ b/crypto/ml_dsa/build.info
@@ -42,4 +42,5 @@ ENDIF
 GENERATE[ml_dsa_ntt-x86_64.s]=asm/ml_dsa_ntt-x86_64.pl

 DEFINE[../../libcrypto]=$ML_DSA_DEF
+DEFINE[../../providers/libdefault.a]=$ML_DSA_DEF
 DEFINE[../../providers/libfips.a]=$ML_DSA_DEF
diff --git a/crypto/ml_kem/build.info b/crypto/ml_kem/build.info
index 4a8a4458ca..78c9804bda 100644
--- a/crypto/ml_kem/build.info
+++ b/crypto/ml_kem/build.info
@@ -37,6 +37,7 @@ ENDIF
 # Implementations are now spread across several libraries, so the defines
 # need to be applied to all affected libraries and modules.
 DEFINE[../../libcrypto]=$MLKEMDEF
+DEFINE[../../providers/libdefault.a]=$MLKEMDEF
 DEFINE[../../providers/libfips.a]=$MLKEMDEF

 GENERATE[ml_kem_avx2.s]=asm/ml_kem_avx2.pl
diff --git a/crypto/modes/build.info b/crypto/modes/build.info
index cd4e0330da..6fcd199429 100644
--- a/crypto/modes/build.info
+++ b/crypto/modes/build.info
@@ -68,6 +68,7 @@ SOURCE[../../providers/libfips.a]=$COMMON
 # Implementations are now spread across several libraries, so the defines
 # need to be applied to all affected libraries and modules.
 DEFINE[../../libcrypto]=$MODESDEF
+DEFINE[../../providers/libdefault.a]=$MODESDEF
 DEFINE[../../providers/libfips.a]=$MODESDEF


diff --git a/crypto/poly1305/build.info b/crypto/poly1305/build.info
index 5c35c8ecee..5cf114b577 100644
--- a/crypto/poly1305/build.info
+++ b/crypto/poly1305/build.info
@@ -34,6 +34,7 @@ SOURCE[../../libcrypto]=poly1305.c $POLY1305ASM
 # Implementations are now spread across several libraries, so the defines
 # need to be applied to all affected libraries and modules.
 DEFINE[../../libcrypto]=$POLY1305DEF
+DEFINE[../../providers/libdefault.a]=$POLY1305DEF

 GENERATE[poly1305-sparcv9.S]=asm/poly1305-sparcv9.pl
 INCLUDE[poly1305-sparcv9.o]=..
diff --git a/crypto/ripemd/build.info b/crypto/ripemd/build.info
index 17acec0bed..938a554e73 100644
--- a/crypto/ripemd/build.info
+++ b/crypto/ripemd/build.info
@@ -17,6 +17,7 @@ ENDIF

 SOURCE[../../libcrypto]=rmd_dgst.c rmd_one.c $RMD160ASM
 DEFINE[../../libcrypto]=$RMD160DEF
+DEFINE[../../providers/libdefault.a]=$RMD160DEF

 # When all deprecated symbols are removed, libcrypto doesn't export the
 # RIPEMD160 functions, so we must include them directly in liblegacy.a
diff --git a/crypto/sm3/build.info b/crypto/sm3/build.info
index e58916d317..5579014ea3 100644
--- a/crypto/sm3/build.info
+++ b/crypto/sm3/build.info
@@ -21,6 +21,7 @@ IF[{- !$disabled{sm3} -}]

   SOURCE[../../libcrypto]=sm3.c legacy_sm3.c $SM3ASM
   DEFINE[../../libcrypto]=$SM3DEF
+  DEFINE[../../providers/libdefault.a]=$SM3DEF

   GENERATE[sm3-armv8.S]=asm/sm3-armv8.pl
   INCLUDE[sm3-armv8.o]=..
diff --git a/crypto/sm4/build.info b/crypto/sm4/build.info
index 2f36b6b595..940a9d9e5f 100644
--- a/crypto/sm4/build.info
+++ b/crypto/sm4/build.info
@@ -24,7 +24,6 @@ SOURCE[../../libcrypto]= $SM4ASM sm4.c
 # Implementations are now spread across several libraries, so the defines
 # need to be applied to all affected libraries and modules.
 DEFINE[../../libcrypto]=$SM4DEF
-DEFINE[../../providers/libfips.a]=$SM4DEF
 DEFINE[../../providers/libdefault.a]=$SM4DEF
 # We only need to include the SM4DEF stuff in the legacy provider when it's a
 # separate module and it's dynamically linked with libcrypto.  Otherwise, it
diff --git a/providers/implementations/ciphers/build.info b/providers/implementations/ciphers/build.info
index 81a023d36e..52df01b048 100644
--- a/providers/implementations/ciphers/build.info
+++ b/providers/implementations/ciphers/build.info
@@ -129,7 +129,7 @@ SOURCE[$AES_GOAL]=\
         cipher_aes_cbc_hmac_sha256_etm_hw.c \
         cipher_aes_cbc_hmac_sha512_etm_hw.c \
         cipher_cts.c
-DEFINE[$AES_GOAL]=$AESXTSDEF
+DEFINE[$AES_GOAL]=$AESXTSDEF $GHASHDEF

 # Extra code to satisfy the FIPS and non-FIPS separation.
 # When the AES-xxx-XTS moves to legacy, cipher_aes_xts_fips.c can be removed.
diff --git a/ssl/record/build.info b/ssl/record/build.info
index 9703d169d6..d44c8420e9 100644
--- a/ssl/record/build.info
+++ b/ssl/record/build.info
@@ -1,6 +1,6 @@
 SUBDIRS=methods

-#Needed for the multiblock code in rec_layer_s3.c
+#Needed for the multiblock code in tls_multib.c
 IF[{- !$disabled{asm} -}]
   $AESDEF_x86=AES_ASM
   $AESDEF_x86_64=AES_ASM