diff --git a/Makefile b/Makefile index 39dbcddd..97e0f0a1 100644 --- a/Makefile +++ b/Makefile @@ -12,7 +12,8 @@ LLC = $(LLVM)llc LLAS = $(LLVM)llvm-as OPT = $(LLVM)opt -CFLAGS = -Wall -Werror -Os -g -fno-exceptions -flto -ffunction-sections -fdata-sections $(LLFLAGS) +CFLAGS = -Wall -Werror -Os -fno-exceptions -flto -ffunction-sections -fdata-sections $(LLFLAGS) +CFLAGS += -fno-exceptions -fno-unwind-tables # Avoid .ARM.exidx etc. RUNTIME_PARTS = build/runtime.bc @@ -99,7 +100,7 @@ build/nrfx_%.bc: lib/nrfx/mdk/%.c # Compile startup_* file for the nRF. build/nrfx_%.o: lib/nrfx/mdk/gcc_%.S @mkdir -p build - clang $(CFLAGS) -c -o $@ $^ + clang $(CFLAGS) -D__STARTUP_CLEAR_BSS -c -o $@ $^ # Merge all runtime LLVM files together in a single bitcode file. build/runtime-$(TARGET)-combined.bc: $(RUNTIME_PARTS) diff --git a/arm.ld b/arm.ld index 36a20982..d052d805 100644 --- a/arm.ld +++ b/arm.ld @@ -75,6 +75,7 @@ SECTIONS __etext = _etext; __data_start__ = _sdata; __bss_start__ = _sbss; +__bss_end__ = _ebss; /* For the memory allocator. */ _heap_start = _ebss;