diff options
author | Joseph Myers <joseph@codesourcery.com> | 2017-08-28 15:19:52 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2017-08-28 15:19:52 +0000 |
commit | a48c0fb4b4c322a0e0214f59516b9bb7883352f8 (patch) | |
tree | 3d5f29b89994baf7309a4b0f7ba6fd9af8d36421 /math/math-svid-compat.h | |
parent | ee17d4e99af9e49378217209d3708053ef148032 (diff) | |
download | glibc-a48c0fb4b4c322a0e0214f59516b9bb7883352f8.zip glibc-a48c0fb4b4c322a0e0214f59516b9bb7883352f8.tar.gz glibc-a48c0fb4b4c322a0e0214f59516b9bb7883352f8.tar.bz2 |
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].
Diffstat (limited to 'math/math-svid-compat.h')
-rw-r--r-- | math/math-svid-compat.h | 22 |
1 files changed, 9 insertions, 13 deletions
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_ |