mirror of
https://github.com/oliverschmidt/contiki.git
synced 2024-12-21 19:29:18 +00:00
galileo: Omit exception handling unwind tables
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.
This commit is contained in:
parent
38206e3980
commit
b915e7d5e3
@ -9,7 +9,14 @@ OBJCOPY = objcopy
|
|||||||
SIZE = size
|
SIZE = size
|
||||||
STRIP = strip
|
STRIP = strip
|
||||||
|
|
||||||
CFLAGS += -Wall -fno-asynchronous-unwind-tables
|
# 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
|
LDFLAGS += -Wl,-Map=contiki-$(TARGET).map,--build-id=none
|
||||||
|
|
||||||
ifeq ($(BUILD_RELEASE),1)
|
ifeq ($(BUILD_RELEASE),1)
|
||||||
|
@ -65,8 +65,8 @@ build() {
|
|||||||
export COMPILER_AS_FOR_TARGET=as
|
export COMPILER_AS_FOR_TARGET=as
|
||||||
export COMPILER_LD_FOR_TARGET=ld
|
export COMPILER_LD_FOR_TARGET=ld
|
||||||
export COMPILER_NM_FOR_TARGET=nm
|
export COMPILER_NM_FOR_TARGET=nm
|
||||||
export CFLAGS_FOR_TARGET="-Os -m32 -march=i586 -mtune=i586 -fno-stack-protector -DPREFER_SIZE_OVER_SPEED -ffunction-sections -fdata-sections"
|
export CFLAGS_FOR_TARGET="-Os -m32 -march=i586 -mtune=i586 -fno-stack-protector -DPREFER_SIZE_OVER_SPEED -ffunction-sections -fdata-sections -fno-asynchronous-unwind-tables -fno-unwind-tables"
|
||||||
export CXXFLAGS_FOR_TARGET="-Os -m32 -march=i586 -mtune=i586 -fno-stack-protector -DPREFER_SIZE_OVER_SPEED -ffunction-sections -fdata-sections"
|
export CXXFLAGS_FOR_TARGET="-Os -m32 -march=i586 -mtune=i586 -fno-stack-protector -DPREFER_SIZE_OVER_SPEED -ffunction-sections -fdata-sections -fno-asynchronous-unwind-tables -fno-unwind-tables"
|
||||||
|
|
||||||
mkdir -p install
|
mkdir -p install
|
||||||
./configure --target=${TARGET} \
|
./configure --target=${TARGET} \
|
||||||
|
Loading…
Reference in New Issue
Block a user