From: Jaroslav Kysela Date: Tue, 16 May 2023 07:14:46 +0000 (+0200) Subject: include: fix SND_DLSYM_BUILD_VERSION() for static build X-Git-Tag: v1.2.10~49 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=55cdf2fd639534be97d2eb6d8b5aa2f7c4ad0bb6;p=alsa-lib.git 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 --- 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)