* Simplify math-svid-compat code [committed]
@ 2017-08-28 15:20 Joseph Myers
0 siblings, 0 replies; only message in thread
From: Joseph Myers @ 2017-08-28 15:20 UTC (permalink / raw)
To: libc-alpha
Now there are no more assembly wrappers using _LIB_VERSION or
__kernel_standard, the math-svid-compat code can be slighly
simplified. math-svid-compat.h no longer needs __ASSEMBLER__
conditionals, and the _LIB_VERSION variable no longer needs to be
built for static libm, since all references are now in C code that
includes math-svid-compat.h and so gets the macro definition of
_LIB_VERSION to _POSIX_ outside the compat case. This patch makes
those cleanups.
Tested for x86_64, and with build-many-glibcs.py. Committed.
2017-08-28 Joseph Myers <joseph@codesourcery.com>
* math/math-svid-compat.h [!__ASSEMBLER__]: Make code
unconditional.
* sysdeps/ieee754/s_lib_version.c [!defined SHARED]: Remove
conditional code; define contents only for [LIBM_SVID_COMPAT].
diff --git a/math/math-svid-compat.h b/math/math-svid-compat.h
index 284cc13..67acedc 100644
--- a/math/math-svid-compat.h
+++ b/math/math-svid-compat.h
@@ -19,7 +19,6 @@
#ifndef _MATH_SVID_COMPAT_H
#define _MATH_SVID_COMPAT_H 1
-#ifndef __ASSEMBLER__
/* Support for various different standard error handling behaviors. */
typedef enum
{
@@ -49,37 +48,34 @@ struct exception
extern int matherr (struct exception *__exc);
extern int __matherr (struct exception *__exc);
-# define X_TLOSS 1.41484755040568800000e+16
+#define X_TLOSS 1.41484755040568800000e+16
/* Types of exceptions in the `type' field. */
-# define DOMAIN 1
-# define SING 2
-# define OVERFLOW 3
-# define UNDERFLOW 4
-# define TLOSS 5
-# define PLOSS 6
+#define DOMAIN 1
+#define SING 2
+#define OVERFLOW 3
+#define UNDERFLOW 4
+#define TLOSS 5
+#define PLOSS 6
/* SVID mode specifies returning this large value instead of infinity. */
-# define HUGE 3.40282347e+38F
-#endif
+#define HUGE 3.40282347e+38F
/* The above definitions may be used in testcases. The following code
is only used in the implementation. */
#ifdef _LIBC
-# ifndef __ASSEMBLER__
/* fdlibm kernel function */
extern double __kernel_standard (double, double, int);
extern float __kernel_standard_f (float, float, int);
extern long double __kernel_standard_l (long double, long double, int);
-# endif
# include <shlib-compat.h>
# define LIBM_SVID_COMPAT SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_27)
# if LIBM_SVID_COMPAT
compat_symbol_reference (libm, matherr, matherr, GLIBC_2_0);
compat_symbol_reference (libm, _LIB_VERSION, _LIB_VERSION, GLIBC_2_0);
-# elif !defined __ASSEMBLER__
+# else
/* Except when building compat code, optimize out references to
_LIB_VERSION and matherr. */
# define _LIB_VERSION _POSIX_
diff --git a/sysdeps/ieee754/s_lib_version.c b/sysdeps/ieee754/s_lib_version.c
index f11d1c3..40f708d 100644
--- a/sysdeps/ieee754/s_lib_version.c
+++ b/sysdeps/ieee754/s_lib_version.c
@@ -24,12 +24,7 @@ static char rcsid[] = "$NetBSD: s_lib_version.c,v 1.6 1995/05/10 20:47:44 jtc Ex
* define and initialize _LIB_VERSION
*/
#undef _LIB_VERSION
-#if LIBM_SVID_COMPAT || !defined SHARED
-_LIB_VERSION_TYPE _LIB_VERSION_INTERNAL = _POSIX_;
-#endif
#if LIBM_SVID_COMPAT
+_LIB_VERSION_TYPE _LIB_VERSION_INTERNAL = _POSIX_;
compat_symbol (libm, _LIB_VERSION_INTERNAL, _LIB_VERSION, GLIBC_2_0);
-#elif !defined SHARED
-/* For use in .S wrappers. */
-weak_alias (_LIB_VERSION_INTERNAL, _LIB_VERSION)
#endif
--
Joseph S. Myers
joseph@codesourcery.com
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2017-08-28 15:20 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-28 15:20 Simplify math-svid-compat code [committed] Joseph Myers
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).