This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: m68k linker scripts


Patch checked in. Thanks.

-- Jeff J.

Paul Brook wrote:
When compiling C++ code it's common to get comdat sections with names like .bss.foo. In the final output file these should be places in .bss. The libgloss m68k linker scripts don't handle these sections so ld sometimes places them after _end, with catastrophic results.

The attached patch fixes the linker scripts to include these sections.

Ok?

Paul

2005-12-06 Paul Brook <paul@codesourcery.com>

libgloss/
	* m68k/bcc.ld: Add .text.*, .rodata.*, .data.* and .bss.*.
	* m68k/idp.ld: Ditto.
	* m68k/idpgdb: Ditto.
	* m68k/mvme135.ld: Ditto.
	* m68k/sbc5204.ld: Ditto.
	* m68k/sbc5206.ld: Ditto.
	* m68k/sim.ld: Ditto.
	


------------------------------------------------------------------------


Index: libgloss/m68k/bcc.ld
===================================================================
RCS file: /var/cvsroot/src-cvs/src/libgloss/m68k/bcc.ld,v
retrieving revision 1.1
diff -u -p -r1.1 bcc.ld
--- libgloss/m68k/bcc.ld 17 Mar 2000 22:48:50 -0000 1.1
+++ libgloss/m68k/bcc.ld 6 Dec 2005 16:12:34 -0000
@@ -63,7 +63,7 @@ SECTIONS
{
.text :
{
- *(.text)
+ *(.text .text.*)
. = ALIGN(0x4);
__CTOR_LIST__ = .;
___CTOR_LIST__ = .;
@@ -77,7 +77,7 @@ SECTIONS
*(.dtors)
LONG(0)
__DTOR_END__ = .;
- *(.rodata)
+ *(.rodata .rodata.*)
*(.gcc_except_table) . = ALIGN(0x2);
@@ -100,7 +100,7 @@ SECTIONS
.data :
{
*(.shdata)
- *(.data)
+ *(.data .data.*)
_edata = .;
} > ram
@@ -109,7 +109,7 @@ SECTIONS
. = ALIGN(0x4);
__bss_start = . ;
*(.shbss)
- *(.bss)
+ *(.bss .bss.*)
*(COMMON)
_end = ALIGN (0x8);
__end = _end;
Index: libgloss/m68k/idp.ld
===================================================================
RCS file: /var/cvsroot/src-cvs/src/libgloss/m68k/idp.ld,v
retrieving revision 1.1
diff -u -p -r1.1 idp.ld
--- libgloss/m68k/idp.ld 17 Mar 2000 22:48:50 -0000 1.1
+++ libgloss/m68k/idp.ld 6 Dec 2005 16:13:32 -0000
@@ -77,7 +77,7 @@ SECTIONS
.text :
{
CREATE_OBJECT_SYMBOLS
- *(.text)
+ *(.text .text.*)
. = ALIGN(0x4);
/* These are for running static constructors and destructors under ELF. */
@@ -90,7 +90,7 @@ SECTIONS
KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors))
- *(.rodata)
+ *(.rodata .rodata.*)
. = ALIGN(0x4);
*(.gcc_except_table) @@ -119,7 +119,7 @@ SECTIONS
.data :
{
*(.shdata)
- *(.data)
+ *(.data .data.*)
_edata = .;
} > ram
@@ -128,7 +128,7 @@ SECTIONS
. = ALIGN(0x4);
__bss_start = . ;
*(.shbss)
- *(.bss)
+ *(.bss .bss.*)
*(COMMON)
_end = ALIGN (0x8);
__end = _end;
Index: libgloss/m68k/idpgdb.ld
===================================================================
RCS file: /var/cvsroot/src-cvs/src/libgloss/m68k/idpgdb.ld,v
retrieving revision 1.1
diff -u -p -r1.1 idpgdb.ld
--- libgloss/m68k/idpgdb.ld 10 Sep 2001 23:47:42 -0000 1.1
+++ libgloss/m68k/idpgdb.ld 6 Dec 2005 16:13:03 -0000
@@ -77,7 +77,7 @@ SECTIONS
.text :
{
CREATE_OBJECT_SYMBOLS
- *(.text)
+ *(.text .text.*)
. = ALIGN(0x4);
/* These are for running static constructors and destructors under ELF. */
@@ -90,7 +90,7 @@ SECTIONS
KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors))
- *(.rodata)
+ *(.rodata .rodata.*)
. = ALIGN(0x4);
*(.gcc_except_table) @@ -119,7 +119,7 @@ SECTIONS
.data :
{
*(.shdata)
- *(.data)
+ *(.data .data.*)
_edata = .;
} > ram
@@ -128,7 +128,7 @@ SECTIONS
. = ALIGN(0x4);
__bss_start = . ;
*(.shbss)
- *(.bss)
+ *(.bss .bss.*)
*(COMMON)
_end = ALIGN (0x8);
__end = _end;
Index: libgloss/m68k/mvme135.ld
===================================================================
RCS file: /var/cvsroot/src-cvs/src/libgloss/m68k/mvme135.ld,v
retrieving revision 1.1
diff -u -p -r1.1 mvme135.ld
--- libgloss/m68k/mvme135.ld 17 Mar 2000 22:48:51 -0000 1.1
+++ libgloss/m68k/mvme135.ld 6 Dec 2005 16:14:02 -0000
@@ -64,7 +64,7 @@ SECTIONS
{
.text :
{
- *(.text)
+ *(.text .text.*)
. = ALIGN(0x4);
__CTOR_LIST__ = .;
___CTOR_LIST__ = .;
@@ -78,7 +78,7 @@ SECTIONS
*(.dtors)
LONG(0)
__DTOR_END__ = .;
- *(.rodata)
+ *(.rodata .rodata.*)
*(.gcc_except_table) . = ALIGN(0x2);
@@ -101,7 +101,7 @@ SECTIONS
.data :
{
*(.shdata)
- *(.data)
+ *(.data .data.*)
_edata = .;
} > ram
@@ -110,7 +110,7 @@ SECTIONS
. = ALIGN(0x4);
__bss_start = . ;
*(.shbss)
- *(.bss)
+ *(.bss .bss.*)
*(COMMON)
_end = ALIGN (0x8);
__end = _end;
Index: libgloss/m68k/mvme162.ld
===================================================================
RCS file: /var/cvsroot/src-cvs/src/libgloss/m68k/mvme162.ld,v
retrieving revision 1.1
diff -u -p -r1.1 mvme162.ld
--- libgloss/m68k/mvme162.ld 17 Mar 2000 22:48:51 -0000 1.1
+++ libgloss/m68k/mvme162.ld 6 Dec 2005 16:14:36 -0000
@@ -65,7 +65,7 @@ SECTIONS
{
.text :
{
- *(.text)
+ *(.text .text.*)
. = ALIGN(0x4);
__CTOR_LIST__ = .;
___CTOR_LIST__ = .;
@@ -79,7 +79,7 @@ SECTIONS
*(.dtors)
LONG(0)
__DTOR_END__ = .;
- *(.rodata)
+ *(.rodata .rodata.*)
*(.gcc_except_table) . = ALIGN(0x2);
@@ -102,7 +102,7 @@ SECTIONS
.data :
{
*(.shdata)
- *(.data)
+ *(.data .data.*)
_edata = .;
} > ram
@@ -111,7 +111,7 @@ SECTIONS
. = ALIGN(0x4);
__bss_start = . ;
*(.shbss)
- *(.bss)
+ *(.bss .bss.*)
*(COMMON)
_end = ALIGN (0x8);
__end = _end;
Index: libgloss/m68k/sbc5204.ld
===================================================================
RCS file: /var/cvsroot/src-cvs/src/libgloss/m68k/sbc5204.ld,v
retrieving revision 1.1
diff -u -p -r1.1 sbc5204.ld
--- libgloss/m68k/sbc5204.ld 17 Mar 2000 22:48:51 -0000 1.1
+++ libgloss/m68k/sbc5204.ld 6 Dec 2005 16:15:05 -0000
@@ -63,7 +63,7 @@ SECTIONS
{
.text :
{
- *(.text)
+ *(.text .text.*)
. = ALIGN(0x4);
__CTOR_LIST__ = .;
___CTOR_LIST__ = .;
@@ -77,7 +77,7 @@ SECTIONS
*(.dtors)
LONG(0)
__DTOR_END__ = .;
- *(.rodata)
+ *(.rodata .rodata.*)
*(.gcc_except_table) . = ALIGN(0x2);
@@ -100,7 +100,7 @@ SECTIONS
.data :
{
*(.shdata)
- *(.data)
+ *(.data .data.*)
_edata = .;
} > ram
@@ -109,7 +109,7 @@ SECTIONS
. = ALIGN(0x4);
__bss_start = . ;
*(.shbss)
- *(.bss)
+ *(.bss .bss.*)
*(COMMON)
_end = ALIGN (0x8);
__end = _end;
Index: libgloss/m68k/sbc5206.ld
===================================================================
RCS file: /var/cvsroot/src-cvs/src/libgloss/m68k/sbc5206.ld,v
retrieving revision 1.1
diff -u -p -r1.1 sbc5206.ld
--- libgloss/m68k/sbc5206.ld 17 Mar 2000 22:48:51 -0000 1.1
+++ libgloss/m68k/sbc5206.ld 6 Dec 2005 16:15:31 -0000
@@ -63,7 +63,7 @@ SECTIONS
{
.text :
{
- *(.text)
+ *(.text .text.*)
. = ALIGN(0x4);
__CTOR_LIST__ = .;
___CTOR_LIST__ = .;
@@ -77,7 +77,7 @@ SECTIONS
*(.dtors)
LONG(0)
__DTOR_END__ = .;
- *(.rodata)
+ *(.rodata .rodata.*)
*(.gcc_except_table) . = ALIGN(0x2);
@@ -100,7 +100,7 @@ SECTIONS
.data :
{
*(.shdata)
- *(.data)
+ *(.data .data.*)
_edata = .;
} > ram
@@ -109,7 +109,7 @@ SECTIONS
. = ALIGN(0x4);
__bss_start = . ;
*(.shbss)
- *(.bss)
+ *(.bss .bss.*)
*(COMMON)
_end = ALIGN (0x8);
__end = _end;
Index: libgloss/m68k/sim.ld
===================================================================
RCS file: /var/cvsroot/src-cvs/src/libgloss/m68k/sim.ld,v
retrieving revision 1.1
diff -u -p -r1.1 sim.ld
--- libgloss/m68k/sim.ld 28 Feb 2001 18:41:57 -0000 1.1
+++ libgloss/m68k/sim.ld 6 Dec 2005 16:15:34 -0000
@@ -18,7 +18,7 @@ SECTIONS
.text :
{
CREATE_OBJECT_SYMBOLS
- *(.text)
+ *(.text .text.*)
. = ALIGN(0x4);
/* These are for running static constructors and destructors under ELF. */
@@ -31,7 +31,7 @@ SECTIONS
KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors))
- *(.rodata)
+ *(.rodata .rodata.*)
. = ALIGN(0x4);
*(.gcc_except_table) @@ -60,7 +60,7 @@ SECTIONS
.data :
{
*(.shdata)
- *(.data)
+ *(.data .data.*)
_edata = .;
} > ram
@@ -69,7 +69,7 @@ SECTIONS
. = ALIGN(0x4);
__bss_start = . ;
*(.shbss)
- *(.bss)
+ *(.bss .bss.*)
*(COMMON)
_end = ALIGN (0x8);
__end = _end;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]