extern __typeof (name) aliasname __attribute__ ((weak, alias (#name))) \
__attribute_copy__ (name);
-/* Same as WEAK_ALIAS, but mark symbol as hidden. */
-# define weak_hidden_alias(name, aliasname) \
- _weak_hidden_alias (name, aliasname)
-# define _weak_hidden_alias(name, aliasname) \
- extern __typeof (name) aliasname \
- __attribute__ ((weak, alias (#name), __visibility__ ("hidden"))) \
- __attribute_copy__ (name);
-
/* Declare SYMBOL as weak undefined symbol (resolved to 0 if not defined). */
# define weak_extern(symbol) _weak_extern (weak symbol)
# define _weak_extern(expr) _Pragma (#expr)
.type C_SYMBOL_NAME (symbol), %object ASM_LINE_SEP \
.size C_SYMBOL_NAME (symbol), s_size ASM_LINE_SEP
#else /* Not __ASSEMBLER__. */
-# define declare_symbol_alias(symbol, original, type, size) \
- declare_symbol_alias_1 (symbol, original, type, size)
-# define declare_symbol_alias_1(symbol, original, type, size) \
- asm (".globl " __SYMBOL_PREFIX #symbol \
- "\n\t" declare_symbol_alias_1_alias (symbol, original) \
- "\n\t.type " __SYMBOL_PREFIX #symbol ", " \
- "%" #type \
- "\n\t.size " __SYMBOL_PREFIX #symbol ", " #size);
# ifdef HAVE_ASM_SET_DIRECTIVE
# define declare_symbol_alias_1_alias(symbol, original) \
".set " __SYMBOL_PREFIX #symbol ", " __SYMBOL_PREFIX #original
__attribute__((alias (__hidden_asmname (#local)))) \
__attribute_copy__ (name)
# define hidden_ver(local, name) __hidden_ver1(local, __GI_##name, name);
-# define hidden_data_ver(local, name) hidden_ver(local, name)
# define hidden_def(name) __hidden_ver1(__GI_##name, name, name);
# define hidden_def_alias(name, internal) \
strong_alias (name, internal)
# define hidden_data_def_alias(name, alias) strong_data_alias (name, alias)
# define hidden_tls_def(name) hidden_data_def (name)
# define hidden_data_weak(name) hidden_data_def (name)
-# define hidden_data_ver(local, name) strong_data_alias (local, __GI_##name)
# define HIDDEN_JUMPTARGET(name) __GI_##name
# endif
#else
# define hidden_data_def(name)
# define hidden_data_def_alias(name, alias)
# define hidden_tls_def(name)
-# define hidden_data_ver(local, name)
# define hidden_nolink(name, lib, version)
#endif
hidden_proto_alias (name, alias, ##attrs)
# define libc_hidden_tls_proto(name, attrs...) hidden_tls_proto (name, ##attrs)
# define libc_hidden_def(name) hidden_def (name)
-# define libc_hidden_def_alias(name, alias) hidden_def_alias (name, alias)
# define libc_hidden_weak(name) hidden_weak (name)
# define libc_hidden_nolink_sunrpc(name, version) hidden_nolink (name, libc, version)
# define libc_hidden_ver(local, name) hidden_ver (local, name)
# define libc_hidden_data_def_alias(name, alias) hidden_data_def_alias (name, alias)
# define libc_hidden_tls_def(name) hidden_tls_def (name)
# define libc_hidden_data_weak(name) hidden_data_weak (name)
-# define libc_hidden_data_ver(local, name) hidden_data_ver (local, name)
#else
# define libc_hidden_proto(name, attrs...)
# define libc_hidden_proto_alias(name, alias, attrs...)
# define libc_hidden_data_def_alias(name, alias)
# define libc_hidden_tls_def(name)
# define libc_hidden_data_weak(name)
-# define libc_hidden_data_ver(local, name)
#endif
#if IS_IN (rtld)
# define rtld_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
-# define rtld_hidden_tls_proto(name, attrs...) hidden_tls_proto (name, ##attrs)
# define rtld_hidden_def(name) hidden_def (name)
# define rtld_hidden_weak(name) hidden_weak (name)
-# define rtld_hidden_ver(local, name) hidden_ver (local, name)
# define rtld_hidden_data_def(name) hidden_data_def (name)
-# define rtld_hidden_tls_def(name) hidden_tls_def (name)
-# define rtld_hidden_data_weak(name) hidden_data_weak (name)
-# define rtld_hidden_data_ver(local, name) hidden_data_ver (local, name)
#else
# define rtld_hidden_proto(name, attrs...)
-# define rtld_hidden_tls_proto(name, attrs...)
# define rtld_hidden_def(name)
# define rtld_hidden_weak(name)
-# define rtld_hidden_ver(local, name)
# define rtld_hidden_data_def(name)
-# define rtld_hidden_tls_def(name)
-# define rtld_hidden_data_weak(name)
-# define rtld_hidden_data_ver(local, name)
#endif
#if IS_IN (libm)
# define libm_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
-# define libm_hidden_tls_proto(name, attrs...) hidden_tls_proto (name, ##attrs)
# define libm_hidden_def(name) hidden_def (name)
# define libm_hidden_weak(name) hidden_weak (name)
# define libm_hidden_ver(local, name) hidden_ver (local, name)
-# define libm_hidden_data_def(name) hidden_data_def (name)
-# define libm_hidden_tls_def(name) hidden_tls_def (name)
-# define libm_hidden_data_weak(name) hidden_data_weak (name)
-# define libm_hidden_data_ver(local, name) hidden_data_ver (local, name)
#else
# define libm_hidden_proto(name, attrs...)
-# define libm_hidden_tls_proto(name, attrs...)
# define libm_hidden_def(name)
# define libm_hidden_weak(name)
# define libm_hidden_ver(local, name)
-# define libm_hidden_data_def(name)
-# define libm_hidden_tls_def(name)
-# define libm_hidden_data_weak(name)
-# define libm_hidden_data_ver(local, name)
#endif
#if IS_IN (libmvec)
-# define libmvec_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
-# define libmvec_hidden_tls_proto(name, attrs...) hidden_tls_proto (name, ##attrs)
# define libmvec_hidden_def(name) hidden_def (name)
-# define libmvec_hidden_weak(name) hidden_weak (name)
-# define libmvec_hidden_ver(local, name) hidden_ver (local, name)
-# define libmvec_hidden_data_def(name) hidden_data_def (name)
-# define libmvec_hidden_tls_def(name) hidden_tls_def (name)
-# define libmvec_hidden_data_weak(name) hidden_data_weak (name)
-# define libmvec_hidden_data_ver(local, name) hidden_data_ver (local, name)
#else
-# define libmvec_hidden_proto(name, attrs...)
-# define libmvec_hidden_tls_proto(name, attrs...)
# define libmvec_hidden_def(name)
-# define libmvec_hidden_weak(name)
-# define libmvec_hidden_ver(local, name)
-# define libmvec_hidden_data_def(name)
-# define libmvec_hidden_tls_def(name)
-# define libmvec_hidden_data_weak(name)
-# define libmvec_hidden_data_ver(local, name)
#endif
#if IS_IN (libresolv)
# define libresolv_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
-# define libresolv_hidden_tls_proto(name, attrs...) \
- hidden_tls_proto (name, ##attrs)
# define libresolv_hidden_def(name) hidden_def (name)
-# define libresolv_hidden_weak(name) hidden_weak (name)
-# define libresolv_hidden_ver(local, name) hidden_ver (local, name)
# define libresolv_hidden_data_def(name) hidden_data_def (name)
-# define libresolv_hidden_tls_def(name) hidden_tls_def (name)
-# define libresolv_hidden_data_weak(name) hidden_data_weak (name)
-# define libresolv_hidden_data_ver(local, name) hidden_data_ver (local, name)
#else
# define libresolv_hidden_proto(name, attrs...)
-# define libresolv_hidden_tls_proto(name, attrs...)
# define libresolv_hidden_def(name)
-# define libresolv_hidden_weak(name)
-# define libresolv_hidden_ver(local, name)
# define libresolv_hidden_data_def(name)
-# define libresolv_hidden_tls_def(name)
-# define libresolv_hidden_data_weak(name)
-# define libresolv_hidden_data_ver(local, name)
#endif
#if IS_IN (libpthread)
# define libpthread_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
-# define libpthread_hidden_tls_proto(name, attrs...) \
- hidden_tls_proto (name, ##attrs)
# define libpthread_hidden_def(name) hidden_def (name)
-# define libpthread_hidden_weak(name) hidden_weak (name)
-# define libpthread_hidden_ver(local, name) hidden_ver (local, name)
-# define libpthread_hidden_data_def(name) hidden_data_def (name)
-# define libpthread_hidden_tls_def(name) hidden_tls_def (name)
-# define libpthread_hidden_data_weak(name) hidden_data_weak (name)
-# define libpthread_hidden_data_ver(local, name) hidden_data_ver (local, name)
#else
# define libpthread_hidden_proto(name, attrs...)
-# define libpthread_hidden_tls_proto(name, attrs...)
# define libpthread_hidden_def(name)
-# define libpthread_hidden_weak(name)
-# define libpthread_hidden_ver(local, name)
-# define libpthread_hidden_data_def(name)
-# define libpthread_hidden_tls_def(name)
-# define libpthread_hidden_data_weak(name)
-# define libpthread_hidden_data_ver(local, name)
#endif
#if IS_IN (librt)
# define librt_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
-# define librt_hidden_tls_proto(name, attrs...) \
- hidden_tls_proto (name, ##attrs)
-# define librt_hidden_def(name) hidden_def (name)
-# define librt_hidden_weak(name) hidden_weak (name)
# define librt_hidden_ver(local, name) hidden_ver (local, name)
-# define librt_hidden_data_def(name) hidden_data_def (name)
-# define librt_hidden_tls_def(name) hidden_tls_def (name)
-# define librt_hidden_data_weak(name) hidden_data_weak (name)
-# define librt_hidden_data_ver(local, name) hidden_data_ver (local, name)
#else
# define librt_hidden_proto(name, attrs...)
-# define librt_hidden_tls_proto(name, attrs...)
-# define librt_hidden_def(name)
-# define librt_hidden_weak(name)
# define librt_hidden_ver(local, name)
-# define librt_hidden_data_def(name)
-# define librt_hidden_tls_def(name)
-# define librt_hidden_data_weak(name)
-# define librt_hidden_data_ver(local, name)
-#endif
-
-#if IS_IN (libdl)
-# define libdl_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
-# define libdl_hidden_tls_proto(name, attrs...) \
- hidden_tls_proto (name, ##attrs)
-# define libdl_hidden_def(name) hidden_def (name)
-# define libdl_hidden_weak(name) hidden_weak (name)
-# define libdl_hidden_ver(local, name) hidden_ver (local, name)
-# define libdl_hidden_data_def(name) hidden_data_def (name)
-# define libdl_hidden_tls_def(name) hidden_tls_def (name)
-# define libdl_hidden_data_weak(name) hidden_data_weak (name)
-# define libdl_hidden_data_ver(local, name) hidden_data_ver (local, name)
-#else
-# define libdl_hidden_proto(name, attrs...)
-# define libdl_hidden_tls_proto(name, attrs...)
-# define libdl_hidden_def(name)
-# define libdl_hidden_weak(name)
-# define libdl_hidden_ver(local, name)
-# define libdl_hidden_data_def(name)
-# define libdl_hidden_tls_def(name)
-# define libdl_hidden_data_weak(name)
-# define libdl_hidden_data_ver(local, name)
#endif
#if IS_IN (libnsl)
# define libnsl_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
-# define libnsl_hidden_tls_proto(name, attrs...) \
- hidden_tls_proto (name, ##attrs)
# define libnsl_hidden_nolink_def(name, version) hidden_nolink (name, libnsl, version)
-# define libnsl_hidden_weak(name) hidden_weak (name)
-# define libnsl_hidden_ver(local, name) hidden_ver (local, name)
-# define libnsl_hidden_data_def(name) hidden_data_def (name)
-# define libnsl_hidden_tls_def(name) hidden_tls_def (name)
-# define libnsl_hidden_data_weak(name) hidden_data_weak (name)
-# define libnsl_hidden_data_ver(local, name) hidden_data_ver (local, name)
#else
# define libnsl_hidden_proto(name, attrs...)
-# define libnsl_hidden_tls_proto(name, attrs...)
-# define libnsl_hidden_weak(name)
-# define libnsl_hidden_ver(local, name)
-# define libnsl_hidden_data_def(name)
-# define libnsl_hidden_tls_def(name)
-# define libnsl_hidden_data_weak(name)
-# define libnsl_hidden_data_ver(local, name)
#endif
#define libc_hidden_builtin_proto(name, attrs...) libc_hidden_proto (name, ##attrs)
#define libc_hidden_builtin_def(name) libc_hidden_def (name)
-#define libc_hidden_builtin_weak(name) libc_hidden_weak (name)
-#define libc_hidden_builtin_ver(local, name) libc_hidden_ver (local, name)
#define libc_hidden_ldbl_proto(name, attrs...) libc_hidden_proto (name, ##attrs)
#ifdef __ASSEMBLER__
# define HIDDEN_BUILTIN_JUMPTARGET(name) HIDDEN_JUMPTARGET(name)
#endif
-#if IS_IN (libutil)
-# define libutil_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
-# define libutil_hidden_tls_proto(name, attrs...) \
- hidden_tls_proto (name, ##attrs)
-# define libutil_hidden_def(name) hidden_def (name)
-# define libutil_hidden_weak(name) hidden_weak (name)
-# define libutil_hidden_ver(local, name) hidden_ver (local, name)
-# define libutil_hidden_data_def(name) hidden_data_def (name)
-# define libutil_hidden_tls_def(name) hidden_tls_def (name)
-# define libutil_hidden_data_weak(name) hidden_data_weak (name)
-# define libutil_hidden_data_ver(local, name) hidden_data_ver (local, name)
-#else
-# define libutil_hidden_proto(name, attrs...)
-# define libutil_hidden_tls_proto(name, attrs...)
-# define libutil_hidden_def(name)
-# define libutil_hidden_weak(name)
-# define libutil_hidden_ver(local, name)
-# define libutil_hidden_data_def(name)
-# define libutil_hidden_tls_def(name)
-# define libutil_hidden_data_weak(name)
-# define libutil_hidden_data_ver(local, name)
-#endif
-
#if IS_IN (libanl)
# define libanl_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
-# define libanl_hidden_def(name) hidden_def (name)
#else
# define libanl_hidden_proto(name, attrs...)
-# define libanl_hidden_def(name)
#endif
/* Get some dirty hacks. */
#ifndef __ASSEMBLER__
# define attribute_compat_text_section \
__attribute__ ((section (".text.compat")))
-# define attribute_compat_data_section \
- __attribute__ ((section (".data.compat")))
#else
# define compat_text_section .section ".text.compat", "ax";
-# define compat_data_section .section ".data.compat", "aw";
#endif
/* Helper / base macros for indirect function symbols. */