Re: [PATCH v2 2/2] PRU: Align libmath to PRU ABI
Joel Sherrill <[email protected]>
| Newsgroups | gmane.comp.lib.newlib |
|---|---|
| Message-ID | <CAF9ehCVWRSMYosu_gz5Wp71Wyjaiz=ym-pZR=AwFib3Jsii6pA@mail.gmail.com> |
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 <[email protected]> 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 <[email protected]> > --- > 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 <[email protected]> > + 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 <math.h> > + > +/* 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 <[email protected]> > + 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 <math.h> > + > +/* 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 <[email protected]> > + 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 <math.h> > + > +/* 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 <[email protected]> > + 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 <math.h> > + > +/* 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 <[email protected]> > + 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 <math.h> > + > +/* 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 <[email protected]> > + 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 <math.h> > + > +/* 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 <[email protected]> > + 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 <math.h> > + > +/* 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 <[email protected]> > + 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 <math.h> > + > +/* 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 <[email protected]> > + 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 <math.h> > + > +/* 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 <[email protected]> > + 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 <math.h> > + > +/* 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 >