[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Patches] Remove OPTION_EGLIBC_LIBM_BIG option group
- To: <patches@xxxxxxxxxx>
- Subject: [Patches] Remove OPTION_EGLIBC_LIBM_BIG option group
- From: "Joseph S. Myers" <joseph@xxxxxxxxxxxxxxxx>
- Date: Sat, 18 May 2013 00:22:31 +0000
The OPTION_EGLIBC_LIBM_BIG option group is problematic for merges from
glibc, reportedly bitrotten, and fundamentally ill-conceived. (An option
group that completely removes long double, or double and long double, libm
functions, so that programs using them fail to compile or link, would be
reasonable. One that changes their semantics so that any program that
correctly chose to use them rather than the float versions no longer
receives the semantics it requires isn't reasonable.)
I've committed this reversion of that option group. The other option
group I think is similarly ill-conceived and needs removing on those
grounds is OPTION_POSIX_REGEXP_GLIBC, which adds a whole separate, old,
buggy and probably full of security holes implementation of some
functionality. Option groups should disable well-defined subsets of API
features, not randomly reintroduce bugs removed from glibc many years ago
by reusing an old implementation of regular expressions.
Although the other options groups are better-defined, option groups in
general are effectively unmaintained and it's likely many of them are
bitrotten; they also cause more trouble for merges from glibc than all the
other local changes put together. I don't know if anyone is still using
option groups (and if so, which option groups), but if so, the user
community really needs to step up to (a) updating Steve Longerbeam's
patches, writing ChangeLog entries for them and getting them in, (b)
fixing bitrot issues and (c) working with the glibc community on the right
ways to get such feature configurability into glibc. (This does of course
require getting an FSF copyright assignment for any substantial work, if
not already covered by a corporate assignment.)
Index: option-groups.def
===================================================================
--- option-groups.def (revision 23089)
+++ option-groups.def (working copy)
@@ -464,19 +464,6 @@
group, you will not be able to build 'libstdc++' against the
resulting EGLIBC installation.
-config OPTION_EGLIBC_LIBM_BIG
- bool "Math library size"
- help
- This option group enables default configuration of the math library.
- Not selecting this option group removes most of the extended and
- double precision math functions and replaces them with wrappers
- to the single precision couterparts.
- Doing so greatly degrades quality of calculations carried
- out by the functions of the math library, but also significantly
- reduces the size of the libm.
- This option group is useful for systems that do not rely on precise
- floating point math.
-
config OPTION_EGLIBC_LOCALES
bool "Locale definitions"
help
Index: configure.in
===================================================================
--- configure.in (revision 23089)
+++ configure.in (working copy)
@@ -796,11 +796,6 @@
# We have now validated the configuration.
-# Peek into option-groups.config to check if sysdeps/ieee754/[l]dbl-wrap needs
-# to be included into $sysnames.
-grep "OPTION_EGLIBC_LIBM_BIG = n" option-groups.config > /dev/null 2>&1
-use_dbl_wrap=$?
-
# Expand the list of system names into a full list of directories
# from each element's parent name and Implies file (if present).
set $sysnames
@@ -835,14 +830,6 @@
for x in $implied_candidate; do
found=no
if test -d $xsrcdir$name_base/$x; then
- # If !OPTION_EGLIBC_LIBM_BIG, add ieee754/dbl-wrap just before
- # ieee754/dbl-64.
- if test "$use_dbl_wrap" = "0"; then
- case $x in
- ieee754/dbl-64) eval "${implies_type}=\"\$${implies_type} \$name_base/ieee754/dbl-wrap\"" ;;
- ieee754/ldbl-*) eval "${implies_type}=\"\$${implies_type} \$name_base/ieee754/ldbl-wrap\"" ;;
- esac
- fi
eval "${implies_type}=\"\$${implies_type} \$name_base/\$x\""
found=yes
fi
@@ -856,16 +843,6 @@
echo "[DEBUG]: $name $implies_file $x try($d) {$try_srcdir}$try" >&2
if test $try != $xsrcdir$name_base/$x && test -d $try_srcdir$try;
then
- # If !OPTION_EGLIBC_LIBM_BIG, add ieee754/dbl-wrap just before
- # ieee754/dbl-64.
- if test "$use_dbl_wrap" = "0"; then
- case $try in
- sysdeps/ieee754/dbl-64)
- eval "${implies_type}=\"\$${implies_type} sysdeps/ieee754/dbl-wrap\"" ;;
- sysdeps/ieee754/ldbl-*)
- eval "${implies_type}=\"\$${implies_type} sysdeps/ieee754/ldbl-wrap\"" ;;
- esac
- fi
eval "${implies_type}=\"\$${implies_type} \$try\""
found=yes
case "$sysnames_add_ons" in
Index: option-groups.defaults
===================================================================
--- option-groups.defaults (revision 23089)
+++ option-groups.defaults (working copy)
@@ -28,7 +28,6 @@
OPTION_EGLIBC_INET = y
OPTION_EGLIBC_INET_ANL = y
OPTION_EGLIBC_LIBM = y
-OPTION_EGLIBC_LIBM_BIG = y
OPTION_EGLIBC_LOCALES = y
OPTION_EGLIBC_LOCALE_CODE = y
OPTION_EGLIBC_MEMUSAGE = y
Index: math/test-dbl-wrap.c
===================================================================
--- math/test-dbl-wrap.c (revision 23089)
+++ math/test-dbl-wrap.c (working copy)
@@ -1,110 +0,0 @@
-#include <math.h>
-#include <stdio.h>
-
-#define N 4
-
-static int
-do_test (int argc, char *argv[])
-{
- int i;
- int result = 0;
-
- const double eps = 0.01, pi = 3.14;
- const double sin_data[N][2]
- = {{0.0, 0.0}, {pi / 6, 0.5}, {pi / 4, 0.707}, {pi / 3, 0.866}};
- const double exp_data[N][2]
- = {{0.0, 1.0}, {0.5, 1.649}, {1.0, 2.718}, {2.718, 15.150}};
-
- for (i = 0; i < N; ++i)
- {
- double x, y;
- double s1, c1, t1, e1;
- double s2, c2, t2, as2, ac2, at2, e2, l2;
-
- x = sin_data[i][0];
- s1 = sin_data[i][1];
- c1 = sqrt (1 - s1 * s1);
- t1 = s1 / c1;
-
- s2 = sin (x);
- c2 = cos (x);
- t2 = tan (x);
- as2 = asin (s1);
- ac2 = acos (c1);
- at2 = atan (t1);
-
- y = exp_data[i][0];
- e1 = exp_data[i][1];
-
- e2 = exp (y);
- l2 = log (e1);
-
- if (fabs (s1 - s2) > eps)
- {
- result |= 1;
-#if PRINT
- printf ("sin(%.3lf) = %.3lf\n", x, s2);
-#endif
- }
-
- if (fabs (c1 - c2) > eps)
- {
- result |= 2;
-#if PRINT
- printf ("cos(%.3lf) = %.3lf\n", x, c2);
-#endif
- }
-
- if (fabs (t1 - t2) > eps)
- {
- result |= 4;
-#if PRINT
- printf ("tan(%.3lf) = %.3lf\n", x, t2);
-#endif
- }
-
- if (fabs (x - as2) > eps)
- {
- result |= 8;
-#if PRINT
- printf ("asin(%.3lf) = %.3lf\n", s1, as2);
-#endif
- }
-
- if (fabs (x - ac2) > eps)
- {
- result |= 16;
-#if PRINT
- printf ("acos(%.3lf) = %.3lf\n", c1, ac2);
-#endif
- }
-
- if (fabs (x - at2) > eps)
- {
- result |= 32;
-#if PRINT
- printf ("atan(%.3lf) = %.3lf\n", t1, at2);
-#endif
- }
-
- if (fabs (e1 - e2) > eps)
- {
- result |= 64;
-#if PRINT
- printf ("exp(%.3lf) = %.3lf\n", y, e2);
-#endif
- }
-
- if (fabs (y - l2) > eps)
- {
- result |= 128;
-#if PRINT
- printf ("log(%.3lf) = %.3lf\n", e1, l2);
-#endif
- }
- }
-
- return result;
-}
-
-#include "../test-skeleton.c"
Index: math/Makefile
===================================================================
--- math/Makefile (revision 23089)
+++ math/Makefile (working copy)
@@ -87,11 +87,10 @@
long-c-yes = $(calls:=l)
# Rules for the test suite.
-tests = test-matherr test-fenv basic-test \
+tests = test-matherr test-fenv atest-exp atest-sincos atest-exp2 basic-test \
test-misc test-fpucw tst-definitions test-tgmath test-tgmath-ret \
- bug-nextafter bug-nexttoward bug-tgmath1 test-tgmath-int test-tgmath2 \
- test-dbl-wrap test-powl tst-CMPLX tst-CMPLX2 test-snan
-tests-$(OPTION_EGLIBC_LIBM_BIG) += atest-exp atest-sincos atest-exp2
+ bug-nextafter bug-nexttoward bug-tgmath1 test-tgmath-int \
+ test-tgmath2 test-powl tst-CMPLX tst-CMPLX2 test-snan
# We do the `long double' tests only if this data type is available and
# distinct from `double'.
test-longdouble-yes = test-ldouble test-ildoubl
@@ -112,12 +111,9 @@
$(addprefix $(objpfx), $(libm-tests-generated)): $(objpfx)libm-test.stmp
-ifeq (n,$(OPTION_EGLIBC_LIBM_BIG))
-default_ulp = -d 1
-endif
$(objpfx)libm-test.stmp: $(ulps-file) libm-test.inc gen-libm-test.pl
$(make-target-directory)
- $(PERL) gen-libm-test.pl -u $< $(default_ulp) -o "$(objpfx)"
+ $(PERL) gen-libm-test.pl -u $< -o "$(objpfx)"
@echo > $@
$(objpfx)test-float.o: $(objpfx)libm-test.stmp
Index: math/libm-test.inc
===================================================================
--- math/libm-test.inc (revision 23089)
+++ math/libm-test.inc (working copy)
@@ -132,7 +132,6 @@
#include <string.h>
#include <argp.h>
#include <tininess.h>
-#include <gnu/option-groups.h>
/* Allow platforms without all rounding modes to test properly,
assuming they provide an __FE_UNDEFINED in <bits/fenv.h> which
@@ -247,15 +246,8 @@
__retval; })
-#if __OPTION_EGLIBC_LIBM_BIG
#define MANT_DIG CHOOSE ((LDBL_MANT_DIG-1), (DBL_MANT_DIG-1), (FLT_MANT_DIG-1), \
(LDBL_MANT_DIG-1), (DBL_MANT_DIG-1), (FLT_MANT_DIG-1))
-#else
-/* Reduce precision to which the results are checked against
- expected values. */
-#define MANT_DIG CHOOSE ((FLT_MANT_DIG-3), (FLT_MANT_DIG-4), (FLT_MANT_DIG-1), \
- (FLT_MANT_DIG-3), (FLT_MANT_DIG-4), (FLT_MANT_DIG-1))
-#endif
static void
init_max_error (void)
@@ -6823,12 +6815,7 @@
#ifdef TEST_LDOUBLE
/* The result can only be represented in long double. */
# if LDBL_MIN_10_EXP < -319
-# if __OPTION_EGLIBC_LIBM_BIG
TEST_f_f (erfc, 27.0L, 0.523704892378925568501606768284954709e-318L);
-# else
- /* ldbl-wrap uses single-precision erfc, so it can't handle e-318 values. */
- TEST_f_f (erfc, 27.0L, 0.0L);
-# endif
# endif
# if LDBL_MANT_DIG >= 106
TEST_f_f (erfc, 0x1.ffff56789abcdef0123456789a8p+2L, 1.123161416304655390092138725253789378459e-29L);
Index: math/gen-libm-test.pl
===================================================================
--- math/gen-libm-test.pl (revision 23089)
+++ math/gen-libm-test.pl (working copy)
@@ -47,7 +47,7 @@
use vars qw (@tests @functions);
use vars qw ($count);
use vars qw (%beautify @all_floats);
-use vars qw ($output_dir $ulps_file $default_ulp);
+use vars qw ($output_dir $ulps_file);
# all_floats is sorted and contains all recognised float types
@all_floats = ('double', 'float', 'idouble',
@@ -85,12 +85,11 @@
# h: help
# o: output-directory
# n: generate new ulps file
-use vars qw($opt_u $opt_h $opt_o $opt_n $opt_d);
-getopts('u:o:d:nh');
+use vars qw($opt_u $opt_h $opt_o $opt_n);
+getopts('u:o:nh');
$ulps_file = 'libm-test-ulps';
$output_dir = '';
-$default_ulp = '0';
if ($opt_h) {
print "Usage: gen-libm-test.pl [OPTIONS]\n";
@@ -98,13 +97,11 @@
print " -o DIR directory where generated files will be placed\n";
print " -n only generate sorted file NewUlps from libm-test-ulps\n";
print " -u FILE input file with ulps\n";
- print " -d NUM set the default value for ulp to NUM\n";
exit 0;
}
$ulps_file = $opt_u if ($opt_u);
$output_dir = $opt_o if ($opt_o);
-$default_ulp = $opt_d if ($opt_d);
$input = "libm-test.inc";
$output = "${output_dir}libm-test.c";
@@ -458,11 +455,7 @@
if (exists $results{$fct}{'has_ulps'}) {
$line .= "DELTA$fct";
} else {
- if ($type eq 'complex') {
- $line .= "BUILD_COMPLEX ($default_ulp, $default_ulp)";
- } else {
- $line .= "$default_ulp";
- }
+ $line .= '0';
}
if (exists $results{$fct}{'has_fails'}) {
$line .= ", FAIL$fct";
@@ -641,21 +634,22 @@
if ($type eq 'complex') {
my ($res);
+ # Return 0 instead of BUILD_COMPLEX (0,0)
if (!exists $results{$test}{'real'}{'ulp'}{$float} &&
!exists $results{$test}{'imag'}{'ulp'}{$float}) {
- return "BUILD_COMPLEX ($default_ulp, $default_ulp)";
+ return "0";
}
$res = 'BUILD_COMPLEX (';
$res .= (exists $results{$test}{'real'}{'ulp'}{$float}
- ? $results{$test}{'real'}{'ulp'}{$float} : "$default_ulp");
+ ? $results{$test}{'real'}{'ulp'}{$float} : "0");
$res .= ', ';
$res .= (exists $results{$test}{'imag'}{'ulp'}{$float}
- ? $results{$test}{'imag'}{'ulp'}{$float} : "$default_ulp");
+ ? $results{$test}{'imag'}{'ulp'}{$float} : "0");
$res .= ')';
return $res;
}
return (exists $results{$test}{'normal'}{'ulp'}{$float}
- ? $results{$test}{'normal'}{'ulp'}{$float} : "$default_ulp");
+ ? $results{$test}{'normal'}{'ulp'}{$float} : "0");
}
sub get_failure {
Index: ChangeLog.eglibc
===================================================================
--- ChangeLog.eglibc (revision 23089)
+++ ChangeLog.eglibc (working copy)
@@ -1,5 +1,22 @@
2013-05-17 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+ * configure.in, math/Makefile, math/gen-libm-test.pl,
+ math/libm-test.inc, option-groups.def, option-groups.defaults,
+ sysdeps/ieee754/ldbl-128/s_erfl.c,
+ sysdeps/ieee754/ldbl-128/s_log1pl.c,
+ sysdeps/ieee754/ldbl-128ibm/s_erfl.c,
+ sysdeps/ieee754/ldbl-128ibm/s_log1pl.c,
+ sysdeps/ieee754/ldbl-96/s_erfl.c,
+ sysdeps/ieee754/ldbl-opt/s_atan.c,
+ sysdeps/ieee754/ldbl-opt/s_sin.c,
+ sysdeps/ieee754/ldbl-opt/s_tan.c: Revert OPTION_EGLIBC_LIBM_BIG
+ support.
+ * configure: Regenerated.
+ * math/test-dbl-wrap.c, sysdeps/ieee754/dbl-wrap,
+ sysdeps/ieee754/ldbl-wrap: Remove.
+
+2013-05-17 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
* math/complex.h, math/math.h: Revert differences from glibc.
2012-11-17 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
Index: configure
===================================================================
--- configure (revision 23089)
+++ configure (working copy)
@@ -4181,11 +4181,6 @@
# We have now validated the configuration.
-# Peek into option-groups.config to check if sysdeps/ieee754/[l]dbl-wrap needs
-# to be included into $sysnames.
-grep "OPTION_EGLIBC_LIBM_BIG = n" option-groups.config > /dev/null 2>&1
-use_dbl_wrap=$?
-
# Expand the list of system names into a full list of directories
# from each element's parent name and Implies file (if present).
set $sysnames
@@ -4220,14 +4215,6 @@
for x in $implied_candidate; do
found=no
if test -d $xsrcdir$name_base/$x; then
- # If !OPTION_EGLIBC_LIBM_BIG, add ieee754/dbl-wrap just before
- # ieee754/dbl-64.
- if test "$use_dbl_wrap" = "0"; then
- case $x in
- ieee754/dbl-64) eval "${implies_type}=\"\$${implies_type} \$name_base/ieee754/dbl-wrap\"" ;;
- ieee754/ldbl-*) eval "${implies_type}=\"\$${implies_type} \$name_base/ieee754/ldbl-wrap\"" ;;
- esac
- fi
eval "${implies_type}=\"\$${implies_type} \$name_base/\$x\""
found=yes
fi
@@ -4241,16 +4228,6 @@
echo "DEBUG: $name $implies_file $x try($d) {$try_srcdir}$try" >&2
if test $try != $xsrcdir$name_base/$x && test -d $try_srcdir$try;
then
- # If !OPTION_EGLIBC_LIBM_BIG, add ieee754/dbl-wrap just before
- # ieee754/dbl-64.
- if test "$use_dbl_wrap" = "0"; then
- case $try in
- sysdeps/ieee754/dbl-64)
- eval "${implies_type}=\"\$${implies_type} sysdeps/ieee754/dbl-wrap\"" ;;
- sysdeps/ieee754/ldbl-*)
- eval "${implies_type}=\"\$${implies_type} sysdeps/ieee754/ldbl-wrap\"" ;;
- esac
- fi
eval "${implies_type}=\"\$${implies_type} \$try\""
found=yes
case "$sysnames_add_ons" in
Index: sysdeps/ieee754/ldbl-128ibm/s_log1pl.c
===================================================================
--- sysdeps/ieee754/ldbl-128ibm/s_log1pl.c (revision 23089)
+++ sysdeps/ieee754/ldbl-128ibm/s_log1pl.c (working copy)
@@ -56,10 +56,7 @@
#include <math.h>
#include <math_private.h>
#include <math_ldbl_opt.h>
-#include <gnu/option-groups.h>
-#if __OPTION_EGLIBC_LIBM_BIG
-
/* Coefficients for log(1+x) = x - x^2 / 2 + x^3 P(x)/Q(x)
* 1/sqrt(2) <= 1+x < sqrt(2)
* Theoretical peak relative error = 5.3e-37,
@@ -251,8 +248,4 @@
return (z);
}
-#else /* !__OPTION_EGLIBC_LIBM_BIG */
-# include <sysdeps/ieee754/ldbl-wrap/s_log1pl-wrap.c>
-#endif /* __OPTION_EGLIBC_LIBM_BIG */
-
long_double_symbol (libm, __log1pl, log1pl);
Index: sysdeps/ieee754/ldbl-128ibm/s_erfl.c
===================================================================
--- sysdeps/ieee754/ldbl-128ibm/s_erfl.c (revision 23089)
+++ sysdeps/ieee754/ldbl-128ibm/s_erfl.c (working copy)
@@ -104,10 +104,7 @@
#include <math.h>
#include <math_private.h>
#include <math_ldbl_opt.h>
-#include <gnu/option-groups.h>
-#if __OPTION_EGLIBC_LIBM_BIG
-
/* Evaluate P[n] x^n + P[n-1] x^(n-1) + ... + P[0] */
static long double
@@ -957,9 +954,4 @@
}
}
-#else /* !__OPTION_EGLIBC_LIBM_BIG */
-# include <sysdeps/ieee754/ldbl-wrap/s_erfl-wrap.c>
-long_double_symbol (libm, __erfl, erfl);
-#endif /* __OPTION_EGLIBC_LIBM_BIG */
-
long_double_symbol (libm, __erfcl, erfcl);
Index: sysdeps/ieee754/ldbl-opt/s_tan.c
===================================================================
--- sysdeps/ieee754/ldbl-opt/s_tan.c (revision 23089)
+++ sysdeps/ieee754/ldbl-opt/s_tan.c (working copy)
@@ -1,10 +1,5 @@
#include <math_ldbl_opt.h>
-#include <gnu/option-groups.h>
-#if __OPTION_EGLIBC_LIBM_BIG
-# include <sysdeps/ieee754/dbl-64/s_tan.c>
-#else
-# include <sysdeps/ieee754/dbl-wrap/s_tan.c>
-#endif
+#include <sysdeps/ieee754/dbl-64/s_tan.c>
#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
compat_symbol (libm, tan, tanl, GLIBC_2_0);
#endif
Index: sysdeps/ieee754/ldbl-opt/s_sin.c
===================================================================
--- sysdeps/ieee754/ldbl-opt/s_sin.c (revision 23089)
+++ sysdeps/ieee754/ldbl-opt/s_sin.c (working copy)
@@ -1,14 +1,9 @@
/* dbl-64/s_sin.c uses NAN and sincos identifiers internally. */
#define sincos sincos_disable
#include <math_ldbl_opt.h>
-#include <gnu/option-groups.h>
#undef NAN
#undef sincos
-#if __OPTION_EGLIBC_LIBM_BIG
-# include <sysdeps/ieee754/dbl-64/s_sin.c>
-#else
-# include <sysdeps/ieee754/dbl-wrap/s_sin.c>
-#endif
+#include <sysdeps/ieee754/dbl-64/s_sin.c>
#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
compat_symbol (libm, __sin, sinl, GLIBC_2_0);
compat_symbol (libm, __cos, cosl, GLIBC_2_0);
Index: sysdeps/ieee754/ldbl-opt/s_atan.c
===================================================================
--- sysdeps/ieee754/ldbl-opt/s_atan.c (revision 23089)
+++ sysdeps/ieee754/ldbl-opt/s_atan.c (working copy)
@@ -1,10 +1,5 @@
#include <math_ldbl_opt.h>
-#include <gnu/option-groups.h>
-#if __OPTION_EGLIBC_LIBM_BIG
-# include <sysdeps/ieee754/dbl-64/s_atan.c>
-#else
-# include <sysdeps/ieee754/dbl-wrap/s_atan.c>
-#endif
+#include <sysdeps/ieee754/dbl-64/s_atan.c>
#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
compat_symbol (libm, atan, atanl, GLIBC_2_0);
#endif
Index: sysdeps/ieee754/ldbl-wrap/e_asinl.c
===================================================================
--- sysdeps/ieee754/ldbl-wrap/e_asinl.c (revision 23089)
+++ sysdeps/ieee754/ldbl-wrap/e_asinl.c (working copy)
@@ -1,9 +0,0 @@
-#include "ldbl-wrap.h"
-
-wrap_type_t WRAP_FUNC (__ieee754_asin) (wrap_type_t);
-
-long double
-__ieee754_asinl (long double x)
-{
- return (long double) WRAP_FUNC (__ieee754_asin) ((wrap_type_t) x);
-}
Index: sysdeps/ieee754/ldbl-wrap/e_j1l.c
===================================================================
--- sysdeps/ieee754/ldbl-wrap/e_j1l.c (revision 23089)
+++ sysdeps/ieee754/ldbl-wrap/e_j1l.c (working copy)
@@ -1,17 +0,0 @@
-#include "ldbl-wrap.h"
-
-wrap_type_t WRAP_FUNC (__ieee754_j1) (wrap_type_t);
-
-long double
-__ieee754_j1l (long double x)
-{
- return (long double) WRAP_FUNC (__ieee754_j1) ((wrap_type_t) x);
-}
-
-wrap_type_t WRAP_FUNC (__ieee754_y1) (wrap_type_t);
-
-long double
-__ieee754_y1l (long double x)
-{
- return (long double) WRAP_FUNC (__ieee754_y1) ((wrap_type_t) x);
-}
Index: sysdeps/ieee754/ldbl-wrap/e_expl.c
===================================================================
--- sysdeps/ieee754/ldbl-wrap/e_expl.c (revision 23089)
+++ sysdeps/ieee754/ldbl-wrap/e_expl.c (working copy)
@@ -1,9 +0,0 @@
-#include "ldbl-wrap.h"
-
-wrap_type_t WRAP_FUNC (__ieee754_exp) (wrap_type_t);
-
-long double
-__ieee754_expl (long double x)
-{
- return (long double) WRAP_FUNC (__ieee754_exp) ((wrap_type_t) x);
-}
Index: sysdeps/ieee754/ldbl-wrap/e_lgammal_r.c
===================================================================
--- sysdeps/ieee754/ldbl-wrap/e_lgammal_r.c (revision 23089)
+++ sysdeps/ieee754/ldbl-wrap/e_lgammal_r.c (working copy)
@@ -1,9 +0,0 @@
-#include "ldbl-wrap.h"
-
-wrap_type_t WRAP_FUNC2 (__ieee754_lgamma, _r) (wrap_type_t, int *);
-
-long double
-__ieee754_lgammal_r (long double x, int *s)
-{
- return (long double) WRAP_FUNC2 (__ieee754_lgamma, _r) ((wrap_type_t) x, s);
-}
Index: sysdeps/ieee754/ldbl-wrap/s_erfl-wrap.c
===================================================================
--- sysdeps/ieee754/ldbl-wrap/s_erfl-wrap.c (revision 23089)
+++ sysdeps/ieee754/ldbl-wrap/s_erfl-wrap.c (working copy)
@@ -1,17 +0,0 @@
-#include "ldbl-wrap.h"
-
-wrap_type_t WRAP_FUNC (__erf) (wrap_type_t);
-
-long double
-__erfl (long double x)
-{
- return (long double) WRAP_FUNC (__erf) ((wrap_type_t) x);
-}
-
-wrap_type_t WRAP_FUNC (__erfc) (wrap_type_t);
-
-long double
-__erfcl (long double x)
-{
- return (long double) WRAP_FUNC (__erfc) ((wrap_type_t) x);
-}
Index: sysdeps/ieee754/ldbl-wrap/e_acosl.c
===================================================================
--- sysdeps/ieee754/ldbl-wrap/e_acosl.c (revision 23089)
+++ sysdeps/ieee754/ldbl-wrap/e_acosl.c (working copy)
@@ -1,9 +0,0 @@
-#include "ldbl-wrap.h"
-
-wrap_type_t WRAP_FUNC (__ieee754_acos) (wrap_type_t);
-
-long double
-__ieee754_acosl (long double x)
-{
- return (long double) WRAP_FUNC (__ieee754_acos) ((wrap_type_t) x);
-}
Index: sysdeps/ieee754/ldbl-wrap/e_powl.c
===================================================================
--- sysdeps/ieee754/ldbl-wrap/e_powl.c (revision 23089)
+++ sysdeps/ieee754/ldbl-wrap/e_powl.c (working copy)
@@ -1,10 +0,0 @@
-#include "ldbl-wrap.h"
-
-wrap_type_t WRAP_FUNC (__ieee754_pow) (wrap_type_t, wrap_type_t);
-
-long double
-__ieee754_powl (long double x, long double y)
-{
- return (long double) WRAP_FUNC (__ieee754_pow) ((wrap_type_t) x,
- (wrap_type_t) y);
-}
Index: sysdeps/ieee754/ldbl-wrap/s_log1pl-wrap.c
===================================================================
--- sysdeps/ieee754/ldbl-wrap/s_log1pl-wrap.c (revision 23089)
+++ sysdeps/ieee754/ldbl-wrap/s_log1pl-wrap.c (working copy)
@@ -1,9 +0,0 @@
-#include "ldbl-wrap.h"
-
-wrap_type_t WRAP_FUNC (__log1p) (wrap_type_t);
-
-long double
-__log1pl (long double x)
-{
- return (long double) WRAP_FUNC (__log1p) ((wrap_type_t) x);
-}
Index: sysdeps/ieee754/ldbl-wrap/e_j0l.c
===================================================================
--- sysdeps/ieee754/ldbl-wrap/e_j0l.c (revision 23089)
+++ sysdeps/ieee754/ldbl-wrap/e_j0l.c (working copy)
@@ -1,17 +0,0 @@
-#include "ldbl-wrap.h"
-
-wrap_type_t WRAP_FUNC (__ieee754_j0) (wrap_type_t);
-
-long double
-__ieee754_j0l (long double x)
-{
- return (long double) WRAP_FUNC (__ieee754_j0) ((wrap_type_t) x);
-}
-
-wrap_type_t WRAP_FUNC (__ieee754_y0) (wrap_type_t);
-
-long double
-__ieee754_y0l (long double x)
-{
- return (long double) WRAP_FUNC (__ieee754_y0) ((wrap_type_t) x);
-}
Index: sysdeps/ieee754/ldbl-wrap/ldbl-wrap.h
===================================================================
--- sysdeps/ieee754/ldbl-wrap/ldbl-wrap.h (revision 23089)
+++ sysdeps/ieee754/ldbl-wrap/ldbl-wrap.h (working copy)
@@ -1,3 +0,0 @@
-typedef float wrap_type_t;
-#define WRAP_FUNC(func) func ## f
-#define WRAP_FUNC2(func, suffix) func ## f ## suffix
Index: sysdeps/ieee754/ldbl-128/s_log1pl.c
===================================================================
--- sysdeps/ieee754/ldbl-128/s_log1pl.c (revision 23089)
+++ sysdeps/ieee754/ldbl-128/s_log1pl.c (working copy)
@@ -55,10 +55,7 @@
#include <math.h>
#include <math_private.h>
-#include <gnu/option-groups.h>
-#if __OPTION_EGLIBC_LIBM_BIG
-
/* Coefficients for log(1+x) = x - x^2 / 2 + x^3 P(x)/Q(x)
* 1/sqrt(2) <= 1+x < sqrt(2)
* Theoretical peak relative error = 5.3e-37,
@@ -254,8 +251,4 @@
return (z);
}
-#else /* !__OPTION_EGLIBC_LIBM_BIG */
-# include <sysdeps/ieee754/ldbl-wrap/s_log1pl-wrap.c>
-#endif /* __OPTION_EGLIBC_LIBM_BIG */
-
weak_alias (__log1pl, log1pl)
Index: sysdeps/ieee754/ldbl-128/s_erfl.c
===================================================================
--- sysdeps/ieee754/ldbl-128/s_erfl.c (revision 23089)
+++ sysdeps/ieee754/ldbl-128/s_erfl.c (working copy)
@@ -98,10 +98,7 @@
#include <math.h>
#include <math_private.h>
-#include <gnu/option-groups.h>
-#if __OPTION_EGLIBC_LIBM_BIG
-
/* Evaluate P[n] x^n + P[n-1] x^(n-1) + ... + P[0] */
static long double
@@ -934,9 +931,4 @@
}
}
-#else /* !__OPTION_EGLIBC_LIBM_BIG */
-# include <sysdeps/ieee754/ldbl-wrap/s_erfl-wrap.c>
-weak_alias (__erfl, erfl)
-#endif /* __OPTION_EGLIBC_LIBM_BIG */
-
weak_alias (__erfcl, erfcl)
Index: sysdeps/ieee754/dbl-wrap/e_exp2.c
===================================================================
--- sysdeps/ieee754/dbl-wrap/e_exp2.c (revision 23089)
+++ sysdeps/ieee754/dbl-wrap/e_exp2.c (working copy)
@@ -1,9 +0,0 @@
-#include "dbl-wrap.h"
-
-wrap_type_t WRAP_FUNC (__ieee754_exp2) (wrap_type_t);
-
-double
-__ieee754_exp2 (double x)
-{
- return (double) WRAP_FUNC (__ieee754_exp2) ((wrap_type_t) x);
-}
Index: sysdeps/ieee754/dbl-wrap/s_tan.c
===================================================================
--- sysdeps/ieee754/dbl-wrap/s_tan.c (revision 23089)
+++ sysdeps/ieee754/dbl-wrap/s_tan.c (working copy)
@@ -1,13 +0,0 @@
-#include "dbl-wrap.h"
-
-wrap_type_t WRAP_FUNC (tan) (wrap_type_t);
-
-double
-tan (double x)
-{
- return (double) WRAP_FUNC (tan) ((wrap_type_t) x);
-}
-
-#ifdef NO_LONG_DOUBLE
-weak_alias (tan, tanl)
-#endif
Index: sysdeps/ieee754/dbl-wrap/e_log.c
===================================================================
--- sysdeps/ieee754/dbl-wrap/e_log.c (revision 23089)
+++ sysdeps/ieee754/dbl-wrap/e_log.c (working copy)
@@ -1,8 +0,0 @@
-#include "dbl-wrap.h"
-
-wrap_type_t WRAP_FUNC (__ieee754_log) (wrap_type_t);
-
-double __ieee754_log (double x)
-{
- return (double) WRAP_FUNC (__ieee754_log) ((wrap_type_t) x);
-}
Index: sysdeps/ieee754/dbl-wrap/s_atan.c
===================================================================
--- sysdeps/ieee754/dbl-wrap/s_atan.c (revision 23089)
+++ sysdeps/ieee754/dbl-wrap/s_atan.c (working copy)
@@ -1,13 +0,0 @@
-#include "dbl-wrap.h"
-
-wrap_type_t WRAP_FUNC (atan) (wrap_type_t);
-
-double
-atan (double x)
-{
- return (double) WRAP_FUNC (atan) ((wrap_type_t) x);
-}
-
-#ifdef NO_LONG_DOUBLE
-weak_alias (atan, atanl)
-#endif
Index: sysdeps/ieee754/dbl-wrap/e_atan2.c
===================================================================
--- sysdeps/ieee754/dbl-wrap/e_atan2.c (revision 23089)
+++ sysdeps/ieee754/dbl-wrap/e_atan2.c (working copy)
@@ -1,9 +0,0 @@
-#include "dbl-wrap.h"
-
-wrap_type_t WRAP_FUNC (__ieee754_atan2) (wrap_type_t, wrap_type_t);
-
-double
-__ieee754_atan2 (double y, double x)
-{
- return (double) WRAP_FUNC (__ieee754_atan2) ((wrap_type_t) y, (wrap_type_t) x);
-}
Index: sysdeps/ieee754/dbl-wrap/e_pow.c
===================================================================
--- sysdeps/ieee754/dbl-wrap/e_pow.c (revision 23089)
+++ sysdeps/ieee754/dbl-wrap/e_pow.c (working copy)
@@ -1,9 +0,0 @@
-#include "dbl-wrap.h"
-
-wrap_type_t WRAP_FUNC (__ieee754_pow) (wrap_type_t, wrap_type_t);
-
-double
-__ieee754_pow (double x, double y)
-{
- return (double) WRAP_FUNC (__ieee754_pow) ((wrap_type_t) x, (wrap_type_t) y);
-}
Index: sysdeps/ieee754/dbl-wrap/s_sin.c
===================================================================
--- sysdeps/ieee754/dbl-wrap/s_sin.c (revision 23089)
+++ sysdeps/ieee754/dbl-wrap/s_sin.c (working copy)
@@ -1,27 +0,0 @@
-#include "dbl-wrap.h"
-
-wrap_type_t WRAP_FUNC (__sin) (wrap_type_t);
-
-double
-__sin (double x)
-{
- return (double) WRAP_FUNC (__sin) ((wrap_type_t) x);
-}
-
-wrap_type_t WRAP_FUNC (__cos) (wrap_type_t);
-
-double
-__cos (double x)
-{
- return (double) WRAP_FUNC (__cos) ((wrap_type_t) x);
-}
-
-weak_alias (__cos, cos)
-weak_alias (__sin, sin)
-
-#ifdef NO_LONG_DOUBLE
-strong_alias (__sin, __sinl)
-weak_alias (__sin, sinl)
-strong_alias (__cos, __cosl)
-weak_alias (__cos, cosl)
-#endif
Index: sysdeps/ieee754/dbl-wrap/dbl-wrap.h
===================================================================
--- sysdeps/ieee754/dbl-wrap/dbl-wrap.h (revision 23089)
+++ sysdeps/ieee754/dbl-wrap/dbl-wrap.h (working copy)
@@ -1,2 +0,0 @@
-typedef float wrap_type_t;
-#define WRAP_FUNC(func) func ## f
Index: sysdeps/ieee754/dbl-wrap/e_asin.c
===================================================================
--- sysdeps/ieee754/dbl-wrap/e_asin.c (revision 23089)
+++ sysdeps/ieee754/dbl-wrap/e_asin.c (working copy)
@@ -1,17 +0,0 @@
-#include "dbl-wrap.h"
-
-wrap_type_t WRAP_FUNC (__ieee754_asin) (wrap_type_t);
-
-double
-__ieee754_asin (double x)
-{
- return (double) WRAP_FUNC (__ieee754_asin) ((wrap_type_t) x);
-}
-
-wrap_type_t WRAP_FUNC (__ieee754_acos) (wrap_type_t);
-
-double
-__ieee754_acos (double x)
-{
- return (double) WRAP_FUNC (__ieee754_acos) ((wrap_type_t) x);
-}
Index: sysdeps/ieee754/dbl-wrap/e_exp.c
===================================================================
--- sysdeps/ieee754/dbl-wrap/e_exp.c (revision 23089)
+++ sysdeps/ieee754/dbl-wrap/e_exp.c (working copy)
@@ -1,9 +0,0 @@
-#include "dbl-wrap.h"
-
-wrap_type_t WRAP_FUNC (__ieee754_exp) (wrap_type_t);
-
-double
-__ieee754_exp (double x)
-{
- return (double) WRAP_FUNC (__ieee754_exp) ((wrap_type_t) x);
-}
Index: sysdeps/ieee754/dbl-wrap/dosincos.c
===================================================================
--- sysdeps/ieee754/dbl-wrap/dosincos.c (revision 23089)
+++ sysdeps/ieee754/dbl-wrap/dosincos.c (working copy)
@@ -1 +0,0 @@
-/* empty */
Index: sysdeps/ieee754/ldbl-96/s_erfl.c
===================================================================
--- sysdeps/ieee754/ldbl-96/s_erfl.c (revision 23089)
+++ sysdeps/ieee754/ldbl-96/s_erfl.c (working copy)
@@ -106,10 +106,7 @@
#include <math.h>
#include <math_private.h>
-#include <gnu/option-groups.h>
-#if __OPTION_EGLIBC_LIBM_BIG
-
static const long double
tiny = 1e-4931L,
half = 0.5L,
@@ -438,9 +435,4 @@
}
}
-#else /* !__OPTION_EGLIBC_LIBM_BIG */
-# include <sysdeps/ieee754/ldbl-wrap/s_erfl-wrap.c>
-weak_alias (__erfl, erfl)
-#endif /* __OPTION_EGLIBC_LIBM_BIG */
-
weak_alias (__erfcl, erfcl)
--
Joseph S. Myers
joseph@xxxxxxxxxxxxxxxx
_______________________________________________
Patches mailing list
Patches@xxxxxxxxxx
http://eglibc.org/cgi-bin/mailman/listinfo/patches