* [PATCH] newlib: libm: integrate tests subdir
@ 2022-03-14 2:49 Mike Frysinger
2022-03-16 7:31 ` Corinna Vinschen
0 siblings, 1 reply; 2+ messages in thread
From: Mike Frysinger @ 2022-03-14 2:49 UTC (permalink / raw)
To: newlib
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
---
newlib/Makefile.am | 2 +
newlib/Makefile.in | 395 +++++++++++++++++++++++++++++++++-
newlib/libm/Makefile.inc | 1 +
newlib/libm/test/Makefile.in | 202 -----------------
newlib/libm/test/Makefile.inc | 85 ++++++++
newlib/libm/test/math.c | 6 -
newlib/libm/test/test.h | 5 +
newlib/libm/test/test_is.c | 1 -
8 files changed, 479 insertions(+), 218 deletions(-)
delete mode 100644 newlib/libm/test/Makefile.in
create mode 100644 newlib/libm/test/Makefile.inc
diff --git a/newlib/Makefile.am b/newlib/Makefile.am
index b8335d88a1fb..a3545d41a54b 100644
--- a/newlib/Makefile.am
+++ b/newlib/Makefile.am
@@ -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 =
diff --git a/newlib/libm/Makefile.inc b/newlib/libm/Makefile.inc
index e43ec7855087..de63b8674c22 100644
--- a/newlib/libm/Makefile.inc
+++ b/newlib/libm/Makefile.inc
@@ -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
diff --git a/newlib/libm/test/Makefile.in b/newlib/libm/test/Makefile.in
deleted file mode 100644
index 1f086fc68e13..000000000000
--- a/newlib/libm/test/Makefile.in
+++ /dev/null
@@ -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
diff --git a/newlib/libm/test/Makefile.inc b/newlib/libm/test/Makefile.inc
new file mode 100644
index 000000000000..ddf09c9314a1
--- /dev/null
+++ b/newlib/libm/test/Makefile.inc
@@ -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
diff --git a/newlib/libm/test/math.c b/newlib/libm/test/math.c
index cd8441cc5535..5cea2adffcf5 100644
--- a/newlib/libm/test/math.c
+++ b/newlib/libm/test/math.c
@@ -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,
diff --git a/newlib/libm/test/test.h b/newlib/libm/test/test.h
index e95c6b4c462b..48d3fcd38ffd 100644
--- a/newlib/libm/test/test.h
+++ b/newlib/libm/test/test.h
@@ -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();
diff --git a/newlib/libm/test/test_is.c b/newlib/libm/test/test_is.c
index ac8f79c490d9..6d4f52c638d7 100644
--- a/newlib/libm/test/test_is.c
+++ b/newlib/libm/test/test_is.c
@@ -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,
--
2.34.1
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] newlib: libm: integrate tests subdir
2022-03-14 2:49 [PATCH] newlib: libm: integrate tests subdir Mike Frysinger
@ 2022-03-16 7:31 ` Corinna Vinschen
0 siblings, 0 replies; 2+ messages in thread
From: Corinna Vinschen @ 2022-03-16 7:31 UTC (permalink / raw)
To: newlib
On Mar 13 22:49, Mike Frysinger wrote:
> 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
> ---
> newlib/Makefile.am | 2 +
> newlib/Makefile.in | 395 +++++++++++++++++++++++++++++++++-
> newlib/libm/Makefile.inc | 1 +
> newlib/libm/test/Makefile.in | 202 -----------------
> newlib/libm/test/Makefile.inc | 85 ++++++++
> newlib/libm/test/math.c | 6 -
> newlib/libm/test/test.h | 5 +
> newlib/libm/test/test_is.c | 1 -
> 8 files changed, 479 insertions(+), 218 deletions(-)
> delete mode 100644 newlib/libm/test/Makefile.in
> create mode 100644 newlib/libm/test/Makefile.inc
Thanks, please push.
Corinna
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2022-03-16 7:31 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-14 2:49 [PATCH] newlib: libm: integrate tests subdir Mike Frysinger
2022-03-16 7:31 ` Corinna Vinschen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).