[rtems commit] m68k/uC5282: linkcmds KEEP and SORT sections
Gedare Bloom
gedare at rtems.org
Thu Jul 1 19:01:43 UTC 2021
Module: rtems
Branch: master
Commit: 24e8ddca5cf48d4905e9744b36c887128003852e
Changeset: http://git.rtems.org/rtems/commit/?id=24e8ddca5cf48d4905e9744b36c887128003852e
Author: Gedare Bloom <gedare at rtems.org>
Date: Thu Jul 1 12:32:57 2021 -0600
m68k/uC5282: linkcmds KEEP and SORT sections
Fixes a problem with bad epilog code in _fini and to keep sections
necessary with the -ffunction/data-sections.
---
bsps/m68k/uC5282/start/linkcmds | 34 +++++++++++++++++++---------------
1 file changed, 19 insertions(+), 15 deletions(-)
diff --git a/bsps/m68k/uC5282/start/linkcmds b/bsps/m68k/uC5282/start/linkcmds
index 6ac9de9..2111e53 100644
--- a/bsps/m68k/uC5282/start/linkcmds
+++ b/bsps/m68k/uC5282/start/linkcmds
@@ -91,13 +91,13 @@ SECTIONS
* crtn.o are in.
*/
PROVIDE (_init = .);
- *crti.o(.init)
- *(.init)
- *crtn.o(.init)
+ KEEP (*crti.o(.init))
+ KEEP (*(.init))
+ KEEP (*crtn.o(.init))
PROVIDE (_fini = .);
- *crti.o(.fini)
- *(.fini)
- *crtn.o(.fini)
+ KEEP (*crti.o(.fini))
+ KEEP (*(.fini))
+ KEEP (*crtn.o(.fini))
/*
* Special FreeBSD sysctl sections.
@@ -122,18 +122,22 @@ SECTIONS
* crtend.o. The same comments apply to it.
*/
. = ALIGN (16);
- *crtbegin.o(.ctors)
- *(.ctors)
- *crtend.o(.ctors)
- *crtbegin.o(.dtors)
- *(.dtors)
- *crtend.o(.dtors)
+ KEEP (*crtbegin.o(.ctors))
+ KEEP (*crtbegin?.o(.ctors))
+ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors))
+ KEEP (*(SORT(.ctors.*)))
+ KEEP (*(.ctors))
+ KEEP (*crtbegin.o(.dtors))
+ KEEP (*crtbegin?.o(.dtors))
+ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors))
+ KEEP (*(SORT(.dtors.*)))
+ KEEP (*(.dtors))
/*
* Exception frame info
*/
. = ALIGN (16);
- *(.eh_frame)
+ KEEP (*(.eh_frame))
/*
* Read-only data
@@ -141,7 +145,7 @@ SECTIONS
. = ALIGN (16);
_rodata_start = . ;
*(.rodata*)
- KEEP (*(SORT(.rtemsroset.*)))
+ KEEP (*(SORT(.rtemsroset.*)))
*(.gnu.linkonce.r*)
. = ALIGN (16);
@@ -179,7 +183,7 @@ SECTIONS
KEEP (*(SORT(.rtemsrwset.*)))
*(.gnu.linkonce.d*)
*(.gcc_except_table*)
- *(.jcr)
+ KEEP (*(.jcr))
. = ALIGN (16);
PROVIDE (_edata = .);
PROVIDE (_copy_end = .);
More information about the vc
mailing list