@@ -130,9 +130,18 @@ LINKER_SCRIPT ?= $(call FORWARD_PATH,$(CEDEV_TOOLCHAIN)/meta/linker_script.ld)
130130# allocator (malloc/realloc/free)
131131ifeq ($(ALLOCATOR ) ,STANDARD)
132132LIB_ALLOCATOR = $(call FORWARD_PATH,$(CEDEV_TOOLCHAIN ) /lib/libc/allocator_standard.a)
133- endif
134- ifeq ($(ALLOCATOR ) ,SIMPLE)
133+ else ifeq ($(ALLOCATOR),SIMPLE)
135134LIB_ALLOCATOR = $(call FORWARD_PATH,$(CEDEV_TOOLCHAIN ) /lib/libc/allocator_simple.a)
135+ else ifeq ($(ALLOCATOR),CUSTOM)
136+ LIB_ALLOCATOR = $(call FORWARD_PATH,$(CEDEV_TOOLCHAIN ) /lib/libc/allocator_custom.a)
137+ else
138+ $(error ALLOCATOR must be one of STANDARD, SIMPLE, or CUSTOM)
139+ endif
140+
141+ ifeq ($(ALLOCATOR ) ,CUSTOM)
142+ CUSTOM_ALLOCATOR_SYMBOLS = --undefined __custom_malloc --undefined __custom_free --undefined __custom_realloc
143+ else
144+ CUSTOM_ALLOCATOR_SYMBOLS =
136145endif
137146
138147# ensure always a hexadecimal value
@@ -481,7 +490,7 @@ $(OBJDIR)/%.$(CPP_EXTENSION).bc: $$(call UPDIR_RM,$$*).$(CPP_EXTENSION) $(EXTRA_
481490 $(Q )$(CC ) -MD -c -emit-llvm $(EZCXXFLAGS ) $(call QUOTE_ARG,$< ) -o $(call QUOTE_ARG,$@ )
482491
483492# crt
484- $(OBJDIR ) /$(TARGETTMP ) : $(OBJECTS ) $(LIB_ALLOCATOR ) $( LIB_PRINTF ) $(LIB_CXX ) $(LIB_CE ) $(LIB_SOFTFLOAT ) $(LIB_CRT ) $(LIB_C ) $(ICON_OBJ ) $(EXTRA_LIBS ) $(MAKEFILE_LIST ) $(DEPS )
493+ $(OBJDIR ) /$(TARGETTMP ) : $(OBJECTS ) $(LIB_PRINTF ) $(LIB_CXX ) $(LIB_CE ) $(LIB_SOFTFLOAT ) $(LIB_CRT ) $(LIB_C ) $(ICON_OBJ ) $(EXTRA_LIBS ) $(MAKEFILE_LIST ) $(DEPS )
485494 $(Q )$(call MKDIR,$(@D ) )
486495 $(Q )$(LD ) \
487496 -i \
@@ -491,6 +500,7 @@ $(OBJDIR)/$(TARGETTMP): $(OBJECTS) $(LIB_ALLOCATOR) $(LIB_PRINTF) $(LIB_CXX) $(L
491500 --gc-sections \
492501 --omagic \
493502 --defsym __TICE__=1 \
503+ $(CUSTOM_ALLOCATOR_SYMBOLS ) \
494504 $(SPRINTF_SYMBOL ) \
495505 $(LD_DEBUG ) \
496506 $(EXTRA_PRE_LDFLAGS ) \
@@ -499,7 +509,6 @@ $(OBJDIR)/$(TARGETTMP): $(OBJECTS) $(LIB_ALLOCATOR) $(LIB_PRINTF) $(LIB_CXX) $(L
499509 $(EXTRA_LIBS ) \
500510 --whole-archive $(LIB_PRINTF ) --no-whole-archive \
501511 --start-group \
502- $(LIB_ALLOCATOR ) \
503512 $(LIB_CRT ) \
504513 $(LIB_CE ) \
505514 $(LIB_SOFTFLOAT ) \
0 commit comments