From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23374 invoked by alias); 26 Aug 2019 15:13:13 -0000 Mailing-List: contact newlib-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: newlib-owner@sourceware.org Received: (qmail 23028 invoked by uid 89); 26 Aug 2019 15:13:12 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-16.3 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy= X-HELO: mail-ot1-f67.google.com Received: from mail-ot1-f67.google.com (HELO mail-ot1-f67.google.com) (209.85.210.67) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 26 Aug 2019 15:13:02 +0000 Received: by mail-ot1-f67.google.com with SMTP id m24so15469048otp.12 for ; Mon, 26 Aug 2019 08:13:02 -0700 (PDT) Return-Path: Received: from mail-oi1-f181.google.com (mail-oi1-f181.google.com. [209.85.167.181]) by smtp.gmail.com with ESMTPSA id t21sm3254750oic.6.2019.08.26.08.12.59 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 26 Aug 2019 08:12:59 -0700 (PDT) Received: by mail-oi1-f181.google.com with SMTP id g128so12392749oib.1 for ; Mon, 26 Aug 2019 08:12:59 -0700 (PDT) MIME-Version: 1.0 References: <20190826041416.9176-1-dimitar@dinux.eu> <20190826041416.9176-2-dimitar@dinux.eu> In-Reply-To: <20190826041416.9176-2-dimitar@dinux.eu> Reply-To: joel@rtems.org From: Joel Sherrill Date: Mon, 26 Aug 2019 15:13:00 -0000 Message-ID: Subject: Re: [PATCH v2 2/2] PRU: Align libmath to PRU ABI To: Dimitar Dimitrov Cc: Newlib Content-Type: text/plain; charset="UTF-8" X-IsSubscribed: yes X-SW-Source: 2019/txt/msg00505.txt.bz2 Why the 3 paragraph BSD style license with notice required on binary distributions? Is it possible to just use the 2-paragraph style? Thanks. --joel On Sun, Aug 25, 2019 at 11:15 PM Dimitar Dimitrov wrote: > > The TI proprietary toolchain uses nonstandard names for some math > library functions. In order to achieve ABI compatibility between > GNU and TI toolchains, add support for the TI function names. > > Signed-off-by: Dimitar Dimitrov > --- > newlib/configure.host | 1 + > newlib/libm/machine/configure.in | 1 + > newlib/libm/machine/pru/Makefile.am | 19 ++++++++++++ > newlib/libm/machine/pru/configure.in | 11 +++++++ > newlib/libm/machine/pru/fpclassify.c | 43 +++++++++++++++++++++++++++ > newlib/libm/machine/pru/fpclassifyf.c | 43 +++++++++++++++++++++++++++ > newlib/libm/machine/pru/isfinite.c | 43 +++++++++++++++++++++++++++ > newlib/libm/machine/pru/isfinitef.c | 43 +++++++++++++++++++++++++++ > newlib/libm/machine/pru/isinf.c | 43 +++++++++++++++++++++++++++ > newlib/libm/machine/pru/isinff.c | 43 +++++++++++++++++++++++++++ > newlib/libm/machine/pru/isnan.c | 43 +++++++++++++++++++++++++++ > newlib/libm/machine/pru/isnanf.c | 43 +++++++++++++++++++++++++++ > newlib/libm/machine/pru/isnormal.c | 43 +++++++++++++++++++++++++++ > newlib/libm/machine/pru/isnormalf.c | 43 +++++++++++++++++++++++++++ > 14 files changed, 462 insertions(+) > create mode 100644 newlib/libm/machine/pru/Makefile.am > create mode 100644 newlib/libm/machine/pru/configure.in > create mode 100644 newlib/libm/machine/pru/fpclassify.c > create mode 100644 newlib/libm/machine/pru/fpclassifyf.c > create mode 100644 newlib/libm/machine/pru/isfinite.c > create mode 100644 newlib/libm/machine/pru/isfinitef.c > create mode 100644 newlib/libm/machine/pru/isinf.c > create mode 100644 newlib/libm/machine/pru/isinff.c > create mode 100644 newlib/libm/machine/pru/isnan.c > create mode 100644 newlib/libm/machine/pru/isnanf.c > create mode 100644 newlib/libm/machine/pru/isnormal.c > create mode 100644 newlib/libm/machine/pru/isnormalf.c > > diff --git a/newlib/configure.host b/newlib/configure.host > index 6a6066bb2..6ee32ca3d 100644 > --- a/newlib/configure.host > +++ b/newlib/configure.host > @@ -296,6 +296,7 @@ case "${host_cpu}" in > default_newlib_nano_malloc="yes" > default_newlib_atexit_dynamic_alloc="no" > machine_dir=pru > + libm_machine_dir=pru > ;; > riscv*) > libm_machine_dir=riscv > diff --git a/newlib/libm/machine/configure.in b/newlib/libm/machine/configure.in > index 55e2d35c3..5a58b6bed 100644 > --- a/newlib/libm/machine/configure.in > +++ b/newlib/libm/machine/configure.in > @@ -29,6 +29,7 @@ if test -n "${libm_machine_dir}"; then > arm) AC_CONFIG_SUBDIRS(arm) ;; > i386) AC_CONFIG_SUBDIRS(i386) ;; > nds32) AC_CONFIG_SUBDIRS(nds32) ;; > + pru) AC_CONFIG_SUBDIRS(pru) ;; > spu) AC_CONFIG_SUBDIRS(spu) ;; > riscv) AC_CONFIG_SUBDIRS(riscv) ;; > esac; > diff --git a/newlib/libm/machine/pru/Makefile.am b/newlib/libm/machine/pru/Makefile.am > new file mode 100644 > index 000000000..69facdf34 > --- /dev/null > +++ b/newlib/libm/machine/pru/Makefile.am > @@ -0,0 +1,19 @@ > +## Process this file with automake to generate Makefile.in > + > +INCLUDES = -I $(newlib_basedir)/../newlib/libm/common $(NEWLIB_CFLAGS) \ > + $(CROSS_CFLAGS) $(TARGET_CFLAGS) > + > +LIB_SOURCES = \ > + fpclassify.c fpclassifyf.c isfinite.c isfinitef.c isinf.c \ > + isinff.c isnan.c isnanf.c isnormal.c isnormalf.c > + > +noinst_LIBRARIES = lib.a > +lib_a_SOURCES = $(LIB_SOURCES) > +lib_a_CFLAGS = $(AM_CFLAGS) > +lib_a_CCASFLAGS = $(AM_CCASFLAGS) > +noinst_DATA = > + > +include $(srcdir)/../../../Makefile.shared > + > +ACLOCAL_AMFLAGS = -I ../../.. -I ../../../.. > +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host > diff --git a/newlib/libm/machine/pru/configure.in b/newlib/libm/machine/pru/configure.in > new file mode 100644 > index 000000000..7a22fa31c > --- /dev/null > +++ b/newlib/libm/machine/pru/configure.in > @@ -0,0 +1,11 @@ > + > +AC_PREREQ(2.59) > +AC_INIT([newlib],[NEWLIB_VERSION]) > +AC_CONFIG_SRCDIR([Makefile.am]) > + > +AC_CONFIG_AUX_DIR(../../../..) > + > +NEWLIB_CONFIGURE(../../..) > + > +AC_CONFIG_FILES([Makefile]) > +AC_OUTPUT > diff --git a/newlib/libm/machine/pru/fpclassify.c b/newlib/libm/machine/pru/fpclassify.c > new file mode 100644 > index 000000000..35f193974 > --- /dev/null > +++ b/newlib/libm/machine/pru/fpclassify.c > @@ -0,0 +1,43 @@ > +/* > + (c) Copyright 2017-2019 Dimitar Dimitrov > + 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. > + > + * Neither the names of the copyright holders nor the names of their > + contributors may 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 THE > + COPYRIGHT OWNER OR CONTRIBUTORS 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. > +*/ > + > +#include > + > +/* GCC will not generate code calling this function, since the corresponding > + builtin will produce code that uses simple ops only. In order to support > + linking against TI CLPRU objects, though, provide the function mandated > + by TI ABI. */ > +int __pruabi_fpclassify(double a) > +{ > + return fpclassify(a); > +} > diff --git a/newlib/libm/machine/pru/fpclassifyf.c b/newlib/libm/machine/pru/fpclassifyf.c > new file mode 100644 > index 000000000..22beb1d28 > --- /dev/null > +++ b/newlib/libm/machine/pru/fpclassifyf.c > @@ -0,0 +1,43 @@ > +/* > + (c) Copyright 2017-2019 Dimitar Dimitrov > + 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. > + > + * Neither the names of the copyright holders nor the names of their > + contributors may 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 THE > + COPYRIGHT OWNER OR CONTRIBUTORS 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. > +*/ > + > +#include > + > +/* GCC will not generate code calling this function, since the corresponding > + builtin will produce code that uses simple ops only. In order to support > + linking against TI CLPRU objects, though, provide the function mandated > + by TI ABI. */ > +int __pruabi_fpclassifyf(float a) > +{ > + return fpclassifyf(a); > +} > diff --git a/newlib/libm/machine/pru/isfinite.c b/newlib/libm/machine/pru/isfinite.c > new file mode 100644 > index 000000000..6c615c8cc > --- /dev/null > +++ b/newlib/libm/machine/pru/isfinite.c > @@ -0,0 +1,43 @@ > +/* > + (c) Copyright 2017-2019 Dimitar Dimitrov > + 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. > + > + * Neither the names of the copyright holders nor the names of their > + contributors may 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 THE > + COPYRIGHT OWNER OR CONTRIBUTORS 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. > +*/ > + > +#include > + > +/* GCC will not generate code calling this function, since the corresponding > + builtin will produce code that uses simple ops only. In order to support > + linking against TI CLPRU objects, though, provide the function mandated > + by TI ABI. */ > +int __pruabi_isfinite(double a) > +{ > + return isfinite(a); > +} > diff --git a/newlib/libm/machine/pru/isfinitef.c b/newlib/libm/machine/pru/isfinitef.c > new file mode 100644 > index 000000000..1b0a5cedc > --- /dev/null > +++ b/newlib/libm/machine/pru/isfinitef.c > @@ -0,0 +1,43 @@ > +/* > + (c) Copyright 2017-2019 Dimitar Dimitrov > + 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. > + > + * Neither the names of the copyright holders nor the names of their > + contributors may 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 THE > + COPYRIGHT OWNER OR CONTRIBUTORS 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. > +*/ > + > +#include > + > +/* GCC will not generate code calling this function, since the corresponding > + builtin will produce code that uses simple ops only. In order to support > + linking against TI CLPRU objects, though, provide the function mandated > + by TI ABI. */ > +int __pruabi_isfinitef(float a) > +{ > + return isfinite(a); > +} > diff --git a/newlib/libm/machine/pru/isinf.c b/newlib/libm/machine/pru/isinf.c > new file mode 100644 > index 000000000..2729e148d > --- /dev/null > +++ b/newlib/libm/machine/pru/isinf.c > @@ -0,0 +1,43 @@ > +/* > + (c) Copyright 2017-2019 Dimitar Dimitrov > + 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. > + > + * Neither the names of the copyright holders nor the names of their > + contributors may 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 THE > + COPYRIGHT OWNER OR CONTRIBUTORS 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. > +*/ > + > +#include > + > +/* GCC will not generate code calling this function, since the corresponding > + builtin will produce code that uses simple ops only. In order to support > + linking against TI CLPRU objects, though, provide the function mandated > + by TI ABI. */ > +int __pruabi_isinf(double a) > +{ > + return isinf(a); > +} > diff --git a/newlib/libm/machine/pru/isinff.c b/newlib/libm/machine/pru/isinff.c > new file mode 100644 > index 000000000..6d5a3dfcd > --- /dev/null > +++ b/newlib/libm/machine/pru/isinff.c > @@ -0,0 +1,43 @@ > +/* > + (c) Copyright 2017-2019 Dimitar Dimitrov > + 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. > + > + * Neither the names of the copyright holders nor the names of their > + contributors may 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 THE > + COPYRIGHT OWNER OR CONTRIBUTORS 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. > +*/ > + > +#include > + > +/* GCC will not generate code calling this function, since the corresponding > + builtin will produce code that uses simple ops only. In order to support > + linking against TI CLPRU objects, though, provide the function mandated > + by TI ABI. */ > +int __pruabi_isinff(float a) > +{ > + return isinf(a); > +} > diff --git a/newlib/libm/machine/pru/isnan.c b/newlib/libm/machine/pru/isnan.c > new file mode 100644 > index 000000000..2b27072e4 > --- /dev/null > +++ b/newlib/libm/machine/pru/isnan.c > @@ -0,0 +1,43 @@ > +/* > + (c) Copyright 2017-2019 Dimitar Dimitrov > + 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. > + > + * Neither the names of the copyright holders nor the names of their > + contributors may 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 THE > + COPYRIGHT OWNER OR CONTRIBUTORS 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. > +*/ > + > +#include > + > +/* GCC will not generate code calling this function, since the corresponding > + builtin will produce code that uses simple ops only. In order to support > + linking against TI CLPRU objects, though, provide the function mandated > + by TI ABI. */ > +int __pruabi_isnan(double a) > +{ > + return isnan(a); > +} > diff --git a/newlib/libm/machine/pru/isnanf.c b/newlib/libm/machine/pru/isnanf.c > new file mode 100644 > index 000000000..f9a7f56b4 > --- /dev/null > +++ b/newlib/libm/machine/pru/isnanf.c > @@ -0,0 +1,43 @@ > +/* > + (c) Copyright 2017-2019 Dimitar Dimitrov > + 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. > + > + * Neither the names of the copyright holders nor the names of their > + contributors may 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 THE > + COPYRIGHT OWNER OR CONTRIBUTORS 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. > +*/ > + > +#include > + > +/* GCC will not generate code calling this function, since the corresponding > + builtin will produce code that uses simple ops only. In order to support > + linking against TI CLPRU objects, though, provide the function mandated > + by TI ABI. */ > +int __pruabi_isnanf(float a) > +{ > + return isnan(a); > +} > diff --git a/newlib/libm/machine/pru/isnormal.c b/newlib/libm/machine/pru/isnormal.c > new file mode 100644 > index 000000000..2c84eb95c > --- /dev/null > +++ b/newlib/libm/machine/pru/isnormal.c > @@ -0,0 +1,43 @@ > +/* > + (c) Copyright 2017-2019 Dimitar Dimitrov > + 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. > + > + * Neither the names of the copyright holders nor the names of their > + contributors may 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 THE > + COPYRIGHT OWNER OR CONTRIBUTORS 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. > +*/ > + > +#include > + > +/* GCC will not generate code calling this function, since the corresponding > + builtin will produce code that uses simple ops only. In order to support > + linking against TI CLPRU objects, though, provide the function mandated > + by TI ABI. */ > +int __pruabi_isnormal(double a) > +{ > + return isnormal(a); > +} > diff --git a/newlib/libm/machine/pru/isnormalf.c b/newlib/libm/machine/pru/isnormalf.c > new file mode 100644 > index 000000000..d4f5bff3d > --- /dev/null > +++ b/newlib/libm/machine/pru/isnormalf.c > @@ -0,0 +1,43 @@ > +/* > + (c) Copyright 2017-2019 Dimitar Dimitrov > + 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. > + > + * Neither the names of the copyright holders nor the names of their > + contributors may 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 THE > + COPYRIGHT OWNER OR CONTRIBUTORS 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. > +*/ > + > +#include > + > +/* GCC will not generate code calling this function, since the corresponding > + builtin will produce code that uses simple ops only. In order to support > + linking against TI CLPRU objects, though, provide the function mandated > + by TI ABI. */ > +int __pruabi_isnormalf(float a) > +{ > + return isnormal(a); > +} > -- > 2.20.1 >