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
|
||||
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
|
||||
|
||||
ifeq ($(BUILD_RELEASE),1)
|
||||
|
|
|
@ -65,8 +65,8 @@ build() {
|
|||
export COMPILER_AS_FOR_TARGET=as
|
||||
export COMPILER_LD_FOR_TARGET=ld
|
||||
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 CXXFLAGS_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 -fno-asynchronous-unwind-tables -fno-unwind-tables"
|
||||
|
||||
mkdir -p install
|
||||
./configure --target=${TARGET} \
|
||||
|
|
Loading…
Reference in a new issue