1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-08-08 17:42:12 +03:00

Simplify math-svid-compat code.

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.

	* 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].
This commit is contained in:
Joseph Myers
2017-08-28 15:19:52 +00:00
parent ee17d4e99a
commit a48c0fb4b4
3 changed files with 17 additions and 19 deletions

View File

@@ -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_