From 7218dcfa692d18020c11d4e704b0932bd93804dd Mon Sep 17 00:00:00 2001 From: Eyck Jentzsch Date: Sun, 24 Mar 2024 19:16:13 +0100 Subject: [PATCH] changes target extension to become .elf --- env/TGCP/link.lds | 71 ++++++++++++++++++++++++++++++++++------- env/common-gcc.mk | 6 ++-- env/ehrenberg/link.lds | 72 +++++++++++++++++++++++++++++++++++------- env/iss/link.lds | 71 ++++++++++++++++++++++++++++++++++------- env/rtl/link.lds | 71 ++++++++++++++++++++++++++++++++++------- env/tgc-vp/link.lds | 71 ++++++++++++++++++++++++++++++++++------- 6 files changed, 304 insertions(+), 58 deletions(-) diff --git a/env/TGCP/link.lds b/env/TGCP/link.lds index 927479c..2cf6dbe 100644 --- a/env/TGCP/link.lds +++ b/env/TGCP/link.lds @@ -22,13 +22,18 @@ SECTIONS .init ORIGIN(flash) : { KEEP (*(SORT_NONE(.init))) + *crt0.o(.text .text.*) } >flash AT>flash :flash .text : { - *(.text.unlikely .text.unlikely.*) + *(.text.init) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) + *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) + *(.text.hot .text.hot.*) *(.text .text.*) + *(.stub) *(.gnu.linkonce.t.*) } >flash AT>flash :flash @@ -50,6 +55,13 @@ SECTIONS . = ALIGN(4); + /* Thread Local Storage sections */ + .tdata : + { + PROVIDE_HIDDEN (__tdata_start = .); + *(.tdata .tdata.* .gnu.linkonce.td.*) + } >flash AT>flash :flash + .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } >flash AT>flash :flash .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); @@ -116,13 +128,6 @@ SECTIONS PROVIDE( _data = . ); } >ram AT>flash :ram_init - .data : - { - __DATA_BEGIN__ = .; - *(.data .data.*) - *(.gnu.linkonce.d.*) - } >ram AT>flash :ram_init - .srodata : { PROVIDE( _gp = . + 0x800 ); @@ -133,9 +138,11 @@ SECTIONS *(.srodata .srodata.*) } >ram AT>flash :ram_init - .sdata : + .data : { - __SDATA_BEGIN__ = .; + *(.data .data.*) + *(.gnu.linkonce.d.*) + PROVIDE( __global_pointer$ = . + 0x800 ); *(.sdata .sdata.*) *(.gnu.linkonce.s.*) } >ram AT>flash :ram_init @@ -158,7 +165,6 @@ SECTIONS . = ALIGN(8); __BSS_END__ = .; - __global_pointer$ = MIN(__SDATA_BEGIN__ + 0x800, MAX(__DATA_BEGIN__ + 0x800, __BSS_END__ - 0x800)); PROVIDE( _end = . ); PROVIDE( end = . ); @@ -171,4 +177,47 @@ SECTIONS PROVIDE( tohost = 0xfffffff0 ); PROVIDE( fromhost = 0xfffffff8 ); + + /* 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) } + .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } + /* 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_line.* .debug_line_end) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* 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) } + /* DWARF 3 */ + .debug_pubtypes 0 : { *(.debug_pubtypes) } + .debug_ranges 0 : { *(.debug_ranges) } + /* DWARF Extension. */ + .debug_macro 0 : { *(.debug_macro) } + .debug_addr 0 : { *(.debug_addr) } + .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } + /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } diff --git a/env/common-gcc.mk b/env/common-gcc.mk index b3a6df3..725b786 100644 --- a/env/common-gcc.mk +++ b/env/common-gcc.mk @@ -5,7 +5,7 @@ TL_TARGET?=all BOARD?=iss .PHONY: $(TL_TARGET) -$(TL_TARGET): $(TARGET) +$(TL_TARGET): $(TARGET).elf ENV_DIR:=$(dir $(lastword $(MAKEFILE_LIST))) BSP_BASE=$(ENV_DIR)/.. @@ -42,7 +42,7 @@ CXX_OBJS := $(CXX_SRCS:.cpp=.o) LINK_OBJS += $(ASM_OBJS) $(C_OBJS) $(CXX_OBJS) LINK_DEPS += $(LINKER_SCRIPT) -CLEAN_OBJS += $(TARGET) $(LINK_OBJS) +CLEAN_OBJS += $(TARGET).elf $(LINK_OBJS) GCCVERSION = $(shell $(CC) --version | grep gcc | awk '{print($NF);}') ifeq ($(GCCVERSION),9.2) @@ -63,7 +63,7 @@ OBJDUMP := $(TOOL_DIR)$(TRIPLET)-objdump OBJCOPY := $(TOOL_DIR)$(TRIPLET)-objcopy ifndef NO_DEFAULT_LINK -$(TARGET): $(LINK_OBJS) $(LINK_DEPS) +$(TARGET).elf: $(LINK_OBJS) $(LINK_DEPS) echo LINK_OBJS: $(LINK_OBJS) $(LD) $(LINK_OBJS) $(LDFLAGS) $(LIBWRAP_LDFLAGS) $(LIBWRAP) $(LD_SCRIPT) -o $@ $(OBJDUMP) -d -S $@ > $(TARGET).dis diff --git a/env/ehrenberg/link.lds b/env/ehrenberg/link.lds index 22941d7..b52d93e 100644 --- a/env/ehrenberg/link.lds +++ b/env/ehrenberg/link.lds @@ -25,13 +25,18 @@ SECTIONS .init ORIGIN(flash) : { KEEP (*(SORT_NONE(.init))) + *crt0.o(.text .text.*) } >flash AT>flash :flash .text : { - *(.text.unlikely .text.unlikely.*) + *(.text.init) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) + *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) + *(.text.hot .text.hot.*) *(.text .text.*) + *(.stub) *(.gnu.linkonce.t.*) } >flash AT>flash :flash @@ -53,6 +58,13 @@ SECTIONS . = ALIGN(4); + /* Thread Local Storage sections */ + .tdata : + { + PROVIDE_HIDDEN (__tdata_start = .); + *(.tdata .tdata.* .gnu.linkonce.td.*) + } >flash AT>flash :flash + .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } >flash AT>flash :flash .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); @@ -119,15 +131,9 @@ SECTIONS PROVIDE( _data = . ); } >ram AT>flash :ram_init - .data : - { - __DATA_BEGIN__ = .; - *(.data .data.*) - *(.gnu.linkonce.d.*) - } >ram AT>flash :ram_init - .srodata : { + PROVIDE( _gp = . + 0x800 ); *(.srodata.cst16) *(.srodata.cst8) *(.srodata.cst4) @@ -135,9 +141,11 @@ SECTIONS *(.srodata .srodata.*) } >ram AT>flash :ram_init - .sdata : + .data : { - __SDATA_BEGIN__ = .; + *(.data .data.*) + *(.gnu.linkonce.d.*) + PROVIDE( __global_pointer$ = . + 0x800 ); *(.sdata .sdata.*) *(.gnu.linkonce.s.*) } >ram AT>flash :ram_init @@ -160,7 +168,6 @@ SECTIONS . = ALIGN(8); __BSS_END__ = .; - __global_pointer$ = MIN(__SDATA_BEGIN__ + 0x800, MAX(__DATA_BEGIN__ + 0x800, __BSS_END__ - 0x800)); PROVIDE( _end = . ); PROVIDE( end = . ); @@ -173,4 +180,47 @@ SECTIONS PROVIDE( tohost = 0xfffffff0 ); PROVIDE( fromhost = 0xfffffff8 ); + + /* 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) } + .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } + /* 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_line.* .debug_line_end) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* 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) } + /* DWARF 3 */ + .debug_pubtypes 0 : { *(.debug_pubtypes) } + .debug_ranges 0 : { *(.debug_ranges) } + /* DWARF Extension. */ + .debug_macro 0 : { *(.debug_macro) } + .debug_addr 0 : { *(.debug_addr) } + .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } + /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } diff --git a/env/iss/link.lds b/env/iss/link.lds index fa8bccf..ed11b6c 100644 --- a/env/iss/link.lds +++ b/env/iss/link.lds @@ -22,13 +22,18 @@ SECTIONS .init ORIGIN(flash) : { KEEP (*(SORT_NONE(.init))) + *crt0.o(.text .text.*) } >flash AT>flash :flash .text : { - *(.text.unlikely .text.unlikely.*) + *(.text.init) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) + *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) + *(.text.hot .text.hot.*) *(.text .text.*) + *(.stub) *(.gnu.linkonce.t.*) } >flash AT>flash :flash @@ -50,6 +55,13 @@ SECTIONS . = ALIGN(4); + /* Thread Local Storage sections */ + .tdata : + { + PROVIDE_HIDDEN (__tdata_start = .); + *(.tdata .tdata.* .gnu.linkonce.td.*) + } >flash AT>flash :flash + .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } >flash AT>flash :flash .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); @@ -116,13 +128,6 @@ SECTIONS PROVIDE( _data = . ); } >ram AT>flash :ram_init - .data : - { - __DATA_BEGIN__ = .; - *(.data .data.*) - *(.gnu.linkonce.d.*) - } >ram AT>flash :ram_init - .srodata : { PROVIDE( _gp = . + 0x800 ); @@ -133,9 +138,11 @@ SECTIONS *(.srodata .srodata.*) } >ram AT>flash :ram_init - .sdata : + .data : { - __SDATA_BEGIN__ = .; + *(.data .data.*) + *(.gnu.linkonce.d.*) + PROVIDE( __global_pointer$ = . + 0x800 ); *(.sdata .sdata.*) *(.gnu.linkonce.s.*) } >ram AT>flash :ram_init @@ -158,7 +165,6 @@ SECTIONS . = ALIGN(8); __BSS_END__ = .; - __global_pointer$ = MIN(__SDATA_BEGIN__ + 0x800, MAX(__DATA_BEGIN__ + 0x800, __BSS_END__ - 0x800)); PROVIDE( _end = . ); PROVIDE( end = . ); @@ -171,4 +177,47 @@ SECTIONS PROVIDE( tohost = 0xfffffff0 ); PROVIDE( fromhost = 0xfffffff8 ); + + /* 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) } + .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } + /* 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_line.* .debug_line_end) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* 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) } + /* DWARF 3 */ + .debug_pubtypes 0 : { *(.debug_pubtypes) } + .debug_ranges 0 : { *(.debug_ranges) } + /* DWARF Extension. */ + .debug_macro 0 : { *(.debug_macro) } + .debug_addr 0 : { *(.debug_addr) } + .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } + /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } diff --git a/env/rtl/link.lds b/env/rtl/link.lds index fa8bccf..ed11b6c 100644 --- a/env/rtl/link.lds +++ b/env/rtl/link.lds @@ -22,13 +22,18 @@ SECTIONS .init ORIGIN(flash) : { KEEP (*(SORT_NONE(.init))) + *crt0.o(.text .text.*) } >flash AT>flash :flash .text : { - *(.text.unlikely .text.unlikely.*) + *(.text.init) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) + *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) + *(.text.hot .text.hot.*) *(.text .text.*) + *(.stub) *(.gnu.linkonce.t.*) } >flash AT>flash :flash @@ -50,6 +55,13 @@ SECTIONS . = ALIGN(4); + /* Thread Local Storage sections */ + .tdata : + { + PROVIDE_HIDDEN (__tdata_start = .); + *(.tdata .tdata.* .gnu.linkonce.td.*) + } >flash AT>flash :flash + .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } >flash AT>flash :flash .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); @@ -116,13 +128,6 @@ SECTIONS PROVIDE( _data = . ); } >ram AT>flash :ram_init - .data : - { - __DATA_BEGIN__ = .; - *(.data .data.*) - *(.gnu.linkonce.d.*) - } >ram AT>flash :ram_init - .srodata : { PROVIDE( _gp = . + 0x800 ); @@ -133,9 +138,11 @@ SECTIONS *(.srodata .srodata.*) } >ram AT>flash :ram_init - .sdata : + .data : { - __SDATA_BEGIN__ = .; + *(.data .data.*) + *(.gnu.linkonce.d.*) + PROVIDE( __global_pointer$ = . + 0x800 ); *(.sdata .sdata.*) *(.gnu.linkonce.s.*) } >ram AT>flash :ram_init @@ -158,7 +165,6 @@ SECTIONS . = ALIGN(8); __BSS_END__ = .; - __global_pointer$ = MIN(__SDATA_BEGIN__ + 0x800, MAX(__DATA_BEGIN__ + 0x800, __BSS_END__ - 0x800)); PROVIDE( _end = . ); PROVIDE( end = . ); @@ -171,4 +177,47 @@ SECTIONS PROVIDE( tohost = 0xfffffff0 ); PROVIDE( fromhost = 0xfffffff8 ); + + /* 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) } + .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } + /* 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_line.* .debug_line_end) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* 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) } + /* DWARF 3 */ + .debug_pubtypes 0 : { *(.debug_pubtypes) } + .debug_ranges 0 : { *(.debug_ranges) } + /* DWARF Extension. */ + .debug_macro 0 : { *(.debug_macro) } + .debug_addr 0 : { *(.debug_addr) } + .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } + /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } diff --git a/env/tgc-vp/link.lds b/env/tgc-vp/link.lds index 3561a66..26708d8 100644 --- a/env/tgc-vp/link.lds +++ b/env/tgc-vp/link.lds @@ -22,13 +22,18 @@ SECTIONS .init ORIGIN(flash) : { KEEP (*(SORT_NONE(.init))) + *crt0.o(.text .text.*) } >flash AT>flash :flash .text : { - *(.text.unlikely .text.unlikely.*) + *(.text.init) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) + *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) + *(.text.hot .text.hot.*) *(.text .text.*) + *(.stub) *(.gnu.linkonce.t.*) } >flash AT>flash :flash @@ -50,6 +55,13 @@ SECTIONS . = ALIGN(4); + /* Thread Local Storage sections */ + .tdata : + { + PROVIDE_HIDDEN (__tdata_start = .); + *(.tdata .tdata.* .gnu.linkonce.td.*) + } >flash AT>flash :flash + .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } >flash AT>flash :flash .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); @@ -116,13 +128,6 @@ SECTIONS PROVIDE( _data = . ); } >ram AT>flash :ram_init - .data : - { - __DATA_BEGIN__ = .; - *(.data .data.*) - *(.gnu.linkonce.d.*) - } >ram AT>flash :ram_init - .srodata : { PROVIDE( _gp = . + 0x800 ); @@ -133,9 +138,11 @@ SECTIONS *(.srodata .srodata.*) } >ram AT>flash :ram_init - .sdata : + .data : { - __SDATA_BEGIN__ = .; + *(.data .data.*) + *(.gnu.linkonce.d.*) + PROVIDE( __global_pointer$ = . + 0x800 ); *(.sdata .sdata.*) *(.gnu.linkonce.s.*) } >ram AT>flash :ram_init @@ -158,7 +165,6 @@ SECTIONS . = ALIGN(8); __BSS_END__ = .; - __global_pointer$ = MIN(__SDATA_BEGIN__ + 0x800, MAX(__DATA_BEGIN__ + 0x800, __BSS_END__ - 0x800)); PROVIDE( _end = . ); PROVIDE( end = . ); @@ -171,4 +177,47 @@ SECTIONS PROVIDE( tohost = 0xfffffff0 ); PROVIDE( fromhost = 0xfffffff8 ); + + /* 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) } + .gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) } + /* 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_line.* .debug_line_end) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* 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) } + /* DWARF 3 */ + .debug_pubtypes 0 : { *(.debug_pubtypes) } + .debug_ranges 0 : { *(.debug_ranges) } + /* DWARF Extension. */ + .debug_macro 0 : { *(.debug_macro) } + .debug_addr 0 : { *(.debug_addr) } + .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } + /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } }