From f86ec4236f27434b93f3a0d902ee34bdde963630 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Tue, 17 Feb 1998 23:35:54 +0000 Subject: Added .eh_frame, C++ constructor, and C++ destructor sections. --- c/src/lib/libbsp/i386/force386/startup/linkcmds | 20 +++++++++++++++++++- c/src/lib/libbsp/i386/i386ex/startup/linkcmds | 18 ++++++++++++++++++ c/src/lib/libbsp/i386/pc386/startup/linkcmds | 18 ++++++++++++++++++ c/src/lib/libbsp/i960/cvme961/startup/linkcmds | 18 ++++++++++++++++++ c/src/lib/libbsp/m68k/dmv152/startup/linkcmds | 18 ++++++++++++++++++ c/src/lib/libbsp/m68k/efi332/startup/linkcmds | 4 ++++ c/src/lib/libbsp/m68k/efi68k/startup/linkcmds | 4 ++++ c/src/lib/libbsp/m68k/gen68302/startup/linkcmds | 18 ++++++++++++++++++ c/src/lib/libbsp/m68k/gen68360/startup/linkcmds | 3 +++ c/src/lib/libbsp/m68k/idp/startup/linkcmds | 18 ++++++++++++++++++ c/src/lib/libbsp/m68k/mvme136/startup/linkcmds | 18 ++++++++++++++++++ c/src/lib/libbsp/m68k/mvme147/startup/linkcmds | 18 ++++++++++++++++++ c/src/lib/libbsp/m68k/mvme147s/startup/linkcmds | 18 ++++++++++++++++++ c/src/lib/libbsp/m68k/mvme162/startup/linkcmds | 18 ++++++++++++++++++ c/src/lib/libbsp/m68k/ods68302/startup/linkcmds | 5 +++++ c/src/lib/libbsp/no_cpu/no_bsp/startup/linkcmds | 18 ++++++++++++++++++ c/src/lib/libbsp/sparc/erc32/startup/linkcmds | 18 ++++++++++++++++++ 17 files changed, 251 insertions(+), 1 deletion(-) (limited to 'c/src/lib') diff --git a/c/src/lib/libbsp/i386/force386/startup/linkcmds b/c/src/lib/libbsp/i386/force386/startup/linkcmds index 53a02ae699..1c15fe1cb8 100644 --- a/c/src/lib/libbsp/i386/force386/startup/linkcmds +++ b/c/src/lib/libbsp/i386/force386/startup/linkcmds @@ -24,7 +24,25 @@ SECTIONS { _text_start = . ; *(.text) - _etext = ALIGN( 0x10 ) ; + . = ALIGN (16); + + *(.eh_fram) + . = ALIGN (16); + + /* + * C++ constructors + */ + __CTOR_LIST__ = .; + LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2) + *(.ctors) + LONG(0) + __CTOR_END__ = .; + __DTOR_LIST__ = .; + LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2) + *(.dtors) + LONG(0) + __DTOR_END__ = .; + _etext = ALIGN( 0x10 ) ; } .data ADDR( .text ) + SIZEOF( .text ): { diff --git a/c/src/lib/libbsp/i386/i386ex/startup/linkcmds b/c/src/lib/libbsp/i386/i386ex/startup/linkcmds index fa7cf47a60..927ffe92a2 100644 --- a/c/src/lib/libbsp/i386/i386ex/startup/linkcmds +++ b/c/src/lib/libbsp/i386/i386ex/startup/linkcmds @@ -88,6 +88,24 @@ SECTIONS { _text_start = . ; *(.text ) ; + . = ALIGN (16); + + *(.eh_fram) + . = ALIGN (16); + + /* + * C++ constructors + */ + __CTOR_LIST__ = .; + LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2) + *(.ctors) + LONG(0) + __CTOR_END__ = .; + __DTOR_LIST__ = .; + LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2) + *(.dtors) + LONG(0) + __DTOR_END__ = .; _etext = ALIGN( 0x10 ); } diff --git a/c/src/lib/libbsp/i386/pc386/startup/linkcmds b/c/src/lib/libbsp/i386/pc386/startup/linkcmds index 339195da1b..038531fc79 100644 --- a/c/src/lib/libbsp/i386/pc386/startup/linkcmds +++ b/c/src/lib/libbsp/i386/pc386/startup/linkcmds @@ -39,6 +39,24 @@ SECTIONS { _text_start = . ; *(.text) + . = ALIGN (16); + + *(.eh_fram) + . = ALIGN (16); + + /* + * C++ constructors + */ + __CTOR_LIST__ = .; + LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2) + *(.ctors) + LONG(0) + __CTOR_END__ = .; + __DTOR_LIST__ = .; + LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2) + *(.dtors) + LONG(0) + __DTOR_END__ = .; _etext = ALIGN( 0x10 ) ; } .rodata ADDR( .text ) + SIZEOF( .text ): diff --git a/c/src/lib/libbsp/i960/cvme961/startup/linkcmds b/c/src/lib/libbsp/i960/cvme961/startup/linkcmds index e4c31503bd..f6dc1264d3 100644 --- a/c/src/lib/libbsp/i960/cvme961/startup/linkcmds +++ b/c/src/lib/libbsp/i960/cvme961/startup/linkcmds @@ -25,6 +25,24 @@ SECTIONS text_start = . ; _text_start = . ; *(.text) + . = ALIGN (16); + + *(.eh_fram) + . = ALIGN (16); + + /* + * C++ constructors + */ + __CTOR_LIST__ = .; + LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2) + *(.ctors) + LONG(0) + __CTOR_END__ = .; + __DTOR_LIST__ = .; + LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2) + *(.dtors) + LONG(0) + __DTOR_END__ = .; etext = ALIGN( 0x10 ) ; /* _etext = .; -- conflicts */ } diff --git a/c/src/lib/libbsp/m68k/dmv152/startup/linkcmds b/c/src/lib/libbsp/m68k/dmv152/startup/linkcmds index be5b325ad8..75ecb0a15a 100644 --- a/c/src/lib/libbsp/m68k/dmv152/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/dmv152/startup/linkcmds @@ -25,6 +25,24 @@ SECTIONS text_start = . ; _text_start = . ; *(.text) + . = ALIGN (16); + + *(.eh_fram) + . = ALIGN (16); + + /* + * C++ constructors + */ + __CTOR_LIST__ = .; + LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2) + *(.ctors) + LONG(0) + __CTOR_END__ = .; + __DTOR_LIST__ = .; + LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2) + *(.dtors) + LONG(0) + __DTOR_END__ = .; etext = ALIGN( 0x10 ) ; _etext = .; } diff --git a/c/src/lib/libbsp/m68k/efi332/startup/linkcmds b/c/src/lib/libbsp/m68k/efi332/startup/linkcmds index 85c0b20b5c..90a27cb2fe 100644 --- a/c/src/lib/libbsp/m68k/efi332/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/efi332/startup/linkcmds @@ -49,6 +49,10 @@ SECTIONS text_start = .; _text_start = .; *(.text) + . = ALIGN (16); + *(.eh_fram) + . = ALIGN (16); + etext = ALIGN(0x10); _etext = .; __CTOR_LIST__ = .; diff --git a/c/src/lib/libbsp/m68k/efi68k/startup/linkcmds b/c/src/lib/libbsp/m68k/efi68k/startup/linkcmds index b980d87502..5fabd9d11b 100644 --- a/c/src/lib/libbsp/m68k/efi68k/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/efi68k/startup/linkcmds @@ -57,6 +57,10 @@ SECTIONS text_start = .; _text_start = .; *(.text) + . = ALIGN (16); + *(.eh_fram) + . = ALIGN (16); + etext = ALIGN(0x10); _etext = .; __CTOR_LIST__ = .; diff --git a/c/src/lib/libbsp/m68k/gen68302/startup/linkcmds b/c/src/lib/libbsp/m68k/gen68302/startup/linkcmds index 1a94a31dce..2d7c8bece4 100644 --- a/c/src/lib/libbsp/m68k/gen68302/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/gen68302/startup/linkcmds @@ -27,6 +27,24 @@ SECTIONS { text_start = . ; *(.text) + . = ALIGN (16); + + *(.eh_fram) + . = ALIGN (16); + + /* + * C++ constructors + */ + __CTOR_LIST__ = .; + LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2) + *(.ctors) + LONG(0) + __CTOR_END__ = .; + __DTOR_LIST__ = .; + LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2) + *(.dtors) + LONG(0) + __DTOR_END__ = .; etext = ALIGN( 0x10 ) ; } .data 0x010000 : diff --git a/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds b/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds index 61f3b8ca63..938281ca46 100644 --- a/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/gen68360/startup/linkcmds @@ -72,6 +72,9 @@ SECTIONS { *(.text) . = ALIGN (16); + *(.eh_fram) + . = ALIGN (16); + /* * C++ constructors */ diff --git a/c/src/lib/libbsp/m68k/idp/startup/linkcmds b/c/src/lib/libbsp/m68k/idp/startup/linkcmds index 150d397467..68026b08f8 100644 --- a/c/src/lib/libbsp/m68k/idp/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/idp/startup/linkcmds @@ -23,6 +23,24 @@ SECTIONS text_start = . ; _text_start = . ; *(.text) + . = ALIGN (16); + + *(.eh_fram) + . = ALIGN (16); + + /* + * C++ constructors + */ + __CTOR_LIST__ = .; + LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2) + *(.ctors) + LONG(0) + __CTOR_END__ = .; + __DTOR_LIST__ = .; + LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2) + *(.dtors) + LONG(0) + __DTOR_END__ = .; etext = ALIGN( 0x10 ) ; _etext = .; } diff --git a/c/src/lib/libbsp/m68k/mvme136/startup/linkcmds b/c/src/lib/libbsp/m68k/mvme136/startup/linkcmds index 845cb9f303..577bb0f8cf 100644 --- a/c/src/lib/libbsp/m68k/mvme136/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/mvme136/startup/linkcmds @@ -25,6 +25,24 @@ SECTIONS text_start = . ; _text_start = . ; *(.text) + . = ALIGN (16); + + *(.eh_fram) + . = ALIGN (16); + + /* + * C++ constructors + */ + __CTOR_LIST__ = .; + LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2) + *(.ctors) + LONG(0) + __CTOR_END__ = .; + __DTOR_LIST__ = .; + LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2) + *(.dtors) + LONG(0) + __DTOR_END__ = .; etext = ALIGN( 0x10 ) ; _etext = .; } diff --git a/c/src/lib/libbsp/m68k/mvme147/startup/linkcmds b/c/src/lib/libbsp/m68k/mvme147/startup/linkcmds index b23268d99e..c8c9ff9134 100644 --- a/c/src/lib/libbsp/m68k/mvme147/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/mvme147/startup/linkcmds @@ -29,6 +29,24 @@ SECTIONS text_start = . ; _text_start = . ; *(.text) + . = ALIGN (16); + + *(.eh_fram) + . = ALIGN (16); + + /* + * C++ constructors + */ + __CTOR_LIST__ = .; + LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2) + *(.ctors) + LONG(0) + __CTOR_END__ = .; + __DTOR_LIST__ = .; + LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2) + *(.dtors) + LONG(0) + __DTOR_END__ = .; etext = ALIGN( 0x10 ) ; _etext = .; } diff --git a/c/src/lib/libbsp/m68k/mvme147s/startup/linkcmds b/c/src/lib/libbsp/m68k/mvme147s/startup/linkcmds index 60d2c762ce..bf5b3a31ae 100644 --- a/c/src/lib/libbsp/m68k/mvme147s/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/mvme147s/startup/linkcmds @@ -29,6 +29,24 @@ SECTIONS text_start = . ; _text_start = . ; *(.text) + . = ALIGN (16); + + *(.eh_fram) + . = ALIGN (16); + + /* + * C++ constructors + */ + __CTOR_LIST__ = .; + LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2) + *(.ctors) + LONG(0) + __CTOR_END__ = .; + __DTOR_LIST__ = .; + LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2) + *(.dtors) + LONG(0) + __DTOR_END__ = .; etext = ALIGN( 0x10 ) ; _etext = .; } diff --git a/c/src/lib/libbsp/m68k/mvme162/startup/linkcmds b/c/src/lib/libbsp/m68k/mvme162/startup/linkcmds index e754786917..d8fe8d9808 100644 --- a/c/src/lib/libbsp/m68k/mvme162/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/mvme162/startup/linkcmds @@ -31,6 +31,24 @@ SECTIONS { text_start = . ; *(.text) + . = ALIGN (16); + + *(.eh_fram) + . = ALIGN (16); + + /* + * C++ constructors + */ + __CTOR_LIST__ = .; + LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2) + *(.ctors) + LONG(0) + __CTOR_END__ = .; + __DTOR_LIST__ = .; + LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2) + *(.dtors) + LONG(0) + __DTOR_END__ = .; etext = ALIGN( 0x10 ) ; } .data ADDR( .text ) + SIZEOF( .text ): diff --git a/c/src/lib/libbsp/m68k/ods68302/startup/linkcmds b/c/src/lib/libbsp/m68k/ods68302/startup/linkcmds index 225cc92f26..8a9be68783 100644 --- a/c/src/lib/libbsp/m68k/ods68302/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/ods68302/startup/linkcmds @@ -11,6 +11,11 @@ SECTIONS { text_start = .; *(.text) + . = ALIGN (16); + + *(.eh_fram) + . = ALIGN (16); + etext = .; . = ALIGN(4); __CTOR_LIST__ = .; diff --git a/c/src/lib/libbsp/no_cpu/no_bsp/startup/linkcmds b/c/src/lib/libbsp/no_cpu/no_bsp/startup/linkcmds index eaf8f84c46..02da47c3e1 100644 --- a/c/src/lib/libbsp/no_cpu/no_bsp/startup/linkcmds +++ b/c/src/lib/libbsp/no_cpu/no_bsp/startup/linkcmds @@ -25,6 +25,24 @@ SECTIONS text_start = . ; _text_start = . ; *(.text) + . = ALIGN (16); + + *(.eh_fram) + . = ALIGN (16); + + /* + * C++ constructors + */ + __CTOR_LIST__ = .; + LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2) + *(.ctors) + LONG(0) + __CTOR_END__ = .; + __DTOR_LIST__ = .; + LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2) + *(.dtors) + LONG(0) + __DTOR_END__ = .; _etext = ALIGN( 0x10 ) ; } .data ADDR( .text ) + SIZEOF( .text ): diff --git a/c/src/lib/libbsp/sparc/erc32/startup/linkcmds b/c/src/lib/libbsp/sparc/erc32/startup/linkcmds index 8b68dd2c05..9d1ecbbb1a 100644 --- a/c/src/lib/libbsp/sparc/erc32/startup/linkcmds +++ b/c/src/lib/libbsp/sparc/erc32/startup/linkcmds @@ -80,6 +80,24 @@ SECTIONS text_start = .; _text_start = .; *(.text) + . = ALIGN (16); + + *(.eh_fram) + . = ALIGN (16); + + /* + * C++ constructors + */ + __CTOR_LIST__ = .; + LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2) + *(.ctors) + LONG(0) + __CTOR_END__ = .; + __DTOR_LIST__ = .; + LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2) + *(.dtors) + LONG(0) + __DTOR_END__ = .; etext = ALIGN(0x10); _etext = .; __CTOR_LIST__ = .; -- cgit v1.2.3