This patch activates -ffunction-sections and -fdata-sections for the
compiler and --gc-sections for the linker. This will strip out all
unused functions and static/global variables from the final binaries and
reduce the amount of data we need to read over SPI.
A quick test with ToT images shows a 2.5k (13%) / 10k (29%) / 12k (28%)
reduction on Nyan and 3k (38%) / 23k (50%) / 13k (29%) on Pit,
respectively for bootblock / romstage / ramstage.
Change-Id: I052411d4ad190d0395921ac4d4677341fb91568a
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/177111
(cherry picked from commit 5635b13877)
Signed-off-by: Isaac Christensen <isaac.christensen@se-eng.com>
Reviewed-on: http://review.coreboot.org/6904
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
59 lines
No EOL
1.4 KiB
Text
59 lines
No EOL
1.4 KiB
Text
/*
|
|
* This file is part of the coreboot project.
|
|
*
|
|
* Copyright (C) 2006 Advanced Micro Devices, Inc.
|
|
* Copyright (C) 2008-2010 coresystems GmbH
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; version 2 of the License.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
*/
|
|
|
|
/* We use ELF as output format. So that we can debug the code in some form. */
|
|
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
|
|
OUTPUT_ARCH(arm)
|
|
INCLUDE ldoptions
|
|
|
|
PHDRS
|
|
{
|
|
to_load PT_LOAD;
|
|
}
|
|
|
|
ENTRY(_start)
|
|
TARGET(binary)
|
|
SECTIONS
|
|
{
|
|
. = CONFIG_BOOTBLOCK_BASE;
|
|
|
|
.bootblock . : {
|
|
*(.start);
|
|
KEEP(*(.id));
|
|
*(.text);
|
|
*(.text.*);
|
|
*(.rodata);
|
|
*(.rodata.*);
|
|
*(.data);
|
|
*(.data.*);
|
|
*(.bss);
|
|
*(.bss.*);
|
|
*(.sbss);
|
|
*(.sbss.*);
|
|
} : to_load = 0xff
|
|
|
|
/DISCARD/ : {
|
|
*(.comment)
|
|
*(.note)
|
|
*(.comment.*)
|
|
*(.note.*)
|
|
*(.ARM.*)
|
|
}
|
|
} |