[PATCH] m68k/uC5282: linkcmds KEEP and SORT sections
Joel Sherrill
joel at rtems.org
Thu Jul 1 18:58:28 UTC 2021
On Thu, Jul 1, 2021 at 1:50 PM Gedare Bloom <gedare at rtems.org> wrote:
>
> 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.
Based on our chats, it looks like the move to per function section linking
pointing out deficiencies in a few BSPs linker scripts. Maybe someone
on your side can grep and see if there are any more obvious places
missing KEEP.
> I will back-port to 5 with a ticket.
Great!
> We'll work on full tester configuration after the WIP qemu
> modifications are finished. (Test execution termination isn't working,
> so automation is out.)
Is there a reset register on the uc5282? Qemu has support in some
machine models for exiting instead of resetting via a command line
option.
Otherwise, poke Alex to see what he did with the Microblaze. I don't
think qemu exits automatically for it either.
--joel
>
> 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
> >
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
More information about the devel
mailing list