From: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 1/2] MIPS: optimize and fix ELF sections
Date: Sun, 6 Jan 2019 20:42:43 +0100 [thread overview]
Message-ID: <20190106194244.20816-2-daniel.schwierzeck@gmail.com> (raw)
In-Reply-To: <20190106194244.20816-1-daniel.schwierzeck@gmail.com>
Discard ABI related sections which are not required for debugging.
Rearrange debug sections similar to Linux. Remove the remaining
explicitely specified sections in the unused part because those
sections are not created anymore or because the linker puts them
by default at the end of the ELF binary.
Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
---
arch/mips/cpu/u-boot-spl.lds | 100 +++++++++++++++++++++------------
arch/mips/cpu/u-boot.lds | 104 +++++++++++++++++++++++------------
2 files changed, 136 insertions(+), 68 deletions(-)
diff --git a/arch/mips/cpu/u-boot-spl.lds b/arch/mips/cpu/u-boot-spl.lds
index 1273b74983..be194d314b 100644
--- a/arch/mips/cpu/u-boot-spl.lds
+++ b/arch/mips/cpu/u-boot-spl.lds
@@ -46,43 +46,75 @@ SECTIONS
__bss_end = .;
} > .bss_mem
- .rel.dyn (NOLOAD) : {
- *(.rel.dyn)
+ /* These mark the ABI of U-Boot for debuggers. */
+ .mdebug.abi32 : {
+ KEEP(*(.mdebug.abi32))
}
-
- .dynsym : {
- *(.dynsym)
- }
-
- .dynbss : {
- *(.dynbss)
- }
-
- .dynstr : {
- *(.dynstr)
- }
-
- .dynamic : {
- *(.dynamic)
+ .mdebug.abi64 : {
+ KEEP(*(.mdebug.abi64))
}
- .plt : {
- *(.plt)
+ /* This is the MIPS specific mdebug section. */
+ .mdebug : { *(.mdebug) }
+
+ /* Stabs debugging sections. */
+ .stab 0 : { *(.stab) }
+ .stabstr 0 : { *(.stabstr) }
+ .stab.excl 0 : { *(.stab.excl) }
+ .stab.exclstr 0 : { *(.stab.exclstr) }
+ .stab.index 0 : { *(.stab.index) }
+ .stab.indexstr 0 : { *(.stab.indexstr) }
+ .comment 0 : { *(.comment) }
+
+ /*
+ * DWARF debug sections.
+ * Symbols in the DWARF debugging sections are relative to
+ * the beginning of the section so we begin them at 0.
+ */
+ /* DWARF 1 */
+ .debug 0 : { *(.debug) }
+ .line 0 : { *(.line) }
+ /* GNU DWARF 1 extensions */
+ .debug_srcinfo 0 : { *(.debug_srcinfo) }
+ .debug_sfnames 0 : { *(.debug_sfnames) }
+ /* DWARF 1.1 and DWARF 2 */
+ .debug_aranges 0 : { *(.debug_aranges) }
+ .debug_pubnames 0 : { *(.debug_pubnames) }
+ /* DWARF 2 */
+ .debug_info 0 : {
+ *(.debug_info
+ .gnu.linkonce.wi.*)
}
-
- .interp : {
- *(.interp)
- }
-
- .gnu : {
- *(.gnu*)
- }
-
- .MIPS.stubs : {
- *(.MIPS.stubs)
- }
-
- .hash : {
- *(.hash)
+ .debug_abbrev 0 : { *(.debug_abbrev) }
+ .debug_line 0 : { *(.debug_line) }
+ .debug_frame 0 : { *(.debug_frame) }
+ .debug_str 0 : { *(.debug_str) }
+ .debug_loc 0 : { *(.debug_loc) }
+ .debug_macinfo 0 : { *(.debug_macinfo) }
+ .debug_pubtypes 0 : { *(.debug_pubtypes) }
+ /* DWARF 3 */
+ .debug_ranges 0 : { *(.debug_ranges) }
+ /* SGI/MIPS DWARF 2 extensions */
+ .debug_weaknames 0 : { *(.debug_weaknames) }
+ .debug_funcnames 0 : { *(.debug_funcnames) }
+ .debug_typenames 0 : { *(.debug_typenames) }
+ .debug_varnames 0 : { *(.debug_varnames) }
+ /* GNU DWARF 2 extensions */
+ .debug_gnu_pubnames 0 : { *(.debug_gnu_pubnames) }
+ .debug_gnu_pubtypes 0 : { *(.debug_gnu_pubtypes) }
+ /* DWARF 4 */
+ .debug_types 0 : { *(.debug_types) }
+ /* DWARF 5 */
+ .debug_macro 0 : { *(.debug_macro) }
+ .debug_addr 0 : { *(.debug_addr) }
+
+ /DISCARD/ : {
+ /* ABI crap starts here */
+ *(.MIPS.abiflags)
+ *(.MIPS.options)
+ *(.options)
+ *(.pdr)
+ *(.reginfo)
+ *(.eh_frame)
}
}
diff --git a/arch/mips/cpu/u-boot.lds b/arch/mips/cpu/u-boot.lds
index fd0f1b5d4f..86496737d3 100644
--- a/arch/mips/cpu/u-boot.lds
+++ b/arch/mips/cpu/u-boot.lds
@@ -68,39 +68,75 @@ SECTIONS
__bss_end = .;
}
- .dynsym _end : {
- *(.dynsym)
- }
-
- .dynbss : {
- *(.dynbss)
- }
-
- .dynstr : {
- *(.dynstr)
- }
-
- .dynamic : {
- *(.dynamic)
- }
-
- .plt : {
- *(.plt)
- }
-
- .interp : {
- *(.interp)
- }
-
- .gnu : {
- *(.gnu*)
- }
-
- .MIPS.stubs : {
- *(.MIPS.stubs)
- }
-
- .hash : {
- *(.hash)
+ /* These mark the ABI of U-Boot for debuggers. */
+ .mdebug.abi32 : {
+ KEEP(*(.mdebug.abi32))
+ }
+ .mdebug.abi64 : {
+ KEEP(*(.mdebug.abi64))
+ }
+
+ /* This is the MIPS specific mdebug section. */
+ .mdebug : { *(.mdebug) }
+
+ /* Stabs debugging sections. */
+ .stab 0 : { *(.stab) }
+ .stabstr 0 : { *(.stabstr) }
+ .stab.excl 0 : { *(.stab.excl) }
+ .stab.exclstr 0 : { *(.stab.exclstr) }
+ .stab.index 0 : { *(.stab.index) }
+ .stab.indexstr 0 : { *(.stab.indexstr) }
+ .comment 0 : { *(.comment) }
+
+ /*
+ * DWARF debug sections.
+ * Symbols in the DWARF debugging sections are relative to
+ * the beginning of the section so we begin them at 0.
+ */
+ /* DWARF 1 */
+ .debug 0 : { *(.debug) }
+ .line 0 : { *(.line) }
+ /* GNU DWARF 1 extensions */
+ .debug_srcinfo 0 : { *(.debug_srcinfo) }
+ .debug_sfnames 0 : { *(.debug_sfnames) }
+ /* DWARF 1.1 and DWARF 2 */
+ .debug_aranges 0 : { *(.debug_aranges) }
+ .debug_pubnames 0 : { *(.debug_pubnames) }
+ /* DWARF 2 */
+ .debug_info 0 : {
+ *(.debug_info
+ .gnu.linkonce.wi.*)
+ }
+ .debug_abbrev 0 : { *(.debug_abbrev) }
+ .debug_line 0 : { *(.debug_line) }
+ .debug_frame 0 : { *(.debug_frame) }
+ .debug_str 0 : { *(.debug_str) }
+ .debug_loc 0 : { *(.debug_loc) }
+ .debug_macinfo 0 : { *(.debug_macinfo) }
+ .debug_pubtypes 0 : { *(.debug_pubtypes) }
+ /* DWARF 3 */
+ .debug_ranges 0 : { *(.debug_ranges) }
+ /* SGI/MIPS DWARF 2 extensions */
+ .debug_weaknames 0 : { *(.debug_weaknames) }
+ .debug_funcnames 0 : { *(.debug_funcnames) }
+ .debug_typenames 0 : { *(.debug_typenames) }
+ .debug_varnames 0 : { *(.debug_varnames) }
+ /* GNU DWARF 2 extensions */
+ .debug_gnu_pubnames 0 : { *(.debug_gnu_pubnames) }
+ .debug_gnu_pubtypes 0 : { *(.debug_gnu_pubtypes) }
+ /* DWARF 4 */
+ .debug_types 0 : { *(.debug_types) }
+ /* DWARF 5 */
+ .debug_macro 0 : { *(.debug_macro) }
+ .debug_addr 0 : { *(.debug_addr) }
+
+ /DISCARD/ : {
+ /* ABI crap starts here */
+ *(.MIPS.abiflags)
+ *(.MIPS.options)
+ *(.options)
+ *(.pdr)
+ *(.reginfo)
+ *(.eh_frame)
}
}
--
2.20.1
next prev parent reply other threads:[~2019-01-06 19:42 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-06 19:42 [U-Boot] [PATCH 0/2] MIPS: cleanup/optimise linker scripts Daniel Schwierzeck
2019-01-06 19:42 ` Daniel Schwierzeck [this message]
2019-01-06 19:42 ` [U-Boot] [PATCH 2/2] MIPS: jz47xx: remove custom u-boot-spl.lds Daniel Schwierzeck
2019-01-06 20:03 ` Marek Vasut
2019-01-06 20:56 ` Daniel Schwierzeck
2019-01-07 6:23 ` Marek Vasut
2019-01-07 21:14 ` [U-Boot] [PATCH 0/2] MIPS: cleanup/optimise linker scripts Ezequiel Garcia
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190106194244.20816-2-daniel.schwierzeck@gmail.com \
--to=daniel.schwierzeck@gmail.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox