diff options
| author | Theo Buehler <tb@openbsd.org> | 2025-06-17 04:35:51 +0200 |
|---|---|---|
| committer | Theo Buehler <tb@openbsd.org> | 2025-06-26 05:37:35 +0200 |
| commit | e05910b5037bb5e74b813e9cf700f16346964ec3 (patch) | |
| tree | 3080a4fe31fb7e7259b468bce4009726764b54f3 | |
| parent | 41ddb5ccbf5ace59f71d8f973a44b5241558c785 (diff) | |
| download | portable-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.txt | 14 | ||||
| -rw-r--r-- | crypto/Makefile.am | 2 | ||||
| -rw-r--r-- | crypto/Makefile.am.elf-x86_64 | 4 | ||||
| -rw-r--r-- | crypto/Makefile.am.macosx-x86_64 | 4 | ||||
| -rw-r--r-- | crypto/Makefile.am.masm-x86_64 | 2 | ||||
| -rw-r--r-- | crypto/Makefile.am.mingw64-x86_64 | 2 | ||||
| -rwxr-xr-x | update.sh | 4 |
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 @@ | |||
| 16 | add_definitions(-DLIBRESSL_CRYPTO_INTERNAL) | 16 | add_definitions(-DLIBRESSL_CRYPTO_INTERNAL) |
| 17 | 17 | ||
| 18 | if(HOST_ASM_ELF_X86_64) | 18 | if(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) | |||
| 51 | endif() | 53 | endif() |
| 52 | 54 | ||
| 53 | if(HOST_ASM_MACOSX_X86_64) | 55 | if(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) | |||
| 87 | endif() | 91 | endif() |
| 88 | 92 | ||
| 89 | if(HOST_ASM_MASM_X86_64) | 93 | if(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) | |||
| 111 | endif() | 117 | endif() |
| 112 | 118 | ||
| 113 | if(HOST_ASM_MINGW64_X86_64) | 119 | if(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() |
| 148 | elseif(HOST_X86_64) | 156 | elseif(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) | ||
| 151 | elseif(HOST_I386) | 158 | elseif(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) | ||
| 154 | endif() | 160 | endif() |
| 155 | 161 | ||
| 156 | set( | 162 | set( |
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 | ||
| 240 | if HOST_X86_64 | 240 | if HOST_X86_64 |
| 241 | libcrypto_la_SOURCES += arch/amd64/crypto_cpu_caps.c | 241 | libcrypto_la_SOURCES += arch/amd64/crypto_cpu_caps.c |
| 242 | libcrypto_la_SOURCES += aes/aes_amd64.c | ||
| 243 | endif | 242 | endif |
| 244 | if HOST_I386 | 243 | if HOST_I386 |
| 245 | libcrypto_la_SOURCES += arch/i386/crypto_cpu_caps.c | 244 | libcrypto_la_SOURCES += arch/i386/crypto_cpu_caps.c |
| 246 | libcrypto_la_SOURCES += aes/aes_i386.c | ||
| 247 | endif | 245 | endif |
| 248 | 246 | ||
| 249 | libcrypto_la_SOURCES += crypto_err.c | 247 | libcrypto_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 | |||
| 18 | ASM_X86_64_ELF += bn/arch/amd64/bignum_sqr_8_16_alt.S | 18 | ASM_X86_64_ELF += bn/arch/amd64/bignum_sqr_8_16_alt.S |
| 19 | ASM_X86_64_ELF += bn/arch/amd64/bignum_sub.S | 19 | ASM_X86_64_ELF += bn/arch/amd64/bignum_sub.S |
| 20 | ASM_X86_64_ELF += bn/arch/amd64/word_clz.S | 20 | ASM_X86_64_ELF += bn/arch/amd64/word_clz.S |
| 21 | ASM_X86_64_ELF += bn/arch/amd64/bn_arch.c | ||
| 22 | 21 | ||
| 23 | EXTRA_DIST += $(ASM_X86_64_ELF) | 22 | EXTRA_DIST += $(ASM_X86_64_ELF) |
| 24 | 23 | ||
| 25 | if HOST_ASM_ELF_X86_64 | 24 | if HOST_ASM_ELF_X86_64 |
| 25 | libcrypto_la_SOURCES += aes/aes_amd64.c | ||
| 26 | libcrypto_la_SOURCES += bn/arch/amd64/bn_arch.c | ||
| 27 | |||
| 26 | libcrypto_la_CPPFLAGS += -DAES_ASM | 28 | libcrypto_la_CPPFLAGS += -DAES_ASM |
| 27 | libcrypto_la_CPPFLAGS += -DBSAES_ASM | 29 | libcrypto_la_CPPFLAGS += -DBSAES_ASM |
| 28 | libcrypto_la_CPPFLAGS += -DVPAES_ASM | 30 | libcrypto_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 | |||
| 18 | ASM_X86_64_MACOSX += bn/arch/amd64/bignum_sqr_8_16_alt.S | 18 | ASM_X86_64_MACOSX += bn/arch/amd64/bignum_sqr_8_16_alt.S |
| 19 | ASM_X86_64_MACOSX += bn/arch/amd64/bignum_sub.S | 19 | ASM_X86_64_MACOSX += bn/arch/amd64/bignum_sub.S |
| 20 | ASM_X86_64_MACOSX += bn/arch/amd64/word_clz.S | 20 | ASM_X86_64_MACOSX += bn/arch/amd64/word_clz.S |
| 21 | ASM_X86_64_MACOSX += bn/arch/amd64/bn_arch.c | ||
| 22 | 21 | ||
| 23 | EXTRA_DIST += $(ASM_X86_64_MACOSX) | 22 | EXTRA_DIST += $(ASM_X86_64_MACOSX) |
| 24 | 23 | ||
| 25 | if HOST_ASM_MACOSX_X86_64 | 24 | if HOST_ASM_MACOSX_X86_64 |
| 25 | libcrypto_la_SOURCES += aes/aes_amd64.c | ||
| 26 | libcrypto_la_SOURCES += bn/arch/amd64/bn_arch.c | ||
| 27 | |||
| 26 | libcrypto_la_CPPFLAGS += -DAES_ASM | 28 | libcrypto_la_CPPFLAGS += -DAES_ASM |
| 27 | libcrypto_la_CPPFLAGS += -DBSAES_ASM | 29 | libcrypto_la_CPPFLAGS += -DBSAES_ASM |
| 28 | libcrypto_la_CPPFLAGS += -DVPAES_ASM | 30 | libcrypto_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 | |||
| 10 | EXTRA_DIST += $(ASM_X86_64_MASM) | 10 | EXTRA_DIST += $(ASM_X86_64_MASM) |
| 11 | 11 | ||
| 12 | if HOST_ASM_MASM_X86_64 | 12 | if HOST_ASM_MASM_X86_64 |
| 13 | libcrypto_la_SOURCES += aes/aes_amd64.c | ||
| 14 | |||
| 13 | libcrypto_la_CPPFLAGS += -DAES_ASM | 15 | libcrypto_la_CPPFLAGS += -DAES_ASM |
| 14 | libcrypto_la_CPPFLAGS += -DBSAES_ASM | 16 | libcrypto_la_CPPFLAGS += -DBSAES_ASM |
| 15 | libcrypto_la_CPPFLAGS += -DVPAES_ASM | 17 | libcrypto_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 | |||
| 10 | EXTRA_DIST += $(ASM_X86_64_MINGW64) | 10 | EXTRA_DIST += $(ASM_X86_64_MINGW64) |
| 11 | 11 | ||
| 12 | if HOST_ASM_MINGW64_X86_64 | 12 | if HOST_ASM_MINGW64_X86_64 |
| 13 | libcrypto_la_SOURCES += aes/aes_amd64.c | ||
| 14 | |||
| 13 | libcrypto_la_CPPFLAGS += -Dendbr32=endbr64 | 15 | libcrypto_la_CPPFLAGS += -Dendbr32=endbr64 |
| 14 | libcrypto_la_CPPFLAGS += -DAES_ASM | 16 | libcrypto_la_CPPFLAGS += -DAES_ASM |
| 15 | libcrypto_la_CPPFLAGS += -DBSAES_ASM | 17 | libcrypto_la_CPPFLAGS += -DBSAES_ASM |
| @@ -179,6 +179,10 @@ for i in `awk '/SOURCES|HEADERS/ { print $3 }' crypto/Makefile.am` ; do | |||
| 179 | fi | 179 | fi |
| 180 | done | 180 | done |
| 181 | 181 | ||
| 182 | for arch in amd64 i386; do | ||
| 183 | $CP $libcrypto_src/aes/aes_${arch}.c crypto/aes/ | ||
| 184 | done | ||
| 185 | |||
| 182 | for i in $libcrypto_src/arch/*; do | 186 | for 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 |
