mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-03-18 21:30:38 +01:00
Add option USE_LIBGCC to link agains libgcc instead of liba softfloat implementation.
This commit is contained in:
committed by
LeaNumworks
parent
f0c06a0405
commit
a4abd5e34c
4
Makefile
4
Makefile
@@ -24,7 +24,11 @@ ifeq ($(USE_LIBA),0)
|
||||
include liba/Makefile.bridge
|
||||
else
|
||||
SFLAGS += -ffreestanding -nostdinc -nostdlib
|
||||
ifneq ($(USE_LIBGCC),0)
|
||||
include liba/Makefile.libgcc
|
||||
else
|
||||
include liba/Makefile
|
||||
endif
|
||||
include libaxx/Makefile
|
||||
endif
|
||||
include ion/Makefile
|
||||
|
||||
@@ -23,7 +23,7 @@ products += $(patsubst %.$(EXE),%.map,$(filter %.$(EXE),$(products)))
|
||||
|
||||
%.map: %.elf
|
||||
@echo "LDMAP $@"
|
||||
$(Q) $(LD) $^ $(LDFLAGS) -M -Map $@ -o /dev/null
|
||||
$(Q) $(LD) $^ $(LDFLAGS) -Wl,-M -Wl,-Map=$@ -o /dev/null
|
||||
|
||||
.PHONY: %_memory_map
|
||||
%_memory_map: %.map
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
CC = arm-none-eabi-gcc
|
||||
CXX = arm-none-eabi-g++
|
||||
LD = arm-none-eabi-ld.bfd
|
||||
LD = arm-none-eabi-gcc
|
||||
GDB = arm-none-eabi-gdb
|
||||
OBJCOPY = arm-none-eabi-objcopy
|
||||
SIZE = arm-none-eabi-size
|
||||
@@ -9,6 +9,6 @@ ifeq ($(DEBUG),1)
|
||||
SFLAGS += -ggdb3
|
||||
else
|
||||
SFLAGS += -fdata-sections -ffunction-sections
|
||||
LDFLAGS += --gc-sections
|
||||
LDFLAGS += -Wl,--gc-sections
|
||||
endif
|
||||
SFLAGS += -mthumb -march=armv7e-m -mfloat-abi=hard -mcpu=cortex-m4 -mfpu=fpv4-sp-d16
|
||||
|
||||
139
liba/Makefile.libgcc
Normal file
139
liba/Makefile.libgcc
Normal file
@@ -0,0 +1,139 @@
|
||||
SFLAGS += -Iliba/include
|
||||
|
||||
liba/src/external/sqlite/mem5.o: CFLAGS += -w
|
||||
|
||||
objs += $(addprefix liba/src/, \
|
||||
armv7m/setjmp.o \
|
||||
armv7m/longjmp.o \
|
||||
assert.o \
|
||||
bzero.o \
|
||||
ctype.o \
|
||||
errno.o \
|
||||
fpclassify.o \
|
||||
fpclassifyf.o \
|
||||
ieee754.o \
|
||||
malloc.o \
|
||||
memcmp.o \
|
||||
memcpy.o \
|
||||
memmove.o \
|
||||
memset.o \
|
||||
nearbyint.o \
|
||||
nearbyintf.o \
|
||||
strcmp.o \
|
||||
strchr.o \
|
||||
strlcpy.o \
|
||||
strlen.o \
|
||||
external/sqlite/mem5.o \
|
||||
)
|
||||
|
||||
objs += $(addprefix liba/src/external/openbsd/, \
|
||||
b_exp__D.o \
|
||||
b_log__D.o \
|
||||
b_tgamma.o \
|
||||
e_acosf.o \
|
||||
e_acoshf.o \
|
||||
e_asinf.o \
|
||||
e_atanhf.o \
|
||||
e_atan2.o \
|
||||
e_atan2f.o \
|
||||
e_coshf.o \
|
||||
e_expf.o \
|
||||
e_fmod.o \
|
||||
e_fmodf.o \
|
||||
e_lgammaf_r.o \
|
||||
e_log10f.o \
|
||||
e_log2.o \
|
||||
e_logf.o \
|
||||
e_powf.o \
|
||||
e_rem_pio2f.o \
|
||||
e_scalb.o \
|
||||
e_sinhf.o \
|
||||
e_sqrtf.o \
|
||||
k_cosf.o \
|
||||
k_rem_pio2f.o \
|
||||
k_sinf.o \
|
||||
k_tanf.o \
|
||||
s_asinhf.o\
|
||||
s_atanf.o \
|
||||
s_ceilf.o \
|
||||
s_copysignf.o \
|
||||
s_cosf.o \
|
||||
s_erf.o \
|
||||
s_expm1f.o\
|
||||
s_fabsf.o \
|
||||
s_floorf.o \
|
||||
s_frexpf.o \
|
||||
s_frexp.o \
|
||||
s_log1pf.o \
|
||||
s_logb.o \
|
||||
s_modf.o \
|
||||
s_modff.o \
|
||||
s_rint.o \
|
||||
s_roundf.o \
|
||||
s_scalbnf.o \
|
||||
s_signgam.o \
|
||||
s_sinf.o \
|
||||
s_tanf.o \
|
||||
s_tanhf.o \
|
||||
s_trunc.o \
|
||||
s_truncf.o \
|
||||
w_lgammaf.o \
|
||||
)
|
||||
|
||||
objs += $(addprefix liba/src/external/openbsd/, \
|
||||
e_acos.o \
|
||||
e_acosh.o \
|
||||
e_asin.o \
|
||||
e_atanh.o \
|
||||
e_cosh.o \
|
||||
e_exp.o \
|
||||
e_lgamma_r.o \
|
||||
e_log.o \
|
||||
e_log10.o \
|
||||
e_pow.o \
|
||||
e_rem_pio2.o \
|
||||
e_sinh.o \
|
||||
e_sqrt.o \
|
||||
k_cos.o \
|
||||
k_rem_pio2.o \
|
||||
k_sin.o \
|
||||
k_tan.o \
|
||||
s_asinh.o \
|
||||
s_atan.o \
|
||||
s_ceil.o \
|
||||
s_copysign.o \
|
||||
s_cos.o \
|
||||
s_expm1.o \
|
||||
s_fabs.o \
|
||||
s_floor.o \
|
||||
s_log1p.o \
|
||||
s_round.o \
|
||||
s_scalbn.o \
|
||||
s_sin.o \
|
||||
s_tan.o \
|
||||
s_tanh.o \
|
||||
w_lgamma.o \
|
||||
)
|
||||
|
||||
liba/src/external/openbsd/%.o: SFLAGS := -Iliba/src/external/openbsd/include $(SFLAGS)
|
||||
liba/src/external/openbsd/%.o: CFLAGS += -w
|
||||
|
||||
tests += $(addprefix liba/test/, \
|
||||
aeabi.c \
|
||||
double.c \
|
||||
ieee754.c \
|
||||
long.c \
|
||||
math.c \
|
||||
setjmp.c \
|
||||
stddef.c \
|
||||
stdint.c \
|
||||
strlcpy.c \
|
||||
)
|
||||
|
||||
# The use of aeabi-rt could be made conditional to an AEABI target.
|
||||
# In practice we're always using liba on such a target.
|
||||
objs += $(addprefix liba/src/aeabi-rt/, \
|
||||
atexit.o \
|
||||
)
|
||||
|
||||
LDFLAGS+=-lgcc
|
||||
Reference in New Issue
Block a user