forked from Imagelibrary/rtems
@@ -177,31 +177,20 @@ SECTIONS {
|
||||
/*
|
||||
* BSP: Moved into .data from .ctors
|
||||
*/
|
||||
/* gcc uses crtbegin.o to find the start of
|
||||
the constructors, so we make sure it is
|
||||
first. Because this is a wildcard, it
|
||||
doesn't matter if the user does not
|
||||
actually link against crtbegin.o; the
|
||||
linker won't look for a file to match a
|
||||
wildcard. The wildcard also means that it
|
||||
doesn't matter which directory crtbegin.o
|
||||
is in. */
|
||||
KEEP (*ecrti.o(.ctors))
|
||||
KEEP (*crtbegin.o(.ctors))
|
||||
KEEP (*crtbegin?.o(.ctors))
|
||||
/* We don't want to include the .ctor section from
|
||||
the crtend.o file until after the sorted ctors.
|
||||
The .ctor section from the crtend file contains the
|
||||
end of ctors marker and it must be last */
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o *ecrtn.o) .ctors))
|
||||
KEEP (*(SORT(.ctors.*)))
|
||||
KEEP (*(.ctors))
|
||||
|
||||
/*
|
||||
* BSP: Moved into .data from .dtors
|
||||
*/
|
||||
KEEP (*ecrti.o(.dtors))
|
||||
KEEP (*crtbegin.o(.dtors))
|
||||
KEEP (*crtbegin?.o(.dtors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o *ecrtn.o) .dtors))
|
||||
KEEP (*(SORT(.dtors.*)))
|
||||
KEEP (*(.dtors))
|
||||
|
||||
|
||||
@@ -77,27 +77,19 @@ SECTIONS
|
||||
*(.fini)
|
||||
*ecrtn.o(.init)
|
||||
|
||||
/*
|
||||
* C++ constructors and destructors for static objects.
|
||||
* PowerPC EABI does not use crtstuff yet, so we build "old-style"
|
||||
* constructor and destructor lists that begin with the list length
|
||||
* end terminate with a NULL entry.
|
||||
*/
|
||||
|
||||
PROVIDE (__CTOR_LIST__ = .);
|
||||
*crtbegin.o(.ctors)
|
||||
*(.ctors)
|
||||
*crtend.o(.ctors)
|
||||
LONG(0)
|
||||
PROVIDE (__CTOR_END__ = .);
|
||||
|
||||
PROVIDE (__DTOR_LIST__ = .);
|
||||
*crtbegin.o(.dtors)
|
||||
*(.dtors)
|
||||
*crtend.o(.dtors)
|
||||
LONG(0)
|
||||
PROVIDE (__DTOR_END__ = .);
|
||||
|
||||
KEEP (*ecrti.o(.ctors))
|
||||
KEEP (*crtbegin.o(.ctors))
|
||||
KEEP (*crtbegin?.o(.ctors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o *ecrtn.o) .ctors))
|
||||
KEEP (*(SORT(.ctors.*)))
|
||||
KEEP (*(.ctors))
|
||||
KEEP (*ecrti.o(.dtors))
|
||||
KEEP (*crtbegin.o(.dtors))
|
||||
KEEP (*crtbegin?.o(.dtors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o *ecrtn.o) .dtors))
|
||||
KEEP (*(SORT(.dtors.*)))
|
||||
KEEP (*(.dtors))
|
||||
|
||||
/* Exception frame info */
|
||||
*(.eh_frame)
|
||||
/* Miscellaneous read-only data */
|
||||
|
||||
@@ -93,28 +93,18 @@ SECTIONS
|
||||
*(.fini)
|
||||
*ecrtn.o(.init)
|
||||
|
||||
/*
|
||||
* C++ constructors and destructors for static objects.
|
||||
* PowerPC EABI does not use crtstuff yet, so we build "old-style"
|
||||
* constructor and destructor lists that begin with the list length
|
||||
* end terminate with a NULL entry.
|
||||
*/
|
||||
|
||||
PROVIDE (__CTOR_LIST__ = .);
|
||||
/* LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2) */
|
||||
*crtbegin.o(.ctors)
|
||||
*(.ctors)
|
||||
*crtend.o(.ctors)
|
||||
LONG(0)
|
||||
PROVIDE (__CTOR_END__ = .);
|
||||
|
||||
PROVIDE (__DTOR_LIST__ = .);
|
||||
/* LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2) */
|
||||
*crtbegin.o(.dtors)
|
||||
*(.dtors)
|
||||
*crtend.o(.dtors)
|
||||
LONG(0)
|
||||
PROVIDE (__DTOR_END__ = .);
|
||||
KEEP (*ecrti.o(.ctors))
|
||||
KEEP (*crtbegin.o(.ctors))
|
||||
KEEP (*crtbegin?.o(.ctors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o *ecrtn.o) .ctors))
|
||||
KEEP (*(SORT(.ctors.*)))
|
||||
KEEP (*(.ctors))
|
||||
KEEP (*ecrti.o(.dtors))
|
||||
KEEP (*crtbegin.o(.dtors))
|
||||
KEEP (*crtbegin?.o(.dtors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o *ecrtn.o) .dtors))
|
||||
KEEP (*(SORT(.dtors.*)))
|
||||
KEEP (*(.dtors))
|
||||
|
||||
/* Exception frame info */
|
||||
*(.eh_frame)
|
||||
|
||||
@@ -77,27 +77,18 @@ SECTIONS
|
||||
*(.fini)
|
||||
*ecrtn.o(.init)
|
||||
|
||||
/*
|
||||
* C++ constructors and destructors for static objects.
|
||||
* PowerPC EABI does not use crtstuff yet, so we build "old-style"
|
||||
* constructor and destructor lists that begin with the list length
|
||||
* end terminate with a NULL entry.
|
||||
*/
|
||||
PROVIDE (__CTOR_LIST__ = .);
|
||||
/* LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2) */
|
||||
*crtbegin.o(.ctors)
|
||||
*(.ctors)
|
||||
*crtend.o(.ctors)
|
||||
LONG(0)
|
||||
PROVIDE (__CTOR_END__ = .);
|
||||
|
||||
PROVIDE (__DTOR_LIST__ = .);
|
||||
/* LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2) */
|
||||
*crtbegin.o(.dtors)
|
||||
*(.dtors)
|
||||
*crtend.o(.dtors)
|
||||
LONG(0)
|
||||
PROVIDE (__DTOR_END__ = .);
|
||||
KEEP (*ecrti.o(.ctors))
|
||||
KEEP (*crtbegin.o(.ctors))
|
||||
KEEP (*crtbegin?.o(.ctors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o *ecrtn.o) .ctors))
|
||||
KEEP (*(SORT(.ctors.*)))
|
||||
KEEP (*(.ctors))
|
||||
KEEP (*ecrti.o(.dtors))
|
||||
KEEP (*crtbegin.o(.dtors))
|
||||
KEEP (*crtbegin?.o(.dtors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o *ecrtn.o) .dtors))
|
||||
KEEP (*(SORT(.dtors.*)))
|
||||
KEEP (*(.dtors))
|
||||
|
||||
/*
|
||||
* Special FreeBSD sysctl sections.
|
||||
|
||||
@@ -161,29 +161,20 @@ SECTIONS
|
||||
|
||||
.dynamic : { *(.dynamic) } > RAM
|
||||
|
||||
.ctors : { /* gcc uses crtbegin.o to find the start of
|
||||
* the constructors, so we make sure it is
|
||||
* first. Because this is a wildcard, it
|
||||
* doesn't matter if the user does not
|
||||
* actually link against crtbegin.o; the
|
||||
* linker won't look for a file to match a
|
||||
* wildcard. The wildcard also means that it
|
||||
* doesn't matter which directory crtbegin.o
|
||||
* is in.
|
||||
*/
|
||||
.ctors : {
|
||||
KEEP (*ecrti.o(.ctors))
|
||||
KEEP (*crtbegin.o(.ctors))
|
||||
/* We don't want to include the .ctor section from
|
||||
* the crtend.o file until after the sorted ctors.
|
||||
* The .ctor section from the crtend file contains the
|
||||
* end of ctors marker and it must be last.
|
||||
*/
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o ) .ctors))
|
||||
KEEP (*crtbegin?.o(.ctors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o *ecrtn.o) .ctors))
|
||||
KEEP (*(SORT(.ctors.*)))
|
||||
KEEP (*(.ctors))
|
||||
} > RAM
|
||||
|
||||
.dtors : { KEEP (*crtbegin.o(.dtors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o ) .dtors))
|
||||
.dtors : {
|
||||
KEEP (*ecrti.o(.dtors))
|
||||
KEEP (*crtbegin.o(.dtors))
|
||||
KEEP (*crtbegin?.o(.dtors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o *ecrtn.o) .dtors))
|
||||
KEEP (*(SORT(.dtors.*)))
|
||||
KEEP (*(.dtors))
|
||||
} > RAM
|
||||
|
||||
@@ -161,29 +161,20 @@ SECTIONS
|
||||
|
||||
.dynamic : { *(.dynamic) } > RAM
|
||||
|
||||
.ctors : { /* gcc uses crtbegin.o to find the start of
|
||||
* the constructors, so we make sure it is
|
||||
* first. Because this is a wildcard, it
|
||||
* doesn't matter if the user does not
|
||||
* actually link against crtbegin.o; the
|
||||
* linker won't look for a file to match a
|
||||
* wildcard. The wildcard also means that it
|
||||
* doesn't matter which directory crtbegin.o
|
||||
* is in.
|
||||
*/
|
||||
.ctors : {
|
||||
KEEP (*ecrti.o(.ctors))
|
||||
KEEP (*crtbegin.o(.ctors))
|
||||
/* We don't want to include the .ctor section from
|
||||
* the crtend.o file until after the sorted ctors.
|
||||
* The .ctor section from the crtend file contains the
|
||||
* end of ctors marker and it must be last.
|
||||
*/
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o ) .ctors))
|
||||
KEEP (*crtbegin?.o(.ctors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o *ecrtn.o) .ctors))
|
||||
KEEP (*(SORT(.ctors.*)))
|
||||
KEEP (*(.ctors))
|
||||
} > RAM
|
||||
|
||||
.dtors : { KEEP (*crtbegin.o(.dtors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o ) .dtors))
|
||||
.dtors : {
|
||||
KEEP (*ecrti.o(.dtors))
|
||||
KEEP (*crtbegin.o(.dtors))
|
||||
KEEP (*crtbegin?.o(.dtors))
|
||||
KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o *ecrtn.o) .dtors))
|
||||
KEEP (*(SORT(.dtors.*)))
|
||||
KEEP (*(.dtors))
|
||||
} > RAM
|
||||
|
||||
Reference in New Issue
Block a user