aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTheo Buehler <tb@openbsd.org>2025-06-17 04:35:51 +0200
committerTheo Buehler <tb@openbsd.org>2025-06-26 05:37:35 +0200
commite05910b5037bb5e74b813e9cf700f16346964ec3 (patch)
tree3080a4fe31fb7e7259b468bce4009726764b54f3
parent41ddb5ccbf5ace59f71d8f973a44b5241558c785 (diff)
downloadportable-e05910b5037bb5e74b813e9cf700f16346964ec3.tar.gz
portable-e05910b5037bb5e74b813e9cf700f16346964ec3.tar.bz2
portable-e05910b5037bb5e74b813e9cf700f16346964ec3.zip
Only link aes_${arch}.c to asm builds
Don't mix C source with ASM source. Add the ASM support C code to CRYPTO_SRC or libcrypto_la_SOURCES as normal, but depending on the HOST_ASM* bits Change-Id: I6a6a69648fc7c2102c96813b70be0d255a345cd3
-rw-r--r--crypto/CMakeLists.txt14
-rw-r--r--crypto/Makefile.am2
-rw-r--r--crypto/Makefile.am.elf-x86_644
-rw-r--r--crypto/Makefile.am.macosx-x86_644
-rw-r--r--crypto/Makefile.am.masm-x86_642
-rw-r--r--crypto/Makefile.am.mingw64-x86_642
-rwxr-xr-xupdate.sh4
7 files changed, 24 insertions, 8 deletions
diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt
index f6fb7d3..277642f 100644
--- a/crypto/CMakeLists.txt
+++ b/crypto/CMakeLists.txt
@@ -16,6 +16,9 @@
16add_definitions(-DLIBRESSL_CRYPTO_INTERNAL) 16add_definitions(-DLIBRESSL_CRYPTO_INTERNAL)
17 17
18if(HOST_ASM_ELF_X86_64) 18if(HOST_ASM_ELF_X86_64)
19 set(CRYPTO_SRC ${CRYPTO_SRC} aes/aes_amd64.c)
20 set(CRYPTO_SRC ${CRYPTO_SRC} bn/arch/amd64/bn_arch.c)
21
19 set( 22 set(
20 ASM_X86_64_ELF_SRC 23 ASM_X86_64_ELF_SRC
21 aes/aes-elf-x86_64.S 24 aes/aes-elf-x86_64.S
@@ -37,7 +40,6 @@ if(HOST_ASM_ELF_X86_64)
37 bn/arch/amd64/bignum_sqr_8_16_alt.S 40 bn/arch/amd64/bignum_sqr_8_16_alt.S
38 bn/arch/amd64/bignum_sub.S 41 bn/arch/amd64/bignum_sub.S
39 bn/arch/amd64/word_clz.S 42 bn/arch/amd64/word_clz.S
40 bn/arch/amd64/bn_arch.c
41 ) 43 )
42 add_definitions(-DAES_ASM) 44 add_definitions(-DAES_ASM)
43 add_definitions(-DBSAES_ASM) 45 add_definitions(-DBSAES_ASM)
@@ -51,6 +53,9 @@ if(HOST_ASM_ELF_X86_64)
51endif() 53endif()
52 54
53if(HOST_ASM_MACOSX_X86_64) 55if(HOST_ASM_MACOSX_X86_64)
56 set(CRYPTO_SRC ${CRYPTO_SRC} aes/aes_amd64.c)
57 set(CRYPTO_SRC ${CRYPTO_SRC} bn/arch/amd64/bn_arch.c)
58
54 set( 59 set(
55 ASM_X86_64_MACOSX_SRC 60 ASM_X86_64_MACOSX_SRC
56 aes/aes-macosx-x86_64.S 61 aes/aes-macosx-x86_64.S
@@ -72,7 +77,6 @@ if(HOST_ASM_MACOSX_X86_64)
72 bn/arch/amd64/bignum_sqr_8_16_alt.S 77 bn/arch/amd64/bignum_sqr_8_16_alt.S
73 bn/arch/amd64/bignum_sub.S 78 bn/arch/amd64/bignum_sub.S
74 bn/arch/amd64/word_clz.S 79 bn/arch/amd64/word_clz.S
75 bn/arch/amd64/bn_arch.c
76 ) 80 )
77 add_definitions(-DAES_ASM) 81 add_definitions(-DAES_ASM)
78 add_definitions(-DBSAES_ASM) 82 add_definitions(-DBSAES_ASM)
@@ -87,6 +91,8 @@ if(HOST_ASM_MACOSX_X86_64)
87endif() 91endif()
88 92
89if(HOST_ASM_MASM_X86_64) 93if(HOST_ASM_MASM_X86_64)
94 set(CRYPTO_SRC ${CRYPTO_SRC} aes/aes_amd64.c)
95
90 set( 96 set(
91 ASM_X86_64_MASM_SRC 97 ASM_X86_64_MASM_SRC
92 aes/aes-masm-x86_64.S 98 aes/aes-masm-x86_64.S
@@ -111,6 +117,8 @@ if(HOST_ASM_MASM_X86_64)
111endif() 117endif()
112 118
113if(HOST_ASM_MINGW64_X86_64) 119if(HOST_ASM_MINGW64_X86_64)
120 set(CRYPTO_SRC ${CRYPTO_SRC} aes/aes_amd64.c)
121
114 set( 122 set(
115 ASM_X86_64_MINGW64_SRC 123 ASM_X86_64_MINGW64_SRC
116 aes/aes-mingw64-x86_64.S 124 aes/aes-mingw64-x86_64.S
@@ -147,10 +155,8 @@ if(HOST_AARCH64)
147 endif() 155 endif()
148elseif(HOST_X86_64) 156elseif(HOST_X86_64)
149 set(CRYPTO_SRC ${CRYPTO_SRC} arch/amd64/crypto_cpu_caps.c) 157 set(CRYPTO_SRC ${CRYPTO_SRC} arch/amd64/crypto_cpu_caps.c)
150 set(CRYPTO_SRC ${CRYPTO_SRC} aes/aes_amd64.c)
151elseif(HOST_I386) 158elseif(HOST_I386)
152 set(CRYPTO_SRC ${CRYPTO_SRC} arch/i386/crypto_cpu_caps.c) 159 set(CRYPTO_SRC ${CRYPTO_SRC} arch/i386/crypto_cpu_caps.c)
153 set(CRYPTO_SRC ${CRYPTO_SRC} aes/aes_i386.c)
154endif() 160endif()
155 161
156set( 162set(
diff --git a/crypto/Makefile.am b/crypto/Makefile.am
index 395d528..0e5a916 100644
--- a/crypto/Makefile.am
+++ b/crypto/Makefile.am
@@ -239,11 +239,9 @@ endif
239 239
240if HOST_X86_64 240if HOST_X86_64
241libcrypto_la_SOURCES += arch/amd64/crypto_cpu_caps.c 241libcrypto_la_SOURCES += arch/amd64/crypto_cpu_caps.c
242libcrypto_la_SOURCES += aes/aes_amd64.c
243endif 242endif
244if HOST_I386 243if HOST_I386
245libcrypto_la_SOURCES += arch/i386/crypto_cpu_caps.c 244libcrypto_la_SOURCES += arch/i386/crypto_cpu_caps.c
246libcrypto_la_SOURCES += aes/aes_i386.c
247endif 245endif
248 246
249libcrypto_la_SOURCES += crypto_err.c 247libcrypto_la_SOURCES += crypto_err.c
diff --git a/crypto/Makefile.am.elf-x86_64 b/crypto/Makefile.am.elf-x86_64
index c85ede8..9e4775e 100644
--- a/crypto/Makefile.am.elf-x86_64
+++ b/crypto/Makefile.am.elf-x86_64
@@ -18,11 +18,13 @@ ASM_X86_64_ELF += bn/arch/amd64/bignum_sqr_4_8_alt.S
18ASM_X86_64_ELF += bn/arch/amd64/bignum_sqr_8_16_alt.S 18ASM_X86_64_ELF += bn/arch/amd64/bignum_sqr_8_16_alt.S
19ASM_X86_64_ELF += bn/arch/amd64/bignum_sub.S 19ASM_X86_64_ELF += bn/arch/amd64/bignum_sub.S
20ASM_X86_64_ELF += bn/arch/amd64/word_clz.S 20ASM_X86_64_ELF += bn/arch/amd64/word_clz.S
21ASM_X86_64_ELF += bn/arch/amd64/bn_arch.c
22 21
23EXTRA_DIST += $(ASM_X86_64_ELF) 22EXTRA_DIST += $(ASM_X86_64_ELF)
24 23
25if HOST_ASM_ELF_X86_64 24if HOST_ASM_ELF_X86_64
25libcrypto_la_SOURCES += aes/aes_amd64.c
26libcrypto_la_SOURCES += bn/arch/amd64/bn_arch.c
27
26libcrypto_la_CPPFLAGS += -DAES_ASM 28libcrypto_la_CPPFLAGS += -DAES_ASM
27libcrypto_la_CPPFLAGS += -DBSAES_ASM 29libcrypto_la_CPPFLAGS += -DBSAES_ASM
28libcrypto_la_CPPFLAGS += -DVPAES_ASM 30libcrypto_la_CPPFLAGS += -DVPAES_ASM
diff --git a/crypto/Makefile.am.macosx-x86_64 b/crypto/Makefile.am.macosx-x86_64
index b8bc893..7a5ad58 100644
--- a/crypto/Makefile.am.macosx-x86_64
+++ b/crypto/Makefile.am.macosx-x86_64
@@ -18,11 +18,13 @@ ASM_X86_64_MACOSX += bn/arch/amd64/bignum_sqr_4_8_alt.S
18ASM_X86_64_MACOSX += bn/arch/amd64/bignum_sqr_8_16_alt.S 18ASM_X86_64_MACOSX += bn/arch/amd64/bignum_sqr_8_16_alt.S
19ASM_X86_64_MACOSX += bn/arch/amd64/bignum_sub.S 19ASM_X86_64_MACOSX += bn/arch/amd64/bignum_sub.S
20ASM_X86_64_MACOSX += bn/arch/amd64/word_clz.S 20ASM_X86_64_MACOSX += bn/arch/amd64/word_clz.S
21ASM_X86_64_MACOSX += bn/arch/amd64/bn_arch.c
22 21
23EXTRA_DIST += $(ASM_X86_64_MACOSX) 22EXTRA_DIST += $(ASM_X86_64_MACOSX)
24 23
25if HOST_ASM_MACOSX_X86_64 24if HOST_ASM_MACOSX_X86_64
25libcrypto_la_SOURCES += aes/aes_amd64.c
26libcrypto_la_SOURCES += bn/arch/amd64/bn_arch.c
27
26libcrypto_la_CPPFLAGS += -DAES_ASM 28libcrypto_la_CPPFLAGS += -DAES_ASM
27libcrypto_la_CPPFLAGS += -DBSAES_ASM 29libcrypto_la_CPPFLAGS += -DBSAES_ASM
28libcrypto_la_CPPFLAGS += -DVPAES_ASM 30libcrypto_la_CPPFLAGS += -DVPAES_ASM
diff --git a/crypto/Makefile.am.masm-x86_64 b/crypto/Makefile.am.masm-x86_64
index a9225be..ee46bc4 100644
--- a/crypto/Makefile.am.masm-x86_64
+++ b/crypto/Makefile.am.masm-x86_64
@@ -10,6 +10,8 @@ ASM_X86_64_MASM += rc4/rc4-masm-x86_64.S
10EXTRA_DIST += $(ASM_X86_64_MASM) 10EXTRA_DIST += $(ASM_X86_64_MASM)
11 11
12if HOST_ASM_MASM_X86_64 12if HOST_ASM_MASM_X86_64
13libcrypto_la_SOURCES += aes/aes_amd64.c
14
13libcrypto_la_CPPFLAGS += -DAES_ASM 15libcrypto_la_CPPFLAGS += -DAES_ASM
14libcrypto_la_CPPFLAGS += -DBSAES_ASM 16libcrypto_la_CPPFLAGS += -DBSAES_ASM
15libcrypto_la_CPPFLAGS += -DVPAES_ASM 17libcrypto_la_CPPFLAGS += -DVPAES_ASM
diff --git a/crypto/Makefile.am.mingw64-x86_64 b/crypto/Makefile.am.mingw64-x86_64
index 72b767f..3dafa86 100644
--- a/crypto/Makefile.am.mingw64-x86_64
+++ b/crypto/Makefile.am.mingw64-x86_64
@@ -10,6 +10,8 @@ ASM_X86_64_MINGW64 += rc4/rc4-mingw64-x86_64.S
10EXTRA_DIST += $(ASM_X86_64_MINGW64) 10EXTRA_DIST += $(ASM_X86_64_MINGW64)
11 11
12if HOST_ASM_MINGW64_X86_64 12if HOST_ASM_MINGW64_X86_64
13libcrypto_la_SOURCES += aes/aes_amd64.c
14
13libcrypto_la_CPPFLAGS += -Dendbr32=endbr64 15libcrypto_la_CPPFLAGS += -Dendbr32=endbr64
14libcrypto_la_CPPFLAGS += -DAES_ASM 16libcrypto_la_CPPFLAGS += -DAES_ASM
15libcrypto_la_CPPFLAGS += -DBSAES_ASM 17libcrypto_la_CPPFLAGS += -DBSAES_ASM
diff --git a/update.sh b/update.sh
index 98b5ce3..2aab899 100755
--- a/update.sh
+++ b/update.sh
@@ -179,6 +179,10 @@ for i in `awk '/SOURCES|HEADERS/ { print $3 }' crypto/Makefile.am` ; do
179 fi 179 fi
180done 180done
181 181
182for arch in amd64 i386; do
183 $CP $libcrypto_src/aes/aes_${arch}.c crypto/aes/
184done
185
182for i in $libcrypto_src/arch/*; do 186for i in $libcrypto_src/arch/*; do
183 arch=`basename $i` 187 arch=`basename $i`
184 mkdir -p include/arch/$arch 188 mkdir -p include/arch/$arch