@@ -222,49 +222,53 @@ component_build_aes_armce () {
222222 scripts/config.py set MBEDTLS_AES_USE_HARDWARE_ONLY
223223
224224 msg " MBEDTLS_AES_USE_HARDWARE_ONLY, clang, aarch64"
225- make -B library/../${BUILTIN_SRC_PATH} /aesce.o CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a+crypto"
225+ make -B library/../${BUILTIN_SRC_PATH} /aesce.o library/../${BUILTIN_SRC_PATH} /aesce.s CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a+crypto"
226+ msg " clang, test aarch64 crypto instructions built"
227+ grep -E ' aes[a-z]+\s*[qv]' ${BUILTIN_SRC_PATH} /aesce.s
226228
227229 msg " MBEDTLS_AES_USE_HARDWARE_ONLY, clang, arm"
228- make -B library/../${BUILTIN_SRC_PATH} /aesce.o CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm"
230+ make -B library/../${BUILTIN_SRC_PATH} /aesce.o library/../${BUILTIN_SRC_PATH} /aesce.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm"
231+ msg " clang, test A32 crypto instructions built"
232+ grep -E ' aes[0-9a-z]+.[0-9]\s*[qv]' ${BUILTIN_SRC_PATH} /aesce.s
229233
230234 msg " MBEDTLS_AES_USE_HARDWARE_ONLY, clang, thumb"
231- make -B library/../${BUILTIN_SRC_PATH} /aesce.o CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
235+ make -B library/../${BUILTIN_SRC_PATH} /aesce.o library/../${BUILTIN_SRC_PATH} /aesce.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
236+ msg " clang, test T32 crypto instructions built"
237+ grep -E ' aes[0-9a-z]+.[0-9]\s*[qv]' ${BUILTIN_SRC_PATH} /aesce.s
232238
233239 scripts/config.py unset MBEDTLS_AES_USE_HARDWARE_ONLY
234240
235- msg " no MBEDTLS_AES_USE_HARDWARE_ONLY, clang, aarch64"
236- make -B library/../${BUILTIN_SRC_PATH} /aesce.o CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a+crypto"
237-
238- msg " no MBEDTLS_AES_USE_HARDWARE_ONLY, clang, arm"
239- make -B library/../${BUILTIN_SRC_PATH} /aesce.o CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm"
240-
241- msg " no MBEDTLS_AES_USE_HARDWARE_ONLY, clang, thumb"
242- make -B library/../${BUILTIN_SRC_PATH} /aesce.o CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
241+ msg " MBEDTLS_AES_USE_both, clang, aarch64"
242+ make -B library/../${BUILTIN_SRC_PATH} /aesce.o library/../${BUILTIN_SRC_PATH} /aesce.s CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a+crypto"
243+ msg " clang, test aarch64 crypto instructions built"
244+ grep -E ' aes[a-z]+\s*[qv]' ${BUILTIN_SRC_PATH} /aesce.s
243245
244- # test for presence of AES instructions
245- scripts/config.py set MBEDTLS_AES_USE_HARDWARE_ONLY
246+ msg " MBEDTLS_AES_USE_both, clang, arm "
247+ make -B library/../ ${BUILTIN_SRC_PATH} /aesce.o library/../ ${BUILTIN_SRC_PATH} /aesce.s CC=clang CFLAGS= " --target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm "
246248 msg " clang, test A32 crypto instructions built"
247- make -B library/../${BUILTIN_SRC_PATH} /aesce.o CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm -S"
248- grep -E ' aes[0-9a-z]+.[0-9]\s*[qv]' ${BUILTIN_SRC_PATH} /aesce.o
249+ grep -E ' aes[0-9a-z]+.[0-9]\s*[qv]' ${BUILTIN_SRC_PATH} /aesce.s
250+
251+ msg " MBEDTLS_AES_USE_both, clang, thumb"
252+ make -B library/../${BUILTIN_SRC_PATH} /aesce.o library/../${BUILTIN_SRC_PATH} /aesce.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
249253 msg " clang, test T32 crypto instructions built"
250- make -B library/../${BUILTIN_SRC_PATH} /aesce.o CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb -S"
251- grep -E ' aes[0-9a-z]+.[0-9]\s*[qv]' ${BUILTIN_SRC_PATH} /aesce.o
252- msg " clang, test aarch64 crypto instructions built"
253- make -B library/../${BUILTIN_SRC_PATH} /aesce.o CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a -S"
254- grep -E ' aes[a-z]+\s*[qv]' ${BUILTIN_SRC_PATH} /aesce.o
254+ grep -E ' aes[0-9a-z]+.[0-9]\s*[qv]' ${BUILTIN_SRC_PATH} /aesce.s
255255
256- # test for absence of AES instructions
257- scripts/config.py unset MBEDTLS_AES_USE_HARDWARE_ONLY
258256 scripts/config.py unset MBEDTLS_AESCE_C
257+
258+ msg " no MBEDTLS_AESCE_C, clang, aarch64"
259+ make -B library/../${BUILTIN_SRC_PATH} /aesce.o library/../${BUILTIN_SRC_PATH} /aesce.s CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a"
260+ msg " clang, test aarch64 crypto instructions not built"
261+ not grep -E ' aes[a-z]+\s*[qv]' ${BUILTIN_SRC_PATH} /aesce.s
262+
263+ msg " no MBEDTLS_AESCE_C, clang, arm"
264+ make -B library/../${BUILTIN_SRC_PATH} /aesce.o library/../${BUILTIN_SRC_PATH} /aesce.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72 -marm"
259265 msg " clang, test A32 crypto instructions not built"
260- make -B library/../${BUILTIN_SRC_PATH} /aesce.o CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm -S"
261- not grep -E ' aes[0-9a-z]+.[0-9]\s*[qv]' ${BUILTIN_SRC_PATH} /aesce.o
266+ not grep -E ' aes[0-9a-z]+.[0-9]\s*[qv]' ${BUILTIN_SRC_PATH} /aesce.s
267+
268+ msg " no MBEDTLS_AESCE_C, clang, thumb"
269+ make -B library/../${BUILTIN_SRC_PATH} /aesce.o library/../${BUILTIN_SRC_PATH} /aesce.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32 -mthumb"
262270 msg " clang, test T32 crypto instructions not built"
263- make -B library/../${BUILTIN_SRC_PATH} /aesce.o CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb -S"
264- not grep -E ' aes[0-9a-z]+.[0-9]\s*[qv]' ${BUILTIN_SRC_PATH} /aesce.o
265- msg " clang, test aarch64 crypto instructions not built"
266- make -B library/../${BUILTIN_SRC_PATH} /aesce.o CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a -S"
267- not grep -E ' aes[a-z]+\s*[qv]' ${BUILTIN_SRC_PATH} /aesce.o
271+ not grep -E ' aes[0-9a-z]+.[0-9]\s*[qv]' ${BUILTIN_SRC_PATH} /aesce.s
268272}
269273
270274support_build_sha_armce () {
@@ -275,67 +279,59 @@ support_build_sha_armce () {
275279component_build_sha_armce () {
276280 scripts/config.py unset MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT
277281
278-
279282 # Test variations of SHA256 Armv8 crypto extensions
280283 scripts/config.py set MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY
281284 msg " MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY clang, aarch64"
282- make -B library/../${BUILTIN_SRC_PATH} /sha256.o CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a"
285+ make -B library/../${BUILTIN_SRC_PATH} /sha256.o library/../${BUILTIN_SRC_PATH} /sha256.s CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a+crypto"
286+ msg " MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY clang, test aarch64 crypto instructions built"
287+ grep -E ' sha256[a-z0-9]+\s+[qv]' ${BUILTIN_SRC_PATH} /sha256.s
288+
283289 msg " MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY clang, arm"
284- make -B library/../${BUILTIN_SRC_PATH} /sha256.o CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm"
290+ make -B library/../${BUILTIN_SRC_PATH} /sha256.o library/../${BUILTIN_SRC_PATH} /sha256.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm"
291+ msg " MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY clang, test A32 crypto instructions built"
292+ grep -E ' sha256[a-z0-9]+.32\s+[qv]' ${BUILTIN_SRC_PATH} /sha256.s
285293 scripts/config.py unset MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY
286294
287295
288296 # test the deprecated form of the config option
289297 scripts/config.py set MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY
290298 msg " MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY clang, thumb"
291- make -B library/../${BUILTIN_SRC_PATH} /sha256.o CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
299+ make -B library/../${BUILTIN_SRC_PATH} /sha256.o library/../${BUILTIN_SRC_PATH} /sha256.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
300+ msg " MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY clang, test T32 crypto instructions built"
301+ grep -E ' sha256[a-z0-9]+.32\s+[qv]' ${BUILTIN_SRC_PATH} /sha256.s
292302 scripts/config.py unset MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY
293303
294304 scripts/config.py set MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT
295305 msg " MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT clang, aarch64"
296- make -B library/../${BUILTIN_SRC_PATH} /sha256.o CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a"
306+ make -B library/../${BUILTIN_SRC_PATH} /sha256.o library/../${BUILTIN_SRC_PATH} /sha256.s CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a+crypto"
307+ msg " MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT clang, test aarch64 crypto instructions built"
308+ grep -E ' sha256[a-z0-9]+\s+[qv]' ${BUILTIN_SRC_PATH} /sha256.s
297309 scripts/config.py unset MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT
298310
299311
300312 # test the deprecated form of the config option
301313 scripts/config.py set MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT
302314 msg " MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT clang, arm"
303- make -B library/../${BUILTIN_SRC_PATH} /sha256.o CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm -std=c99"
315+ make -B library/../${BUILTIN_SRC_PATH} /sha256.o library/../${BUILTIN_SRC_PATH} /sha256.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm -std=c99"
316+
304317 msg " MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT clang, thumb"
305- make -B library/../${BUILTIN_SRC_PATH} /sha256.o CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
318+ make -B library/../${BUILTIN_SRC_PATH} /sha256.o library/../${BUILTIN_SRC_PATH} /sha256.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb"
319+ msg " MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT clang, test T32 crypto instructions built"
320+ grep -E ' sha256[a-z0-9]+.32\s+[qv]' ${BUILTIN_SRC_PATH} /sha256.s
306321 scripts/config.py unset MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT
307322
308-
309- # examine the disassembly for presence of SHA instructions
310- for opt in MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_ONLY MBEDTLS_SHA256_USE_ARMV8_A_CRYPTO_IF_PRESENT; do
311- scripts/config.py set ${opt}
312- msg " ${opt} clang, test A32 crypto instructions built"
313- make -B library/../${BUILTIN_SRC_PATH} /sha256.o CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm -S"
314- grep -E ' sha256[a-z0-9]+.32\s+[qv]' ${BUILTIN_SRC_PATH} /sha256.o
315-
316- msg " ${opt} clang, test T32 crypto instructions built"
317- make -B library/../${BUILTIN_SRC_PATH} /sha256.o CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb -S"
318- grep -E ' sha256[a-z0-9]+.32\s+[qv]' ${BUILTIN_SRC_PATH} /sha256.o
319-
320- msg " ${opt} clang, test aarch64 crypto instructions built"
321- make -B library/../${BUILTIN_SRC_PATH} /sha256.o CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a -S"
322- grep -E ' sha256[a-z0-9]+\s+[qv]' ${BUILTIN_SRC_PATH} /sha256.o
323- scripts/config.py unset ${opt}
324- done
325-
326-
327323 # examine the disassembly for absence of SHA instructions
328324 msg " clang, test A32 crypto instructions not built"
329- make -B library/../${BUILTIN_SRC_PATH} /sha256.o CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72+crypto -marm -S "
330- not grep -E ' sha256[a-z0-9]+.32\s+[qv]' ${BUILTIN_SRC_PATH} /sha256.o
325+ make -B library/../${BUILTIN_SRC_PATH} /sha256.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a72 -marm"
326+ not grep -E ' sha256[a-z0-9]+.32\s+[qv]' ${BUILTIN_SRC_PATH} /sha256.s
331327
332328 msg " clang, test T32 crypto instructions not built"
333- make -B library/../${BUILTIN_SRC_PATH} /sha256.o CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32+crypto -mthumb -S "
334- not grep -E ' sha256[a-z0-9]+.32\s+[qv]' ${BUILTIN_SRC_PATH} /sha256.o
329+ make -B library/../${BUILTIN_SRC_PATH} /sha256.s CC=clang CFLAGS=" --target=arm-linux-gnueabihf -mcpu=cortex-a32 -mthumb"
330+ not grep -E ' sha256[a-z0-9]+.32\s+[qv]' ${BUILTIN_SRC_PATH} /sha256.s
335331
336332 msg " clang, test aarch64 crypto instructions not built"
337- make -B library/../${BUILTIN_SRC_PATH} /sha256.o CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a -S "
338- not grep -E ' sha256[a-z0-9]+\s+[qv]' ${BUILTIN_SRC_PATH} /sha256.o
333+ make -B library/../${BUILTIN_SRC_PATH} /sha256.s CC=clang CFLAGS=" --target=aarch64-linux-gnu -march=armv8-a"
334+ not grep -E ' sha256[a-z0-9]+\s+[qv]' ${BUILTIN_SRC_PATH} /sha256.s
339335}
340336
341337component_build_arm_none_eabi_gcc () {
0 commit comments