Merge pull request #10538 from gilles-peskine-arm/include-common-first-fix-aesce-3.6

Backport 3.6: Fix AESCE regression with Clang due to inclusion order changes
This commit is contained in:
David Horstmann
2025-12-18 14:32:55 +00:00
committed by GitHub

View File

@@ -5,10 +5,6 @@
* SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
*/
#include "common.h"
#if defined(MBEDTLS_AESCE_C)
#if defined(__clang__) && (__clang_major__ >= 4)
/* Ideally, we would simply use MBEDTLS_ARCH_IS_ARMV8_A in the following #if,
@@ -20,15 +16,16 @@
#endif
#if defined(MBEDTLS_AESCE_ARCH_IS_ARMV8_A) && !defined(__ARM_FEATURE_CRYPTO)
/* TODO: Re-consider above after https://reviews.llvm.org/D131064 merged.
*
* The intrinsic declaration are guarded by predefined ACLE macros in clang:
/* The intrinsic declaration are guarded by predefined ACLE macros in clang:
* these are normally only enabled by the -march option on the command line.
* By defining the macros ourselves we gain access to those declarations without
* requiring -march on the command line.
*
* `arm_neon.h` is included by common.h, so we put these defines
* at the top of this file, before any includes.
* at the top of this file, before any includes. This is necessary with
* Clang <=15.x. With Clang 16.0 and above, these macro definitions are
* no longer required, but they're harmless. See
* https://reviews.llvm.org/D131064
*/
#define __ARM_FEATURE_CRYPTO 1
/* See: https://arm-software.github.io/acle/main/acle.html#cryptographic-extensions
@@ -42,6 +39,10 @@
#endif /* defined(__clang__) && (__clang_major__ >= 4) */
#include "common.h"
#if defined(MBEDTLS_AESCE_C)
#include <string.h>
#include "aesce.h"