glibc/sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h
Roland McGrath 5241204980 * sysdeps/unix/sysv/linux/sparc/sparc32/nldbl-abi.h: New file.
* sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h: #include <nldbl-abi.h>
	to define LONG_DOUBLE_COMPAT_VERSION.  Use that in place of
	NLDBL_VERSION.
	* sysdeps/ieee754/ldbl-opt/Versions: Include <nldbl-abi.h>.
	* sysdeps/unix/sysv/linux/sparc/sparc32/Versions: Revert last change.
2006-01-14 12:32:50 +00:00

45 lines
2.0 KiB
C

/* -mlong-double-64 compatibility mode macros. */
#include <nldbl-abi.h>
#ifndef LONG_DOUBLE_COMPAT_VERSION
# error "nldbl-abi.h must define LONG_DOUBLE_COMPAT_VERSION"
#endif
#include <math.h>
#include <math/math_private.h>
#include <shlib-compat.h>
#define LONG_DOUBLE_COMPAT(lib, introduced) \
SHLIB_COMPAT(lib, introduced, LONG_DOUBLE_COMPAT_VERSION)
#define long_double_symbol(lib, local, symbol) \
long_double_symbol_1 (lib, local, symbol, LONG_DOUBLE_COMPAT_VERSION)
#if defined HAVE_ELF && defined SHARED && defined DO_VERSIONING
# define ldbl_hidden_def(local, name) libc_hidden_ver (local, name)
# define ldbl_strong_alias(name, aliasname) \
strong_alias (name, __GL_##name##_##aliasname) \
long_double_symbol (libc, __GL_##name##_##aliasname, aliasname);
# define ldbl_weak_alias(name, aliasname) \
weak_alias (name, __GL_##name##_##aliasname) \
long_double_symbol (libc, __GL_##name##_##aliasname, aliasname);
# define long_double_symbol_1(lib, local, symbol, version) \
versioned_symbol (lib, local, symbol, version)
#elif defined HAVE_WEAK_SYMBOLS
# define ldbl_hidden_def(local, name) libc_hidden_def (name)
# define ldbl_strong_alias(name, aliasname) strong_alias (name, aliasname)
# define ldbl_weak_alias(name, aliasname) weak_alias (name, aliasname)
/* Note that weak_alias cannot be used - it is defined to nothing
in most of the files. */
# define long_double_symbol_1(lib, local, symbol, version) \
_weak_alias (local, symbol)
#else
# define ldbl_hidden_def(local, name) libc_hidden_def (name)
# define ldbl_strong_alias(name, aliasname) strong_alias (name, aliasname)
# define ldbl_weak_alias(name, aliasname) strong_alias (name, aliasname)
# define long_double_symbol_1(lib, local, symbol, version) \
strong_alias (local, symbol)
#endif
/* Set temporarily to non-zero if long double should be considered
the same as double. */
extern __thread int __no_long_double attribute_tls_model_ie attribute_hidden;
#define __ldbl_is_dbl __builtin_expect (__no_long_double, 0)