mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-19 00:59:15 +08:00
Add initX, finiX, ctors, dtors sections to respect C++ constructor/destructor.
Add ctors/dtors start/stop definitions.
This commit is contained in:
@ -1,3 +1,10 @@
|
|||||||
|
2003-04-09 Dmitry Diky <diwil@mail.ru>
|
||||||
|
|
||||||
|
* scripttempl/elf32msp430.sc: Add initX, finiX, ctors, dtors
|
||||||
|
sections to respect C++ constructor/destructor. Add ctors/dtors
|
||||||
|
start/stop definitions.
|
||||||
|
* scripttempl/elf32msp430_3.sc: Likewise.
|
||||||
|
|
||||||
2003-04-06 Nick Clifton <nickc@redhat.com>
|
2003-04-06 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
* ld.texinfo (Options): Add a reminder of the target specific
|
* ld.texinfo (Options): Add a reminder of the target specific
|
||||||
|
@ -77,13 +77,44 @@ SECTIONS
|
|||||||
/* Internal text space. */
|
/* Internal text space. */
|
||||||
.text :
|
.text :
|
||||||
{
|
{
|
||||||
|
${RELOCATING+. = ALIGN(2);}
|
||||||
*(.init)
|
*(.init)
|
||||||
|
*(.init0) /* Start here after reset. */
|
||||||
|
*(.init1)
|
||||||
|
*(.init2) /* Copy data loop */
|
||||||
|
*(.init3)
|
||||||
|
*(.init4) /* Clear bss */
|
||||||
|
*(.init5)
|
||||||
|
*(.init6) /* C++ constructors. */
|
||||||
|
*(.init7)
|
||||||
|
*(.init8)
|
||||||
|
*(.init9) /* Call main(). */
|
||||||
|
|
||||||
|
${CONSTRUCTING+ __ctors_start = . ; }
|
||||||
|
${CONSTRUCTING+ *(.ctors) }
|
||||||
|
${CONSTRUCTING+ __ctors_end = . ; }
|
||||||
|
${CONSTRUCTING+ __dtors_start = . ; }
|
||||||
|
${CONSTRUCTING+ *(.dtors) }
|
||||||
|
${CONSTRUCTING+ __dtors_end = . ; }
|
||||||
|
|
||||||
${RELOCATING+. = ALIGN(2);}
|
${RELOCATING+. = ALIGN(2);}
|
||||||
*(.text)
|
*(.text)
|
||||||
${RELOCATING+. = ALIGN(2);}
|
${RELOCATING+. = ALIGN(2);}
|
||||||
*(.text.*)
|
*(.text.*)
|
||||||
|
|
||||||
${RELOCATING+. = ALIGN(2);}
|
${RELOCATING+. = ALIGN(2);}
|
||||||
|
*(.fini9) /* */
|
||||||
|
*(.fini8)
|
||||||
|
*(.fini7)
|
||||||
|
*(.fini6) /* C++ destructors. */
|
||||||
|
*(.fini5)
|
||||||
|
*(.fini4)
|
||||||
|
*(.fini3)
|
||||||
|
*(.fini2)
|
||||||
|
*(.fini1)
|
||||||
|
*(.fini0) /* Infinite loop after program termination. */
|
||||||
*(.fini)
|
*(.fini)
|
||||||
|
|
||||||
${RELOCATING+ _etext = . ; }
|
${RELOCATING+ _etext = . ; }
|
||||||
} ${RELOCATING+ > text}
|
} ${RELOCATING+ > text}
|
||||||
|
|
||||||
|
@ -74,13 +74,44 @@ SECTIONS
|
|||||||
/* Internal text space. */
|
/* Internal text space. */
|
||||||
.text :
|
.text :
|
||||||
{
|
{
|
||||||
|
${RELOCATING+. = ALIGN(2);}
|
||||||
*(.init)
|
*(.init)
|
||||||
|
*(.init0) /* Start here after reset. */
|
||||||
|
*(.init1)
|
||||||
|
*(.init2)
|
||||||
|
*(.init3)
|
||||||
|
*(.init4)
|
||||||
|
*(.init5)
|
||||||
|
*(.init6) /* C++ constructors. */
|
||||||
|
*(.init7)
|
||||||
|
*(.init8)
|
||||||
|
*(.init9) /* Call main(). */
|
||||||
|
|
||||||
|
${CONSTRUCTING+ __ctors_start = . ; }
|
||||||
|
${CONSTRUCTING+ *(.ctors) }
|
||||||
|
${CONSTRUCTING+ __ctors_end = . ; }
|
||||||
|
${CONSTRUCTING+ __dtors_start = . ; }
|
||||||
|
${CONSTRUCTING+ *(.dtors) }
|
||||||
|
${CONSTRUCTING+ __dtors_end = . ; }
|
||||||
|
|
||||||
${RELOCATING+. = ALIGN(2);}
|
${RELOCATING+. = ALIGN(2);}
|
||||||
*(.text)
|
*(.text)
|
||||||
${RELOCATING+. = ALIGN(2);}
|
${RELOCATING+. = ALIGN(2);}
|
||||||
*(.text.*)
|
*(.text.*)
|
||||||
|
|
||||||
${RELOCATING+. = ALIGN(2);}
|
${RELOCATING+. = ALIGN(2);}
|
||||||
|
*(.fini9)
|
||||||
|
*(.fini8)
|
||||||
|
*(.fini7)
|
||||||
|
*(.fini6) /* C++ destructors. */
|
||||||
|
*(.fini5)
|
||||||
|
*(.fini4)
|
||||||
|
*(.fini3)
|
||||||
|
*(.fini2)
|
||||||
|
*(.fini1)
|
||||||
|
*(.fini0) /* Infinite loop after program termination. */
|
||||||
*(.fini)
|
*(.fini)
|
||||||
|
|
||||||
${RELOCATING+ _etext = . ; }
|
${RELOCATING+ _etext = . ; }
|
||||||
} ${RELOCATING+ > text}
|
} ${RELOCATING+ > text}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user