mirror of
https://github.com/ipxe/ipxe
synced 2025-12-24 15:23:42 +03:00
[build] Eliminate unused sections at link-time
Use -ffunction-sections, -fdata-sections, and --gc-sections to automatically prune out any unreferenced sections. This saves around 744 bytes (uncompressed) from the rtl8139.rom build. Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -68,7 +68,8 @@ SECTIONS {
|
||||
|
||||
.text16 : AT ( _text16_load_offset + __text16 ) {
|
||||
__text16 = .;
|
||||
*(.text.null_trap)
|
||||
KEEP(*(.text.null_trap))
|
||||
KEEP(*(.text.null_trap.*))
|
||||
*(.text16)
|
||||
*(.text16.*)
|
||||
*(.text)
|
||||
@@ -97,7 +98,7 @@ SECTIONS {
|
||||
*(.data16.*)
|
||||
*(.data)
|
||||
*(.data.*)
|
||||
*(SORT(.tbl.*)) /* Various tables. See include/tables.h */
|
||||
KEEP(*(SORT(.tbl.*))) /* Various tables. See include/tables.h */
|
||||
_edata16_progbits = .;
|
||||
}
|
||||
.bss16 : AT ( _data16_load_offset + __bss16 ) {
|
||||
@@ -129,8 +130,11 @@ SECTIONS {
|
||||
|
||||
/DISCARD/ : {
|
||||
*(.comment)
|
||||
*(.comment.*)
|
||||
*(.note)
|
||||
*(.note.*)
|
||||
*(.discard)
|
||||
*(.discard.*)
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -49,7 +49,8 @@ SECTIONS {
|
||||
|
||||
.text16.early 0x0 : AT ( _text16_early_lma ) {
|
||||
_text16 = .;
|
||||
*(.text16.null)
|
||||
KEEP(*(.text16.null))
|
||||
KEEP(*(.text16.null.*))
|
||||
. += 1; /* Prevent NULL being valid */
|
||||
*(.text16.early)
|
||||
*(.text16.early.*)
|
||||
@@ -98,7 +99,8 @@ SECTIONS {
|
||||
|
||||
.textdata 0x0 : AT ( _textdata_lma ) {
|
||||
_textdata = .;
|
||||
*(.text.null_trap)
|
||||
KEEP(*(.text.null_trap))
|
||||
KEEP(*(.text.null_trap.*))
|
||||
. += 1; /* Prevent NULL being valid */
|
||||
*(.text)
|
||||
*(.text.*)
|
||||
@@ -106,7 +108,7 @@ SECTIONS {
|
||||
*(.rodata.*)
|
||||
*(.data)
|
||||
*(.data.*)
|
||||
*(SORT(.tbl.*)) /* Various tables. See include/tables.h */
|
||||
KEEP(*(SORT(.tbl.*))) /* Various tables. See include/tables.h */
|
||||
_mtextdata = .;
|
||||
} .bss.textdata (NOLOAD) : AT ( _end_lma ) {
|
||||
*(.bss)
|
||||
@@ -126,8 +128,8 @@ SECTIONS {
|
||||
|
||||
.zinfo 0x0 : AT ( _zinfo_lma ) {
|
||||
_zinfo = .;
|
||||
*(.zinfo)
|
||||
*(.zinfo.*)
|
||||
KEEP(*(.zinfo))
|
||||
KEEP(*(.zinfo.*))
|
||||
_mzinfo = .;
|
||||
} .bss.zinfo (NOLOAD) : AT ( _end_lma ) {
|
||||
_ezinfo = .;
|
||||
@@ -143,6 +145,7 @@ SECTIONS {
|
||||
.weak 0x0 : AT ( _end_lma ) {
|
||||
_weak = .;
|
||||
*(.weak)
|
||||
*(.weak.*)
|
||||
_eweak = .;
|
||||
}
|
||||
_assert = ASSERT ( ( _weak == _eweak ), ".weak is non-zero length" );
|
||||
@@ -165,6 +168,7 @@ SECTIONS {
|
||||
*(.einfo)
|
||||
*(.einfo.*)
|
||||
*(.discard)
|
||||
*(.discard.*)
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -51,7 +51,7 @@ SECTIONS {
|
||||
_data = .;
|
||||
*(.data)
|
||||
*(.data.*)
|
||||
*(SORT(.tbl.*)) /* Various tables. See include/tables.h */
|
||||
KEEP(*(SORT(.tbl.*)))
|
||||
_edata = .;
|
||||
}
|
||||
|
||||
@@ -77,6 +77,7 @@ SECTIONS {
|
||||
.weak 0x0 : {
|
||||
_weak = .;
|
||||
*(.weak)
|
||||
*(.weak.*)
|
||||
_eweak = .;
|
||||
}
|
||||
_assert = ASSERT ( ( _weak == _eweak ), ".weak is non-zero length" );
|
||||
@@ -97,5 +98,6 @@ SECTIONS {
|
||||
*(.rel)
|
||||
*(.rel.*)
|
||||
*(.discard)
|
||||
*(.discard.*)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user