From 5216002773946e91a9c75ef718732aac590f3a20 Mon Sep 17 00:00:00 2001 From: Ondrej Kozina Date: Tue, 17 Jan 2023 13:09:41 +0100 Subject: [PATCH] Use ISO C compliant inline assembly with supported compilers. When compiled with enforced ISO C (e.g. -std=c11) 'asm' inline does not compile (it's GNU extension). Use __asm__ inline assembly with GCC and clang compliers instead. Fixes: #786. --- lib/libcryptsetup_symver.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/libcryptsetup_symver.h b/lib/libcryptsetup_symver.h index aa27f882..f3c04ace 100644 --- a/lib/libcryptsetup_symver.h +++ b/lib/libcryptsetup_symver.h @@ -72,9 +72,9 @@ __attribute__((__symver__(#_public_sym _ver_str #_maj "." #_min))) #endif -#if !defined(_CRYPT_SYMVER) && defined(__GNUC__) +#if !defined(_CRYPT_SYMVER) && (defined(__GNUC__) || defined(__clang__)) # define _CRYPT_SYMVER(_local_sym, _public_sym, _ver_str, _maj, _min) \ - asm(".symver " #_local_sym "," #_public_sym _ver_str #_maj "." #_min); + __asm__(".symver " #_local_sym "," #_public_sym _ver_str #_maj "." #_min); #endif #define _CRYPT_FUNC(_public_sym, _prefix_str, _maj, _min, _ret, ...) \