This is the mail archive of the
newlib@sourceware.org
mailing list for the newlib project.
Patch to keep special sections generated by mips gcc
- From: Fred Fish <fnf at specifix dot com>
- To: newlib at sources dot redhat dot com
- Cc: fnf at specifix dot com
- Date: Wed, 7 Jun 2006 21:48:48 -0400
- Subject: Patch to keep special sections generated by mips gcc
- Reply-to: fnf at specifix dot com
New mainline versions of binutils ld strip zero length sections
by default. This patch is needed to ensure that the special
sections generated by mips gcc are kept in the final executable.
2006-06-07 Fred Fish <fnf@specifix.com>
* mips/idt.ld, mips/idt32.ld, mips/idt64.ld, mips/nullmon.ld,
mips/pmon.ld: Keep special sections generated by mips gcc.
Index: mips/idt.ld
===================================================================
RCS file: /cvsroots/latest/src/newlib/libgloss/mips/idt.ld,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 idt.ld
--- mips/idt.ld 8 Oct 2005 19:45:24 -0000 1.1.1.1
+++ mips/idt.ld 8 Jun 2006 01:45:16 -0000
@@ -170,4 +170,15 @@ SECTIONS
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
+
+ /* Special sections generated by gcc */
+ /* Newer GNU linkers strip by default */
+ .mdebug.abi32 0 : { KEEP(*(.mdebug.abi32)) }
+ .mdebug.abiN32 0 : { KEEP(*(.mdebug.abiN32)) }
+ .mdebug.abi64 0 : { KEEP(*(.mdebug.abi64)) }
+ .mdebug.abiO64 0 : { KEEP(*(.mdebug.abiO64)) }
+ .mdebug.eabi32 0 : { KEEP(*(.mdebug.eabi32)) }
+ .mdebug.eabi64 0 : { KEEP(*(.mdebug.eabi64)) }
+ .gcc_compiled_long32 0 : { KEEP(*(.gcc_compiled_long32)) }
+ .gcc_compiled_long64 0 : { KEEP(*(.gcc_compiled_long64)) }
}
Index: mips/idt32.ld
===================================================================
RCS file: /cvsroots/latest/src/newlib/libgloss/mips/idt32.ld,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 idt32.ld
--- mips/idt32.ld 8 Oct 2005 19:45:24 -0000 1.1.1.1
+++ mips/idt32.ld 8 Jun 2006 01:45:06 -0000
@@ -172,4 +172,15 @@ SECTIONS
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
+
+ /* Special sections generated by gcc */
+ /* Newer GNU linkers strip by default */
+ .mdebug.abi32 0 : { KEEP(*(.mdebug.abi32)) }
+ .mdebug.abiN32 0 : { KEEP(*(.mdebug.abiN32)) }
+ .mdebug.abi64 0 : { KEEP(*(.mdebug.abi64)) }
+ .mdebug.abiO64 0 : { KEEP(*(.mdebug.abiO64)) }
+ .mdebug.eabi32 0 : { KEEP(*(.mdebug.eabi32)) }
+ .mdebug.eabi64 0 : { KEEP(*(.mdebug.eabi64)) }
+ .gcc_compiled_long32 0 : { KEEP(*(.gcc_compiled_long32)) }
+ .gcc_compiled_long64 0 : { KEEP(*(.gcc_compiled_long64)) }
}
Index: mips/idt64.ld
===================================================================
RCS file: /cvsroots/latest/src/newlib/libgloss/mips/idt64.ld,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 idt64.ld
--- mips/idt64.ld 8 Oct 2005 19:45:24 -0000 1.1.1.1
+++ mips/idt64.ld 8 Jun 2006 01:44:59 -0000
@@ -171,4 +171,15 @@ SECTIONS
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
+
+ /* Special sections generated by gcc */
+ /* Newer GNU linkers strip by default */
+ .mdebug.abi32 0 : { KEEP(*(.mdebug.abi32)) }
+ .mdebug.abiN32 0 : { KEEP(*(.mdebug.abiN32)) }
+ .mdebug.abi64 0 : { KEEP(*(.mdebug.abi64)) }
+ .mdebug.abiO64 0 : { KEEP(*(.mdebug.abiO64)) }
+ .mdebug.eabi32 0 : { KEEP(*(.mdebug.eabi32)) }
+ .mdebug.eabi64 0 : { KEEP(*(.mdebug.eabi64)) }
+ .gcc_compiled_long32 0 : { KEEP(*(.gcc_compiled_long32)) }
+ .gcc_compiled_long64 0 : { KEEP(*(.gcc_compiled_long64)) }
}
Index: mips/nullmon.ld
===================================================================
RCS file: /cvsroots/latest/src/newlib/libgloss/mips/nullmon.ld,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 nullmon.ld
--- mips/nullmon.ld 8 Oct 2005 19:45:24 -0000 1.1.1.1
+++ mips/nullmon.ld 8 Jun 2006 01:44:52 -0000
@@ -165,4 +165,15 @@ SECTIONS
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
+
+ /* Special sections generated by gcc */
+ /* Newer GNU linkers strip by default */
+ .mdebug.abi32 0 : { KEEP(*(.mdebug.abi32)) }
+ .mdebug.abiN32 0 : { KEEP(*(.mdebug.abiN32)) }
+ .mdebug.abi64 0 : { KEEP(*(.mdebug.abi64)) }
+ .mdebug.abiO64 0 : { KEEP(*(.mdebug.abiO64)) }
+ .mdebug.eabi32 0 : { KEEP(*(.mdebug.eabi32)) }
+ .mdebug.eabi64 0 : { KEEP(*(.mdebug.eabi64)) }
+ .gcc_compiled_long32 0 : { KEEP(*(.gcc_compiled_long32)) }
+ .gcc_compiled_long64 0 : { KEEP(*(.gcc_compiled_long64)) }
}
Index: mips/pmon.ld
===================================================================
RCS file: /cvsroots/latest/src/newlib/libgloss/mips/pmon.ld,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 pmon.ld
--- mips/pmon.ld 8 Oct 2005 19:45:24 -0000 1.1.1.1
+++ mips/pmon.ld 8 Jun 2006 01:44:38 -0000
@@ -164,4 +164,15 @@ SECTIONS
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
+
+ /* Special sections generated by gcc */
+ /* Newer GNU linkers strip by default */
+ .mdebug.abi32 0 : { KEEP(*(.mdebug.abi32)) }
+ .mdebug.abiN32 0 : { KEEP(*(.mdebug.abiN32)) }
+ .mdebug.abi64 0 : { KEEP(*(.mdebug.abi64)) }
+ .mdebug.abiO64 0 : { KEEP(*(.mdebug.abiO64)) }
+ .mdebug.eabi32 0 : { KEEP(*(.mdebug.eabi32)) }
+ .mdebug.eabi64 0 : { KEEP(*(.mdebug.eabi64)) }
+ .gcc_compiled_long32 0 : { KEEP(*(.gcc_compiled_long32)) }
+ .gcc_compiled_long64 0 : { KEEP(*(.gcc_compiled_long64)) }
}