diff options
Diffstat (limited to 'math/lgamma-compat.h')
-rw-r--r-- | math/lgamma-compat.h | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/math/lgamma-compat.h b/math/lgamma-compat.h deleted file mode 100644 index 90a423756a..0000000000 --- a/math/lgamma-compat.h +++ /dev/null @@ -1,73 +0,0 @@ -/* ABI compatibility for lgamma functions. - Copyright (C) 2015-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -#ifndef LGAMMA_COMPAT_H -#define LGAMMA_COMPAT_H 1 - -#include <shlib-compat.h> - -/* XSI POSIX requires lgamma to set signgam, but ISO C does not permit - this. Namespace issues can be avoided if the functions set - __signgam and signgam is a weak alias, but this only works if both - signgam and __signgam were exported from the glibc version the - program was linked against. Before glibc 2.23, lgamma functions - set signgam which was not a weak alias for __signgam, so old - binaries have dynamic symbols for signgam only and the versions of - lgamma used for old binaries must set both signgam and __signgam. - Those versions also do a check of _LIB_VERSION != _ISOC_ to match - old glibc. - - Users of this file define USE_AS_COMPAT to 0 when building the main - version of lgamma, 1 when building the compatibility version. */ - -#define LGAMMA_OLD_VER GLIBC_2_0 -#define LGAMMA_NEW_VER GLIBC_2_23 -#define HAVE_LGAMMA_COMPAT SHLIB_COMPAT (libm, LGAMMA_OLD_VER, LGAMMA_NEW_VER) - -/* Whether to build this version at all. */ -#define BUILD_LGAMMA (HAVE_LGAMMA_COMPAT || !USE_AS_COMPAT) - -/* The name to use for this version. */ -#if USE_AS_COMPAT -# define LGFUNC(FUNC) FUNC ## _compat -#else -# define LGFUNC(FUNC) FUNC -#endif - -/* If there is a compatibility version, gamma (not an ISO C function, - so never a problem for it to set signgam) points directly to it - rather than having separate versions. */ -#define GAMMA_ALIAS (USE_AS_COMPAT ? HAVE_LGAMMA_COMPAT : !HAVE_LGAMMA_COMPAT) - -/* How to call the underlying lgamma_r function. */ -#define CALL_LGAMMA(TYPE, FUNC, ARG) \ - ({ \ - TYPE lgamma_tmp; \ - int local_signgam; \ - if (USE_AS_COMPAT) \ - { \ - lgamma_tmp = FUNC ((ARG), &local_signgam); \ - if (_LIB_VERSION != _ISOC_) \ - signgam = __signgam = local_signgam; \ - } \ - else \ - lgamma_tmp = FUNC ((ARG), &__signgam); \ - lgamma_tmp; \ - }) - -#endif /* lgamma-compat.h. */ |