From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) by sourceware.org (Postfix) with ESMTP id EB98D3858D35 for ; Mon, 14 Mar 2022 02:49:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org EB98D3858D35 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gentoo.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gentoo.org Received: by smtp.gentoo.org (Postfix, from userid 559) id 98D09342F49; Mon, 14 Mar 2022 02:49:09 +0000 (UTC) From: Mike Frysinger To: newlib@sourceware.org Subject: [PATCH] newlib: libm: integrate tests subdir Date: Sun, 13 Mar 2022 22:49:16 -0400 Message-Id: <20220314024916.2137-1-vapier@gentoo.org> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-11.5 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: newlib@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Newlib mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Mar 2022 02:49:20 -0000 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 #include -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 #include +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