4
0
mirror of git://sourceware.org/git/newlib-cygwin.git synced 2025-02-18 23:12:15 +08:00

newlib: libm: integrate tests subdir

Integrate the old libm/test/ subdir into the main build.  It hasn't
been used in a long time causing the code to rot a bit.  I've fixed
some of those, but it still fails for many ports, so it's disabled
by default.  People who want to take a closer look can run:
$ make libm/test/test
This commit is contained in:
Mike Frysinger 2022-03-13 22:28:25 -04:00
parent 958833a0d3
commit fb42151a18
8 changed files with 317 additions and 216 deletions

View File

@ -6,8 +6,10 @@ ACLOCAL_AMFLAGS = -I . -I .. -I ../config
# Variables that will accumulate in subdirs.
CLEANFILES =
EXTRA_DIST =
EXTRA_PROGRAMS =
PHONY =
SUFFIXES =
check_PROGRAMS =
info_TEXINFOS =
noinst_DATA =
INSTALL_DATA_LOCAL =

File diff suppressed because one or more lines are too long

View File

@ -47,6 +47,7 @@ endif
include %D%/common/Makefile.inc
include %D%/complex/Makefile.inc
include %D%/fenv/Makefile.inc
include %D%/test/Makefile.inc
if HAVE_LIBM_MACHINE_AARCH64
include %D%/machine/aarch64/Makefile.inc

View File

@ -1,202 +0,0 @@
# Makefile for newlib/libm/test.
# Copyright (c) 1994, 2002 Red Hat Incorporated.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# The name of Red Hat Incorporated may not be used to endorse
# or promote products derived from this software without specific
# prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
TOP=..
SRCTOP=..
#### Host, target, and site specific Makefile fragments come in here.
###
OFILES=test.o string.o convert.o conv_vec.o iconv_vec.o test_is.o dvec.o sprint_vec.o sprint_ivec.o math2.o test_ieee.o
VEC_OFILES=\
math.o \
atan2_vec.o \
atan2f_vec.o \
jn_vec.o \
jnf_vec.o \
log2_vec.o \
log2f_vec.o \
yn_vec.o \
ynf_vec.o \
acos_vec.o \
acosf_vec.o \
acosh_vec.o \
acoshf_vec.o \
asin_vec.o \
asinf_vec.o \
asinh_vec.o \
asinhf_vec.o \
atan_vec.o \
atanf_vec.o \
atanh_vec.o \
atanhf_vec.o \
ceil_vec.o \
ceilf_vec.o \
cos_vec.o \
cosf_vec.o \
cosh_vec.o \
coshf_vec.o \
erf_vec.o \
erfc_vec.o \
erfcf_vec.o \
erff_vec.o \
exp_vec.o \
expf_vec.o \
fabs_vec.o \
fabsf_vec.o \
floor_vec.o \
floorf_vec.o \
gamma_vec.o \
gammaf_vec.o \
j0_vec.o \
j0f_vec.o \
j1_vec.o \
j1f_vec.o \
log10_vec.o \
log10f_vec.o \
log1p_vec.o \
log1pf_vec.o \
log_vec.o \
logf_vec.o \
sin_vec.o \
sinf_vec.o \
sinh_vec.o \
sinhf_vec.o \
sqrt_vec.o \
sqrtf_vec.o \
tan_vec.o \
tanf_vec.o \
tanh_vec.o \
tanhf_vec.o \
y0_vec.o \
y0f_vec.o \
y1_vec.o \
y1f_vec.o \
hypotf_vec.o \
hypot_vec.o \
fmod_vec.o \
fmodf_vec.o
all:$(OFILES) $(VEC_OFILES)
$(CROSS_LD) -o test ../../crt0.o $(OFILES) $(VEC_OFILES) ../../libc.a ../../libm.a
clean mostlyclean:
$(RM) $(OFILES) $(VEC_OFILES) *~
distclean maintainer-clean realclean: clean
rm -f Makefile config.status
Makefile:Makefile.in
$(SHELL) config.status
# to support SunOS VPATH
acos_vec.o: acos_vec.c
acosf_vec.o: acosf_vec.c
acosh_vec.o: acosh_vec.c
acoshf_vec.o: acoshf_vec.c
asin_vec.o: asin_vec.c
asinf_vec.o: asinf_vec.c
asinh_vec.o: asinh_vec.c
asinhf_vec.o: asinhf_vec.c
atan2_vec.o: atan2_vec.c
atan2f_vec.o: atan2f_vec.c
atan_vec.o: atan_vec.c
atanf_vec.o: atanf_vec.c
atanh_vec.o: atanh_vec.c
atanhf_vec.o: atanhf_vec.c
ceil_vec.o: ceil_vec.c
ceilf_vec.o: ceilf_vec.c
conv_vec.o: conv_vec.c
convert.o: convert.c
cos_vec.o: cos_vec.c
cosf_vec.o: cosf_vec.c
cosh_vec.o: cosh_vec.c
coshf_vec.o: coshf_vec.c
dcvt.o: dcvt.c
dvec.o: dvec.c
erf_vec.o: erf_vec.c
erfc_vec.o: erfc_vec.c
erfcf_vec.o: erfcf_vec.c
erff_vec.o: erff_vec.c
exp_vec.o: exp_vec.c
expf_vec.o: expf_vec.c
fabs_vec.o: fabs_vec.c
fabsf_vec.o: fabsf_vec.c
floor_vec.o: floor_vec.c
floorf_vec.o: floorf_vec.c
fmod_vec.o: fmod_vec.c
fmodf_vec.o: fmodf_vec.c
gamma_vec.o: gamma_vec.c
gammaf_vec.o: gammaf_vec.c
hypot_vec.o: hypot_vec.c
hypotf_vec.o: hypotf_vec.c
iconv_vec.o: iconv_vec.c
j0_vec.o: j0_vec.c
j0f_vec.o: j0f_vec.c
j1_vec.o: j1_vec.c
j1f_vec.o: j1f_vec.c
jn_vec.o: jn_vec.c
jnf_vec.o: jnf_vec.c
log10_vec.o: log10_vec.c
log10f_vec.o: log10f_vec.c
log1p_vec.o: log1p_vec.c
log1pf_vec.o: log1pf_vec.c
log2_vec.o: log2_vec.c
log2f_vec.o: log2f_vec.c
log_vec.o: log_vec.c
logf_vec.o: logf_vec.c
math.o: math.c
math2.o: math2.c
sin_vec.o: sin_vec.c
sinf_vec.o: sinf_vec.c
sinh_vec.o: sinh_vec.c
sinhf_vec.o: sinhf_vec.c
sprint_ivec.o: sprint_ivec.c
sprint_vec.o: sprint_vec.c
sqrt_vec.o: sqrt_vec.c
sqrtf_vec.o: sqrtf_vec.c
string.o: string.c
tan_vec.o: tan_vec.c
tanf_vec.o: tanf_vec.c
tanh_vec.o: tanh_vec.c
tanhf_vec.o: tanhf_vec.c
test.o: test.c
test_ieee.o: test_ieee.c
test_is.o: test_is.c
y0_vec.o: y0_vec.c
y0f_vec.o: y0f_vec.c
y1_vec.o: y1_vec.c
y1f_vec.o: y1f_vec.c
yn_vec.o: yn_vec.c
ynf_vec.o: ynf_vec.c

