From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 79122 invoked by alias); 28 Aug 2017 15:20:58 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 73483 invoked by uid 89); 28 Aug 2017 15:20:54 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.5 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_PASS,URIBL_RED autolearn=ham version=3.3.2 spammy=SING, 1995, jtc X-HELO: relay1.mentorg.com Date: Mon, 28 Aug 2017 15:20:00 -0000 From: Joseph Myers To: Subject: Simplify math-svid-compat code [committed] Message-ID: User-Agent: Alpine 2.20 (DEB 67 2015-01-07) MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" X-ClientProxiedBy: svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) To svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) X-SW-Source: 2017-08/txt/msg01205.txt.bz2 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 * 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 # 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