git: c66ae0b4e658 - releng/14.0 - libcrypto: Refactor Makefile.asm so it can be run outside of buildenv

From: Ed Maste <emaste_at_FreeBSD.org>
Date: Wed, 25 Oct 2023 20:06:26 UTC
The branch releng/14.0 has been updated by emaste:

URL: https://cgit.FreeBSD.org/src/commit/?id=c66ae0b4e65809941ce2d2a1ad5c1c896a03ac93

commit c66ae0b4e65809941ce2d2a1ad5c1c896a03ac93
Author:     John Baldwin <jhb@FreeBSD.org>
AuthorDate: 2023-08-29 21:39:36 +0000
Commit:     Ed Maste <emaste@FreeBSD.org>
CommitDate: 2023-10-25 19:55:55 +0000

    libcrypto: Refactor Makefile.asm so it can be run outside of buildenv
    
    Currently Makefile.asm relies on the current buildenv to set CFLAGS
    for i386.  The current approach also leaves various temporary *.s
    files around in the current directory.  To make this a bit better:
    
    - Instead of using CFLAGS from buildenv for i386, define the actual
      flags the perl scripts need: -DOPENSSL_IA32_SSE2 to enable SSE2.
    
    - Change i386 to have the perl scripts write to /dev/stdout to avoid
      creating temporaries.  Previously i386 was generating the temporary
      files in the OpenSSL contrib src.
    
    - Cleanup temporary *.s files in the all target after generating the
      real *.S files for architectures which need them.
    
    - Remove a duplicate rule for aes-armv4.S.
    
    Reviewed by:    markj
    Differential Revision:  https://reviews.freebsd.org/D41589
    
    (cherry picked from commit c0fe6b9d7506d6ce6f9ec3688ee0cc5656a8707e)
    (cherry picked from commit 14dc723496c1b2244a2b2ce29f9fd754494f4eea)
    
    Approved by:    re (gjb)
---
 secure/lib/libcrypto/Makefile.asm | 27 ++++++++++++++-------------
 1 file changed, 14 insertions(+), 13 deletions(-)

diff --git a/secure/lib/libcrypto/Makefile.asm b/secure/lib/libcrypto/Makefile.asm
index 0ee8c17369e9..d3243e5b20b8 100644
--- a/secure/lib/libcrypto/Makefile.asm
+++ b/secure/lib/libcrypto/Makefile.asm
@@ -45,8 +45,9 @@ SRCS+=	keccak1600-armv8.pl sha1-armv8.pl sha512-armv8.pl
 ASM=	${SRCS:R:S/$/.S/} sha256-armv8.S
 
 all:	${ASM}
+	rm -f ${ASM:R:S/$/.s/}
 
-CLEANFILES=	${ASM} ${SRCS:R:S/$/.s/} sha256-armv8.s
+CLEANFILES=	${ASM}
 .SUFFIXES:	.pl
 
 sha256-armv8.S:	sha512-armv8.pl
@@ -125,8 +126,9 @@ SHA_TMP=	${SHA_ASM:S/$/.s/}
 ASM=	${SRCS:R:S/$/.S/} ${SHA_ASM:S/$/.S/}
 
 all:	${ASM}
+	rm -f ${SHA_TMP}
 
-CLEANFILES=	${ASM} ${SHA_ASM:S/$/.s/}
+CLEANFILES=	${ASM}
 .SUFFIXES:	.pl
 
 .pl.S:
@@ -179,17 +181,14 @@ SRCS+=	poly1305-armv4.pl
 # sha
 SRCS+=	keccak1600-armv4.pl sha1-armv4-large.pl sha256-armv4.pl sha512-armv4.pl
 
-ASM=	aes-armv4.S ${SRCS:R:S/$/.S/}
+ASM=	${SRCS:R:S/$/.S/}
 
 all:	${ASM}
+	rm -f ${ASM:R:S/$/.s/}	
 
-CLEANFILES=	${ASM} ${SRCS:R:S/$/.s/}
+CLEANFILES=	${ASM}
 .SUFFIXES:	.pl
 
-aes-armv4.S:	aes-armv4.pl
-	( echo '/* Do not modify. This file is auto-generated from ${.ALLSRC:T}. */' ;\
-	env CC=cc perl ${.ALLSRC} linux32 ) > ${.TARGET}
-
 .pl.S:
 	env CC=cc perl ${.IMPSRC} linux32 ${.TARGET:R:S/$/.s/}
 	( echo '/* Do not modify. This file is auto-generated from ${.IMPSRC:T}. */' ;\
@@ -217,6 +216,7 @@ aes-armv4.S:	aes-armv4.pl
 	${LCRYPTO_SRC}/engines/asm
 
 #PERLPATH=	-I${LCRYPTO_SRC}/crypto/des/asm -I${LCRYPTO_SRC}/crypto/perlasm
+CFLAGS=	-DOPENSSL_IA32_SSE2
 
 # cpuid
 SRCS=	x86cpuid.pl
@@ -276,17 +276,15 @@ ASM=	${SRCS:R:S/$/.S/}
 
 all:	${ASM}
 
-CLEANFILES=	${ASM} ${SRCS:R:S/$/.s/}
+CLEANFILES=	${ASM}
 .SUFFIXES:	.pl
 
 .pl.S:
 	( echo '/* Do not modify. This file is auto-generated from ${.IMPSRC:T}. */' ;\
 	echo '#ifdef PIC' ;\
-	env CC=cc perl ${PERLPATH} ${.IMPSRC} elf ${CFLAGS} -fpic -DPIC ${.IMPSRC:R:S/$/.s/} ;\
-	cat ${.IMPSRC:R:S/$/.s/} ;\
+	env CC=cc perl ${PERLPATH} ${.IMPSRC} elf ${CFLAGS} -fpic /dev/stdout ;\
 	echo '#else' ;\
-	env CC=cc perl ${PERLPATH} ${.IMPSRC} elf ${CFLAGS} ${.IMPSRC:R:S/$/.s/} ;\
-	cat ${.IMPSRC:R:S/$/.s/} ;\
+	env CC=cc perl ${PERLPATH} ${.IMPSRC} elf ${CFLAGS} /dev/stdout ;\
 	echo '#endif' ) > ${.TARGET}
 
 .elif defined(ASM_powerpc)
@@ -325,6 +323,7 @@ SRCS+=	poly1305-ppc.pl poly1305-ppcfp.pl
 ASM=	${SRCS:R:S/$/.S/} bn-ppc.S sha256-ppc.S sha256p8-ppc.S
 
 all:	${ASM}
+	rm -f ${ASM:R:S/$/.s/}
 
 CLEANFILES=	${ASM}
 .SUFFIXES:	.pl
@@ -392,6 +391,7 @@ SRCS+=	keccak1600-ppc64.pl
 ASM=	${SRCS:R:S/$/.S/} bn-ppc.S sha256-ppc.S sha256p8-ppc.S
 
 all:	${ASM}
+	rm -f ${ASM:R:S/$/.s/}
 
 CLEANFILES=	${ASM}
 .SUFFIXES:	.pl
@@ -459,6 +459,7 @@ SRCS+=	keccak1600-ppc64.pl
 ASM=	${SRCS:R:S/$/.S/} bn-ppc.S sha256-ppc.S sha256p8-ppc.S
 
 all:	${ASM}
+	rm -f ${ASM:R:S/$/.s/}
 
 CLEANFILES=	${ASM}
 .SUFFIXES:	.pl