View File

@ -0,0 +1,85 @@
# Some of the tests in here depend on functionality that only a few ports
# provide. Disable building it by default until that's figured out.
#check_PROGRAMS += %D%/test
EXTRA_PROGRAMS += %D%/test
%C%_test_SOURCES = \
%D%/test.c \
%D%/string.c \
%D%/convert.c \
%D%/conv_vec.c \
%D%/iconv_vec.c \
%D%/test_is.c \
%D%/dvec.c \
%D%/sprint_vec.c \
%D%/sprint_ivec.c \
%D%/math2.c \
%D%/test_ieee.c \
%D%/math.c \
%D%/atan2_vec.c \
%D%/atan2f_vec.c \
%D%/jn_vec.c \
%D%/jnf_vec.c \
%D%/log2_vec.c \
%D%/log2f_vec.c \
%D%/yn_vec.c \
%D%/ynf_vec.c \
%D%/acos_vec.c \
%D%/acosf_vec.c \
%D%/acosh_vec.c \
%D%/acoshf_vec.c \
%D%/asin_vec.c \
%D%/asinf_vec.c \
%D%/asinh_vec.c \
%D%/asinhf_vec.c \
%D%/atan_vec.c \
%D%/atanf_vec.c \
%D%/atanh_vec.c \
%D%/atanhf_vec.c \
%D%/ceil_vec.c \
%D%/ceilf_vec.c \
%D%/cos_vec.c \
%D%/cosf_vec.c \
%D%/cosh_vec.c \
%D%/coshf_vec.c \
%D%/erf_vec.c \
%D%/erfc_vec.c \
%D%/erfcf_vec.c \
%D%/erff_vec.c \
%D%/exp_vec.c \
%D%/expf_vec.c \
%D%/fabs_vec.c \
%D%/fabsf_vec.c \
%D%/floor_vec.c \
%D%/floorf_vec.c \
%D%/gamma_vec.c \
%D%/gammaf_vec.c \
%D%/j0_vec.c \
%D%/j0f_vec.c \
%D%/j1_vec.c \
%D%/j1f_vec.c \
%D%/log10_vec.c \
%D%/log10f_vec.c \
%D%/log1p_vec.c \
%D%/log1pf_vec.c \
%D%/log_vec.c \
%D%/logf_vec.c \
%D%/sin_vec.c \
%D%/sinf_vec.c \
%D%/sinh_vec.c \
%D%/sinhf_vec.c \
%D%/sqrt_vec.c \
%D%/sqrtf_vec.c \
%D%/tan_vec.c \
%D%/tanf_vec.c \
%D%/tanh_vec.c \
%D%/tanhf_vec.c \
%D%/y0_vec.c \
%D%/y0f_vec.c \
%D%/y1_vec.c \
%D%/y1f_vec.c \
%D%/hypotf_vec.c \
%D%/hypot_vec.c \
%D%/fmod_vec.c \
%D%/fmodf_vec.c
%C%_test_LDADD = $(CRT0) libm.a libc.a

View File

@ -24,15 +24,11 @@
#include <errno.h>
#include <stdio.h>
int inacc;
int merror;
double mretval = 64;
int traperror = 1;
char *mname;
int verbose;
void translate_to (FILE *file,
double r)
{
@ -101,7 +97,6 @@ thedouble (long msw,
}
int calc;
int reduce;
frontline (FILE *f,
@ -171,7 +166,6 @@ finish (FILE *f,
frontline(f, mag, p, result, merror, errno, args , name);
}
}
int redo;
run_vector_1 (int vector,
one_line_type *p,

View File

@ -7,6 +7,11 @@
#include <ieeefp.h>
#include <stdio.h>
extern int inacc;
extern int redo;
extern int reduce;
extern int verbose;
void checkf();
void enter();

View File

@ -1930,7 +1930,6 @@ int def_toascii (int i) { return toascii(i); }
int def__tolower (int i) { return _tolower(i); }
int def__toupper (int i) { return _toupper(i); }
extern int inacc;
void
test_is_set (int (*func)(),
char *name,