[PATCH] m68k/uC5282: linkcmds KEEP and SORT sections
Gedare Bloom
gedare at rtems.org
Thu Jul 1 18:50:26 UTC 2021
Hello all,
The uC5282 stopped working in 5 and master. This patch seems to get
things working again on both branches. I can run hello.exe and
ticker.exe on the WIP qemu Harrison is working on.
I will back-port to 5 with a ticket.
We'll work on full tester configuration after the WIP qemu
modifications are finished. (Test execution termination isn't working,
so automation is out.)
Gedare
On Thu, Jul 1, 2021 at 12:40 PM Gedare Bloom <gedare at rtems.org> wrote:
>
> 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 6ac9de96ae..2111e53036 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 = .);
> --
> 2.25.1
>
More information about the devel
mailing list