From 8b4ecac6c2433988f7cd3fb9b54eee41e63f0a15 Mon Sep 17 00:00:00 2001 From: Xiang Xiao Date: Sat, 18 Feb 2023 05:21:13 +0800 Subject: [PATCH] libc: Move math library from libs/libc/math to libs/libm/libm to prepare the support of other implementation e.g.: https://github.com/JuliaMath/openlibm https://gitlab.com/gtd-gmbh/libmcs Signed-off-by: Xiang Xiao --- Kconfig | 1 + LICENSE | 14 +- arch/arm/src/common/Toolchain.defs | 2 +- arch/arm64/src/Toolchain.defs | 2 +- arch/avr/src/avr/Toolchain.defs | 2 +- arch/avr/src/avr32/Toolchain.defs | 2 +- arch/hc/src/Makefile | 2 +- arch/mips/src/mips32/Toolchain.defs | 2 +- arch/misoc/src/lm32/Toolchain.defs | 2 +- arch/misoc/src/minerva/Toolchain.defs | 2 +- arch/or1k/src/mor1kx/Toolchain.defs | 2 +- arch/renesas/src/Makefile | 2 +- arch/risc-v/src/common/Toolchain.defs | 2 +- arch/sim/src/Makefile | 2 +- arch/x86/src/Makefile | 2 +- arch/x86_64/src/Makefile | 2 +- arch/xtensa/src/lx6/Toolchain.defs | 2 +- arch/xtensa/src/lx7/Toolchain.defs | 2 +- .../configs/sensors/defconfig | 1 + .../c906/smartl-c906/configs/elf/defconfig | 1 + .../esp32c3-devkit/configs/elf/defconfig | 1 + .../qemu-rv/rv-virt/configs/smp/defconfig | 1 + .../qemu-rv/rv-virt/configs/smp64/defconfig | 1 + .../rv32m1-vega/configs/buttons/defconfig | 1 + .../rv32m1-vega/configs/nsh-itcm/defconfig | 1 + .../rv32m1/rv32m1-vega/configs/nsh/defconfig | 1 + .../esp32-devkitc/configs/coex/defconfig | 1 + libs/libc/Kconfig | 1 - libs/libc/Makefile | 1 - libs/libc/libc.h | 13 -- libs/libc/machine/Kconfig | 60 ------- libs/libc/machine/arm/armv7-m/Kconfig | 19 --- libs/libc/machine/arm/armv7-m/Make.defs | 8 - libs/libc/machine/arm/armv8-m/Kconfig | 19 --- libs/libc/machine/arm/armv8-m/Make.defs | 52 ------ libs/libc/math.csv | 154 +++++++++--------- libs/libc/stdio/Kconfig | 1 + libs/{libc/math => libm}/Kconfig | 20 ++- libs/libm/Makefile | 98 +++++++++++ libs/libm/bin/Makefile | 33 ++++ libs/libm/kbin/Makefile | 33 ++++ libs/libm/libm/Kconfig | 85 ++++++++++ libs/{libc/math => libm/libm}/Make.defs | 34 ++-- libs/{libc/math => libm/libm}/__cos.c | 2 +- libs/{libc/math => libm/libm}/__sin.c | 2 +- libs/libm/libm/arm/Kconfig | 12 ++ libs/libm/libm/arm/Make.defs | 28 ++++ libs/libm/libm/arm/armv7-m/Kconfig | 19 +++ libs/libm/libm/arm/armv7-m/Make.defs | 30 ++++ .../libm}/arm/armv7-m/arch_fabsf.c | 2 +- .../libm}/arm/armv7-m/arch_sqrtf.c | 2 +- libs/libm/libm/arm/armv8-m/Kconfig | 27 +++ libs/libm/libm/arm/armv8-m/Make.defs | 70 ++++++++ .../libm}/arm/armv8-m/arch_ceil.c | 2 +- .../libm}/arm/armv8-m/arch_ceilf.c | 2 +- .../libm}/arm/armv8-m/arch_floor.c | 2 +- .../libm}/arm/armv8-m/arch_floorf.c | 2 +- .../libm}/arm/armv8-m/arch_nearbyint.c | 2 +- .../libm}/arm/armv8-m/arch_nearbyintf.c | 2 +- .../libm}/arm/armv8-m/arch_rint.c | 2 +- .../libm}/arm/armv8-m/arch_rintf.c | 2 +- .../libm}/arm/armv8-m/arch_round.c | 2 +- .../libm}/arm/armv8-m/arch_roundf.c | 2 +- .../libm}/arm/armv8-m/arch_trunc.c | 2 +- .../libm}/arm/armv8-m/arch_truncf.c | 2 +- libs/{libc/math => libm/libm}/lib_acos.c | 2 +- libs/{libc/math => libm/libm}/lib_acosf.c | 2 +- libs/{libc/math => libm/libm}/lib_acosh.c | 2 +- libs/{libc/math => libm/libm}/lib_acoshf.c | 2 +- libs/{libc/math => libm/libm}/lib_acoshl.c | 2 +- libs/{libc/math => libm/libm}/lib_acosl.c | 2 +- libs/{libc/math => libm/libm}/lib_asin.c | 2 +- libs/{libc/math => libm/libm}/lib_asinf.c | 2 +- libs/{libc/math => libm/libm}/lib_asinh.c | 2 +- libs/{libc/math => libm/libm}/lib_asinhf.c | 2 +- libs/{libc/math => libm/libm}/lib_asinhl.c | 2 +- libs/{libc/math => libm/libm}/lib_asinl.c | 2 +- libs/{libc/math => libm/libm}/lib_atan.c | 2 +- libs/{libc/math => libm/libm}/lib_atan2.c | 2 +- libs/{libc/math => libm/libm}/lib_atan2f.c | 2 +- libs/{libc/math => libm/libm}/lib_atan2l.c | 2 +- libs/{libc/math => libm/libm}/lib_atanf.c | 2 +- libs/{libc/math => libm/libm}/lib_atanh.c | 2 +- libs/{libc/math => libm/libm}/lib_atanhf.c | 2 +- libs/{libc/math => libm/libm}/lib_atanhl.c | 2 +- libs/{libc/math => libm/libm}/lib_atanl.c | 2 +- libs/{libc/math => libm/libm}/lib_cbrt.c | 2 +- libs/{libc/math => libm/libm}/lib_ceil.c | 2 +- libs/{libc/math => libm/libm}/lib_ceilf.c | 2 +- libs/{libc/math => libm/libm}/lib_ceill.c | 2 +- libs/{libc/math => libm/libm}/lib_copysign.c | 2 +- libs/{libc/math => libm/libm}/lib_copysignf.c | 2 +- libs/{libc/math => libm/libm}/lib_copysignl.c | 2 +- libs/{libc/math => libm/libm}/lib_cos.c | 2 +- libs/{libc/math => libm/libm}/lib_cosf.c | 2 +- libs/{libc/math => libm/libm}/lib_cosh.c | 2 +- libs/{libc/math => libm/libm}/lib_coshf.c | 2 +- libs/{libc/math => libm/libm}/lib_coshl.c | 2 +- libs/{libc/math => libm/libm}/lib_cosl.c | 2 +- libs/{libc/math => libm/libm}/lib_erf.c | 2 +- libs/{libc/math => libm/libm}/lib_erfc.c | 2 +- libs/{libc/math => libm/libm}/lib_erfcf.c | 2 +- libs/{libc/math => libm/libm}/lib_erfcl.c | 2 +- libs/{libc/math => libm/libm}/lib_erff.c | 2 +- libs/{libc/math => libm/libm}/lib_erfl.c | 2 +- libs/{libc/math => libm/libm}/lib_exp.c | 6 +- libs/{libc/math => libm/libm}/lib_expf.c | 6 +- libs/{libc/math => libm/libm}/lib_expl.c | 6 +- libs/{libc/math => libm/libm}/lib_expm1.c | 2 +- libs/{libc/math => libm/libm}/lib_expm1f.c | 2 +- libs/{libc/math => libm/libm}/lib_expm1l.c | 2 +- libs/{libc/math => libm/libm}/lib_fabs.c | 2 +- libs/{libc/math => libm/libm}/lib_fabsf.c | 2 +- libs/{libc/math => libm/libm}/lib_fabsl.c | 2 +- libs/{libc/math => libm/libm}/lib_floor.c | 2 +- libs/{libc/math => libm/libm}/lib_floorf.c | 2 +- libs/{libc/math => libm/libm}/lib_floorl.c | 2 +- libs/{libc/math => libm/libm}/lib_fmax.c | 2 +- libs/{libc/math => libm/libm}/lib_fmaxf.c | 2 +- libs/{libc/math => libm/libm}/lib_fmaxl.c | 2 +- libs/{libc/math => libm/libm}/lib_fmin.c | 2 +- libs/{libc/math => libm/libm}/lib_fminf.c | 2 +- libs/{libc/math => libm/libm}/lib_fminl.c | 2 +- libs/{libc/math => libm/libm}/lib_fmod.c | 2 +- libs/{libc/math => libm/libm}/lib_fmodf.c | 2 +- libs/{libc/math => libm/libm}/lib_fmodl.c | 2 +- libs/{libc/math => libm/libm}/lib_frexp.c | 2 +- libs/{libc/math => libm/libm}/lib_frexpf.c | 2 +- libs/{libc/math => libm/libm}/lib_frexpl.c | 2 +- libs/{libc/math => libm/libm}/lib_gamma.c | 2 +- libs/{libc/math => libm/libm}/lib_ldexp.c | 2 +- libs/{libc/math => libm/libm}/lib_ldexpf.c | 2 +- libs/{libc/math => libm/libm}/lib_ldexpl.c | 2 +- libs/{libc/math => libm/libm}/lib_lgamma.c | 68 ++++---- libs/{libc/math => libm/libm}/lib_libexpi.c | 2 +- libs/{libc/math => libm/libm}/lib_libexpif.c | 2 +- .../math => libm/libm}/lib_libsqrtapprox.c | 2 +- libs/{libc/math => libm/libm}/lib_llround.c | 2 +- libs/{libc/math => libm/libm}/lib_llroundf.c | 2 +- libs/{libc/math => libm/libm}/lib_llroundl.c | 2 +- libs/{libc/math => libm/libm}/lib_log.c | 2 +- libs/{libc/math => libm/libm}/lib_log10.c | 2 +- libs/{libc/math => libm/libm}/lib_log10f.c | 2 +- libs/{libc/math => libm/libm}/lib_log10l.c | 2 +- libs/{libc/math => libm/libm}/lib_log2.c | 2 +- libs/{libc/math => libm/libm}/lib_log2f.c | 2 +- libs/{libc/math => libm/libm}/lib_log2l.c | 2 +- libs/{libc/math => libm/libm}/lib_logf.c | 2 +- libs/{libc/math => libm/libm}/lib_logl.c | 2 +- libs/{libc/math => libm/libm}/lib_lround.c | 2 +- libs/{libc/math => libm/libm}/lib_lroundf.c | 2 +- libs/{libc/math => libm/libm}/lib_lroundl.c | 2 +- libs/{libc/math => libm/libm}/lib_modf.c | 2 +- libs/{libc/math => libm/libm}/lib_modff.c | 2 +- libs/{libc/math => libm/libm}/lib_modfl.c | 2 +- libs/{libc/math => libm/libm}/lib_nan.c | 2 +- libs/{libc/math => libm/libm}/lib_nanf.c | 2 +- libs/{libc/math => libm/libm}/lib_nanl.c | 2 +- libs/{libc/math => libm/libm}/lib_pow.c | 2 +- libs/{libc/math => libm/libm}/lib_powf.c | 2 +- libs/{libc/math => libm/libm}/lib_powl.c | 2 +- libs/{libc/math => libm/libm}/lib_rint.c | 2 +- libs/{libc/math => libm/libm}/lib_rintf.c | 2 +- libs/{libc/math => libm/libm}/lib_rintl.c | 2 +- libs/{libc/math => libm/libm}/lib_round.c | 2 +- libs/{libc/math => libm/libm}/lib_roundf.c | 2 +- libs/{libc/math => libm/libm}/lib_roundl.c | 2 +- libs/{libc/math => libm/libm}/lib_scalbn.c | 2 +- libs/{libc/math => libm/libm}/lib_scalbnf.c | 2 +- libs/{libc/math => libm/libm}/lib_scalbnl.c | 2 +- libs/{libc/math => libm/libm}/lib_sin.c | 2 +- libs/{libc/math => libm/libm}/lib_sincos.c | 2 +- libs/{libc/math => libm/libm}/lib_sincosf.c | 2 +- libs/{libc/math => libm/libm}/lib_sincosl.c | 2 +- libs/{libc/math => libm/libm}/lib_sinf.c | 2 +- libs/{libc/math => libm/libm}/lib_sinh.c | 2 +- libs/{libc/math => libm/libm}/lib_sinhf.c | 2 +- libs/{libc/math => libm/libm}/lib_sinhl.c | 2 +- libs/{libc/math => libm/libm}/lib_sinl.c | 2 +- libs/{libc/math => libm/libm}/lib_sqrt.c | 4 +- libs/{libc/math => libm/libm}/lib_sqrtf.c | 4 +- libs/{libc/math => libm/libm}/lib_sqrtl.c | 4 +- libs/{libc/math => libm/libm}/lib_tan.c | 2 +- libs/{libc/math => libm/libm}/lib_tanf.c | 2 +- libs/{libc/math => libm/libm}/lib_tanh.c | 2 +- libs/{libc/math => libm/libm}/lib_tanhf.c | 2 +- libs/{libc/math => libm/libm}/lib_tanhl.c | 2 +- libs/{libc/math => libm/libm}/lib_tanl.c | 2 +- libs/{libc/math => libm/libm}/lib_trunc.c | 2 +- libs/{libc/math => libm/libm}/lib_truncf.c | 2 +- libs/{libc/math => libm/libm}/lib_truncl.c | 2 +- libs/libm/libm/libm.h | 70 ++++++++ tools/Directories.mk | 19 +++ tools/FlatLibs.mk | 9 +- tools/KernelLibs.mk | 7 + tools/LibTargets.mk | 16 ++ tools/ProtectedLibs.mk | 7 + tools/Unix.mk | 2 +- tools/Win.mk | 2 +- 199 files changed, 903 insertions(+), 470 deletions(-) rename libs/{libc/math => libm}/Kconfig (79%) create mode 100644 libs/libm/Makefile create mode 100644 libs/libm/bin/Makefile create mode 100644 libs/libm/kbin/Makefile create mode 100644 libs/libm/libm/Kconfig rename libs/{libc/math => libm/libm}/Make.defs (82%) rename libs/{libc/math => libm/libm}/__cos.c (99%) rename libs/{libc/math => libm/libm}/__sin.c (99%) create mode 100644 libs/libm/libm/arm/Kconfig create mode 100644 libs/libm/libm/arm/Make.defs create mode 100644 libs/libm/libm/arm/armv7-m/Kconfig create mode 100644 libs/libm/libm/arm/armv7-m/Make.defs rename libs/{libc/machine => libm/libm}/arm/armv7-m/arch_fabsf.c (97%) rename libs/{libc/machine => libm/libm}/arm/armv7-m/arch_sqrtf.c (97%) create mode 100644 libs/libm/libm/arm/armv8-m/Kconfig create mode 100644 libs/libm/libm/arm/armv8-m/Make.defs rename libs/{libc/machine => libm/libm}/arm/armv8-m/arch_ceil.c (98%) rename libs/{libc/machine => libm/libm}/arm/armv8-m/arch_ceilf.c (97%) rename libs/{libc/machine => libm/libm}/arm/armv8-m/arch_floor.c (97%) rename libs/{libc/machine => libm/libm}/arm/armv8-m/arch_floorf.c (97%) rename libs/{libc/machine => libm/libm}/arm/armv8-m/arch_nearbyint.c (97%) rename libs/{libc/machine => libm/libm}/arm/armv8-m/arch_nearbyintf.c (97%) rename libs/{libc/machine => libm/libm}/arm/armv8-m/arch_rint.c (98%) rename libs/{libc/machine => libm/libm}/arm/armv8-m/arch_rintf.c (97%) rename libs/{libc/machine => libm/libm}/arm/armv8-m/arch_round.c (97%) rename libs/{libc/machine => libm/libm}/arm/armv8-m/arch_roundf.c (97%) rename libs/{libc/machine => libm/libm}/arm/armv8-m/arch_trunc.c (97%) rename libs/{libc/machine => libm/libm}/arm/armv8-m/arch_truncf.c (97%) rename libs/{libc/math => libm/libm}/lib_acos.c (98%) rename libs/{libc/math => libm/libm}/lib_acosf.c (98%) rename libs/{libc/math => libm/libm}/lib_acosh.c (98%) rename libs/{libc/math => libm/libm}/lib_acoshf.c (97%) rename libs/{libc/math => libm/libm}/lib_acoshl.c (97%) rename libs/{libc/math => libm/libm}/lib_acosl.c (98%) rename libs/{libc/math => libm/libm}/lib_asin.c (99%) rename libs/{libc/math => libm/libm}/lib_asinf.c (98%) rename libs/{libc/math => libm/libm}/lib_asinh.c (98%) rename libs/{libc/math => libm/libm}/lib_asinhf.c (97%) rename libs/{libc/math => libm/libm}/lib_asinhl.c (97%) rename libs/{libc/math => libm/libm}/lib_asinl.c (98%) rename libs/{libc/math => libm/libm}/lib_atan.c (98%) rename libs/{libc/math => libm/libm}/lib_atan2.c (98%) rename libs/{libc/math => libm/libm}/lib_atan2f.c (98%) rename libs/{libc/math => libm/libm}/lib_atan2l.c (98%) rename libs/{libc/math => libm/libm}/lib_atanf.c (98%) rename libs/{libc/math => libm/libm}/lib_atanh.c (98%) rename libs/{libc/math => libm/libm}/lib_atanhf.c (97%) rename libs/{libc/math => libm/libm}/lib_atanhl.c (97%) rename libs/{libc/math => libm/libm}/lib_atanl.c (98%) rename libs/{libc/math => libm/libm}/lib_cbrt.c (98%) rename libs/{libc/math => libm/libm}/lib_ceil.c (98%) rename libs/{libc/math => libm/libm}/lib_ceilf.c (98%) rename libs/{libc/math => libm/libm}/lib_ceill.c (98%) rename libs/{libc/math => libm/libm}/lib_copysign.c (97%) rename libs/{libc/math => libm/libm}/lib_copysignf.c (99%) rename libs/{libc/math => libm/libm}/lib_copysignl.c (97%) rename libs/{libc/math => libm/libm}/lib_cos.c (98%) rename libs/{libc/math => libm/libm}/lib_cosf.c (98%) rename libs/{libc/math => libm/libm}/lib_cosh.c (98%) rename libs/{libc/math => libm/libm}/lib_coshf.c (98%) rename libs/{libc/math => libm/libm}/lib_coshl.c (98%) rename libs/{libc/math => libm/libm}/lib_cosl.c (98%) rename libs/{libc/math => libm/libm}/lib_erf.c (98%) rename libs/{libc/math => libm/libm}/lib_erfc.c (98%) rename libs/{libc/math => libm/libm}/lib_erfcf.c (97%) rename libs/{libc/math => libm/libm}/lib_erfcl.c (98%) rename libs/{libc/math => libm/libm}/lib_erff.c (98%) rename libs/{libc/math => libm/libm}/lib_erfl.c (98%) rename libs/{libc/math => libm/libm}/lib_exp.c (98%) rename libs/{libc/math => libm/libm}/lib_expf.c (97%) rename libs/{libc/math => libm/libm}/lib_expl.c (98%) rename libs/{libc/math => libm/libm}/lib_expm1.c (98%) rename libs/{libc/math => libm/libm}/lib_expm1f.c (97%) rename libs/{libc/math => libm/libm}/lib_expm1l.c (97%) rename libs/{libc/math => libm/libm}/lib_fabs.c (98%) rename libs/{libc/math => libm/libm}/lib_fabsf.c (98%) rename libs/{libc/math => libm/libm}/lib_fabsl.c (98%) rename libs/{libc/math => libm/libm}/lib_floor.c (98%) rename libs/{libc/math => libm/libm}/lib_floorf.c (98%) rename libs/{libc/math => libm/libm}/lib_floorl.c (98%) rename libs/{libc/math => libm/libm}/lib_fmax.c (98%) rename libs/{libc/math => libm/libm}/lib_fmaxf.c (97%) rename libs/{libc/math => libm/libm}/lib_fmaxl.c (98%) rename libs/{libc/math => libm/libm}/lib_fmin.c (98%) rename libs/{libc/math => libm/libm}/lib_fminf.c (97%) rename libs/{libc/math => libm/libm}/lib_fminl.c (98%) rename libs/{libc/math => libm/libm}/lib_fmod.c (98%) rename libs/{libc/math => libm/libm}/lib_fmodf.c (98%) rename libs/{libc/math => libm/libm}/lib_fmodl.c (98%) rename libs/{libc/math => libm/libm}/lib_frexp.c (98%) rename libs/{libc/math => libm/libm}/lib_frexpf.c (98%) rename libs/{libc/math => libm/libm}/lib_frexpl.c (98%) rename libs/{libc/math => libm/libm}/lib_gamma.c (99%) rename libs/{libc/math => libm/libm}/lib_ldexp.c (98%) rename libs/{libc/math => libm/libm}/lib_ldexpf.c (98%) rename libs/{libc/math => libm/libm}/lib_ldexpl.c (98%) rename libs/{libc/math => libm/libm}/lib_lgamma.c (89%) rename libs/{libc/math => libm/libm}/lib_libexpi.c (98%) rename libs/{libc/math => libm/libm}/lib_libexpif.c (98%) rename libs/{libc/math => libm/libm}/lib_libsqrtapprox.c (97%) rename libs/{libc/math => libm/libm}/lib_llround.c (97%) rename libs/{libc/math => libm/libm}/lib_llroundf.c (97%) rename libs/{libc/math => libm/libm}/lib_llroundl.c (97%) rename libs/{libc/math => libm/libm}/lib_log.c (99%) rename libs/{libc/math => libm/libm}/lib_log10.c (98%) rename libs/{libc/math => libm/libm}/lib_log10f.c (98%) rename libs/{libc/math => libm/libm}/lib_log10l.c (98%) rename libs/{libc/math => libm/libm}/lib_log2.c (98%) rename libs/{libc/math => libm/libm}/lib_log2f.c (98%) rename libs/{libc/math => libm/libm}/lib_log2l.c (98%) rename libs/{libc/math => libm/libm}/lib_logf.c (99%) rename libs/{libc/math => libm/libm}/lib_logl.c (98%) rename libs/{libc/math => libm/libm}/lib_lround.c (97%) rename libs/{libc/math => libm/libm}/lib_lroundf.c (97%) rename libs/{libc/math => libm/libm}/lib_lroundl.c (97%) rename libs/{libc/math => libm/libm}/lib_modf.c (98%) rename libs/{libc/math => libm/libm}/lib_modff.c (98%) rename libs/{libc/math => libm/libm}/lib_modfl.c (98%) rename libs/{libc/math => libm/libm}/lib_nan.c (98%) rename libs/{libc/math => libm/libm}/lib_nanf.c (98%) rename libs/{libc/math => libm/libm}/lib_nanl.c (98%) rename libs/{libc/math => libm/libm}/lib_pow.c (98%) rename libs/{libc/math => libm/libm}/lib_powf.c (98%) rename libs/{libc/math => libm/libm}/lib_powl.c (98%) rename libs/{libc/math => libm/libm}/lib_rint.c (99%) rename libs/{libc/math => libm/libm}/lib_rintf.c (99%) rename libs/{libc/math => libm/libm}/lib_rintl.c (99%) rename libs/{libc/math => libm/libm}/lib_round.c (98%) rename libs/{libc/math => libm/libm}/lib_roundf.c (98%) rename libs/{libc/math => libm/libm}/lib_roundl.c (98%) rename libs/{libc/math => libm/libm}/lib_scalbn.c (98%) rename libs/{libc/math => libm/libm}/lib_scalbnf.c (98%) rename libs/{libc/math => libm/libm}/lib_scalbnl.c (99%) rename libs/{libc/math => libm/libm}/lib_sin.c (99%) rename libs/{libc/math => libm/libm}/lib_sincos.c (97%) rename libs/{libc/math => libm/libm}/lib_sincosf.c (97%) rename libs/{libc/math => libm/libm}/lib_sincosl.c (97%) rename libs/{libc/math => libm/libm}/lib_sinf.c (98%) rename libs/{libc/math => libm/libm}/lib_sinh.c (98%) rename libs/{libc/math => libm/libm}/lib_sinhf.c (98%) rename libs/{libc/math => libm/libm}/lib_sinhl.c (98%) rename libs/{libc/math => libm/libm}/lib_sinl.c (99%) rename libs/{libc/math => libm/libm}/lib_sqrt.c (98%) rename libs/{libc/math => libm/libm}/lib_sqrtf.c (97%) rename libs/{libc/math => libm/libm}/lib_sqrtl.c (98%) rename libs/{libc/math => libm/libm}/lib_tan.c (98%) rename libs/{libc/math => libm/libm}/lib_tanf.c (98%) rename libs/{libc/math => libm/libm}/lib_tanh.c (98%) rename libs/{libc/math => libm/libm}/lib_tanhf.c (98%) rename libs/{libc/math => libm/libm}/lib_tanhl.c (98%) rename libs/{libc/math => libm/libm}/lib_tanl.c (98%) rename libs/{libc/math => libm/libm}/lib_trunc.c (98%) rename libs/{libc/math => libm/libm}/lib_truncf.c (98%) rename libs/{libc/math => libm/libm}/lib_truncl.c (98%) create mode 100644 libs/libm/libm/libm.h diff --git a/Kconfig b/Kconfig index e24ae4f4cda..b58ddeb26bb 100644 --- a/Kconfig +++ b/Kconfig @@ -2132,6 +2132,7 @@ endmenu menu "Library Routines" source "libs/libc/Kconfig" +source "libs/libm/Kconfig" source "libs/libxx/Kconfig" source "libs/libdsp/Kconfig" endmenu diff --git a/LICENSE b/LICENSE index a071cbda574..2309023a0cd 100644 --- a/LICENSE +++ b/LICENSE @@ -5888,9 +5888,9 @@ 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. -libs/libc/math/scalbnf.c -libs/libc/math/scalbn.c -libs/libc/math/scalbnl.c +libs/libm/libm/scalbnf.c +libs/libm/libm/scalbn.c +libs/libm/libm/scalbnl.c libs/libc/stdlib/lib_strtof.c ====================== @@ -5915,10 +5915,10 @@ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -libs/libc/math/__cos.c -libs/libc/math/__sin.c -libs/libc/math/lib_lgamma.c -libs/libc/math/lib_copysignf.c +libs/libm/libm/__cos.c +libs/libm/libm/__sin.c +libs/libm/libm/lib_lgamma.c +libs/libm/libm/lib_copysignf.c ====================== Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. diff --git a/arch/arm/src/common/Toolchain.defs b/arch/arm/src/common/Toolchain.defs index 099777f56bc..34eaf1c34ba 100644 --- a/arch/arm/src/common/Toolchain.defs +++ b/arch/arm/src/common/Toolchain.defs @@ -327,7 +327,7 @@ endif EXTRA_LIBS += $(COMPILER_RT_LIB) -ifneq ($(CONFIG_LIBM),y) +ifeq ($(CONFIG_LIBM_TOOLCHAIN),y) EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a)) endif diff --git a/arch/arm64/src/Toolchain.defs b/arch/arm64/src/Toolchain.defs index 3da85b52583..7b2c9cb0d02 100644 --- a/arch/arm64/src/Toolchain.defs +++ b/arch/arm64/src/Toolchain.defs @@ -142,7 +142,7 @@ endif EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name)) -ifneq ($(CONFIG_LIBM),y) +ifeq ($(CONFIG_LIBM_TOOLCHAIN),y) EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a)) endif diff --git a/arch/avr/src/avr/Toolchain.defs b/arch/avr/src/avr/Toolchain.defs index 09a80e24fe3..80aee362065 100644 --- a/arch/avr/src/avr/Toolchain.defs +++ b/arch/avr/src/avr/Toolchain.defs @@ -156,7 +156,7 @@ OBJDUMP = $(CROSSDEV)objdump EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name)) -ifneq ($(CONFIG_LIBM),y) +ifeq ($(CONFIG_LIBM_TOOLCHAIN),y) EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a)) endif diff --git a/arch/avr/src/avr32/Toolchain.defs b/arch/avr/src/avr32/Toolchain.defs index 928074f65e5..971d0a214db 100644 --- a/arch/avr/src/avr32/Toolchain.defs +++ b/arch/avr/src/avr32/Toolchain.defs @@ -86,7 +86,7 @@ OBJDUMP = $(CROSSDEV)objdump EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name)) -ifneq ($(CONFIG_LIBM),y) +ifeq ($(CONFIG_LIBM_TOOLCHAIN),y) EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a)) endif diff --git a/arch/hc/src/Makefile b/arch/hc/src/Makefile index a96d88ca3fb..3d08b1704d5 100644 --- a/arch/hc/src/Makefile +++ b/arch/hc/src/Makefile @@ -76,7 +76,7 @@ endif EXTRA_LIBS += ${wildcard ${shell $(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name}} -ifneq ($(CONFIG_LIBM),y) +ifeq ($(CONFIG_LIBM_TOOLCHAIN),y) EXTRA_LIBS += ${wildcard ${shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a}} endif diff --git a/arch/mips/src/mips32/Toolchain.defs b/arch/mips/src/mips32/Toolchain.defs index c63c9067bb8..dacc28b527c 100644 --- a/arch/mips/src/mips32/Toolchain.defs +++ b/arch/mips/src/mips32/Toolchain.defs @@ -295,7 +295,7 @@ OBJDUMP = $(CROSSDEV)objdump EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name)) -ifneq ($(CONFIG_LIBM),y) +ifeq ($(CONFIG_LIBM_TOOLCHAIN),y) EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a)) endif diff --git a/arch/misoc/src/lm32/Toolchain.defs b/arch/misoc/src/lm32/Toolchain.defs index 9269a4fd957..ffd86a4f142 100644 --- a/arch/misoc/src/lm32/Toolchain.defs +++ b/arch/misoc/src/lm32/Toolchain.defs @@ -117,7 +117,7 @@ OBJDUMP = $(CROSSDEV)objdump EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name)) -ifneq ($(CONFIG_LIBM),y) +ifeq ($(CONFIG_LIBM_TOOLCHAIN),y) EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a)) endif diff --git a/arch/misoc/src/minerva/Toolchain.defs b/arch/misoc/src/minerva/Toolchain.defs index 7f3c1fb4c19..a863095f206 100644 --- a/arch/misoc/src/minerva/Toolchain.defs +++ b/arch/misoc/src/minerva/Toolchain.defs @@ -65,7 +65,7 @@ OBJDUMP = $(CROSSDEV)objdump EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name)) -ifneq ($(CONFIG_LIBM),y) +ifeq ($(CONFIG_LIBM_TOOLCHAIN),y) EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a)) endif diff --git a/arch/or1k/src/mor1kx/Toolchain.defs b/arch/or1k/src/mor1kx/Toolchain.defs index ccf12932500..68ddff4d2ce 100644 --- a/arch/or1k/src/mor1kx/Toolchain.defs +++ b/arch/or1k/src/mor1kx/Toolchain.defs @@ -103,7 +103,7 @@ OBJDUMP = $(CROSSDEV)objdump EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name)) -ifneq ($(CONFIG_LIBM),y) +ifeq ($(CONFIG_LIBM_TOOLCHAIN),y) EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a)) endif diff --git a/arch/renesas/src/Makefile b/arch/renesas/src/Makefile index fc8ab64081a..4f7501986e7 100644 --- a/arch/renesas/src/Makefile +++ b/arch/renesas/src/Makefile @@ -69,7 +69,7 @@ endif EXTRA_LIBS += ${shell $(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name} -ifneq ($(CONFIG_LIBM),y) +ifeq ($(CONFIG_LIBM_TOOLCHAIN),y) EXTRA_LIBS += ${wildcard ${shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a}} endif diff --git a/arch/risc-v/src/common/Toolchain.defs b/arch/risc-v/src/common/Toolchain.defs index c8767b4429f..9c7e6a47191 100644 --- a/arch/risc-v/src/common/Toolchain.defs +++ b/arch/risc-v/src/common/Toolchain.defs @@ -221,7 +221,7 @@ endif EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name)) -ifneq ($(CONFIG_LIBM),y) +ifeq ($(CONFIG_LIBM_TOOLCHAIN),y) EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a)) endif diff --git a/arch/sim/src/Makefile b/arch/sim/src/Makefile index e43dbd1e763..cf69123a8bb 100644 --- a/arch/sim/src/Makefile +++ b/arch/sim/src/Makefile @@ -108,7 +108,7 @@ else STDLIBS += -lrt endif -ifneq ($(CONFIG_LIBM),y) +ifeq ($(CONFIG_LIBM_TOOLCHAIN),y) STDLIBS += -lm endif diff --git a/arch/x86/src/Makefile b/arch/x86/src/Makefile index 6f0e3d4fff1..176bf7ceb79 100644 --- a/arch/x86/src/Makefile +++ b/arch/x86/src/Makefile @@ -73,7 +73,7 @@ endif EXTRA_LIBS += ${wildcard ${shell $(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name}} -ifneq ($(CONFIG_LIBM),y) +ifeq ($(CONFIG_LIBM_TOOLCHAIN),y) EXTRA_LIBS += ${wildcard ${shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a}} endif diff --git a/arch/x86_64/src/Makefile b/arch/x86_64/src/Makefile index 7c61aa405c3..b37f96f679d 100644 --- a/arch/x86_64/src/Makefile +++ b/arch/x86_64/src/Makefile @@ -75,7 +75,7 @@ endif EXTRA_LIBS += ${wildcard ${shell $(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name}} -ifneq ($(CONFIG_LIBM),y) +ifeq ($(CONFIG_LIBM_TOOLCHAIN),y) EXTRA_LIBS += ${wildcard ${shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a}} endif diff --git a/arch/xtensa/src/lx6/Toolchain.defs b/arch/xtensa/src/lx6/Toolchain.defs index 4b64d964248..729ff369790 100644 --- a/arch/xtensa/src/lx6/Toolchain.defs +++ b/arch/xtensa/src/lx6/Toolchain.defs @@ -148,7 +148,7 @@ OBJDUMP = $(CROSSDEV)objdump EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name)) -ifneq ($(CONFIG_LIBM),y) +ifeq ($(CONFIG_LIBM_TOOLCHAIN),y) EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a)) endif diff --git a/arch/xtensa/src/lx7/Toolchain.defs b/arch/xtensa/src/lx7/Toolchain.defs index 0102a96cff3..2b05eafde20 100644 --- a/arch/xtensa/src/lx7/Toolchain.defs +++ b/arch/xtensa/src/lx7/Toolchain.defs @@ -148,7 +148,7 @@ OBJDUMP = $(CROSSDEV)objdump EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name)) -ifneq ($(CONFIG_LIBM),y) +ifeq ($(CONFIG_LIBM_TOOLCHAIN),y) EXTRA_LIBS += $(wildcard $(shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a)) endif diff --git a/boards/arm/stm32/stm32f103-minimum/configs/sensors/defconfig b/boards/arm/stm32/stm32f103-minimum/configs/sensors/defconfig index 7da4a13ce13..3892db63b3d 100644 --- a/boards/arm/stm32/stm32f103-minimum/configs/sensors/defconfig +++ b/boards/arm/stm32/stm32f103-minimum/configs/sensors/defconfig @@ -35,6 +35,7 @@ CONFIG_I2C_DRIVER=y CONFIG_I2C_RESET=y CONFIG_INIT_ENTRYPOINT="nsh_main" CONFIG_LIBC_FLOATINGPOINT=y +CONFIG_LIBM_TOOLCHAIN=y CONFIG_LTO_FULL=y CONFIG_NSH_ARCHINIT=y CONFIG_NSH_BUILTIN_APPS=y diff --git a/boards/risc-v/c906/smartl-c906/configs/elf/defconfig b/boards/risc-v/c906/smartl-c906/configs/elf/defconfig index a75a2cfa7c5..bb1f3c3097e 100644 --- a/boards/risc-v/c906/smartl-c906/configs/elf/defconfig +++ b/boards/risc-v/c906/smartl-c906/configs/elf/defconfig @@ -36,6 +36,7 @@ CONFIG_INIT_STACKSIZE=3072 CONFIG_INTELHEX_BINARY=y CONFIG_LIBC_PERROR_STDOUT=y CONFIG_LIBC_STRERROR=y +CONFIG_LIBM=y CONFIG_NSH_ARCHINIT=y CONFIG_NSH_BUILTIN_APPS=y CONFIG_NSH_DISABLE_IFUPDOWN=y diff --git a/boards/risc-v/esp32c3/esp32c3-devkit/configs/elf/defconfig b/boards/risc-v/esp32c3/esp32c3-devkit/configs/elf/defconfig index 8768478fc55..ebb853b0bdf 100644 --- a/boards/risc-v/esp32c3/esp32c3-devkit/configs/elf/defconfig +++ b/boards/risc-v/esp32c3/esp32c3-devkit/configs/elf/defconfig @@ -35,6 +35,7 @@ CONFIG_INIT_STACKSIZE=8192 CONFIG_INTELHEX_BINARY=y CONFIG_LIBC_PERROR_STDOUT=y CONFIG_LIBC_STRERROR=y +CONFIG_LIBM=y CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=6 CONFIG_NSH_ARCHINIT=y CONFIG_NSH_BUILTIN_APPS=y diff --git a/boards/risc-v/qemu-rv/rv-virt/configs/smp/defconfig b/boards/risc-v/qemu-rv/rv-virt/configs/smp/defconfig index 4b4315b5d3b..08ee722e86e 100644 --- a/boards/risc-v/qemu-rv/rv-virt/configs/smp/defconfig +++ b/boards/risc-v/qemu-rv/rv-virt/configs/smp/defconfig @@ -61,6 +61,7 @@ CONFIG_INTELHEX_BINARY=y CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_PERROR_STDOUT=y CONFIG_LIBC_STRERROR=y +CONFIG_LIBM_TOOLCHAIN=y CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=6 CONFIG_NSH_ARCHINIT=y CONFIG_NSH_BUILTIN_APPS=y diff --git a/boards/risc-v/qemu-rv/rv-virt/configs/smp64/defconfig b/boards/risc-v/qemu-rv/rv-virt/configs/smp64/defconfig index a9129312074..e3f09c1d003 100644 --- a/boards/risc-v/qemu-rv/rv-virt/configs/smp64/defconfig +++ b/boards/risc-v/qemu-rv/rv-virt/configs/smp64/defconfig @@ -62,6 +62,7 @@ CONFIG_INTELHEX_BINARY=y CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_PERROR_STDOUT=y CONFIG_LIBC_STRERROR=y +CONFIG_LIBM_TOOLCHAIN=y CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=6 CONFIG_NSH_ARCHINIT=y CONFIG_NSH_BUILTIN_APPS=y diff --git a/boards/risc-v/rv32m1/rv32m1-vega/configs/buttons/defconfig b/boards/risc-v/rv32m1/rv32m1-vega/configs/buttons/defconfig index f86e13bd121..03e4debb2cd 100644 --- a/boards/risc-v/rv32m1/rv32m1-vega/configs/buttons/defconfig +++ b/boards/risc-v/rv32m1/rv32m1-vega/configs/buttons/defconfig @@ -55,6 +55,7 @@ CONFIG_INTELHEX_BINARY=y CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_PERROR_STDOUT=y CONFIG_LIBC_STRERROR=y +CONFIG_LIBM_TOOLCHAIN=y CONFIG_LPUART0_SERIAL_CONSOLE=y CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=6 CONFIG_NSH_ARCHINIT=y diff --git a/boards/risc-v/rv32m1/rv32m1-vega/configs/nsh-itcm/defconfig b/boards/risc-v/rv32m1/rv32m1-vega/configs/nsh-itcm/defconfig index c07639ae6f0..77c93ad450f 100644 --- a/boards/risc-v/rv32m1/rv32m1-vega/configs/nsh-itcm/defconfig +++ b/boards/risc-v/rv32m1/rv32m1-vega/configs/nsh-itcm/defconfig @@ -43,6 +43,7 @@ CONFIG_INTELHEX_BINARY=y CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_PERROR_STDOUT=y CONFIG_LIBC_STRERROR=y +CONFIG_LIBM_TOOLCHAIN=y CONFIG_LPUART0_SERIAL_CONSOLE=y CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=6 CONFIG_NSH_ARCHINIT=y diff --git a/boards/risc-v/rv32m1/rv32m1-vega/configs/nsh/defconfig b/boards/risc-v/rv32m1/rv32m1-vega/configs/nsh/defconfig index 5257b277e0e..f8ad443d2fa 100644 --- a/boards/risc-v/rv32m1/rv32m1-vega/configs/nsh/defconfig +++ b/boards/risc-v/rv32m1/rv32m1-vega/configs/nsh/defconfig @@ -43,6 +43,7 @@ CONFIG_INTELHEX_BINARY=y CONFIG_LIBC_FLOATINGPOINT=y CONFIG_LIBC_PERROR_STDOUT=y CONFIG_LIBC_STRERROR=y +CONFIG_LIBM_TOOLCHAIN=y CONFIG_LPUART0_SERIAL_CONSOLE=y CONFIG_NFILE_DESCRIPTORS_PER_BLOCK=6 CONFIG_NSH_ARCHINIT=y diff --git a/boards/xtensa/esp32/esp32-devkitc/configs/coex/defconfig b/boards/xtensa/esp32/esp32-devkitc/configs/coex/defconfig index 679db90c1f1..48ea1ee9a2f 100644 --- a/boards/xtensa/esp32/esp32-devkitc/configs/coex/defconfig +++ b/boards/xtensa/esp32/esp32-devkitc/configs/coex/defconfig @@ -95,6 +95,7 @@ CONFIG_IDLETHREAD_STACKSIZE=3072 CONFIG_INIT_ENTRYPOINT="nsh_main" CONFIG_INTELHEX_BINARY=y CONFIG_LIBC_LONG_LONG=y +CONFIG_LIBM_TOOLCHAIN=y CONFIG_MM_REGIONS=3 CONFIG_NAME_MAX=48 CONFIG_NETDB_DNSCLIENT=y diff --git a/libs/libc/Kconfig b/libs/libc/Kconfig index 70f47e2b0a3..be6219caeea 100644 --- a/libs/libc/Kconfig +++ b/libs/libc/Kconfig @@ -7,7 +7,6 @@ comment "Standard C Library Options" source "libs/libc/stdio/Kconfig" source "libs/libc/audio/Kconfig" -source "libs/libc/math/Kconfig" source "libs/libc/machine/Kconfig" source "libs/libc/stdlib/Kconfig" source "libs/libc/unistd/Kconfig" diff --git a/libs/libc/Makefile b/libs/libc/Makefile index 17d628b4691..6f0d14abb3d 100644 --- a/libs/libc/Makefile +++ b/libs/libc/Makefile @@ -37,7 +37,6 @@ include libgen/Make.defs include locale/Make.defs include lzf/Make.defs include machine/Make.defs -include math/Make.defs include misc/Make.defs include modlib/Make.defs include net/Make.defs diff --git a/libs/libc/libc.h b/libs/libc/libc.h index 2678ef75d96..97420528ae0 100644 --- a/libs/libc/libc.h +++ b/libs/libc/libc.h @@ -130,19 +130,6 @@ bool lib_isbasedigit(int ch, int base, FAR int *value); int lib_checkbase(int base, FAR const char **pptr); -/* Defined in lib_expi.c */ - -#ifdef CONFIG_LIBM -float lib_expif(size_t n); -double lib_expi(size_t n); -#endif - -/* Defined in lib_libsqrtapprox.c */ - -#ifdef CONFIG_LIBM -float lib_sqrtapprox(float x); -#endif - /* Defined in lib_parsehostfile.c */ #ifdef CONFIG_NETDB_HOSTFILE diff --git a/libs/libc/machine/Kconfig b/libs/libc/machine/Kconfig index 4d82e57cda3..5b0021836fd 100644 --- a/libs/libc/machine/Kconfig +++ b/libs/libc/machine/Kconfig @@ -121,66 +121,6 @@ config LIBC_ARCH_ELF_64BIT default n depends on LIBC_ARCH_ELF -config LIBM_ARCH_CEIL - bool - default n - depends on LIBM - -config LIBM_ARCH_FLOOR - bool - default n - depends on LIBM - -config LIBM_ARCH_NEARBYINT - bool - default n - depends on LIBM - -config LIBM_ARCH_RINT - bool - default n - depends on LIBM - -config LIBM_ARCH_ROUND - bool - default n - depends on LIBM - -config LIBM_ARCH_TRUNC - bool - default n - depends on LIBM - -config LIBM_ARCH_CEILF - bool - default n - depends on LIBM - -config LIBM_ARCH_FLOORF - bool - default n - depends on LIBM - -config LIBM_ARCH_NEARBYINTF - bool - default n - depends on LIBM - -config LIBM_ARCH_RINTF - bool - default n - depends on LIBM - -config LIBM_ARCH_ROUNDF - bool - default n - depends on LIBM - -config LIBM_ARCH_TRUNCF - bool - default n - depends on LIBM - # One or more the of above may be selected by architecture specific logic if ARCH_ARM diff --git a/libs/libc/machine/arm/armv7-m/Kconfig b/libs/libc/machine/arm/armv7-m/Kconfig index 35eb0c5effe..60ac9d4b346 100644 --- a/libs/libc/machine/arm/armv7-m/Kconfig +++ b/libs/libc/machine/arm/armv7-m/Kconfig @@ -53,23 +53,4 @@ config ARMV7M_STRLEN ---help--- Enable optimized ARMv7-M specific strlen() library function -config ARMV7M_LIBM - bool "Architecture specific FPU optimizations" - default n - select LIBM_ARCH_FABSF - select LIBM_ARCH_SQRTF - depends on ARCH_FPU - depends on LIBM - ---help--- - Enable ARMv7E-M specific floating point optimizations - for fabsf() and fsqrtf() - -config LIBM_ARCH_FABSF - bool - default n - -config LIBM_ARCH_SQRTF - bool - default n - endif diff --git a/libs/libc/machine/arm/armv7-m/Make.defs b/libs/libc/machine/arm/armv7-m/Make.defs index d1cccbda41f..75c9109cd88 100644 --- a/libs/libc/machine/arm/armv7-m/Make.defs +++ b/libs/libc/machine/arm/armv7-m/Make.defs @@ -46,14 +46,6 @@ ifeq ($(CONFIG_LIBC_ARCH_ELF),y) CSRCS += arch_elf.c endif -ifeq ($(CONFIG_LIBM_ARCH_FABSF),y) -CSRCS += arch_fabsf.c -endif - -ifeq ($(CONFIG_LIBM_ARCH_SQRTF),y) -CSRCS += arch_sqrtf.c -endif - ifeq ($(CONFIG_ARCH_TOOLCHAIN_GNU),y) DEPPATH += --dep-path machine/arm/armv7-m/gnu VPATH += :machine/arm/armv7-m/gnu diff --git a/libs/libc/machine/arm/armv8-m/Kconfig b/libs/libc/machine/arm/armv8-m/Kconfig index 276b9870335..2d52a8322a5 100644 --- a/libs/libc/machine/arm/armv8-m/Kconfig +++ b/libs/libc/machine/arm/armv8-m/Kconfig @@ -53,23 +53,4 @@ config ARMV8M_STRLEN ---help--- Enable optimized ARMv8-M specific strlen() library function -config ARMV8M_LIBM - bool "Architecture specific optimizations" - default n - select LIBM_ARCH_CEIL if ARCH_DPFPU - select LIBM_ARCH_FLOOR if ARCH_DPFPU - select LIBM_ARCH_NEARBYINT if ARCH_DPFPU - select LIBM_ARCH_RINT if ARCH_DPFPU - select LIBM_ARCH_ROUND if ARCH_DPFPU - select LIBM_ARCH_TRUNC if ARCH_DPFPU - select LIBM_ARCH_CEILF if ARCH_FPU - select LIBM_ARCH_FLOORF if ARCH_FPU - select LIBM_ARCH_NEARBYINTF if ARCH_FPU - select LIBM_ARCH_RINTF if ARCH_FPU - select LIBM_ARCH_ROUNDF if ARCH_FPU - select LIBM_ARCH_TRUNCF if ARCH_FPU - depends on LIBM - ---help--- - Enable ARMv8 specific floating point optimizations. - endif diff --git a/libs/libc/machine/arm/armv8-m/Make.defs b/libs/libc/machine/arm/armv8-m/Make.defs index 934e00c3c24..ab41dc51bb6 100644 --- a/libs/libc/machine/arm/armv8-m/Make.defs +++ b/libs/libc/machine/arm/armv8-m/Make.defs @@ -22,58 +22,6 @@ ifeq ($(CONFIG_LIBC_ARCH_ELF),y) CSRCS += arch_elf.c endif -ifeq ($(CONFIG_ARMV8M_LIBM),y) - -ifeq ($(CONFIG_LIBM_ARCH_CEIL),y) -CSRCS += arch_ceil.c -endif - -ifeq ($(CONFIG_LIBM_ARCH_CEILF),y) -CSRCS += arch_ceilf.c -endif - -ifeq ($(CONFIG_LIBM_ARCH_FLOOR),y) -CSRCS += arch_floor.c -endif - -ifeq ($(CONFIG_LIBM_ARCH_FLOORF),y) -CSRCS += arch_floorf.c -endif - -ifeq ($(CONFIG_LIBM_ARCH_NEARBYINT),y) -CSRCS += arch_nearbyint.c -endif - -ifeq ($(CONFIG_LIBM_ARCH_NEARBYINTF),y) -CSRCS += arch_nearbyintf.c -endif - -ifeq ($(CONFIG_LIBM_ARCH_RINTF),y) -CSRCS += arch_rintf.c -endif - -ifeq ($(CONFIG_LIBM_ARCH_ROUNDF),y) -CSRCS += arch_roundf.c -endif - -ifeq ($(CONFIG_LIBM_ARCH_TRUNCF),y) -CSRCS += arch_truncf.c -endif - -ifeq ($(CONFIG_LIBM_ARCH_RINT),y) -CSRCS += arch_rint.c -endif - -ifeq ($(CONFIG_LIBM_ARCH_ROUND),y) -CSRCS += arch_round.c -endif - -ifeq ($(CONFIG_LIBM_ARCH_TRUNC),y) -CSRCS += arch_trunc.c -endif - -endif # CONFIG_ARMV8M_LIBM - ifeq ($(CONFIG_ARMV8M_MEMCHR),y) ASRCS += arch_memchr.S endif diff --git a/libs/libc/math.csv b/libs/libc/math.csv index eccda9ec504..9b0cbb45590 100644 --- a/libs/libc/math.csv +++ b/libs/libc/math.csv @@ -1,77 +1,77 @@ -"acos","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double" -"acosf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float" -"acosl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double" -"asin","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double" -"asinf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float" -"asinl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double" -"atan","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double" -"atan2","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double","double" -"atan2f","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float","float" -"atan2l","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double","long double" -"atanf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float" -"atanl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double" -"ceil","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double" -"ceilf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float" -"ceill","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double" -"cos","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double" -"cosf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float" -"cosh","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double" -"coshf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float" -"coshl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double" -"cosl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double" -"exp","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double" -"expf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float" -"expl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double" -"fabs","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double" -"fabsf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float" -"fabsl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double" -"floor","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double" -"floorf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float" -"floorl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double" -"fmod","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double","double" -"fmodf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float","float" -"fmodl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double","long double" -"frexp","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double","int *" -"frexpf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float","int *" -"frexpl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double","int *" -"gamma","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double" -"ldexp","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double","int" -"ldexpf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float","int" -"ldexpl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double","int" -"lgamma","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double" -"log","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double" -"log10","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double" -"log10f","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float" -"log10l","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double" -"log2","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double" -"log2f","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float" -"log2l","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double" -"logf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float" -"logl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double" -"modf","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double","double *" -"modff","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float","float *" -"modfl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double","long double *" -"pow","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double","double" -"powf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float","float" -"powl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double","long double" -"rint","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double" -"rintf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float" -"rintl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double" -"round","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double" -"roundf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float" -"roundl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double" -"sin","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double" -"sinf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float" -"sinh","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double" -"sinhf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float" -"sinhl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double" -"sinl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double" -"sqrt","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double" -"sqrtf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float" -"sqrtl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double" -"tan","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double" -"tanf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float" -"tanh","math.h","defined(CONFIG_HAVE_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","double","double" -"tanhf","math.h","defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH)","float","float" -"tanhl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double" -"tanl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && (defined(CONFIG_LIBM) || defined(CONFIG_ARCH_MATH))","long double","long double" +"acos","math.h","defined(CONFIG_HAVE_DOUBLE) && !defined(CONFIG_LIBM_NONE)","double","double" +"acosf","math.h","!defined(CONFIG_LIBM_NONE)","float","float" +"acosl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && !defined(CONFIG_LIBM_NONE)","long double","long double" +"asin","math.h","defined(CONFIG_HAVE_DOUBLE) && !defined(CONFIG_LIBM_NONE)","double","double" +"asinf","math.h","!defined(CONFIG_LIBM_NONE)","float","float" +"asinl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && !defined(CONFIG_LIBM_NONE)","long double","long double" +"atan","math.h","defined(CONFIG_HAVE_DOUBLE) && !defined(CONFIG_LIBM_NONE)","double","double" +"atan2","math.h","defined(CONFIG_HAVE_DOUBLE) && !defined(CONFIG_LIBM_NONE)","double","double","double" +"atan2f","math.h","!defined(CONFIG_LIBM_NONE)","float","float","float" +"atan2l","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && !defined(CONFIG_LIBM_NONE)","long double","long double","long double" +"atanf","math.h","!defined(CONFIG_LIBM_NONE)","float","float" +"atanl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && !defined(CONFIG_LIBM_NONE)","long double","long double" +"ceil","math.h","defined(CONFIG_HAVE_DOUBLE) && !defined(CONFIG_LIBM_NONE)","double","double" +"ceilf","math.h","!defined(CONFIG_LIBM_NONE)","float","float" +"ceill","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && !defined(CONFIG_LIBM_NONE)","long double","long double" +"cos","math.h","defined(CONFIG_HAVE_DOUBLE) && !defined(CONFIG_LIBM_NONE)","double","double" +"cosf","math.h","!defined(CONFIG_LIBM_NONE)","float","float" +"cosh","math.h","defined(CONFIG_HAVE_DOUBLE) && !defined(CONFIG_LIBM_NONE)","double","double" +"coshf","math.h","!defined(CONFIG_LIBM_NONE)","float","float" +"coshl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && !defined(CONFIG_LIBM_NONE)","long double","long double" +"cosl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && !defined(CONFIG_LIBM_NONE)","long double","long double" +"exp","math.h","defined(CONFIG_HAVE_DOUBLE) && !defined(CONFIG_LIBM_NONE)","double","double" +"expf","math.h","!defined(CONFIG_LIBM_NONE)","float","float" +"expl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && !defined(CONFIG_LIBM_NONE)","long double","long double" +"fabs","math.h","defined(CONFIG_HAVE_DOUBLE) && !defined(CONFIG_LIBM_NONE)","double","double" +"fabsf","math.h","!defined(CONFIG_LIBM_NONE)","float","float" +"fabsl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && !defined(CONFIG_LIBM_NONE)","long double","long double" +"floor","math.h","defined(CONFIG_HAVE_DOUBLE) && !defined(CONFIG_LIBM_NONE)","double","double" +"floorf","math.h","!defined(CONFIG_LIBM_NONE)","float","float" +"floorl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && !defined(CONFIG_LIBM_NONE)","long double","long double" +"fmod","math.h","defined(CONFIG_HAVE_DOUBLE) && !defined(CONFIG_LIBM_NONE)","double","double","double" +"fmodf","math.h","!defined(CONFIG_LIBM_NONE)","float","float","float" +"fmodl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && !defined(CONFIG_LIBM_NONE)","long double","long double","long double" +"frexp","math.h","defined(CONFIG_HAVE_DOUBLE) && !defined(CONFIG_LIBM_NONE)","double","double","int *" +"frexpf","math.h","!defined(CONFIG_LIBM_NONE)","float","float","int *" +"frexpl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && !defined(CONFIG_LIBM_NONE)","long double","long double","int *" +"gamma","math.h","defined(CONFIG_HAVE_DOUBLE) && !defined(CONFIG_LIBM_NONE)","double","double" +"ldexp","math.h","defined(CONFIG_HAVE_DOUBLE) && !defined(CONFIG_LIBM_NONE)","double","double","int" +"ldexpf","math.h","!defined(CONFIG_LIBM_NONE)","float","float","int" +"ldexpl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && !defined(CONFIG_LIBM_NONE)","long double","long double","int" +"lgamma","math.h","defined(CONFIG_HAVE_DOUBLE) && !defined(CONFIG_LIBM_NONE)","double","double" +"log","math.h","defined(CONFIG_HAVE_DOUBLE) && !defined(CONFIG_LIBM_NONE)","double","double" +"log10","math.h","defined(CONFIG_HAVE_DOUBLE) && !defined(CONFIG_LIBM_NONE)","double","double" +"log10f","math.h","!defined(CONFIG_LIBM_NONE)","float","float" +"log10l","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && !defined(CONFIG_LIBM_NONE)","long double","long double" +"log2","math.h","defined(CONFIG_HAVE_DOUBLE) && !defined(CONFIG_LIBM_NONE)","double","double" +"log2f","math.h","!defined(CONFIG_LIBM_NONE)","float","float" +"log2l","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && !defined(CONFIG_LIBM_NONE)","long double","long double" +"logf","math.h","!defined(CONFIG_LIBM_NONE)","float","float" +"logl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && !defined(CONFIG_LIBM_NONE)","long double","long double" +"modf","math.h","defined(CONFIG_HAVE_DOUBLE) && !defined(CONFIG_LIBM_NONE)","double","double","double *" +"modff","math.h","!defined(CONFIG_LIBM_NONE)","float","float","float *" +"modfl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && !defined(CONFIG_LIBM_NONE)","long double","long double","long double *" +"pow","math.h","defined(CONFIG_HAVE_DOUBLE) && !defined(CONFIG_LIBM_NONE)","double","double","double" +"powf","math.h","!defined(CONFIG_LIBM_NONE)","float","float","float" +"powl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && !defined(CONFIG_LIBM_NONE)","long double","long double","long double" +"rint","math.h","defined(CONFIG_HAVE_DOUBLE) && !defined(CONFIG_LIBM_NONE)","double","double" +"rintf","math.h","!defined(CONFIG_LIBM_NONE)","float","float" +"rintl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && !defined(CONFIG_LIBM_NONE)","long double","long double" +"round","math.h","defined(CONFIG_HAVE_DOUBLE) && !defined(CONFIG_LIBM_NONE)","double","double" +"roundf","math.h","!defined(CONFIG_LIBM_NONE)","float","float" +"roundl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && !defined(CONFIG_LIBM_NONE)","long double","long double" +"sin","math.h","defined(CONFIG_HAVE_DOUBLE) && !defined(CONFIG_LIBM_NONE)","double","double" +"sinf","math.h","!defined(CONFIG_LIBM_NONE)","float","float" +"sinh","math.h","defined(CONFIG_HAVE_DOUBLE) && !defined(CONFIG_LIBM_NONE)","double","double" +"sinhf","math.h","!defined(CONFIG_LIBM_NONE)","float","float" +"sinhl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && !defined(CONFIG_LIBM_NONE)","long double","long double" +"sinl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && !defined(CONFIG_LIBM_NONE)","long double","long double" +"sqrt","math.h","defined(CONFIG_HAVE_DOUBLE) && !defined(CONFIG_LIBM_NONE)","double","double" +"sqrtf","math.h","!defined(CONFIG_LIBM_NONE)","float","float" +"sqrtl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && !defined(CONFIG_LIBM_NONE)","long double","long double" +"tan","math.h","defined(CONFIG_HAVE_DOUBLE) && !defined(CONFIG_LIBM_NONE)","double","double" +"tanf","math.h","!defined(CONFIG_LIBM_NONE)","float","float" +"tanh","math.h","defined(CONFIG_HAVE_DOUBLE) && !defined(CONFIG_LIBM_NONE)","double","double" +"tanhf","math.h","!defined(CONFIG_LIBM_NONE)","float","float" +"tanhl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && !defined(CONFIG_LIBM_NONE)","long double","long double" +"tanl","math.h","defined(CONFIG_HAVE_LONG_DOUBLE) && !defined(CONFIG_LIBM_NONE)","long double","long double" diff --git a/libs/libc/stdio/Kconfig b/libs/libc/stdio/Kconfig index e3d43e7e395..8ddd321add2 100644 --- a/libs/libc/stdio/Kconfig +++ b/libs/libc/stdio/Kconfig @@ -55,6 +55,7 @@ config NUNGET_CHARS config LIBC_FLOATINGPOINT bool "Enable floating point in printf" default !DEFAULT_SMALL && ARCH_FPU + depends on !LIBM_NONE ---help--- By default, floating point support in printf, sscanf, etc. is disabled. This option will enable floating point support. diff --git a/libs/libc/math/Kconfig b/libs/libm/Kconfig similarity index 79% rename from libs/libc/math/Kconfig rename to libs/libm/Kconfig index 3246d43e6b5..54ccedec790 100644 --- a/libs/libc/math/Kconfig +++ b/libs/libm/Kconfig @@ -3,11 +3,13 @@ # see the file kconfig-language.txt in the NuttX tools repository. # -#menu "Math Library Support" +choice + prompt "Select math library" + default LIBM_NONE if DEFAULT_SMALL + default LIBM_TOOLCHAIN if !DEFAULT_SMALL config LIBM - bool "Standard Math library" - default n + bool "Math library from NuttX" depends on !ARCH_MATH_H select ARCH_FLOAT_H ---help--- @@ -31,4 +33,14 @@ config LIBM comes from the Rhombus OS and was written by Nick Johnson. The Rhombus OS math library port was contributed by Darcy Gong. -#endmenu # Math Library Support +config LIBM_TOOLCHAIN + bool "Math library from toolchain" + +config LIBM_NONE + bool "No math library" + +endchoice + +if LIBM +source "libs/libm/libm/Kconfig" +endif diff --git a/libs/libm/Makefile b/libs/libm/Makefile new file mode 100644 index 00000000000..9fd3ebd0412 --- /dev/null +++ b/libs/libm/Makefile @@ -0,0 +1,98 @@ +############################################################################ +# libs/libc/Makefile +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. The +# ASF licenses this file to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance with the +# License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +########################################################################### + +include $(TOPDIR)/Make.defs + +ifeq ($(CONFIG_LIBM),y) +include libm/Make.defs +endif + +BINDIR ?= bin + +AOBJS = $(patsubst %.S, $(BINDIR)$(DELIM)$(DELIM)%$(OBJEXT), $(ASRCS)) +COBJS = $(patsubst %.c, $(BINDIR)$(DELIM)$(DELIM)%$(OBJEXT), $(CSRCS)) + +SRCS = $(ASRCS) $(CSRCS) +OBJS = $(AOBJS) $(COBJS) + +KBIN = libkm$(LIBEXT) +BIN ?= libm$(LIBEXT) + +all: $(BIN) +.PHONY: clean distclean + +$(AOBJS): $(BINDIR)$(DELIM)$(DELIM)%$(OBJEXT): %.S + $(call ASSEMBLE, $<, $@) + +$(COBJS): $(BINDIR)$(DELIM)$(DELIM)%$(OBJEXT): %.c + $(call COMPILE, $<, $@) + +# math library for the flat build and +# the user phase of the two-pass kernel build + +$(BIN): $(OBJS) + $(call ARCHIVE, $@, $(OBJS)) + +# math library for the kernel phase of the two-pass kernel build + +ifneq ($(BIN),$(KBIN)) +$(KBIN): $(OBJS) + $(Q) $(MAKE) $(KBIN) BIN=$(KBIN) EXTRAFLAGS="$(EXTRAFLAGS)" +endif + +# Dependencies + +makedepfile: $(CSRCS:.c=.ddc) $(ASRCS:.S=.dds) + $(call CATFILE, bin/Make.dep, $^) + $(call DELFILE, $^) + +makekdepfile: $(CSRCS:.c=.ddc) $(ASRCS:.S=.dds) + $(call CATFILE, kbin/Make.dep, $^) + $(call DELFILE, $^) + +.depend: Makefile $(SRCS) $(TOPDIR)$(DELIM).config + $(Q) $(MAKE) makedepfile OBJPATH="bin" +ifneq ($(CONFIG_BUILD_FLAT),y) + $(Q) $(MAKE) makekdepfile CFLAGS="$(CFLAGS) $(KDEFINE)" OBJPATH="kbin" +endif + $(Q) touch $@ + +depend: .depend + +# Clean most derived files, retaining the configuration + +clean: + $(Q) $(MAKE) -C bin clean + $(Q) $(MAKE) -C kbin clean + $(call DELFILE, $(BIN)) + $(call DELFILE, $(KBIN)) + $(call CLEAN) + +# Deep clean -- removes all traces of the configuration + +distclean: clean + $(Q) $(MAKE) -C bin distclean + $(Q) $(MAKE) -C kbin distclean + $(call DELFILE, bin$(DELIM)Make.dep) + $(call DELFILE, kbin$(DELIM)Make.dep) + $(call DELFILE, .depend) + +-include bin$(DELIM)Make.dep +-include kbin$(DELIM)Make.dep diff --git a/libs/libm/bin/Makefile b/libs/libm/bin/Makefile new file mode 100644 index 00000000000..53b8d74ba7c --- /dev/null +++ b/libs/libm/bin/Makefile @@ -0,0 +1,33 @@ +############################################################################ +# libs/libc/bin/Makefile +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. The +# ASF licenses this file to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance with the +# License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +########################################################################### + +include $(TOPDIR)/Make.defs + +all: +.PHONY: clean distclean + +# Clean Targets: + +clean: + $(call CLEAN) + +# Deep clean -- removes all traces of the configuration + +distclean: clean diff --git a/libs/libm/kbin/Makefile b/libs/libm/kbin/Makefile new file mode 100644 index 00000000000..5933968a813 --- /dev/null +++ b/libs/libm/kbin/Makefile @@ -0,0 +1,33 @@ +############################################################################ +# libs/libc/kbin/Makefile +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. The +# ASF licenses this file to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance with the +# License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +########################################################################### + +include $(TOPDIR)/Make.defs + +all: +.PHONY: clean distclean + +# Clean Targets: + +clean: + $(call CLEAN) + +# Deep clean -- removes all traces of the configuration + +distclean: clean diff --git a/libs/libm/libm/Kconfig b/libs/libm/libm/Kconfig new file mode 100644 index 00000000000..ea03e447b59 --- /dev/null +++ b/libs/libm/libm/Kconfig @@ -0,0 +1,85 @@ +# +# For a description of the syntax of this configuration file, +# see the file kconfig-language.txt in the NuttX tools repository. +# + +# These are library functions that may be overridden by architecture- +# specific implementations. Not all architectures support implementations +# for every library function. + +# Default settings for C library functions that may be replaced with +# architecture-specific versions. + +config LIBM_ARCH_CEIL + bool + default n + depends on LIBM + +config LIBM_ARCH_FLOOR + bool + default n + depends on LIBM + +config LIBM_ARCH_NEARBYINT + bool + default n + depends on LIBM + +config LIBM_ARCH_RINT + bool + default n + depends on LIBM + +config LIBM_ARCH_ROUND + bool + default n + depends on LIBM + +config LIBM_ARCH_TRUNC + bool + default n + depends on LIBM + +config LIBM_ARCH_CEILF + bool + default n + depends on LIBM + +config LIBM_ARCH_FLOORF + bool + default n + depends on LIBM + +config LIBM_ARCH_NEARBYINTF + bool + default n + depends on LIBM + +config LIBM_ARCH_RINTF + bool + default n + depends on LIBM + +config LIBM_ARCH_ROUNDF + bool + default n + depends on LIBM + +config LIBM_ARCH_TRUNCF + bool + default n + depends on LIBM + +config LIBM_ARCH_FABSF + bool + default n + +config LIBM_ARCH_SQRTF + bool + default n + +# One or more the of above may be selected by architecture specific logic + +if ARCH_ARM +source "libs/libm/libm/arm/Kconfig" +endif diff --git a/libs/libc/math/Make.defs b/libs/libm/libm/Make.defs similarity index 82% rename from libs/libc/math/Make.defs rename to libs/libm/libm/Make.defs index 84607f23395..95410afa591 100644 --- a/libs/libc/math/Make.defs +++ b/libs/libm/libm/Make.defs @@ -1,5 +1,5 @@ ############################################################################ -# libs/libc/math/Make.defs +# libs/libm/libm/Make.defs # # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with @@ -18,17 +18,15 @@ # ############################################################################ -ifeq ($(CONFIG_LIBM),y) - # Add the floating point math C files to the build CSRCS += lib_acosf.c lib_asinf.c lib_atan2f.c lib_atanf.c lib_cosf.c -CSRCS += lib_coshf.c lib_expf.c lib_fabsf.c lib_fmodf.c lib_frexpf.c -CSRCS += lib_ldexpf.c lib_logf.c lib_log10f.c lib_log2f.c lib_modff.c -CSRCS += lib_powf.c lib_sinf.c lib_sinhf.c lib_sqrtf.c lib_tanf.c -CSRCS += lib_tanhf.c lib_asinhf.c lib_acoshf.c lib_atanhf.c lib_erff.c -CSRCS += lib_copysignf.c lib_scalbnf.c lib_scalbn.c lib_scalbnl.c -CSRCS += lib_sincos.c lib_sincosf.c lib_sincosl.c +CSRCS += lib_coshf.c lib_expf.c lib_fmodf.c lib_frexpf.c lib_ldexpf.c +CSRCS += lib_logf.c lib_log10f.c lib_log2f.c lib_modff.c lib_powf.c +CSRCS += lib_sinf.c lib_sinhf.c lib_tanf.c lib_tanhf.c lib_asinhf.c +CSRCS += lib_acoshf.c lib_atanhf.c lib_erff.c lib_copysignf.c +CSRCS += lib_scalbnf.c lib_scalbn.c lib_scalbnl.c lib_sincos.c +CSRCS += lib_sincosf.c lib_sincosl.c CSRCS += lib_acos.c lib_asin.c lib_atan.c lib_atan2.c lib_cos.c CSRCS += lib_cosh.c lib_exp.c lib_fabs.c lib_fmod.c lib_frexp.c @@ -101,9 +99,21 @@ ifneq ($(CONFIG_LIBM_ARCH_TRUNCF),y) CSRCS += lib_truncf.c endif +ifneq ($(CONFIG_LIBM_ARCH_FABSF),y) +CSRCS += lib_fabsf.c +endif + +ifneq ($(CONFIG_LIBM_ARCH_SQRTF),y) +CSRCS += lib_sqrtf.c +endif + +ifeq ($(CONFIG_ARCH_ARM),y) +include $(TOPDIR)/libs/libm/libm/arm/Make.defs +endif + # Add the floating point math directory to the build -DEPPATH += --dep-path math -VPATH += :math +DEPPATH += --dep-path libm +VPATH += :libm -endif +context: diff --git a/libs/libc/math/__cos.c b/libs/libm/libm/__cos.c similarity index 99% rename from libs/libc/math/__cos.c rename to libs/libm/libm/__cos.c index 312123817b5..9e6e77fce0c 100644 --- a/libs/libc/math/__cos.c +++ b/libs/libm/libm/__cos.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/__cos.c + * libs/libm/libm/__cos.c * * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. * diff --git a/libs/libc/math/__sin.c b/libs/libm/libm/__sin.c similarity index 99% rename from libs/libc/math/__sin.c rename to libs/libm/libm/__sin.c index 7c5cf69218f..4954623419f 100644 --- a/libs/libc/math/__sin.c +++ b/libs/libm/libm/__sin.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/__sin.c + * libs/libm/libm/__sin.c * * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. * diff --git a/libs/libm/libm/arm/Kconfig b/libs/libm/libm/arm/Kconfig new file mode 100644 index 00000000000..0e0ea144a9e --- /dev/null +++ b/libs/libm/libm/arm/Kconfig @@ -0,0 +1,12 @@ +# +# For a description of the syntax of this configuration file, +# see the file kconfig-language.txt in the NuttX tools repository. +# + +if ARCH_ARMV7M +source "libs/libm/libm/arm/armv7-m/Kconfig" +endif + +if ARCH_ARMV8M +source "libs/libm/libm/arm/armv8-m/Kconfig" +endif diff --git a/libs/libm/libm/arm/Make.defs b/libs/libm/libm/arm/Make.defs new file mode 100644 index 00000000000..aaf17eacb4d --- /dev/null +++ b/libs/libm/libm/arm/Make.defs @@ -0,0 +1,28 @@ +############################################################################ +# libs/libm/libm/arm/Make.defs +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. The +# ASF licenses this file to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance with the +# License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +############################################################################ + +ifeq ($(CONFIG_ARCH_ARMV7M),y) +include $(TOPDIR)/libs/libm/libm/arm/armv7-m/Make.defs +else ifeq ($(CONFIG_ARCH_ARMV8M),y) +include $(TOPDIR)/libs/libm/libm/arm/armv8-m/Make.defs +endif + +DEPPATH += --dep-path libm/arm +VPATH += :libm/arm diff --git a/libs/libm/libm/arm/armv7-m/Kconfig b/libs/libm/libm/arm/armv7-m/Kconfig new file mode 100644 index 00000000000..fb4e76debf8 --- /dev/null +++ b/libs/libm/libm/arm/armv7-m/Kconfig @@ -0,0 +1,19 @@ +# +# For a description of the syntax of this configuration file, +# see the file kconfig-language.txt in the NuttX tools repository. +# + +if ARCH_ARMV7M + +config ARMV7M_LIBM + bool "Architecture specific FPU optimizations" + default n + select LIBM_ARCH_FABSF + select LIBM_ARCH_SQRTF + depends on ARCH_FPU + depends on LIBM + ---help--- + Enable ARMv7E-M specific floating point optimizations + for fabsf() and fsqrtf() + +endif diff --git a/libs/libm/libm/arm/armv7-m/Make.defs b/libs/libm/libm/arm/armv7-m/Make.defs new file mode 100644 index 00000000000..27f429a5474 --- /dev/null +++ b/libs/libm/libm/arm/armv7-m/Make.defs @@ -0,0 +1,30 @@ +############################################################################ +# libs/libm/libm/arm/armv7-m/Make.defs +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. The +# ASF licenses this file to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance with the +# License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +############################################################################ + +ifeq ($(CONFIG_LIBM_ARCH_FABSF),y) +CSRCS += arch_fabsf.c +endif + +ifeq ($(CONFIG_LIBM_ARCH_SQRTF),y) +CSRCS += arch_sqrtf.c +endif + +DEPPATH += --dep-path libm/arm/armv7-m +VPATH += :libm/arm/armv7-m diff --git a/libs/libc/machine/arm/armv7-m/arch_fabsf.c b/libs/libm/libm/arm/armv7-m/arch_fabsf.c similarity index 97% rename from libs/libc/machine/arm/armv7-m/arch_fabsf.c rename to libs/libm/libm/arm/armv7-m/arch_fabsf.c index 5a3c6b859a8..24eb7be6684 100644 --- a/libs/libc/machine/arm/armv7-m/arch_fabsf.c +++ b/libs/libm/libm/arm/armv7-m/arch_fabsf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/machine/arm/armv7-m/arch_fabsf.c + * libs/libm/libm/arm/armv7-m/arch_fabsf.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/machine/arm/armv7-m/arch_sqrtf.c b/libs/libm/libm/arm/armv7-m/arch_sqrtf.c similarity index 97% rename from libs/libc/machine/arm/armv7-m/arch_sqrtf.c rename to libs/libm/libm/arm/armv7-m/arch_sqrtf.c index 3bf12514b33..2ae41b20dbe 100644 --- a/libs/libc/machine/arm/armv7-m/arch_sqrtf.c +++ b/libs/libm/libm/arm/armv7-m/arch_sqrtf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/machine/arm/armv7-m/arch_sqrtf.c + * libs/libm/libm/arm/armv7-m/arch_sqrtf.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libm/libm/arm/armv8-m/Kconfig b/libs/libm/libm/arm/armv8-m/Kconfig new file mode 100644 index 00000000000..c6db2651ba4 --- /dev/null +++ b/libs/libm/libm/arm/armv8-m/Kconfig @@ -0,0 +1,27 @@ +# +# For a description of the syntax of this configuration file, +# see the file kconfig-language.txt in the NuttX tools repository. +# + +if ARCH_ARMV8M + +config ARMV8M_LIBM + bool "Architecture specific optimizations" + default n + select LIBM_ARCH_CEIL if ARCH_DPFPU + select LIBM_ARCH_FLOOR if ARCH_DPFPU + select LIBM_ARCH_NEARBYINT if ARCH_DPFPU + select LIBM_ARCH_RINT if ARCH_DPFPU + select LIBM_ARCH_ROUND if ARCH_DPFPU + select LIBM_ARCH_TRUNC if ARCH_DPFPU + select LIBM_ARCH_CEILF if ARCH_FPU + select LIBM_ARCH_FLOORF if ARCH_FPU + select LIBM_ARCH_NEARBYINTF if ARCH_FPU + select LIBM_ARCH_RINTF if ARCH_FPU + select LIBM_ARCH_ROUNDF if ARCH_FPU + select LIBM_ARCH_TRUNCF if ARCH_FPU + depends on LIBM + ---help--- + Enable ARMv8 specific floating point optimizations. + +endif diff --git a/libs/libm/libm/arm/armv8-m/Make.defs b/libs/libm/libm/arm/armv8-m/Make.defs new file mode 100644 index 00000000000..379b0682f75 --- /dev/null +++ b/libs/libm/libm/arm/armv8-m/Make.defs @@ -0,0 +1,70 @@ +############################################################################ +# libs/libm/libm/arm/armv8-m/Make.defs +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. The +# ASF licenses this file to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance with the +# License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +############################################################################ + +ifeq ($(CONFIG_LIBM_ARCH_CEIL),y) +CSRCS += arch_ceil.c +endif + +ifeq ($(CONFIG_LIBM_ARCH_CEILF),y) +CSRCS += arch_ceilf.c +endif + +ifeq ($(CONFIG_LIBM_ARCH_FLOOR),y) +CSRCS += arch_floor.c +endif + +ifeq ($(CONFIG_LIBM_ARCH_FLOORF),y) +CSRCS += arch_floorf.c +endif + +ifeq ($(CONFIG_LIBM_ARCH_NEARBYINT),y) +CSRCS += arch_nearbyint.c +endif + +ifeq ($(CONFIG_LIBM_ARCH_NEARBYINTF),y) +CSRCS += arch_nearbyintf.c +endif + +ifeq ($(CONFIG_LIBM_ARCH_RINTF),y) +CSRCS += arch_rintf.c +endif + +ifeq ($(CONFIG_LIBM_ARCH_ROUNDF),y) +CSRCS += arch_roundf.c +endif + +ifeq ($(CONFIG_LIBM_ARCH_TRUNCF),y) +CSRCS += arch_truncf.c +endif + +ifeq ($(CONFIG_LIBM_ARCH_RINT),y) +CSRCS += arch_rint.c +endif + +ifeq ($(CONFIG_LIBM_ARCH_ROUND),y) +CSRCS += arch_round.c +endif + +ifeq ($(CONFIG_LIBM_ARCH_TRUNC),y) +CSRCS += arch_trunc.c +endif + +DEPPATH += --dep-path libm/arm/armv8-m +VPATH += :libm/arm/armv8-m diff --git a/libs/libc/machine/arm/armv8-m/arch_ceil.c b/libs/libm/libm/arm/armv8-m/arch_ceil.c similarity index 98% rename from libs/libc/machine/arm/armv8-m/arch_ceil.c rename to libs/libm/libm/arm/armv8-m/arch_ceil.c index c7dde0ae248..4256388fb72 100644 --- a/libs/libc/machine/arm/armv8-m/arch_ceil.c +++ b/libs/libm/libm/arm/armv8-m/arch_ceil.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/machine/arm/armv8-m/arch_ceil.c + * libs/libm/libm/arm/armv8-m/arch_ceil.c * * Copyright (c) 2011, 2012 ARM Ltd. All rights reserved. * diff --git a/libs/libc/machine/arm/armv8-m/arch_ceilf.c b/libs/libm/libm/arm/armv8-m/arch_ceilf.c similarity index 97% rename from libs/libc/machine/arm/armv8-m/arch_ceilf.c rename to libs/libm/libm/arm/armv8-m/arch_ceilf.c index 0c140365cb7..83bfc88c708 100644 --- a/libs/libc/machine/arm/armv8-m/arch_ceilf.c +++ b/libs/libm/libm/arm/armv8-m/arch_ceilf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/machine/arm/armv8-m/arch_ceilf.c + * libs/libm/libm/arm/armv8-m/arch_ceilf.c * * Copyright (c) 2011, 2012 ARM Ltd. All rights reserved. * diff --git a/libs/libc/machine/arm/armv8-m/arch_floor.c b/libs/libm/libm/arm/armv8-m/arch_floor.c similarity index 97% rename from libs/libc/machine/arm/armv8-m/arch_floor.c rename to libs/libm/libm/arm/armv8-m/arch_floor.c index 971d70e1ce4..84f9b6d4098 100644 --- a/libs/libc/machine/arm/armv8-m/arch_floor.c +++ b/libs/libm/libm/arm/armv8-m/arch_floor.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/machine/arm/armv8-m/arch_floor.c + * libs/libm/libm/arm/armv8-m/arch_floor.c * * Copyright (c) 2011, 2012 ARM Ltd. All rights reserved. * diff --git a/libs/libc/machine/arm/armv8-m/arch_floorf.c b/libs/libm/libm/arm/armv8-m/arch_floorf.c similarity index 97% rename from libs/libc/machine/arm/armv8-m/arch_floorf.c rename to libs/libm/libm/arm/armv8-m/arch_floorf.c index b2fcdeaf779..50129cf74d0 100644 --- a/libs/libc/machine/arm/armv8-m/arch_floorf.c +++ b/libs/libm/libm/arm/armv8-m/arch_floorf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/machine/arm/armv8-m/arch_floorf.c + * libs/libm/libm/arm/armv8-m/arch_floorf.c * * Copyright (c) 2011, 2012 ARM Ltd. All rights reserved. * diff --git a/libs/libc/machine/arm/armv8-m/arch_nearbyint.c b/libs/libm/libm/arm/armv8-m/arch_nearbyint.c similarity index 97% rename from libs/libc/machine/arm/armv8-m/arch_nearbyint.c rename to libs/libm/libm/arm/armv8-m/arch_nearbyint.c index f2a9aa741bb..c5b283f30f4 100644 --- a/libs/libc/machine/arm/armv8-m/arch_nearbyint.c +++ b/libs/libm/libm/arm/armv8-m/arch_nearbyint.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/machine/arm/armv8-m/arch_nearbyint.c + * libs/libm/libm/arm/armv8-m/arch_nearbyint.c * * Copyright (c) 2011, 2012 ARM Ltd. All rights reserved. * diff --git a/libs/libc/machine/arm/armv8-m/arch_nearbyintf.c b/libs/libm/libm/arm/armv8-m/arch_nearbyintf.c similarity index 97% rename from libs/libc/machine/arm/armv8-m/arch_nearbyintf.c rename to libs/libm/libm/arm/armv8-m/arch_nearbyintf.c index dee6fd4f7cc..3745c008b2b 100644 --- a/libs/libc/machine/arm/armv8-m/arch_nearbyintf.c +++ b/libs/libm/libm/arm/armv8-m/arch_nearbyintf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/machine/arm/armv8-m/arch_nearbyintf.c + * libs/libm/libm/arm/armv8-m/arch_nearbyintf.c * * Copyright (c) 2011, 2012 ARM Ltd. All rights reserved. * diff --git a/libs/libc/machine/arm/armv8-m/arch_rint.c b/libs/libm/libm/arm/armv8-m/arch_rint.c similarity index 98% rename from libs/libc/machine/arm/armv8-m/arch_rint.c rename to libs/libm/libm/arm/armv8-m/arch_rint.c index d9cdd321713..7ed3552590f 100644 --- a/libs/libc/machine/arm/armv8-m/arch_rint.c +++ b/libs/libm/libm/arm/armv8-m/arch_rint.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/machine/arm/armv8-m/arch_rint.c + * libs/libm/libm/arm/armv8-m/arch_rint.c * * Copyright (c) 2011, 2012 ARM Ltd. All rights reserved. * diff --git a/libs/libc/machine/arm/armv8-m/arch_rintf.c b/libs/libm/libm/arm/armv8-m/arch_rintf.c similarity index 97% rename from libs/libc/machine/arm/armv8-m/arch_rintf.c rename to libs/libm/libm/arm/armv8-m/arch_rintf.c index ff80a768348..0e5bc6a58ff 100644 --- a/libs/libc/machine/arm/armv8-m/arch_rintf.c +++ b/libs/libm/libm/arm/armv8-m/arch_rintf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/machine/arm/armv8-m/arch_rintf.c + * libs/libm/libm/arm/armv8-m/arch_rintf.c * * Copyright (c) 2011, 2012 ARM Ltd. All rights reserved. * diff --git a/libs/libc/machine/arm/armv8-m/arch_round.c b/libs/libm/libm/arm/armv8-m/arch_round.c similarity index 97% rename from libs/libc/machine/arm/armv8-m/arch_round.c rename to libs/libm/libm/arm/armv8-m/arch_round.c index b9cac084d34..411b4da298c 100644 --- a/libs/libc/machine/arm/armv8-m/arch_round.c +++ b/libs/libm/libm/arm/armv8-m/arch_round.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/machine/arm/armv8-m/arch_round.c + * libs/libm/libm/arm/armv8-m/arch_round.c * * Copyright (c) 2011, 2012 ARM Ltd. All rights reserved. * diff --git a/libs/libc/machine/arm/armv8-m/arch_roundf.c b/libs/libm/libm/arm/armv8-m/arch_roundf.c similarity index 97% rename from libs/libc/machine/arm/armv8-m/arch_roundf.c rename to libs/libm/libm/arm/armv8-m/arch_roundf.c index 062386679c5..6d863dbab64 100644 --- a/libs/libc/machine/arm/armv8-m/arch_roundf.c +++ b/libs/libm/libm/arm/armv8-m/arch_roundf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/machine/arm/armv8-m/arch_roundf.c + * libs/libm/libm/arm/armv8-m/arch_roundf.c * * Copyright (c) 2011, 2012 ARM Ltd. All rights reserved. * diff --git a/libs/libc/machine/arm/armv8-m/arch_trunc.c b/libs/libm/libm/arm/armv8-m/arch_trunc.c similarity index 97% rename from libs/libc/machine/arm/armv8-m/arch_trunc.c rename to libs/libm/libm/arm/armv8-m/arch_trunc.c index 39300cba81e..12569625a97 100644 --- a/libs/libc/machine/arm/armv8-m/arch_trunc.c +++ b/libs/libm/libm/arm/armv8-m/arch_trunc.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/machine/arm/armv8-m/arch_trunc.c + * libs/libm/libm/arm/armv8-m/arch_trunc.c * * Copyright (c) 2011, 2012 ARM Ltd. All rights reserved. * diff --git a/libs/libc/machine/arm/armv8-m/arch_truncf.c b/libs/libm/libm/arm/armv8-m/arch_truncf.c similarity index 97% rename from libs/libc/machine/arm/armv8-m/arch_truncf.c rename to libs/libm/libm/arm/armv8-m/arch_truncf.c index fd3c5d8be39..ca0143488b9 100644 --- a/libs/libc/machine/arm/armv8-m/arch_truncf.c +++ b/libs/libm/libm/arm/armv8-m/arch_truncf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/machine/arm/armv8-m/arch_truncf.c + * libs/libm/libm/arm/armv8-m/arch_truncf.c * * Copyright (c) 2011, 2012 ARM Ltd. All rights reserved. * diff --git a/libs/libc/math/lib_acos.c b/libs/libm/libm/lib_acos.c similarity index 98% rename from libs/libc/math/lib_acos.c rename to libs/libm/libm/lib_acos.c index ad14ab2d3f4..3d39198b112 100644 --- a/libs/libc/math/lib_acos.c +++ b/libs/libm/libm/lib_acos.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_acos.c + * libs/libm/libm/lib_acos.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_acosf.c b/libs/libm/libm/lib_acosf.c similarity index 98% rename from libs/libc/math/lib_acosf.c rename to libs/libm/libm/lib_acosf.c index a3ed12ae4b7..48de567ba5b 100644 --- a/libs/libc/math/lib_acosf.c +++ b/libs/libm/libm/lib_acosf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_acosf.c + * libs/libm/libm/lib_acosf.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_acosh.c b/libs/libm/libm/lib_acosh.c similarity index 98% rename from libs/libc/math/lib_acosh.c rename to libs/libm/libm/lib_acosh.c index 0468d6af062..7f2bb9f9520 100644 --- a/libs/libc/math/lib_acosh.c +++ b/libs/libm/libm/lib_acosh.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_acosh.c + * libs/libm/libm/lib_acosh.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_acoshf.c b/libs/libm/libm/lib_acoshf.c similarity index 97% rename from libs/libc/math/lib_acoshf.c rename to libs/libm/libm/lib_acoshf.c index 1151640aa78..cf4089b8c3e 100644 --- a/libs/libc/math/lib_acoshf.c +++ b/libs/libm/libm/lib_acoshf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_acoshf.c + * libs/libm/libm/lib_acoshf.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_acoshl.c b/libs/libm/libm/lib_acoshl.c similarity index 97% rename from libs/libc/math/lib_acoshl.c rename to libs/libm/libm/lib_acoshl.c index a7a5defe616..e40b22c49dd 100644 --- a/libs/libc/math/lib_acoshl.c +++ b/libs/libm/libm/lib_acoshl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_acoshl.c + * libs/libm/libm/lib_acoshl.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_acosl.c b/libs/libm/libm/lib_acosl.c similarity index 98% rename from libs/libc/math/lib_acosl.c rename to libs/libm/libm/lib_acosl.c index 683bc614f6c..f0a273cd294 100644 --- a/libs/libc/math/lib_acosl.c +++ b/libs/libm/libm/lib_acosl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_acosl.c + * libs/libm/libm/lib_acosl.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_asin.c b/libs/libm/libm/lib_asin.c similarity index 99% rename from libs/libc/math/lib_asin.c rename to libs/libm/libm/lib_asin.c index b13512fa5b0..668ec8af0e7 100644 --- a/libs/libc/math/lib_asin.c +++ b/libs/libm/libm/lib_asin.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_asin.c + * libs/libm/libm/lib_asin.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_asinf.c b/libs/libm/libm/lib_asinf.c similarity index 98% rename from libs/libc/math/lib_asinf.c rename to libs/libm/libm/lib_asinf.c index 21aacf0b075..a529db23fbe 100644 --- a/libs/libc/math/lib_asinf.c +++ b/libs/libm/libm/lib_asinf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_asinf.c + * libs/libm/libm/lib_asinf.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_asinh.c b/libs/libm/libm/lib_asinh.c similarity index 98% rename from libs/libc/math/lib_asinh.c rename to libs/libm/libm/lib_asinh.c index 9244403cdb4..ccdeb85a3cc 100644 --- a/libs/libc/math/lib_asinh.c +++ b/libs/libm/libm/lib_asinh.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_asinh.c + * libs/libm/libm/lib_asinh.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_asinhf.c b/libs/libm/libm/lib_asinhf.c similarity index 97% rename from libs/libc/math/lib_asinhf.c rename to libs/libm/libm/lib_asinhf.c index f34406defce..0ee95aa3e0e 100644 --- a/libs/libc/math/lib_asinhf.c +++ b/libs/libm/libm/lib_asinhf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_asinhf.c + * libs/libm/libm/lib_asinhf.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_asinhl.c b/libs/libm/libm/lib_asinhl.c similarity index 97% rename from libs/libc/math/lib_asinhl.c rename to libs/libm/libm/lib_asinhl.c index 61f3fa11463..abfd5c0303a 100644 --- a/libs/libc/math/lib_asinhl.c +++ b/libs/libm/libm/lib_asinhl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_asinhl.c + * libs/libm/libm/lib_asinhl.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_asinl.c b/libs/libm/libm/lib_asinl.c similarity index 98% rename from libs/libc/math/lib_asinl.c rename to libs/libm/libm/lib_asinl.c index aa2c952eb07..bf91fdec5b0 100644 --- a/libs/libc/math/lib_asinl.c +++ b/libs/libm/libm/lib_asinl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_asinl.c + * libs/libm/libm/lib_asinl.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_atan.c b/libs/libm/libm/lib_atan.c similarity index 98% rename from libs/libc/math/lib_atan.c rename to libs/libm/libm/lib_atan.c index 5a69600af7e..2c02c0f84e5 100644 --- a/libs/libc/math/lib_atan.c +++ b/libs/libm/libm/lib_atan.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_atan.c + * libs/libm/libm/lib_atan.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_atan2.c b/libs/libm/libm/lib_atan2.c similarity index 98% rename from libs/libc/math/lib_atan2.c rename to libs/libm/libm/lib_atan2.c index 7b2c84dc1d6..93efbfe51a5 100644 --- a/libs/libc/math/lib_atan2.c +++ b/libs/libm/libm/lib_atan2.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_atan2.c + * libs/libm/libm/lib_atan2.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_atan2f.c b/libs/libm/libm/lib_atan2f.c similarity index 98% rename from libs/libc/math/lib_atan2f.c rename to libs/libm/libm/lib_atan2f.c index b4128fb25a8..b8d46f8c2ce 100644 --- a/libs/libc/math/lib_atan2f.c +++ b/libs/libm/libm/lib_atan2f.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_atan2f.c + * libs/libm/libm/lib_atan2f.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_atan2l.c b/libs/libm/libm/lib_atan2l.c similarity index 98% rename from libs/libc/math/lib_atan2l.c rename to libs/libm/libm/lib_atan2l.c index 0445c7b0ab5..17a9bff2673 100644 --- a/libs/libc/math/lib_atan2l.c +++ b/libs/libm/libm/lib_atan2l.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_atan2l.c + * libs/libm/libm/lib_atan2l.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_atanf.c b/libs/libm/libm/lib_atanf.c similarity index 98% rename from libs/libc/math/lib_atanf.c rename to libs/libm/libm/lib_atanf.c index cac36145306..505063e06b0 100644 --- a/libs/libc/math/lib_atanf.c +++ b/libs/libm/libm/lib_atanf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_atanf.c + * libs/libm/libm/lib_atanf.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_atanh.c b/libs/libm/libm/lib_atanh.c similarity index 98% rename from libs/libc/math/lib_atanh.c rename to libs/libm/libm/lib_atanh.c index 749bdc17a6c..47959da6c56 100644 --- a/libs/libc/math/lib_atanh.c +++ b/libs/libm/libm/lib_atanh.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_atanh.c + * libs/libm/libm/lib_atanh.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_atanhf.c b/libs/libm/libm/lib_atanhf.c similarity index 97% rename from libs/libc/math/lib_atanhf.c rename to libs/libm/libm/lib_atanhf.c index 63aa8e0dbfd..b440bf6096b 100644 --- a/libs/libc/math/lib_atanhf.c +++ b/libs/libm/libm/lib_atanhf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_atanhf.c + * libs/libm/libm/lib_atanhf.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_atanhl.c b/libs/libm/libm/lib_atanhl.c similarity index 97% rename from libs/libc/math/lib_atanhl.c rename to libs/libm/libm/lib_atanhl.c index 039c1c02614..2b2addb1036 100644 --- a/libs/libc/math/lib_atanhl.c +++ b/libs/libm/libm/lib_atanhl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_atanhl.c + * libs/libm/libm/lib_atanhl.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_atanl.c b/libs/libm/libm/lib_atanl.c similarity index 98% rename from libs/libc/math/lib_atanl.c rename to libs/libm/libm/lib_atanl.c index 1dd492f7cf6..73932e5bc67 100644 --- a/libs/libc/math/lib_atanl.c +++ b/libs/libm/libm/lib_atanl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_atanl.c + * libs/libm/libm/lib_atanl.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_cbrt.c b/libs/libm/libm/lib_cbrt.c similarity index 98% rename from libs/libc/math/lib_cbrt.c rename to libs/libm/libm/lib_cbrt.c index cf28b946699..6fc820a6855 100644 --- a/libs/libc/math/lib_cbrt.c +++ b/libs/libm/libm/lib_cbrt.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_cbrt.c + * libs/libm/libm/lib_cbrt.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_ceil.c b/libs/libm/libm/lib_ceil.c similarity index 98% rename from libs/libc/math/lib_ceil.c rename to libs/libm/libm/lib_ceil.c index 4d050749b45..c719ce28afb 100644 --- a/libs/libc/math/lib_ceil.c +++ b/libs/libm/libm/lib_ceil.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_ceil.c + * libs/libm/libm/lib_ceil.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_ceilf.c b/libs/libm/libm/lib_ceilf.c similarity index 98% rename from libs/libc/math/lib_ceilf.c rename to libs/libm/libm/lib_ceilf.c index 006093128e5..7acfc278bc9 100644 --- a/libs/libc/math/lib_ceilf.c +++ b/libs/libm/libm/lib_ceilf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_ceilf.c + * libs/libm/libm/lib_ceilf.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_ceill.c b/libs/libm/libm/lib_ceill.c similarity index 98% rename from libs/libc/math/lib_ceill.c rename to libs/libm/libm/lib_ceill.c index 531b51e070d..77e24387af6 100644 --- a/libs/libc/math/lib_ceill.c +++ b/libs/libm/libm/lib_ceill.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_ceill.c + * libs/libm/libm/lib_ceill.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_copysign.c b/libs/libm/libm/lib_copysign.c similarity index 97% rename from libs/libc/math/lib_copysign.c rename to libs/libm/libm/lib_copysign.c index c13386c65fc..f0b6c8ad3bf 100644 --- a/libs/libc/math/lib_copysign.c +++ b/libs/libm/libm/lib_copysign.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_copysign.c + * libs/libm/libm/lib_copysign.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_copysignf.c b/libs/libm/libm/lib_copysignf.c similarity index 99% rename from libs/libc/math/lib_copysignf.c rename to libs/libm/libm/lib_copysignf.c index d5d5dd05c1b..b28aab55eb3 100644 --- a/libs/libc/math/lib_copysignf.c +++ b/libs/libm/libm/lib_copysignf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_copysignf.c + * libs/libm/libm/lib_copysignf.c * * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. * diff --git a/libs/libc/math/lib_copysignl.c b/libs/libm/libm/lib_copysignl.c similarity index 97% rename from libs/libc/math/lib_copysignl.c rename to libs/libm/libm/lib_copysignl.c index 0bdf48bf0a9..58d3a320675 100644 --- a/libs/libc/math/lib_copysignl.c +++ b/libs/libm/libm/lib_copysignl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_copysignl.c + * libs/libm/libm/lib_copysignl.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_cos.c b/libs/libm/libm/lib_cos.c similarity index 98% rename from libs/libc/math/lib_cos.c rename to libs/libm/libm/lib_cos.c index 904bc603e2c..8f5ab0addb3 100644 --- a/libs/libc/math/lib_cos.c +++ b/libs/libm/libm/lib_cos.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_cos.c + * libs/libm/libm/lib_cos.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_cosf.c b/libs/libm/libm/lib_cosf.c similarity index 98% rename from libs/libc/math/lib_cosf.c rename to libs/libm/libm/lib_cosf.c index 1a436c3452b..b53be8befd2 100644 --- a/libs/libc/math/lib_cosf.c +++ b/libs/libm/libm/lib_cosf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_cosf.c + * libs/libm/libm/lib_cosf.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_cosh.c b/libs/libm/libm/lib_cosh.c similarity index 98% rename from libs/libc/math/lib_cosh.c rename to libs/libm/libm/lib_cosh.c index 40ce8ae3bba..cd23cea4eba 100644 --- a/libs/libc/math/lib_cosh.c +++ b/libs/libm/libm/lib_cosh.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_cosh.c + * libs/libm/libm/lib_cosh.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_coshf.c b/libs/libm/libm/lib_coshf.c similarity index 98% rename from libs/libc/math/lib_coshf.c rename to libs/libm/libm/lib_coshf.c index 6c48c97506e..bbc128323b4 100644 --- a/libs/libc/math/lib_coshf.c +++ b/libs/libm/libm/lib_coshf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_coshf.c + * libs/libm/libm/lib_coshf.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_coshl.c b/libs/libm/libm/lib_coshl.c similarity index 98% rename from libs/libc/math/lib_coshl.c rename to libs/libm/libm/lib_coshl.c index e0741a91f1f..73a597de136 100644 --- a/libs/libc/math/lib_coshl.c +++ b/libs/libm/libm/lib_coshl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_coshl.c + * libs/libm/libm/lib_coshl.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_cosl.c b/libs/libm/libm/lib_cosl.c similarity index 98% rename from libs/libc/math/lib_cosl.c rename to libs/libm/libm/lib_cosl.c index 983e78e47d2..33249fb0117 100644 --- a/libs/libc/math/lib_cosl.c +++ b/libs/libm/libm/lib_cosl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_cosl.c + * libs/libm/libm/lib_cosl.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_erf.c b/libs/libm/libm/lib_erf.c similarity index 98% rename from libs/libc/math/lib_erf.c rename to libs/libm/libm/lib_erf.c index af64ec909ff..83609c02beb 100644 --- a/libs/libc/math/lib_erf.c +++ b/libs/libm/libm/lib_erf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_erf.c + * libs/libm/libm/lib_erf.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_erfc.c b/libs/libm/libm/lib_erfc.c similarity index 98% rename from libs/libc/math/lib_erfc.c rename to libs/libm/libm/lib_erfc.c index d646b17bab8..337da5a0f0c 100644 --- a/libs/libc/math/lib_erfc.c +++ b/libs/libm/libm/lib_erfc.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_erfc.c + * libs/libm/libm/lib_erfc.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_erfcf.c b/libs/libm/libm/lib_erfcf.c similarity index 97% rename from libs/libc/math/lib_erfcf.c rename to libs/libm/libm/lib_erfcf.c index 16fb594ced0..3a9d2041bff 100644 --- a/libs/libc/math/lib_erfcf.c +++ b/libs/libm/libm/lib_erfcf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_erfcf.c + * libs/libm/libm/lib_erfcf.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_erfcl.c b/libs/libm/libm/lib_erfcl.c similarity index 98% rename from libs/libc/math/lib_erfcl.c rename to libs/libm/libm/lib_erfcl.c index cfe8f0d52dd..c096d583c96 100644 --- a/libs/libc/math/lib_erfcl.c +++ b/libs/libm/libm/lib_erfcl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_erfcl.c + * libs/libm/libm/lib_erfcl.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_erff.c b/libs/libm/libm/lib_erff.c similarity index 98% rename from libs/libc/math/lib_erff.c rename to libs/libm/libm/lib_erff.c index cc728516ed7..d0eeb851c64 100644 --- a/libs/libc/math/lib_erff.c +++ b/libs/libm/libm/lib_erff.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_erff.c + * libs/libm/libm/lib_erff.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_erfl.c b/libs/libm/libm/lib_erfl.c similarity index 98% rename from libs/libc/math/lib_erfl.c rename to libs/libm/libm/lib_erfl.c index 0090fa0892a..856b094a785 100644 --- a/libs/libc/math/lib_erfl.c +++ b/libs/libm/libm/lib_erfl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_erfl.c + * libs/libm/libm/lib_erfl.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_exp.c b/libs/libm/libm/lib_exp.c similarity index 98% rename from libs/libc/math/lib_exp.c rename to libs/libm/libm/lib_exp.c index 23a3ba9ca60..6cee39feed5 100644 --- a/libs/libc/math/lib_exp.c +++ b/libs/libm/libm/lib_exp.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_exp.c + * libs/libm/libm/lib_exp.c * * This file is a part of NuttX: * @@ -32,10 +32,10 @@ #include #include -#include +#include #include -#include "libc.h" +#include "libm.h" #ifdef CONFIG_HAVE_DOUBLE diff --git a/libs/libc/math/lib_expf.c b/libs/libm/libm/lib_expf.c similarity index 97% rename from libs/libc/math/lib_expf.c rename to libs/libm/libm/lib_expf.c index 92f3b8a52b1..8222c397c3a 100644 --- a/libs/libc/math/lib_expf.c +++ b/libs/libm/libm/lib_expf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_expf.c + * libs/libm/libm/lib_expf.c * * This file is a part of NuttX: * @@ -29,10 +29,10 @@ * Included Files ****************************************************************************/ -#include +#include #include -#include "libc.h" +#include "libm.h" /**************************************************************************** * Private Data diff --git a/libs/libc/math/lib_expl.c b/libs/libm/libm/lib_expl.c similarity index 98% rename from libs/libc/math/lib_expl.c rename to libs/libm/libm/lib_expl.c index 9001c9d42bf..0e244876dbe 100644 --- a/libs/libc/math/lib_expl.c +++ b/libs/libm/libm/lib_expl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_expl.c + * libs/libm/libm/lib_expl.c * * This file is a part of NuttX: * @@ -32,10 +32,10 @@ #include #include -#include +#include #include -#include "libc.h" +#include "libm.h" #ifdef CONFIG_HAVE_LONG_DOUBLE diff --git a/libs/libc/math/lib_expm1.c b/libs/libm/libm/lib_expm1.c similarity index 98% rename from libs/libc/math/lib_expm1.c rename to libs/libm/libm/lib_expm1.c index e6387894202..502cd52f330 100644 --- a/libs/libc/math/lib_expm1.c +++ b/libs/libm/libm/lib_expm1.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_expm1.c + * libs/libm/libm/lib_expm1.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_expm1f.c b/libs/libm/libm/lib_expm1f.c similarity index 97% rename from libs/libc/math/lib_expm1f.c rename to libs/libm/libm/lib_expm1f.c index fec3e76496a..80b667538c1 100644 --- a/libs/libc/math/lib_expm1f.c +++ b/libs/libm/libm/lib_expm1f.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_expm1f.c + * libs/libm/libm/lib_expm1f.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_expm1l.c b/libs/libm/libm/lib_expm1l.c similarity index 97% rename from libs/libc/math/lib_expm1l.c rename to libs/libm/libm/lib_expm1l.c index 361e1d3c1be..43f6a93e4c3 100644 --- a/libs/libc/math/lib_expm1l.c +++ b/libs/libm/libm/lib_expm1l.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_expm1l.c + * libs/libm/libm/lib_expm1l.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_fabs.c b/libs/libm/libm/lib_fabs.c similarity index 98% rename from libs/libc/math/lib_fabs.c rename to libs/libm/libm/lib_fabs.c index 7908abf867a..07fd854f44a 100644 --- a/libs/libc/math/lib_fabs.c +++ b/libs/libm/libm/lib_fabs.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_fabs.c + * libs/libm/libm/lib_fabs.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_fabsf.c b/libs/libm/libm/lib_fabsf.c similarity index 98% rename from libs/libc/math/lib_fabsf.c rename to libs/libm/libm/lib_fabsf.c index d5e71868421..36557fc7eb7 100644 --- a/libs/libc/math/lib_fabsf.c +++ b/libs/libm/libm/lib_fabsf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_fabsf.c + * libs/libm/libm/lib_fabsf.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_fabsl.c b/libs/libm/libm/lib_fabsl.c similarity index 98% rename from libs/libc/math/lib_fabsl.c rename to libs/libm/libm/lib_fabsl.c index bdaab4dd9c5..6b815249277 100644 --- a/libs/libc/math/lib_fabsl.c +++ b/libs/libm/libm/lib_fabsl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_fabsl.c + * libs/libm/libm/lib_fabsl.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_floor.c b/libs/libm/libm/lib_floor.c similarity index 98% rename from libs/libc/math/lib_floor.c rename to libs/libm/libm/lib_floor.c index 71a77b13ea9..5d85486358f 100644 --- a/libs/libc/math/lib_floor.c +++ b/libs/libm/libm/lib_floor.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_floor.c + * libs/libm/libm/lib_floor.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_floorf.c b/libs/libm/libm/lib_floorf.c similarity index 98% rename from libs/libc/math/lib_floorf.c rename to libs/libm/libm/lib_floorf.c index 6b0fa7b80d2..ea289d80fb4 100644 --- a/libs/libc/math/lib_floorf.c +++ b/libs/libm/libm/lib_floorf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_floorf.c + * libs/libm/libm/lib_floorf.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_floorl.c b/libs/libm/libm/lib_floorl.c similarity index 98% rename from libs/libc/math/lib_floorl.c rename to libs/libm/libm/lib_floorl.c index 82fd9742eac..d6ac747b66f 100644 --- a/libs/libc/math/lib_floorl.c +++ b/libs/libm/libm/lib_floorl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_floorl.c + * libs/libm/libm/lib_floorl.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_fmax.c b/libs/libm/libm/lib_fmax.c similarity index 98% rename from libs/libc/math/lib_fmax.c rename to libs/libm/libm/lib_fmax.c index 1cb62c06a6e..a67750c1e8c 100644 --- a/libs/libc/math/lib_fmax.c +++ b/libs/libm/libm/lib_fmax.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_fmax.c + * libs/libm/libm/lib_fmax.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_fmaxf.c b/libs/libm/libm/lib_fmaxf.c similarity index 97% rename from libs/libc/math/lib_fmaxf.c rename to libs/libm/libm/lib_fmaxf.c index 1e545aa26bf..6aeb757ad6a 100644 --- a/libs/libc/math/lib_fmaxf.c +++ b/libs/libm/libm/lib_fmaxf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_fmaxf.c + * libs/libm/libm/lib_fmaxf.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_fmaxl.c b/libs/libm/libm/lib_fmaxl.c similarity index 98% rename from libs/libc/math/lib_fmaxl.c rename to libs/libm/libm/lib_fmaxl.c index ae7a27886e0..76353fd1cd0 100644 --- a/libs/libc/math/lib_fmaxl.c +++ b/libs/libm/libm/lib_fmaxl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_fmaxl.c + * libs/libm/libm/lib_fmaxl.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_fmin.c b/libs/libm/libm/lib_fmin.c similarity index 98% rename from libs/libc/math/lib_fmin.c rename to libs/libm/libm/lib_fmin.c index c494575dbd6..98a10574d9e 100644 --- a/libs/libc/math/lib_fmin.c +++ b/libs/libm/libm/lib_fmin.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_fmin.c + * libs/libm/libm/lib_fmin.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_fminf.c b/libs/libm/libm/lib_fminf.c similarity index 97% rename from libs/libc/math/lib_fminf.c rename to libs/libm/libm/lib_fminf.c index 1ba6edf78e5..16607663737 100644 --- a/libs/libc/math/lib_fminf.c +++ b/libs/libm/libm/lib_fminf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_fminf.c + * libs/libm/libm/lib_fminf.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_fminl.c b/libs/libm/libm/lib_fminl.c similarity index 98% rename from libs/libc/math/lib_fminl.c rename to libs/libm/libm/lib_fminl.c index 22e74cef847..5e3adbd7c12 100644 --- a/libs/libc/math/lib_fminl.c +++ b/libs/libm/libm/lib_fminl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_fminl.c + * libs/libm/libm/lib_fminl.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_fmod.c b/libs/libm/libm/lib_fmod.c similarity index 98% rename from libs/libc/math/lib_fmod.c rename to libs/libm/libm/lib_fmod.c index e70ce684f38..bf1b0b41a4d 100644 --- a/libs/libc/math/lib_fmod.c +++ b/libs/libm/libm/lib_fmod.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_fmod.c + * libs/libm/libm/lib_fmod.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_fmodf.c b/libs/libm/libm/lib_fmodf.c similarity index 98% rename from libs/libc/math/lib_fmodf.c rename to libs/libm/libm/lib_fmodf.c index 4a7858654ce..109d5e53746 100644 --- a/libs/libc/math/lib_fmodf.c +++ b/libs/libm/libm/lib_fmodf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_fmodf.c + * libs/libm/libm/lib_fmodf.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_fmodl.c b/libs/libm/libm/lib_fmodl.c similarity index 98% rename from libs/libc/math/lib_fmodl.c rename to libs/libm/libm/lib_fmodl.c index d264c338a1c..bce3f16f39c 100644 --- a/libs/libc/math/lib_fmodl.c +++ b/libs/libm/libm/lib_fmodl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_fmodl.c + * libs/libm/libm/lib_fmodl.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_frexp.c b/libs/libm/libm/lib_frexp.c similarity index 98% rename from libs/libc/math/lib_frexp.c rename to libs/libm/libm/lib_frexp.c index fcfeab69ede..adc864bc5fe 100644 --- a/libs/libc/math/lib_frexp.c +++ b/libs/libm/libm/lib_frexp.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_frexp.c + * libs/libm/libm/lib_frexp.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_frexpf.c b/libs/libm/libm/lib_frexpf.c similarity index 98% rename from libs/libc/math/lib_frexpf.c rename to libs/libm/libm/lib_frexpf.c index 4e879534a24..36a4eb02315 100644 --- a/libs/libc/math/lib_frexpf.c +++ b/libs/libm/libm/lib_frexpf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_frexpf.c + * libs/libm/libm/lib_frexpf.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_frexpl.c b/libs/libm/libm/lib_frexpl.c similarity index 98% rename from libs/libc/math/lib_frexpl.c rename to libs/libm/libm/lib_frexpl.c index 121a5b2a122..305f54c261c 100644 --- a/libs/libc/math/lib_frexpl.c +++ b/libs/libm/libm/lib_frexpl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_frexpl.c + * libs/libm/libm/lib_frexpl.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_gamma.c b/libs/libm/libm/lib_gamma.c similarity index 99% rename from libs/libc/math/lib_gamma.c rename to libs/libm/libm/lib_gamma.c index a93c4629fba..b943ac8ff73 100644 --- a/libs/libc/math/lib_gamma.c +++ b/libs/libm/libm/lib_gamma.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_gamma.c + * libs/libm/libm/lib_gamma.c * * Ported to NuttX from FreeBSD by Alan Carvalho de Assis: * diff --git a/libs/libc/math/lib_ldexp.c b/libs/libm/libm/lib_ldexp.c similarity index 98% rename from libs/libc/math/lib_ldexp.c rename to libs/libm/libm/lib_ldexp.c index b3a8f2e6adc..a062dc740de 100644 --- a/libs/libc/math/lib_ldexp.c +++ b/libs/libm/libm/lib_ldexp.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_ldexp.c + * libs/libm/libm/lib_ldexp.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_ldexpf.c b/libs/libm/libm/lib_ldexpf.c similarity index 98% rename from libs/libc/math/lib_ldexpf.c rename to libs/libm/libm/lib_ldexpf.c index 28038613993..007ef06ddb4 100644 --- a/libs/libc/math/lib_ldexpf.c +++ b/libs/libm/libm/lib_ldexpf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_ldexpf.c + * libs/libm/libm/lib_ldexpf.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_ldexpl.c b/libs/libm/libm/lib_ldexpl.c similarity index 98% rename from libs/libc/math/lib_ldexpl.c rename to libs/libm/libm/lib_ldexpl.c index 8df8f082665..860aae2911b 100644 --- a/libs/libc/math/lib_ldexpl.c +++ b/libs/libm/libm/lib_ldexpl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_ldexpl.c + * libs/libm/libm/lib_ldexpl.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_lgamma.c b/libs/libm/libm/lib_lgamma.c similarity index 89% rename from libs/libc/math/lib_lgamma.c rename to libs/libm/libm/lib_lgamma.c index efd32a9d79a..80a431452c1 100644 --- a/libs/libc/math/lib_lgamma.c +++ b/libs/libm/libm/lib_lgamma.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_lgamma.c + * libs/libm/libm/lib_lgamma.c * * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. * @@ -97,12 +97,12 @@ * computation of sin(pi*(-x)). * * 5. Special Cases - * lgamma(2+s) ~ s*(1-Euler) for tiny s - * lgamma(1) = lgamma(2) = 0 - * lgamma(x) ~ -log(|x|) for tiny x - * lgamma(0) = lgamma(neg.integer) = inf and raise divide-by-zero - * lgamma(inf) = inf - * lgamma(-inf) = inf (bug for bug compatible with C99!?) + * lgamma(2+s) ~ s*(1-Euler) for tiny s + * lgamma(1) = lgamma(2) = 0 + * lgamma(x) ~ -log(|x|) for tiny x + * lgamma(0) = lgamma(neg.integer) = inf and raise divide-by-zero + * lgamma(inf) = inf + * lgamma(-inf) = inf (bug for bug compatible with C99!?) */ /**************************************************************************** @@ -236,6 +236,7 @@ double lgamma_r(double x, int *signgamp) double f; uint64_t i; } u; + u.f = x; double t; @@ -273,6 +274,7 @@ double lgamma_r(double x, int *signgamp) x = -x; *signgamp = -1; } + return -log(x); } @@ -284,6 +286,7 @@ double lgamma_r(double x, int *signgamp) if (t == 0.0) { /* -integer */ + return 1.0 / (x - x); } @@ -315,14 +318,14 @@ double lgamma_r(double x, int *signgamp) r = -log(x); - if (ix >= 0x3FE76944) + if (ix >= 0x3fe76944) { y = 1.0 - x; i = 0; } else { - if (ix >= 0x3FCDA661) + if (ix >= 0x3fcda661) { y = x - (g_tc - 1.0); i = 1; @@ -338,17 +341,19 @@ double lgamma_r(double x, int *signgamp) { r = 0.0; - if (ix >= 0x3FFBB4C3) + if (ix >= 0x3ffbb4c3) { /* [1.7316,2] */ + y = 2.0 - x; i = 0; } else { - if (ix >= 0x3FF3B4C4) + if (ix >= 0x3ff3b4c4) { /* [1.23,1.73] */ + y = x - g_tc; i = 1; } @@ -363,27 +368,31 @@ double lgamma_r(double x, int *signgamp) switch (i) { case 0: - z = y*y; - p1 = g_a0+z*(g_a2+z*(g_a4+z*(g_a6+z*(g_a8+z*g_a10)))); - p2 = z*(g_a1+z*(g_a3+z*(g_a5+z*(g_a7+z*(g_a9+z*g_a11))))); - p = y*p1+p2; - r += (p-0.5*y); + z = y * y; + p1 = g_a0 + z * (g_a2 + z * (g_a4 + + z * (g_a6 + z * (g_a8 + z * g_a10)))); + p2 = z * (g_a1 + z * (g_a3 + z * (g_a5 + + z * (g_a7 + z * (g_a9 + z * g_a11))))); + p = y * p1 + p2; + r += (p - 0.5 * y); break; case 1: z = y*y; w = z*y; - p1 = g_t0+w*(g_t3+w*(g_t6+w*(g_t9+w*g_t12))); /* parallel comp */ - p2 = g_t1+w*(g_t4+w*(g_t7+w*(g_t10+w*g_t13))); - p3 = g_t2+w*(g_t5+w*(g_t8+w*(g_t11+w*g_t14))); - p = z*p1-(g_tt-w*(p2+y*p3)); + p1 = g_t0 + w * (g_t3 + w *(g_t6 + w * (g_t9 + w * g_t12))); /* parallel comp */ + p2 = g_t1 + w * (g_t4 + w *(g_t7 + w * (g_t10 + w * g_t13))); + p3 = g_t2 + w * (g_t5 + w *(g_t8 + w * (g_t11 + w * g_t14))); + p = z * p1 - (g_tt - w * (p2 + y * p3)); r += g_tf + p; break; case 2: - p1 = y*(g_u0+y*(g_u1+y*(g_u2+y*(g_u3+y*(g_u4+y*g_u5))))); - p2 = 1.0+y*(g_v1+y*(g_v2+y*(g_v3+y*(g_v4+y*g_v5)))); - r += -0.5*y + p1/p2; + p1 = y * (g_u0 + y * (g_u1 + y * (g_u2 + + y * (g_u3 + y * (g_u4 + y * g_u5))))); + p2 = 1.0 + y * (g_v1 + y * (g_v2 + + y * (g_v3 + y * (g_v4 + y * g_v5)))); + r += -0.5 * y + p1 / p2; } } else @@ -394,9 +403,11 @@ double lgamma_r(double x, int *signgamp) i = (int)x; y = x - (double)i; - p = y*(g_s0+y*(g_s1+y*(g_s2+y*(g_s3+y*(g_s4+y*(g_s5+y*g_s6)))))); - q = 1.0+y*(g_r1+y*(g_r2+y*(g_r3+y*(g_r4+y*(g_r5+y*g_r6))))); - r = 0.5*y+p/q; + p = y * (g_s0 + y * (g_s1 + y * (g_s2 + + y * (g_s3 + y * (g_s4 + y * (g_s5 + y * g_s6)))))); + q = 1.0 + y * (g_r1 + y * (g_r2 + + y * (g_r3 + y * (g_r4 + y * (g_r5 + y * g_r6))))); + r = 0.5 * y + p / q; z = 1.0; /* lgamma(1+s) = log(s) + lgamma(s) */ @@ -426,8 +437,9 @@ double lgamma_r(double x, int *signgamp) t = log(x); z = 1.0 / x; y = z * z; - w = g_w0+z*(g_w1+y*(g_w2+y*(g_w3+y*(g_w4+y*(g_w5+y*g_w6))))); - r = (x-0.5)*(t-1.0)+w; + w = g_w0 + z * (g_w1 + y * (g_w2 + + y * (g_w3 + y * (g_w4 + y * (g_w5 + y * g_w6))))); + r = (x - 0.5) * (t - 1.0) + w; } else { diff --git a/libs/libc/math/lib_libexpi.c b/libs/libm/libm/lib_libexpi.c similarity index 98% rename from libs/libc/math/lib_libexpi.c rename to libs/libm/libm/lib_libexpi.c index d5540b51799..8a26924bac9 100644 --- a/libs/libc/math/lib_libexpi.c +++ b/libs/libm/libm/lib_libexpi.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_libexpi.c + * libs/libm/libm/lib_libexpi.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_libexpif.c b/libs/libm/libm/lib_libexpif.c similarity index 98% rename from libs/libc/math/lib_libexpif.c rename to libs/libm/libm/lib_libexpif.c index ba5d5ce8f58..5aa901fe621 100644 --- a/libs/libc/math/lib_libexpif.c +++ b/libs/libm/libm/lib_libexpif.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_libexpif.c + * libs/libm/libm/lib_libexpif.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_libsqrtapprox.c b/libs/libm/libm/lib_libsqrtapprox.c similarity index 97% rename from libs/libc/math/lib_libsqrtapprox.c rename to libs/libm/libm/lib_libsqrtapprox.c index 58a0f678cb4..0930d31ef7f 100644 --- a/libs/libc/math/lib_libsqrtapprox.c +++ b/libs/libm/libm/lib_libsqrtapprox.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_libsqrtapprox.c + * libs/libm/libm/lib_libsqrtapprox.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_llround.c b/libs/libm/libm/lib_llround.c similarity index 97% rename from libs/libc/math/lib_llround.c rename to libs/libm/libm/lib_llround.c index 808d5a609be..6662e87ff21 100644 --- a/libs/libc/math/lib_llround.c +++ b/libs/libm/libm/lib_llround.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_llround.c + * libs/libm/libm/lib_llround.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_llroundf.c b/libs/libm/libm/lib_llroundf.c similarity index 97% rename from libs/libc/math/lib_llroundf.c rename to libs/libm/libm/lib_llroundf.c index ee5e7825e27..19fa81203f1 100644 --- a/libs/libc/math/lib_llroundf.c +++ b/libs/libm/libm/lib_llroundf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_llroundf.c + * libs/libm/libm/lib_llroundf.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_llroundl.c b/libs/libm/libm/lib_llroundl.c similarity index 97% rename from libs/libc/math/lib_llroundl.c rename to libs/libm/libm/lib_llroundl.c index 39a8ed1fb13..18d321df902 100644 --- a/libs/libc/math/lib_llroundl.c +++ b/libs/libm/libm/lib_llroundl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_llroundl.c + * libs/libm/libm/lib_llroundl.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_log.c b/libs/libm/libm/lib_log.c similarity index 99% rename from libs/libc/math/lib_log.c rename to libs/libm/libm/lib_log.c index e69b34c8383..9b8e23b97d4 100644 --- a/libs/libc/math/lib_log.c +++ b/libs/libm/libm/lib_log.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_log.c + * libs/libm/libm/lib_log.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_log10.c b/libs/libm/libm/lib_log10.c similarity index 98% rename from libs/libc/math/lib_log10.c rename to libs/libm/libm/lib_log10.c index 2d5cea9d453..0110fbf16ed 100644 --- a/libs/libc/math/lib_log10.c +++ b/libs/libm/libm/lib_log10.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_log10.c + * libs/libm/libm/lib_log10.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_log10f.c b/libs/libm/libm/lib_log10f.c similarity index 98% rename from libs/libc/math/lib_log10f.c rename to libs/libm/libm/lib_log10f.c index a91fc7d023b..1ee8ab70486 100644 --- a/libs/libc/math/lib_log10f.c +++ b/libs/libm/libm/lib_log10f.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_log10f.c + * libs/libm/libm/lib_log10f.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_log10l.c b/libs/libm/libm/lib_log10l.c similarity index 98% rename from libs/libc/math/lib_log10l.c rename to libs/libm/libm/lib_log10l.c index 2cdc0f237c2..45312b55be8 100644 --- a/libs/libc/math/lib_log10l.c +++ b/libs/libm/libm/lib_log10l.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_log10l.c + * libs/libm/libm/lib_log10l.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_log2.c b/libs/libm/libm/lib_log2.c similarity index 98% rename from libs/libc/math/lib_log2.c rename to libs/libm/libm/lib_log2.c index c94e7c1bd6c..291ad599526 100644 --- a/libs/libc/math/lib_log2.c +++ b/libs/libm/libm/lib_log2.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_log2.c + * libs/libm/libm/lib_log2.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_log2f.c b/libs/libm/libm/lib_log2f.c similarity index 98% rename from libs/libc/math/lib_log2f.c rename to libs/libm/libm/lib_log2f.c index a39523aecdb..5d2acab3b0d 100644 --- a/libs/libc/math/lib_log2f.c +++ b/libs/libm/libm/lib_log2f.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_log2f.c + * libs/libm/libm/lib_log2f.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_log2l.c b/libs/libm/libm/lib_log2l.c similarity index 98% rename from libs/libc/math/lib_log2l.c rename to libs/libm/libm/lib_log2l.c index 46290103c4c..e4056fd0957 100644 --- a/libs/libc/math/lib_log2l.c +++ b/libs/libm/libm/lib_log2l.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_log2l.c + * libs/libm/libm/lib_log2l.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_logf.c b/libs/libm/libm/lib_logf.c similarity index 99% rename from libs/libc/math/lib_logf.c rename to libs/libm/libm/lib_logf.c index d656c43e796..35672915b44 100644 --- a/libs/libc/math/lib_logf.c +++ b/libs/libm/libm/lib_logf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_logf.c + * libs/libm/libm/lib_logf.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_logl.c b/libs/libm/libm/lib_logl.c similarity index 98% rename from libs/libc/math/lib_logl.c rename to libs/libm/libm/lib_logl.c index bdcd09fbad6..3b93b952514 100644 --- a/libs/libc/math/lib_logl.c +++ b/libs/libm/libm/lib_logl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_logl.c + * libs/libm/libm/lib_logl.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_lround.c b/libs/libm/libm/lib_lround.c similarity index 97% rename from libs/libc/math/lib_lround.c rename to libs/libm/libm/lib_lround.c index 8e8896a7bfd..eca9877fe7e 100644 --- a/libs/libc/math/lib_lround.c +++ b/libs/libm/libm/lib_lround.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_lround.c + * libs/libm/libm/lib_lround.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_lroundf.c b/libs/libm/libm/lib_lroundf.c similarity index 97% rename from libs/libc/math/lib_lroundf.c rename to libs/libm/libm/lib_lroundf.c index 20f54c9499a..bc11c417047 100644 --- a/libs/libc/math/lib_lroundf.c +++ b/libs/libm/libm/lib_lroundf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_lroundf.c + * libs/libm/libm/lib_lroundf.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_lroundl.c b/libs/libm/libm/lib_lroundl.c similarity index 97% rename from libs/libc/math/lib_lroundl.c rename to libs/libm/libm/lib_lroundl.c index 3cd20caec2c..58df7edb307 100644 --- a/libs/libc/math/lib_lroundl.c +++ b/libs/libm/libm/lib_lroundl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_lroundl.c + * libs/libm/libm/lib_lroundl.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_modf.c b/libs/libm/libm/lib_modf.c similarity index 98% rename from libs/libc/math/lib_modf.c rename to libs/libm/libm/lib_modf.c index f46066c4990..d48c92f2c5f 100644 --- a/libs/libc/math/lib_modf.c +++ b/libs/libm/libm/lib_modf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_modf.c + * libs/libm/libm/lib_modf.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_modff.c b/libs/libm/libm/lib_modff.c similarity index 98% rename from libs/libc/math/lib_modff.c rename to libs/libm/libm/lib_modff.c index 2448c0a8aa5..2267a53a535 100644 --- a/libs/libc/math/lib_modff.c +++ b/libs/libm/libm/lib_modff.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_modff.c + * libs/libm/libm/lib_modff.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_modfl.c b/libs/libm/libm/lib_modfl.c similarity index 98% rename from libs/libc/math/lib_modfl.c rename to libs/libm/libm/lib_modfl.c index 235c07c05eb..5a857dcd693 100644 --- a/libs/libc/math/lib_modfl.c +++ b/libs/libm/libm/lib_modfl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_modfl.c + * libs/libm/libm/lib_modfl.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_nan.c b/libs/libm/libm/lib_nan.c similarity index 98% rename from libs/libc/math/lib_nan.c rename to libs/libm/libm/lib_nan.c index da3ea364039..1be0b43ae35 100644 --- a/libs/libc/math/lib_nan.c +++ b/libs/libm/libm/lib_nan.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_nan.c + * libs/libm/libm/lib_nan.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_nanf.c b/libs/libm/libm/lib_nanf.c similarity index 98% rename from libs/libc/math/lib_nanf.c rename to libs/libm/libm/lib_nanf.c index 28e36e32fef..2b648c127d5 100644 --- a/libs/libc/math/lib_nanf.c +++ b/libs/libm/libm/lib_nanf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_nanf.c + * libs/libm/libm/lib_nanf.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_nanl.c b/libs/libm/libm/lib_nanl.c similarity index 98% rename from libs/libc/math/lib_nanl.c rename to libs/libm/libm/lib_nanl.c index 1bd95634c03..ac86785865c 100644 --- a/libs/libc/math/lib_nanl.c +++ b/libs/libm/libm/lib_nanl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_nanl.c + * libs/libm/libm/lib_nanl.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_pow.c b/libs/libm/libm/lib_pow.c similarity index 98% rename from libs/libc/math/lib_pow.c rename to libs/libm/libm/lib_pow.c index e82e181eb25..0177d264546 100644 --- a/libs/libc/math/lib_pow.c +++ b/libs/libm/libm/lib_pow.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_pow.c + * libs/libm/libm/lib_pow.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_powf.c b/libs/libm/libm/lib_powf.c similarity index 98% rename from libs/libc/math/lib_powf.c rename to libs/libm/libm/lib_powf.c index 2325d73dbd1..27d5f30d49d 100644 --- a/libs/libc/math/lib_powf.c +++ b/libs/libm/libm/lib_powf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_powf.c + * libs/libm/libm/lib_powf.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_powl.c b/libs/libm/libm/lib_powl.c similarity index 98% rename from libs/libc/math/lib_powl.c rename to libs/libm/libm/lib_powl.c index 94bc0d4f849..f3b97e4fddc 100644 --- a/libs/libc/math/lib_powl.c +++ b/libs/libm/libm/lib_powl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_powl.c + * libs/libm/libm/lib_powl.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_rint.c b/libs/libm/libm/lib_rint.c similarity index 99% rename from libs/libc/math/lib_rint.c rename to libs/libm/libm/lib_rint.c index 6d2d4c75457..62a9d47f26a 100644 --- a/libs/libc/math/lib_rint.c +++ b/libs/libm/libm/lib_rint.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_rint.c + * libs/libm/libm/lib_rint.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_rintf.c b/libs/libm/libm/lib_rintf.c similarity index 99% rename from libs/libc/math/lib_rintf.c rename to libs/libm/libm/lib_rintf.c index f3d48a8c70c..d87c334d6ce 100644 --- a/libs/libc/math/lib_rintf.c +++ b/libs/libm/libm/lib_rintf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_rintf.c + * libs/libm/libm/lib_rintf.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_rintl.c b/libs/libm/libm/lib_rintl.c similarity index 99% rename from libs/libc/math/lib_rintl.c rename to libs/libm/libm/lib_rintl.c index 0af58edef03..84fecd4b968 100644 --- a/libs/libc/math/lib_rintl.c +++ b/libs/libm/libm/lib_rintl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_rintl.c + * libs/libm/libm/lib_rintl.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_round.c b/libs/libm/libm/lib_round.c similarity index 98% rename from libs/libc/math/lib_round.c rename to libs/libm/libm/lib_round.c index 70a4ee86756..41af967582b 100644 --- a/libs/libc/math/lib_round.c +++ b/libs/libm/libm/lib_round.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_round.c + * libs/libm/libm/lib_round.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_roundf.c b/libs/libm/libm/lib_roundf.c similarity index 98% rename from libs/libc/math/lib_roundf.c rename to libs/libm/libm/lib_roundf.c index cef80226e79..8d33e1c7f59 100644 --- a/libs/libc/math/lib_roundf.c +++ b/libs/libm/libm/lib_roundf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_roundf.c + * libs/libm/libm/lib_roundf.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_roundl.c b/libs/libm/libm/lib_roundl.c similarity index 98% rename from libs/libc/math/lib_roundl.c rename to libs/libm/libm/lib_roundl.c index 8d9120e1db4..cbf25ed0419 100644 --- a/libs/libc/math/lib_roundl.c +++ b/libs/libm/libm/lib_roundl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_roundl.c + * libs/libm/libm/lib_roundl.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_scalbn.c b/libs/libm/libm/lib_scalbn.c similarity index 98% rename from libs/libc/math/lib_scalbn.c rename to libs/libm/libm/lib_scalbn.c index 93e2a060b99..eb5fc0e84eb 100644 --- a/libs/libc/math/lib_scalbn.c +++ b/libs/libm/libm/lib_scalbn.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_scalbn.c + * libs/libm/libm/lib_scalbn.c * get a double number of x*2^n * * This file is copy from musl libc diff --git a/libs/libc/math/lib_scalbnf.c b/libs/libm/libm/lib_scalbnf.c similarity index 98% rename from libs/libc/math/lib_scalbnf.c rename to libs/libm/libm/lib_scalbnf.c index 7710a73c34d..02385ce5520 100644 --- a/libs/libc/math/lib_scalbnf.c +++ b/libs/libm/libm/lib_scalbnf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_scalbnf.c + * libs/libm/libm/lib_scalbnf.c * get a float number of x*2^n * * This file is copy from musl libc diff --git a/libs/libc/math/lib_scalbnl.c b/libs/libm/libm/lib_scalbnl.c similarity index 99% rename from libs/libc/math/lib_scalbnl.c rename to libs/libm/libm/lib_scalbnl.c index 0d93264537a..c94b0b613cc 100644 --- a/libs/libc/math/lib_scalbnl.c +++ b/libs/libm/libm/lib_scalbnl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_scalbnl.c + * libs/libm/libm/lib_scalbnl.c * get a long double number of x*2^n * * This file is copy from musl libc diff --git a/libs/libc/math/lib_sin.c b/libs/libm/libm/lib_sin.c similarity index 99% rename from libs/libc/math/lib_sin.c rename to libs/libm/libm/lib_sin.c index f144d45c75f..ae275b4fe18 100644 --- a/libs/libc/math/lib_sin.c +++ b/libs/libm/libm/lib_sin.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_sin.c + * libs/libm/libm/lib_sin.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_sincos.c b/libs/libm/libm/lib_sincos.c similarity index 97% rename from libs/libc/math/lib_sincos.c rename to libs/libm/libm/lib_sincos.c index 8b9bd5232a9..fd00547edd4 100644 --- a/libs/libc/math/lib_sincos.c +++ b/libs/libm/libm/lib_sincos.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_sincos.c + * libs/libm/libm/lib_sincos.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_sincosf.c b/libs/libm/libm/lib_sincosf.c similarity index 97% rename from libs/libc/math/lib_sincosf.c rename to libs/libm/libm/lib_sincosf.c index 1997656ec44..311c36f6fb1 100644 --- a/libs/libc/math/lib_sincosf.c +++ b/libs/libm/libm/lib_sincosf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_sincosf.c + * libs/libm/libm/lib_sincosf.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_sincosl.c b/libs/libm/libm/lib_sincosl.c similarity index 97% rename from libs/libc/math/lib_sincosl.c rename to libs/libm/libm/lib_sincosl.c index 02fbfeef1fd..864e1fd67ba 100644 --- a/libs/libc/math/lib_sincosl.c +++ b/libs/libm/libm/lib_sincosl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_sincosl.c + * libs/libm/libm/lib_sincosl.c * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with diff --git a/libs/libc/math/lib_sinf.c b/libs/libm/libm/lib_sinf.c similarity index 98% rename from libs/libc/math/lib_sinf.c rename to libs/libm/libm/lib_sinf.c index b9651ad79c3..77ff68ad8ad 100644 --- a/libs/libc/math/lib_sinf.c +++ b/libs/libm/libm/lib_sinf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_sinf.c + * libs/libm/libm/lib_sinf.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_sinh.c b/libs/libm/libm/lib_sinh.c similarity index 98% rename from libs/libc/math/lib_sinh.c rename to libs/libm/libm/lib_sinh.c index 622445b18b6..b9cb88c42a5 100644 --- a/libs/libc/math/lib_sinh.c +++ b/libs/libm/libm/lib_sinh.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_sinh.c + * libs/libm/libm/lib_sinh.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_sinhf.c b/libs/libm/libm/lib_sinhf.c similarity index 98% rename from libs/libc/math/lib_sinhf.c rename to libs/libm/libm/lib_sinhf.c index fa7f7da8323..44bda15bf82 100644 --- a/libs/libc/math/lib_sinhf.c +++ b/libs/libm/libm/lib_sinhf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_sinhf.c + * libs/libm/libm/lib_sinhf.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_sinhl.c b/libs/libm/libm/lib_sinhl.c similarity index 98% rename from libs/libc/math/lib_sinhl.c rename to libs/libm/libm/lib_sinhl.c index 603e051ad0f..df34cb25efa 100644 --- a/libs/libc/math/lib_sinhl.c +++ b/libs/libm/libm/lib_sinhl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_sinhl.c + * libs/libm/libm/lib_sinhl.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_sinl.c b/libs/libm/libm/lib_sinl.c similarity index 99% rename from libs/libc/math/lib_sinl.c rename to libs/libm/libm/lib_sinl.c index bead13181fe..0adb0fb4be1 100644 --- a/libs/libc/math/lib_sinl.c +++ b/libs/libm/libm/lib_sinl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_sinl.c + * libs/libm/libm/lib_sinl.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_sqrt.c b/libs/libm/libm/lib_sqrt.c similarity index 98% rename from libs/libc/math/lib_sqrt.c rename to libs/libm/libm/lib_sqrt.c index 1114fefe042..18b62f1d70f 100644 --- a/libs/libc/math/lib_sqrt.c +++ b/libs/libm/libm/lib_sqrt.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_sqrt.c + * libs/libm/libm/lib_sqrt.c * * This file is a part of NuttX: * @@ -35,7 +35,7 @@ #include #include -#include "libc.h" +#include "libm.h" /**************************************************************************** * Public Functions diff --git a/libs/libc/math/lib_sqrtf.c b/libs/libm/libm/lib_sqrtf.c similarity index 97% rename from libs/libc/math/lib_sqrtf.c rename to libs/libm/libm/lib_sqrtf.c index 02a6e783bad..5a1802d14b3 100644 --- a/libs/libc/math/lib_sqrtf.c +++ b/libs/libm/libm/lib_sqrtf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_sqrtf.c + * libs/libm/libm/lib_sqrtf.c * * This file is a part of NuttX: * @@ -35,7 +35,7 @@ #include #include -#include "libc.h" +#include "libm.h" /**************************************************************************** * Public Functions diff --git a/libs/libc/math/lib_sqrtl.c b/libs/libm/libm/lib_sqrtl.c similarity index 98% rename from libs/libc/math/lib_sqrtl.c rename to libs/libm/libm/lib_sqrtl.c index 1f6df931f4e..d095aa18299 100644 --- a/libs/libc/math/lib_sqrtl.c +++ b/libs/libm/libm/lib_sqrtl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_sqrtl.c + * libs/libm/libm/lib_sqrtl.c * * This file is a part of NuttX: * @@ -35,7 +35,7 @@ #include #include -#include "libc.h" +#include "libm.h" /**************************************************************************** * Public Functions diff --git a/libs/libc/math/lib_tan.c b/libs/libm/libm/lib_tan.c similarity index 98% rename from libs/libc/math/lib_tan.c rename to libs/libm/libm/lib_tan.c index be7da77f5a6..9d603419ab0 100644 --- a/libs/libc/math/lib_tan.c +++ b/libs/libm/libm/lib_tan.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_tan.c + * libs/libm/libm/lib_tan.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_tanf.c b/libs/libm/libm/lib_tanf.c similarity index 98% rename from libs/libc/math/lib_tanf.c rename to libs/libm/libm/lib_tanf.c index d23d4af0bd2..656659623f2 100644 --- a/libs/libc/math/lib_tanf.c +++ b/libs/libm/libm/lib_tanf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_tanf.c + * libs/libm/libm/lib_tanf.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_tanh.c b/libs/libm/libm/lib_tanh.c similarity index 98% rename from libs/libc/math/lib_tanh.c rename to libs/libm/libm/lib_tanh.c index 187f0ca75a0..c5743d908c2 100644 --- a/libs/libc/math/lib_tanh.c +++ b/libs/libm/libm/lib_tanh.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_tanh.c + * libs/libm/libm/lib_tanh.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_tanhf.c b/libs/libm/libm/lib_tanhf.c similarity index 98% rename from libs/libc/math/lib_tanhf.c rename to libs/libm/libm/lib_tanhf.c index df5da9a1527..b76696a9bd4 100644 --- a/libs/libc/math/lib_tanhf.c +++ b/libs/libm/libm/lib_tanhf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_tanhf.c + * libs/libm/libm/lib_tanhf.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_tanhl.c b/libs/libm/libm/lib_tanhl.c similarity index 98% rename from libs/libc/math/lib_tanhl.c rename to libs/libm/libm/lib_tanhl.c index 36cf45d4a6e..b0ecfc9180b 100644 --- a/libs/libc/math/lib_tanhl.c +++ b/libs/libm/libm/lib_tanhl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_tanhl.c + * libs/libm/libm/lib_tanhl.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_tanl.c b/libs/libm/libm/lib_tanl.c similarity index 98% rename from libs/libc/math/lib_tanl.c rename to libs/libm/libm/lib_tanl.c index f3285d563b7..1d12658e23f 100644 --- a/libs/libc/math/lib_tanl.c +++ b/libs/libm/libm/lib_tanl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_tanl.c + * libs/libm/libm/lib_tanl.c * * This file is a part of NuttX: * diff --git a/libs/libc/math/lib_trunc.c b/libs/libm/libm/lib_trunc.c similarity index 98% rename from libs/libc/math/lib_trunc.c rename to libs/libm/libm/lib_trunc.c index 53c733fde62..b776b432150 100644 --- a/libs/libc/math/lib_trunc.c +++ b/libs/libm/libm/lib_trunc.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_trunc.c + * libs/libm/libm/lib_trunc.c * * This implementation is derived from the musl library under the MIT License * diff --git a/libs/libc/math/lib_truncf.c b/libs/libm/libm/lib_truncf.c similarity index 98% rename from libs/libc/math/lib_truncf.c rename to libs/libm/libm/lib_truncf.c index 324e0e5c21b..b05a0de6c5c 100644 --- a/libs/libc/math/lib_truncf.c +++ b/libs/libm/libm/lib_truncf.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_truncf.c + * libs/libm/libm/lib_truncf.c * * This implementation is derived from the musl library under the MIT License * diff --git a/libs/libc/math/lib_truncl.c b/libs/libm/libm/lib_truncl.c similarity index 98% rename from libs/libc/math/lib_truncl.c rename to libs/libm/libm/lib_truncl.c index 7a329833c9a..46874fb22df 100644 --- a/libs/libc/math/lib_truncl.c +++ b/libs/libm/libm/lib_truncl.c @@ -1,5 +1,5 @@ /**************************************************************************** - * libs/libc/math/lib_truncl.c + * libs/libm/libm/lib_truncl.c * * This implementation is derived from the musl library under the MIT License * diff --git a/libs/libm/libm/libm.h b/libs/libm/libm/libm.h new file mode 100644 index 00000000000..52b687be2a7 --- /dev/null +++ b/libs/libm/libm/libm.h @@ -0,0 +1,70 @@ +/**************************************************************************** + * libs/libm/libm/libm.h + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. The + * ASF licenses this file to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the + * License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + ****************************************************************************/ + +#ifndef __LIBS_LIBM_LIBM_LIBM_H +#define __LIBS_LIBM_LIBM_LIBM_H + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include +#include + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +/**************************************************************************** + * Public Types + ****************************************************************************/ + +/**************************************************************************** + * Public Data + ****************************************************************************/ + +#undef EXTERN +#if defined(__cplusplus) +#define EXTERN extern "C" +extern "C" +{ +#else +#define EXTERN extern +#endif + +/**************************************************************************** + * Public Function Prototypes + ****************************************************************************/ + +/* Defined in lib_expi.c */ + +float lib_expif(size_t n); +double lib_expi(size_t n); + +/* Defined in lib_libsqrtapprox.c */ + +float lib_sqrtapprox(float x); + +#undef EXTERN +#if defined(__cplusplus) +} +#endif + +#endif /* __LIBS_LIBM_LIBM_LIBM_H */ diff --git a/tools/Directories.mk b/tools/Directories.mk index 94f344f3041..0b587f8e8c4 100644 --- a/tools/Directories.mk +++ b/tools/Directories.mk @@ -67,6 +67,13 @@ CLEANDIRS += pass1 ifeq ($(CONFIG_BUILD_FLAT),y) KERNDEPDIRS += libs$(DELIM)libc mm + +ifeq ($(CONFIG_LIBM_TOOLCHAIN)$(CONFIG_LIBM_NONE),) +KERNDEPDIRS += libs$(DELIM)libm +else +CLEANDIRS += libs$(DELIM)libm +endif + ifeq ($(CONFIG_HAVE_CXX),y) KERNDEPDIRS += libs$(DELIM)libxx else @@ -76,6 +83,13 @@ endif else USERDEPDIRS += libs$(DELIM)libc mm + +ifeq ($(CONFIG_LIBM_TOOLCHAIN)$(CONFIG_LIBM_NONE),) +USERDEPDIRS += libs$(DELIM)libm +else +CLEANDIRS += libs$(DELIM)libm +endif + ifeq ($(CONFIG_HAVE_CXX),y) USERDEPDIRS += libs$(DELIM)libxx else @@ -97,6 +111,11 @@ endif endif CONTEXTDIRS += libs$(DELIM)libc + +ifeq ($(CONFIG_LIBM_TOOLCHAIN)$(CONFIG_LIBM_NONE),) +CONTEXTDIRS += libs$(DELIM)libm +endif + ifeq ($(CONFIG_HAVE_CXX),y) CONTEXTDIRS += libs$(DELIM)libxx endif diff --git a/tools/FlatLibs.mk b/tools/FlatLibs.mk index a0eaf6bb6e4..5ee873f7b8c 100644 --- a/tools/FlatLibs.mk +++ b/tools/FlatLibs.mk @@ -44,9 +44,16 @@ NUTTXLIBS += staging$(DELIM)libboards$(LIBEXT) # Add libraries for syscall support. -NUTTXLIBS += staging$(DELIM)libc$(LIBEXT) staging$(DELIM)libmm$(LIBEXT) +NUTTXLIBS += staging$(DELIM)libc$(LIBEXT) +NUTTXLIBS += staging$(DELIM)libmm$(LIBEXT) NUTTXLIBS += staging$(DELIM)libarch$(LIBEXT) +# Add libraries for math support. + +ifeq ($(CONFIG_LIBM_TOOLCHAIN)$(CONFIG_LIBM_NONE),) +NUTTXLIBS += staging$(DELIM)libm$(LIBEXT) +endif + ifeq ($(CONFIG_LIB_SYSCALL),y) NUTTXLIBS += staging$(DELIM)libstubs$(LIBEXT) USERLIBS += staging$(DELIM)libproxies$(LIBEXT) diff --git a/tools/KernelLibs.mk b/tools/KernelLibs.mk index c87e60e099e..ef1933f99ac 100644 --- a/tools/KernelLibs.mk +++ b/tools/KernelLibs.mk @@ -50,6 +50,13 @@ NUTTXLIBS += staging$(DELIM)libkmm$(LIBEXT) staging$(DELIM)libkarch$(LIBEXT) USERLIBS += staging$(DELIM)libproxies$(LIBEXT) staging$(DELIM)libc$(LIBEXT) USERLIBS += staging$(DELIM)libmm$(LIBEXT) staging$(DELIM)libarch$(LIBEXT) +# Add libraries for math support. + +ifeq ($(CONFIG_LIBM_TOOLCHAIN)$(CONFIG_LIBM_NONE),) +NUTTXLIBS += staging$(DELIM)libkm$(LIBEXT) +USERLIBS += staging$(DELIM)libm$(LIBEXT) +endif + # Add library for system call instrumentation if needed ifeq ($(CONFIG_SCHED_INSTRUMENTATION_SYSCALL),y) diff --git a/tools/LibTargets.mk b/tools/LibTargets.mk index 4eaa8e1e70f..94d8a49657d 100644 --- a/tools/LibTargets.mk +++ b/tools/LibTargets.mk @@ -31,6 +31,12 @@ libs$(DELIM)libc$(DELIM)libkc$(LIBEXT): pass2dep staging$(DELIM)libkc$(LIBEXT): libs$(DELIM)libc$(DELIM)libkc$(LIBEXT) $(Q) $(call INSTALL_LIB,$<,$@) +libs$(DELIM)libm$(DELIM)libkm$(LIBEXT): pass2dep + $(Q) $(MAKE) -C libs$(DELIM)libm libkm$(LIBEXT) BINDIR=kbin EXTRAFLAGS="$(KDEFINE) $(EXTRAFLAGS)" + +staging$(DELIM)libkm$(LIBEXT): libs$(DELIM)libm$(DELIM)libkm$(LIBEXT) + $(Q) $(call INSTALL_LIB,$<,$@) + libs$(DELIM)libnx$(DELIM)libknx$(LIBEXT): pass2dep $(Q) $(MAKE) -C libs$(DELIM)libnx libknx$(LIBEXT) BINDIR=kbin EXTRAFLAGS="$(KDEFINE) $(EXTRAFLAGS)" @@ -176,6 +182,16 @@ endif staging$(DELIM)libc$(LIBEXT): libs$(DELIM)libc$(DELIM)libc$(LIBEXT) $(Q) $(call INSTALL_LIB,$<,$@) +ifeq ($(CONFIG_BUILD_FLAT),y) +libs$(DELIM)libm$(DELIM)libm$(LIBEXT): pass2dep +else +libs$(DELIM)libm$(DELIM)libm$(LIBEXT): pass1dep +endif + $(Q) $(MAKE) -C libs$(DELIM)libm libm$(LIBEXT) EXTRAFLAGS="$(EXTRAFLAGS)" + +staging$(DELIM)libm$(LIBEXT): libs$(DELIM)libm$(DELIM)libm$(LIBEXT) + $(Q) $(call INSTALL_LIB,$<,$@) + ifeq ($(CONFIG_BUILD_FLAT),y) libs$(DELIM)libnx$(DELIM)libnx$(LIBEXT): pass2dep else diff --git a/tools/ProtectedLibs.mk b/tools/ProtectedLibs.mk index e7d8750dfeb..f1f7d30b212 100644 --- a/tools/ProtectedLibs.mk +++ b/tools/ProtectedLibs.mk @@ -50,6 +50,13 @@ NUTTXLIBS += staging$(DELIM)libkmm$(LIBEXT) staging$(DELIM)libkarch$(LIBEXT) USERLIBS += staging$(DELIM)libproxies$(LIBEXT) staging$(DELIM)libc$(LIBEXT) USERLIBS += staging$(DELIM)libmm$(LIBEXT) staging$(DELIM)libarch$(LIBEXT) +# Add libraries for math support. + +ifeq ($(CONFIG_LIBM_TOOLCHAIN)$(CONFIG_LIBM_NONE),) +NUTTXLIBS += staging$(DELIM)libkm$(LIBEXT) +USERLIBS += staging$(DELIM)libm$(LIBEXT) +endif + # Add library for system call instrumentation if needed ifeq ($(CONFIG_SCHED_INSTRUMENTATION_SYSCALL),y) diff --git a/tools/Unix.mk b/tools/Unix.mk index 03f18d67241..7c0428b0bf8 100644 --- a/tools/Unix.mk +++ b/tools/Unix.mk @@ -171,7 +171,7 @@ all: $(BIN) # include/nuttx/lib/math.h will hand the redirection to the architecture- # specific math.h header file. # -# If the CONFIG_LIBM is defined, the Rhombus libm will be built at libc/math. +# If the CONFIG_LIBM is defined, the Rhombus libm will be built at libm/libm. # Definitions and prototypes for the Rhombus libm are also contained in # include/nuttx/lib/math.h and so the file must also be copied in that case. # diff --git a/tools/Win.mk b/tools/Win.mk index c39739c3f08..0893c01a824 100644 --- a/tools/Win.mk +++ b/tools/Win.mk @@ -149,7 +149,7 @@ all: $(BIN) # include\nuttx\math.h will hand the redirection to the architecture- # specific math.h header file. # -# If the CONFIG_LIBM is defined, the Rhombus libm will be built at libc\math. +# If the CONFIG_LIBM is defined, the Rhombus libm will be built at libm\libm. # Definitions and prototypes for the Rhombus libm are also contained in # include\nuttx\math.h and so the file must also be copied in that case. #