mirror of
https://github.com/oliverschmidt/contiki.git
synced 2024-12-22 10:30:13 +00:00
b915e7d5e3
This patch modifies the newlib and Contiki C and C++ compiler flags to omit exception handling unwind tables (see http://wiki.dwarfstd.org/index.php?title=Exception_Handling). Removing these tables saves space in debug builds and has not caused any readily-apparent functional changes. Here is the size listing for an example program built without this patch: text data bss dec hex filename 76002 1508 21224 98734 181ae all-timers.galileo Here is the size listing for the same program with this patch: text data bss dec hex filename 72918 1508 21224 95650 175a2 all-timers.galileo The primary motivation for this patch is to help enable UEFI support. The .eh_frame and .eh_frame_hdr sections that are otherwise generated are treated as code sections by the EDK2 GenFw program, since they are read-only alloc sections. They get grouped with the actual code sections, ahead of the data sections. This perturbs symbols and complicates debugging.
35 lines
1.0 KiB
Makefile
35 lines
1.0 KiB
Makefile
CONTIKI_CPU_DIRS += . init/common
|
|
|
|
CONTIKI_SOURCEFILES += gdt.c helpers.S idt.c cpu.c
|
|
|
|
CC = gcc
|
|
LD = gcc
|
|
AS = as
|
|
OBJCOPY = objcopy
|
|
SIZE = size
|
|
STRIP = strip
|
|
|
|
# Omit exception handling unwind tables (see
|
|
# http://wiki.dwarfstd.org/index.php?title=Exception_Handling). Removing these
|
|
# tables saves space and has not caused any readily-apparent functional
|
|
# changes.
|
|
#
|
|
# Synchronize the unwind table options here with the CFLAGS and CXXFLAGS in
|
|
# ./bsp/libc/build_newlib.sh.
|
|
CFLAGS += -Wall -fno-asynchronous-unwind-tables -fno-unwind-tables
|
|
LDFLAGS += -Wl,-Map=contiki-$(TARGET).map,--build-id=none
|
|
|
|
ifeq ($(BUILD_RELEASE),1)
|
|
CFLAGS += -Os -fno-strict-aliasing -ffunction-sections -fdata-sections
|
|
# XXX: --gc-sections can be very tricky sometimes. If somehow the release
|
|
# binary seems to be broken, check if removing this option fixes the issue.
|
|
LDFLAGS += -Wl,--strip-all,--gc-sections
|
|
else
|
|
CFLAGS += -O0
|
|
ifeq ($(findstring clang,$(CC)),clang)
|
|
CFLAGS += -g
|
|
else
|
|
CFLAGS += -ggdb3
|
|
endif
|
|
endif
|