From 55cdf2fd639534be97d2eb6d8b5aa2f7c4ad0bb6 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Tue, 16 May 2023 09:14:46 +0200 Subject: [PATCH] include: fix SND_DLSYM_BUILD_VERSION() for static build Correct the dlsym_name string for nested macros. See Fixes:. Fixes: https://github.com/alsa-project/alsa-lib/issues/316 Signed-off-by: Jaroslav Kysela --- include/global.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/include/global.h b/include/global.h index 71a1b12f..dfe9bc2b 100644 --- a/include/global.h +++ b/include/global.h @@ -71,6 +71,11 @@ struct snd_dlsym_link { extern struct snd_dlsym_link *snd_dlsym_start; +#ifndef __STRING +/** \brief Return 'x' argument as string */ +#define __STRING(x) #x +#endif + /** \hideinitializer \brief Helper macro for #SND_DLSYM_BUILD_VERSION. */ #define __SND_DLSYM_VERSION(prefix, name, version) _ ## prefix ## name ## version /** @@ -82,18 +87,13 @@ extern struct snd_dlsym_link *snd_dlsym_start; void __SND_DLSYM_VERSION(snd_dlsym_constructor_, name, version) (void) __attribute__ ((constructor)); \ void __SND_DLSYM_VERSION(snd_dlsym_constructor_, name, version) (void) { \ __SND_DLSYM_VERSION(snd_dlsym_, name, version).next = snd_dlsym_start; \ - __SND_DLSYM_VERSION(snd_dlsym_, name, version).dlsym_name = # name; \ + __SND_DLSYM_VERSION(snd_dlsym_, name, version).dlsym_name = __STRING(name); \ __SND_DLSYM_VERSION(snd_dlsym_, name, version).dlsym_ptr = (void *)&name; \ snd_dlsym_start = &__SND_DLSYM_VERSION(snd_dlsym_, name, version); \ } #endif -#ifndef __STRING -/** \brief Return 'x' argument as string */ -#define __STRING(x) #x -#endif - /** \brief Returns the version of a dynamic symbol as a string. */ #define SND_DLSYM_VERSION(version) __STRING(version) -- 2.47.1