From 3c6da4b8c27c7d546746eadabc9e2dd6c1fdfc2c Mon Sep 17 00:00:00 2001 From: Frank Denis Date: Thu, 26 Sep 2024 21:55:38 +0200 Subject: [PATCH] randombytes_internal_random.c: move clang target attribute down Specifically, move it after the system includes. This appears to address an issue with clang 18 when cross-compiling to windows. Fixes #1413 --- .../internal/randombytes_internal_random.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/libsodium/randombytes/internal/randombytes_internal_random.c b/src/libsodium/randombytes/internal/randombytes_internal_random.c index d39063c5..7393f348 100644 --- a/src/libsodium/randombytes/internal/randombytes_internal_random.c +++ b/src/libsodium/randombytes/internal/randombytes_internal_random.c @@ -44,14 +44,6 @@ #ifdef BLOCK_ON_DEV_RANDOM # include #endif -#ifdef HAVE_RDRAND -# ifdef __clang__ -# pragma clang attribute push(__attribute__((target("rdrnd"))), apply_to = function) -# elif defined(__GNUC__) -# pragma GCC target("rdrnd") -# endif -# include -#endif #include "core.h" #include "crypto_core_hchacha20.h" @@ -109,6 +101,15 @@ BOOLEAN NTAPI RtlGenRandom(PVOID RandomBuffer, ULONG RandomBufferLength); # endif #endif +#ifdef HAVE_RDRAND +# ifdef __clang__ +# pragma clang attribute push(__attribute__((target("rdrnd"))), apply_to = function) +# elif defined(__GNUC__) +# pragma GCC target("rdrnd") +# endif +# include +#endif + typedef struct InternalRandomGlobal_ { int initialized; int random_data_source_fd;