This is the mail archive of the
newlib@sourceware.org
mailing list for the newlib project.
Re: [PATCH v2 2/2] PRU: Align libmath to PRU ABI
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 <dimitar@dinux.eu> 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 <dimitar@dinux.eu>
> ---
> 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 <dimitar@dinux.eu>
> + 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 <dimitar@dinux.eu>
> + 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 <dimitar@dinux.eu>
> + 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 <dimitar@dinux.eu>
> + 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 <dimitar@dinux.eu>
> + 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 <dimitar@dinux.eu>
> + 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 <dimitar@dinux.eu>
> + 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 <dimitar@dinux.eu>
> + 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 <dimitar@dinux.eu>
> + 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 <dimitar@dinux.eu>
> + 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
>