Browse Source

newlib: disable some optimizations for syscalls.c

Don’t allow the compiler to convert malloc + memset into calloc,
causing a recursive call in _calloc_r. Fixes crash when building with
-O2 optimization level.
Ivan Grokhotkov 7 years ago
parent
commit
8deb885ce3
2 changed files with 4 additions and 0 deletions
  1. 2 0
      components/newlib/CMakeLists.txt
  2. 2 0
      components/newlib/component.mk

+ 2 - 0
components/newlib/CMakeLists.txt

@@ -30,3 +30,5 @@ register_component()
 
 target_link_libraries(newlib "-L ${CMAKE_CURRENT_SOURCE_DIR}/lib")
 target_link_libraries(newlib ${LIBC} ${LIBM})
+
+set_source_files_properties(syscalls.c PROPERTIES COMPILE_FLAGS -fno-builtin)

+ 2 - 0
components/newlib/component.mk

@@ -20,3 +20,5 @@ COMPONENT_ADD_LDFLAGS := $(LIBC_PATH) $(LIBM_PATH) -lnewlib
 COMPONENT_ADD_LINKER_DEPS := $(LIBC_PATH) $(LIBM_PATH)
 
 COMPONENT_ADD_INCLUDEDIRS := platform_include include
+
+syscalls.o: CFLAGS += -fno-builtin