From 01c36de4f23e7978cfde00d62436e0d3243e95c3 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Wed, 6 Oct 1999 18:04:34 +0000 Subject: Added more sections and made minor modifications to let the linkcmds work with m68k-elf on late model versions of binutils (990901+) without overlapping or missing section errors. --- c/src/lib/libbsp/m68k/gen68302/startup/linkcmds | 8 +++++++- c/src/lib/libbsp/m68k/gen68360/startup/linkcmds | 13 +++++++++++++ c/src/lib/libbsp/m68k/idp/startup/linkcmds | 9 +++++---- c/src/lib/libbsp/m68k/mvme136/startup/linkcmds | 6 ++---- c/src/lib/libbsp/m68k/mvme147/startup/linkcmds | 6 ++---- c/src/lib/libbsp/m68k/mvme147s/startup/linkcmds | 13 +++++++++++++ c/src/lib/libbsp/m68k/mvme162/startup/linkcmds | 6 ++---- c/src/lib/libbsp/m68k/ods68302/startup/linkcmds | 22 ++++++++++------------ 8 files changed, 54 insertions(+), 29 deletions(-) diff --git a/c/src/lib/libbsp/m68k/gen68302/startup/linkcmds b/c/src/lib/libbsp/m68k/gen68302/startup/linkcmds index 47cb15608c..5f50c68595 100644 --- a/c/src/lib/libbsp/m68k/gen68302/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/gen68302/startup/linkcmds @@ -49,14 +49,20 @@ SECTIONS *(.dtors) LONG(0) __DTOR_END__ = .; + + _rodata_start = . ; + *(.rodata) + *(.gnu.linkonce.r*) + _erodata = ALIGN( 0x10 ) ; + etext = ALIGN( 0x10 ) ; } - .rodata : { *(.rodata) *(.gnu.linkonce.r*) } >RAM .data 0x010000 : { data_start = . ; *(.data) *(.gnu.linkonce.d.*) + *(.gcc_except_table) edata = ALIGN( 0x10 ) ; } .bss ADDR( .data ) + SIZEOF( .data ): diff --git a/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds b/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds index 132eafa35d..9d0899b5af 100644 --- a/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds @@ -57,9 +57,15 @@ SECTIONS { *(.text) . = ALIGN (16); + *(.gnu.linkonce.t.*) + *(.descriptors) + /* .gnu.warning sections are handled specially by elf32.em. */ + *(.gnu.warning) + *(.eh_fram) . = ALIGN (16); + *(.gcc_exc) /* * C++ constructors */ @@ -74,12 +80,19 @@ SECTIONS { LONG(0) __DTOR_END__ = .; + _rodata_start = . ; + *(.rodata) + *(.gnu.linkonce.r*) + _erodata = ALIGN( 0x10 ) ; + etext = .; _etext = .; } >ram .data : { copy_start = .; *(.data) + *(.gnu.linkonce.d*) + *(.gcc_except_table) . = ALIGN (16); _edata = .; copy_end = .; diff --git a/c/src/lib/libbsp/m68k/idp/startup/linkcmds b/c/src/lib/libbsp/m68k/idp/startup/linkcmds index d35d1d17ac..8ffdb3f40d 100644 --- a/c/src/lib/libbsp/m68k/idp/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/idp/startup/linkcmds @@ -31,6 +31,9 @@ SECTIONS *(.eh_fram) . = ALIGN (16); + . = ALIGN (16); + *(.gcc_exc) + /* * C++ constructors */ @@ -47,16 +50,14 @@ SECTIONS etext = ALIGN( 0x10 ) ; _etext = .; } - .data ADDR( .text ) + SIZEOF( .text ): - { + .data : { data_start = . ; _data_start = .; *(.data) edata = ALIGN( 0x10 ) ; _edata = .; } - .bss ADDR( .data ) + SIZEOF( .data ): - { + .bss : { bss_start = . ; _bss_start = . ; *(.bss) diff --git a/c/src/lib/libbsp/m68k/mvme136/startup/linkcmds b/c/src/lib/libbsp/m68k/mvme136/startup/linkcmds index eb88a08bfe..98c7a8bdd8 100644 --- a/c/src/lib/libbsp/m68k/mvme136/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/mvme136/startup/linkcmds @@ -47,16 +47,14 @@ SECTIONS etext = ALIGN( 0x10 ) ; _etext = .; } - .data ADDR( .text ) + SIZEOF( .text ): - { + .data : { data_start = . ; _data_start = .; *(.data) edata = ALIGN( 0x10 ) ; _edata = .; } - .bss ADDR( .data ) + SIZEOF( .data ): - { + .bss : { bss_start = . ; _bss_start = . ; *(.bss) diff --git a/c/src/lib/libbsp/m68k/mvme147/startup/linkcmds b/c/src/lib/libbsp/m68k/mvme147/startup/linkcmds index 4749021258..01b5381b02 100644 --- a/c/src/lib/libbsp/m68k/mvme147/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/mvme147/startup/linkcmds @@ -52,16 +52,14 @@ SECTIONS etext = ALIGN( 0x10 ) ; _etext = .; } - .data ADDR( .text ) + SIZEOF( .text ): - { + .data : { data_start = . ; _data_start = .; *(.data) edata = ALIGN( 0x10 ) ; _edata = .; } - .bss ADDR( .data ) + SIZEOF( .data ): - { + .bss : { bss_start = . ; _bss_start = . ; *(.bss) diff --git a/c/src/lib/libbsp/m68k/mvme147s/startup/linkcmds b/c/src/lib/libbsp/m68k/mvme147s/startup/linkcmds index 15c1ecf8e8..24b487fef3 100644 --- a/c/src/lib/libbsp/m68k/mvme147s/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/mvme147s/startup/linkcmds @@ -33,6 +33,11 @@ SECTIONS *(.text) . = ALIGN (16); + *(.gnu.linkonce.t.*) + *(.descriptors) + /* .gnu.warning sections are handled specially by elf32.em. */ + *(.gnu.warning) + *(.eh_fram) . = ALIGN (16); @@ -49,6 +54,12 @@ SECTIONS *(.dtors) LONG(0) __DTOR_END__ = .; + + _rodata_start = . ; + *(.rodata) + *(.gnu.linkonce.r*) + _erodata = ALIGN( 0x10 ) ; + etext = ALIGN( 0x10 ) ; _etext = .; } @@ -57,6 +68,8 @@ SECTIONS data_start = . ; _data_start = .; *(.data) + *(.gnu.linkonce.d*) + *(.gcc_except_table) edata = ALIGN( 0x10 ) ; _edata = .; } diff --git a/c/src/lib/libbsp/m68k/mvme162/startup/linkcmds b/c/src/lib/libbsp/m68k/mvme162/startup/linkcmds index 27bea7d764..3aecc130ee 100644 --- a/c/src/lib/libbsp/m68k/mvme162/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/mvme162/startup/linkcmds @@ -53,14 +53,12 @@ SECTIONS __DTOR_END__ = .; etext = ALIGN( 0x10 ) ; } - .data ADDR( .text ) + SIZEOF( .text ): - { + .data : { data_start = . ; *(.data) edata = ALIGN( 0x10 ) ; } - .bss ADDR( .data ) + SIZEOF( .data ): - { + .bss : { bss_start = . ; *(.bss) *(COMMON) diff --git a/c/src/lib/libbsp/m68k/ods68302/startup/linkcmds b/c/src/lib/libbsp/m68k/ods68302/startup/linkcmds index 8a9be68783..e0a884992c 100644 --- a/c/src/lib/libbsp/m68k/ods68302/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/ods68302/startup/linkcmds @@ -7,6 +7,13 @@ SECTIONS { + .vtable 0 : + { + vtable_start = .; + *(.vtable) + evtable = .; + } + .text . : { text_start = .; @@ -31,22 +38,13 @@ SECTIONS __DTOR_END__ = .; } - .vtable 0 : - { - vtable_start = .; - *(.vtable) - evtable = .; - } - - .data (ADDR(.vtable) + SIZEOF(.vtable)) : - AT (ADDR(.text) + SIZEOF(.text)) - { + .data : { data_start = .; *(.data) + *(.rodata) edata = .; } - .bss (ADDR(.data) + SIZEOF(.data)) : - { + .bss : { bss_start = .; *(.bss) *(COMMON) -- cgit v1.2.3