Provide external definition of mbedtls_xor
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
diff --git a/library/common.h b/library/common.h
index c3847cd..e502b5d 100644
--- a/library/common.h
+++ b/library/common.h
@@ -414,7 +414,7 @@
* \param b Pointer to input (buffer of at least \p n bytes)
* \param n Number of bytes to process.
*/
-static inline void mbedtls_xor( unsigned char *r, unsigned char const *a, unsigned char const *b, size_t n )
+inline void mbedtls_xor( unsigned char *r, unsigned char const *a, unsigned char const *b, size_t n )
{
#if defined(MBEDTLS_ALLOW_UNALIGNED_ACCESS)
uint32_t *a32 = (uint32_t *)a;
diff --git a/library/platform_util.c b/library/platform_util.c
index 916a7f4..8fba664 100644
--- a/library/platform_util.c
+++ b/library/platform_util.c
@@ -143,3 +143,8 @@
void (*mbedtls_test_hook_test_fail)( const char *, int, const char *);
#endif /* MBEDTLS_TEST_HOOKS */
+/*
+ * Provide an external definition of mbedtls_xor so that the compiler
+ * has the option to not inline it
+ */
+extern inline void mbedtls_xor( unsigned char *r, unsigned char const *a, unsigned char const *b, size_t n );