summaryrefslogtreecommitdiffstats
path: root/libgloss/m68k/cf.sc
diff options
context:
space:
mode:
Diffstat (limited to 'libgloss/m68k/cf.sc')
-rw-r--r--libgloss/m68k/cf.sc39
1 files changed, 36 insertions, 3 deletions
diff --git a/libgloss/m68k/cf.sc b/libgloss/m68k/cf.sc
index b19dce4ce..097dc1fe0 100644
--- a/libgloss/m68k/cf.sc
+++ b/libgloss/m68k/cf.sc
@@ -3,15 +3,16 @@
# RAM_SIZE - size of board's ram
# ROM - start of board's rom
# ROM_SIZE - size of board's rom
+# IO - io library name
test -z "${ROM:+1}" && NOROM=1
cat <<EOF
-STARTUP(bdm-crt0.o)
+STARTUP(cf-${IO}-crt0.o)
OUTPUT_ARCH(m68k)
ENTRY(__start)
SEARCH_DIR(.)
-GROUP(-lc -lbdm)
+GROUP(-lc -l${IO} -lcf)
__DYNAMIC = 0;
MEMORY
@@ -28,8 +29,10 @@ SECTIONS
.text :
{
CREATE_OBJECT_SYMBOLS
- bdm-crt0.o(.text)
+ KEEP (*cf-isv.o(.text))
+ cf-${IO}-crt0.o(.text)
*(.text .text.*)
+ *(.gnu.linkonce.t.*)
. = ALIGN(0x4);
/* These are for running static constructors and destructors under ELF. */
@@ -42,7 +45,13 @@ SECTIONS
KEEP (*(SORT(.dtors.*)))
KEEP (*crtend.o(.dtors))
+ . = ALIGN(0x4);
+ KEEP (*crtbegin.o(.jcr))
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .jcr))
+ KEEP (*crtend.o(.jcr))
+
*(.rodata .rodata.*)
+ *(.gnu.linkonce.r.*)
. = ALIGN(0x4);
*(.gcc_except_table)
@@ -77,6 +86,7 @@ SECTIONS
*(.got.plt) *(.got)
*(.shdata)
*(.data .data.*)
+ *(.gnu.linkonce.d.*)
. = ALIGN (4);
_edata = .;
} >ram ${ROM:+AT>rom}
@@ -86,6 +96,7 @@ SECTIONS
__bss_start = . ;
*(.shbss)
*(.bss .bss.*)
+ *(.gnu.linkonce.b.*)
*(COMMON)
. = ALIGN (8);
_end = .;
@@ -101,5 +112,27 @@ SECTIONS
{
*(.stabstr)
}
+
+ /* 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) }
+
}
EOF