From 6c27f3c19deb70bcabedd92e7593587c728befa2 Mon Sep 17 00:00:00 2001 From: Petro Karashchenko Date: Fri, 21 Jan 2022 22:33:13 +0200 Subject: [PATCH] toolchain: add libm to EXTRA_LIBS only if it is provided by the compiler Some toolchains may be built without libm support, but using such toochain should not generate any errors in case if math functions are not used in the program Signed-off-by: Petro Karashchenko --- arch/arm/src/arm/Toolchain.defs | 16 +++++++++++----- arch/arm/src/armv6-m/Toolchain.defs | 10 ++++++++-- arch/arm/src/armv7-a/Toolchain.defs | 10 ++++++++-- arch/arm/src/armv7-m/Toolchain.defs | 10 ++++++++-- arch/arm/src/armv7-r/Toolchain.defs | 10 ++++++++-- arch/arm/src/armv8-m/Toolchain.defs | 10 ++++++++-- arch/avr/src/avr/Toolchain.defs | 10 ++++++++-- arch/avr/src/avr32/Toolchain.defs | 10 ++++++++-- arch/hc/src/Makefile | 14 ++++++++++---- arch/mips/src/mips32/Toolchain.defs | 16 +++++++++++----- arch/misoc/src/lm32/Toolchain.defs | 10 ++++++++-- arch/misoc/src/minerva/Toolchain.defs | 10 ++++++++-- arch/or1k/src/mor1kx/Toolchain.defs | 10 ++++++++-- arch/renesas/src/Makefile | 14 ++++++++++---- arch/risc-v/src/common/Toolchain.defs | 10 ++++++++-- arch/x86/src/Makefile | 14 ++++++++++---- arch/x86_64/src/Makefile | 14 ++++++++++---- arch/xtensa/src/lx6/Toolchain.defs | 10 ++++++++-- arch/xtensa/src/lx7/Toolchain.defs | 10 ++++++++-- 19 files changed, 166 insertions(+), 52 deletions(-) diff --git a/arch/arm/src/arm/Toolchain.defs b/arch/arm/src/arm/Toolchain.defs index 251a7b0bd4..5be37b14ae 100644 --- a/arch/arm/src/arm/Toolchain.defs +++ b/arch/arm/src/arm/Toolchain.defs @@ -104,14 +104,20 @@ OBJDUMP = $(CROSSDEV)objdump # Add the builtin library EXTRA_LIBS += -lgcc -EXTRA_LIBPATHS += -L ${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name`"} +EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name`"}" ifneq ($(CONFIG_LIBM),y) - EXTRA_LIBS += -lm - EXTRA_LIBPATHS += -L ${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a`"} + LIBM_PATH = "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a`"}" + + # Check if libm is provided by the compiler + + ifneq ($(LIBM_PATH),".") + EXTRA_LIBS += -lm + EXTRA_LIBPATHS += -L $(LIBM_PATH) + endif endif ifeq ($(CONFIG_LIBSUPCXX),y) - EXTRA_LIBS += lsupc++ - EXTRA_LIBPATHS += -L ${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libsupc++.a`"} + EXTRA_LIBS += -lsupc++ + EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libsupc++.a`"}" endif diff --git a/arch/arm/src/armv6-m/Toolchain.defs b/arch/arm/src/armv6-m/Toolchain.defs index 7cd8874a3b..1e66e7edf0 100644 --- a/arch/arm/src/armv6-m/Toolchain.defs +++ b/arch/arm/src/armv6-m/Toolchain.defs @@ -99,8 +99,14 @@ EXTRA_LIBS += -lgcc EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name`"}" ifneq ($(CONFIG_LIBM),y) - EXTRA_LIBS += -lm - EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a`"}" + LIBM_PATH = "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a`"}" + + # Check if libm is provided by the compiler + + ifneq ($(LIBM_PATH),".") + EXTRA_LIBS += -lm + EXTRA_LIBPATHS += -L $(LIBM_PATH) + endif endif ifeq ($(CONFIG_LIBSUPCXX),y) diff --git a/arch/arm/src/armv7-a/Toolchain.defs b/arch/arm/src/armv7-a/Toolchain.defs index 215d6469fc..a45e77bcd2 100644 --- a/arch/arm/src/armv7-a/Toolchain.defs +++ b/arch/arm/src/armv7-a/Toolchain.defs @@ -125,8 +125,14 @@ EXTRA_LIBS += -lgcc EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name`"}" ifneq ($(CONFIG_LIBM),y) - EXTRA_LIBS += -lm - EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a`"}" + LIBM_PATH = "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a`"}" + + # Check if libm is provided by the compiler + + ifneq ($(LIBM_PATH),".") + EXTRA_LIBS += -lm + EXTRA_LIBPATHS += -L $(LIBM_PATH) + endif endif ifeq ($(CONFIG_LIBSUPCXX),y) diff --git a/arch/arm/src/armv7-m/Toolchain.defs b/arch/arm/src/armv7-m/Toolchain.defs index b63e6dd279..ba6a58e8ea 100644 --- a/arch/arm/src/armv7-m/Toolchain.defs +++ b/arch/arm/src/armv7-m/Toolchain.defs @@ -158,8 +158,14 @@ EXTRA_LIBS += -lgcc EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name`"}" ifneq ($(CONFIG_LIBM),y) - EXTRA_LIBS += -lm - EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a`"}" + LIBM_PATH = "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a`"}" + + # Check if libm is provided by the compiler + + ifneq ($(LIBM_PATH),".") + EXTRA_LIBS += -lm + EXTRA_LIBPATHS += -L $(LIBM_PATH) + endif endif ifeq ($(CONFIG_LIBSUPCXX),y) diff --git a/arch/arm/src/armv7-r/Toolchain.defs b/arch/arm/src/armv7-r/Toolchain.defs index d0df68d58f..249a38952b 100644 --- a/arch/arm/src/armv7-r/Toolchain.defs +++ b/arch/arm/src/armv7-r/Toolchain.defs @@ -107,8 +107,14 @@ EXTRA_LIBS += -lgcc EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name`"}" ifneq ($(CONFIG_LIBM),y) - EXTRA_LIBS += -lm - EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a`"}" + LIBM_PATH = "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a`"}" + + # Check if libm is provided by the compiler + + ifneq ($(LIBM_PATH),".") + EXTRA_LIBS += -lm + EXTRA_LIBPATHS += -L $(LIBM_PATH) + endif endif ifeq ($(CONFIG_LIBSUPCXX),y) diff --git a/arch/arm/src/armv8-m/Toolchain.defs b/arch/arm/src/armv8-m/Toolchain.defs index 58df2f5509..7121e9991a 100644 --- a/arch/arm/src/armv8-m/Toolchain.defs +++ b/arch/arm/src/armv8-m/Toolchain.defs @@ -157,8 +157,14 @@ EXTRA_LIBS += -lgcc EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name`"}" ifneq ($(CONFIG_LIBM),y) - EXTRA_LIBS += -lm - EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a`"}" + LIBM_PATH = "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a`"}" + + # Check if libm is provided by the compiler + + ifneq ($(LIBM_PATH),".") + EXTRA_LIBS += -lm + EXTRA_LIBPATHS += -L $(LIBM_PATH) + endif endif ifeq ($(CONFIG_LIBSUPCXX),y) diff --git a/arch/avr/src/avr/Toolchain.defs b/arch/avr/src/avr/Toolchain.defs index 7a2dadd531..049032aaf8 100644 --- a/arch/avr/src/avr/Toolchain.defs +++ b/arch/avr/src/avr/Toolchain.defs @@ -130,8 +130,14 @@ EXTRA_LIBS += -lgcc EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name`"}" ifneq ($(CONFIG_LIBM),y) - EXTRA_LIBS += -lm - EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a`"}" + LIBM_PATH = "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a`"}" + + # Check if libm is provided by the compiler + + ifneq ($(LIBM_PATH),".") + EXTRA_LIBS += -lm + EXTRA_LIBPATHS += -L $(LIBM_PATH) + endif endif ifeq ($(CONFIG_LIBSUPCXX),y) diff --git a/arch/avr/src/avr32/Toolchain.defs b/arch/avr/src/avr32/Toolchain.defs index 73826ec043..62728dc75e 100644 --- a/arch/avr/src/avr32/Toolchain.defs +++ b/arch/avr/src/avr32/Toolchain.defs @@ -54,8 +54,14 @@ EXTRA_LIBS += -lgcc EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name`"}" ifneq ($(CONFIG_LIBM),y) - EXTRA_LIBS += -lm - EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a`"}" + LIBM_PATH = "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a`"}" + + # Check if libm is provided by the compiler + + ifneq ($(LIBM_PATH),".") + EXTRA_LIBS += -lm + EXTRA_LIBPATHS += -L $(LIBM_PATH) + endif endif ifeq ($(CONFIG_LIBSUPCXX),y) diff --git a/arch/hc/src/Makefile b/arch/hc/src/Makefile index 7d9d6d75b6..366459e30d 100644 --- a/arch/hc/src/Makefile +++ b/arch/hc/src/Makefile @@ -88,16 +88,22 @@ endif # Add the builtin library EXTRA_LIBS += -lgcc -EXTRA_LIBPATHS += -L "${dir ${shell $(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name}}" +EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name`"}" ifneq ($(CONFIG_LIBM),y) - EXTRA_LIBS += -lm - EXTRA_LIBPATHS += -L "${dir ${shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a}}" + LIBM_PATH = "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a`"}" + + # Check if libm is provided by the compiler + + ifneq ($(LIBM_PATH),".") + EXTRA_LIBS += -lm + EXTRA_LIBPATHS += -L $(LIBM_PATH) + endif endif ifeq ($(CONFIG_LIBSUPCXX),y) EXTRA_LIBS += -lsupc++ - EXTRA_LIBPATHS += -L "${dir ${shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libsupc++.a}}" + EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libsupc++.a`"}" endif VPATH = chip:common:$(ARCH_SUBDIR) diff --git a/arch/mips/src/mips32/Toolchain.defs b/arch/mips/src/mips32/Toolchain.defs index 5512d2bcc2..3e95cd9797 100644 --- a/arch/mips/src/mips32/Toolchain.defs +++ b/arch/mips/src/mips32/Toolchain.defs @@ -280,14 +280,20 @@ OBJDUMP = $(CROSSDEV)objdump # Add the builtin library EXTRA_LIBS += -lgcc -EXTRA_LIBPATHS += -L ${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name`"} +EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name`"}" ifneq ($(CONFIG_LIBM),y) - EXTRA_LIBS += -lm - EXTRA_LIBPATHS += -L ${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a`"} + LIBM_PATH = "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a`"}" + + # Check if libm is provided by the compiler + + ifneq ($(LIBM_PATH),".") + EXTRA_LIBS += -lm + EXTRA_LIBPATHS += -L $(LIBM_PATH) + endif endif ifeq ($(CONFIG_LIBSUPCXX),y) - EXTRA_LIBS += lsupc++ - EXTRA_LIBPATHS += -L ${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libsupc++.a`"} + EXTRA_LIBS += -lsupc++ + EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libsupc++.a`"}" endif diff --git a/arch/misoc/src/lm32/Toolchain.defs b/arch/misoc/src/lm32/Toolchain.defs index 191540d294..34e7f67141 100644 --- a/arch/misoc/src/lm32/Toolchain.defs +++ b/arch/misoc/src/lm32/Toolchain.defs @@ -91,8 +91,14 @@ EXTRA_LIBS += -lgcc EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name`"}" ifneq ($(CONFIG_LIBM),y) - EXTRA_LIBS += -lm - EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a`"}" + LIBM_PATH = "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a`"}" + + # Check if libm is provided by the compiler + + ifneq ($(LIBM_PATH),".") + EXTRA_LIBS += -lm + EXTRA_LIBPATHS += -L $(LIBM_PATH) + endif endif ifeq ($(CONFIG_LIBSUPCXX),y) diff --git a/arch/misoc/src/minerva/Toolchain.defs b/arch/misoc/src/minerva/Toolchain.defs index 2ca9fe4656..4b66b0dd4d 100644 --- a/arch/misoc/src/minerva/Toolchain.defs +++ b/arch/misoc/src/minerva/Toolchain.defs @@ -45,8 +45,14 @@ EXTRA_LIBS += -lgcc EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name`"}" ifneq ($(CONFIG_LIBM),y) - EXTRA_LIBS += -lm - EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a`"}" + LIBM_PATH = "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a`"}" + + # Check if libm is provided by the compiler + + ifneq ($(LIBM_PATH),".") + EXTRA_LIBS += -lm + EXTRA_LIBPATHS += -L $(LIBM_PATH) + endif endif ifeq ($(CONFIG_LIBSUPCXX),y) diff --git a/arch/or1k/src/mor1kx/Toolchain.defs b/arch/or1k/src/mor1kx/Toolchain.defs index 0dd120a7fc..f7adbc0428 100644 --- a/arch/or1k/src/mor1kx/Toolchain.defs +++ b/arch/or1k/src/mor1kx/Toolchain.defs @@ -72,8 +72,14 @@ EXTRA_LIBS += -lgcc EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name`"}" ifneq ($(CONFIG_LIBM),y) - EXTRA_LIBS += -lm - EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a`"}" + LIBM_PATH = "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a`"}" + + # Check if libm is provided by the compiler + + ifneq ($(LIBM_PATH),".") + EXTRA_LIBS += -lm + EXTRA_LIBPATHS += -L $(LIBM_PATH) + endif endif ifeq ($(CONFIG_LIBSUPCXX),y) diff --git a/arch/renesas/src/Makefile b/arch/renesas/src/Makefile index 85f48bec5e..b5e735de91 100644 --- a/arch/renesas/src/Makefile +++ b/arch/renesas/src/Makefile @@ -81,16 +81,22 @@ endif # Add the builtin library EXTRA_LIBS += -lgcc -EXTRA_LIBPATHS += -L"${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name`"}" +EXTRA_LIBPATHS += -L""${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name`"}"" ifneq ($(CONFIG_LIBM),y) - EXTRA_LIBS += -lm - EXTRA_LIBPATHS += -L"${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a`"}" + LIBM_PATH = "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a`"}" + + # Check if libm is provided by the compiler + + ifneq ($(LIBM_PATH),".") + EXTRA_LIBS += -lm + EXTRA_LIBPATHS += -L $(LIBM_PATH) + endif endif ifeq ($(CONFIG_LIBSUPCXX),y) EXTRA_LIBS += -lsupc++ - EXTRA_LIBPATHS += -L"${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libsupc++.a`"}" + EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libsupc++.a`"}" endif VPATH = chip:common diff --git a/arch/risc-v/src/common/Toolchain.defs b/arch/risc-v/src/common/Toolchain.defs index c194f0efd9..c2192edd4d 100644 --- a/arch/risc-v/src/common/Toolchain.defs +++ b/arch/risc-v/src/common/Toolchain.defs @@ -133,8 +133,14 @@ EXTRA_LIBS += -lgcc EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name`"}" ifneq ($(CONFIG_LIBM),y) - EXTRA_LIBS += -lm - EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a`"}" + LIBM_PATH = "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a`"}" + + # Check if libm is provided by the compiler + + ifneq ($(LIBM_PATH),".") + EXTRA_LIBS += -lm + EXTRA_LIBPATHS += -L $(LIBM_PATH) + endif endif ifeq ($(CONFIG_LIBSUPCXX),y) diff --git a/arch/x86/src/Makefile b/arch/x86/src/Makefile index f8b6c68d98..b498f70178 100644 --- a/arch/x86/src/Makefile +++ b/arch/x86/src/Makefile @@ -85,16 +85,22 @@ endif # Add the builtin library EXTRA_LIBS += -lgcc -EXTRA_LIBPATHS += -L "${dir ${shell $(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name}}" +EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name`"}" ifneq ($(CONFIG_LIBM),y) - EXTRA_LIBS += -lm - EXTRA_LIBPATHS += -L "${dir ${shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a}}" + LIBM_PATH = "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a`"}" + + # Check if libm is provided by the compiler + + ifneq ($(LIBM_PATH),".") + EXTRA_LIBS += -lm + EXTRA_LIBPATHS += -L $(LIBM_PATH) + endif endif ifeq ($(CONFIG_LIBSUPCXX),y) EXTRA_LIBS += -lsupc++ - EXTRA_LIBPATHS += -L "${dir ${shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libsupc++.a}}" + EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libsupc++.a`"}" endif VPATH = chip:common:$(ARCH_SUBDIR) diff --git a/arch/x86_64/src/Makefile b/arch/x86_64/src/Makefile index fa3bc20dc9..61dce0debc 100644 --- a/arch/x86_64/src/Makefile +++ b/arch/x86_64/src/Makefile @@ -87,16 +87,22 @@ endif # Add the builtin library EXTRA_LIBS += -lgcc -EXTRA_LIBPATHS += -L "${dir ${shell $(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name}}" +EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name`"}" ifneq ($(CONFIG_LIBM),y) - EXTRA_LIBS += -lm - EXTRA_LIBPATHS += -L "${dir ${shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a}}" + LIBM_PATH = "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a`"}" + + # Check if libm is provided by the compiler + + ifneq ($(LIBM_PATH),".") + EXTRA_LIBS += -lm + EXTRA_LIBPATHS += -L $(LIBM_PATH) + endif endif ifeq ($(CONFIG_LIBSUPCXX),y) EXTRA_LIBS += -lsupc++ - EXTRA_LIBPATHS += -L "${dir ${shell $(CC) $(ARCHCPUFLAGS) --print-file-name=libsupc++.a}}" + EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libsupc++.a`"}" endif VPATH = chip:common:$(ARCH_SUBDIR) diff --git a/arch/xtensa/src/lx6/Toolchain.defs b/arch/xtensa/src/lx6/Toolchain.defs index d5e767aefb..a8f32ae750 100644 --- a/arch/xtensa/src/lx6/Toolchain.defs +++ b/arch/xtensa/src/lx6/Toolchain.defs @@ -83,8 +83,14 @@ EXTRA_LIBS += -lgcc EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name`"}" ifneq ($(CONFIG_LIBM),y) - EXTRA_LIBS += -lm - EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a`"}" + LIBM_PATH = "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a`"}" + + # Check if libm is provided by the compiler + + ifneq ($(LIBM_PATH),".") + EXTRA_LIBS += -lm + EXTRA_LIBPATHS += -L $(LIBM_PATH) + endif endif ifeq ($(CONFIG_LIBSUPCXX),y) diff --git a/arch/xtensa/src/lx7/Toolchain.defs b/arch/xtensa/src/lx7/Toolchain.defs index e36bf8ffa1..9e78bbd35b 100644 --- a/arch/xtensa/src/lx7/Toolchain.defs +++ b/arch/xtensa/src/lx7/Toolchain.defs @@ -83,8 +83,14 @@ EXTRA_LIBS += -lgcc EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-libgcc-file-name`"}" ifneq ($(CONFIG_LIBM),y) - EXTRA_LIBS += -lm - EXTRA_LIBPATHS += -L "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a`"}" + LIBM_PATH = "${shell dirname "`$(CC) $(ARCHCPUFLAGS) --print-file-name=libm.a`"}" + + # Check if libm is provided by the compiler + + ifneq ($(LIBM_PATH),".") + EXTRA_LIBS += -lm + EXTRA_LIBPATHS += -L $(LIBM_PATH) + endif endif ifeq ($(CONFIG_LIBSUPCXX),y)