Porting Motion Driver, failed with unresolved __aeabi_d2f

By sprhawk , 2 November 2015

I'm porting Motion Driver to STM32F429-Discovery

I'm using gcc-arm-none-eabi-4_9-2015q3 from launchpad

gcc reported :

arm-none-eabi/lib/armv7e-m/fpu/libm.a(lib_a-wf_sqrt.o): In function sqrtf':
wf_sqrt.c:(.text.sqrtf+0x76): undefined reference to__aeabi_d2f'

but I tried use sqrt(20.0f) it worked. Don't know why the use in DMP (it seems to be usage in mlmath.c) failed to build.

my options for gcc

CC          := "$(GCC_ROOT)bin/$(GNU_PREFIX)-gcc"
LD := "$(GCC_ROOT)bin/$(GNU_PREFIX)-gcc"
# for semihosting, should be replaced for production build
CFLAGS += -specs=rdimon.specs
LDFLAGS += -lrdimon

CFLAGS += -O0 -g
CFLAGS += -std=gnu99
CFLAGS += -Wall -Werror
CFLAGS += -Wdouble-promotion
CFLAGS += -mcpu=cortex-m4 -mfpu=fpv4-sp-d16
CFLAGS += -mlittle-endian -mthumb -mabi=aapcs -mfloat-abi=hard -fsingle-precision-constant
CFLAGS += -mthumb-interwork

CFLAGS += $(patsubst %,-I%, $(SEARCH_PATH))

ASFLAGS += -Wa,-D
ASFLAGS += $(CFLAGS)

LDFLAGS += $(patsubst %,-L%, $(LIBRARY_PATH))
LDFLAGS += $(patsubst %,-l%, $(LD_LIBRARIES))

LDFLAGS += -T$(LINKER_SCRIPT)
LDFLAGS += -Wl,-Map,$(OUTPUT_DIR)/output.map
# LDFLAGS += -nostartfiles -lgcc -nodefaultlibs -nostdlib
# LDFLAGS += -lc #-L$(GCC_ROOT)arm-none-eabi/lib/fpu -lc
# LDFLAGS += -lgcc #-L$(GCC_ROOT)lib/gcc/arm-none-eabi/4.9.3/fpu -lgcc
# LDFLAGS += -Wl,--verbose
# LDFLAGS += -flto # link time optimization
LDFLAGS += -lgcc
LDFLAGS += -lm -lc

LDFLAGS += $(CFLAGS)

phpbb Topic ID
30631