rtems-libbsd: M68K linkcmds Patches Galore

Joel Sherrill joel.sherrill at OARcorp.com
Tue Aug 14 15:57:22 UTC 2012



CC'ing Sebastian since he is the master of linkcmds.base and
using include in linkcmds. :)

On 08/09/2012 02:58 PM, Kevin Polulak wrote:
> So here's the patches I mentioned earlier at this morning's IRC 
> meeting. This is everything for av5282, csb360, gen68302, gen68360, 
> genmcf548x and I was able to quick squeeze in idp and mcf5206elite as 
> well.
>
I did a test build on the following BSPs:

av5282 csb360 gen68302 gen68360 COBRA5475 m5484FireEngine idp mcf5206elite

All built OK.

Are you wanting these committed? If you want to move to shared files now, it
might be better to let you implement that. Then it is only one change to 
examine
for breakage.

> Since the diff output doesn't make it easy to figure out what's going 
> on, here's what I did: I added an .robsdsets section in each file, 
> included the relevant etext and friends symbols at the end, and stuck 
> in the relevent memory block. I also did some serious clean up in each 
> file since they were horribly cryptic and just flat out 
> unmaintainable. Besides making things more consistent and easier to 
> manage, picking apart the files like that makes it easier for me to 
> identify redundancies and common parts that can be refactored into 
> linkcmds.rortems and linkcmds.rwrtems.
>
Did you check the .num files to see if the etext, etc symbols appeared 
in the same logical
place in the executable?
> Now that I'm kinda in the groove and have stared at these files for a 
> while, I'm starting to think that maybe it's easier for me to just 
> make the .robsdsets linkcmds.base file now instead of after each BSP 
> has been tested. My reasoning before was that I wasn't sure if there 
> would be other changes needed for it to link and I was worried that 
> trying to do too many things at once would just complicate things 
> (RTEMS still kinda intimidates me). However, cleaning these files up 
> and adding .robsdsets is pretty formulaic and straightforward.
>
> I had planned on just putting it in libbsp/shared but I'm not sure how 
> I would reference it from within each linkcmds file. Do I just 
> `INCLUDE(../../shared/linkcmds.base)` or do I need to fiddle with some 
> Makefile black magic? I'm putting my money on the later. :\
>
Follow the model Sebastian did in the arm with arm/lpc32xx or arm/lpc24xx
as specific examples.  He added the following to arm/Makefile.am:

dist_project_lib_DATA = shared/startup/linkcmds.base
dist_project_lib_DATA += shared/startup/linkcmds.armv4
dist_project_lib_DATA += shared/startup/linkcmds.armv7m

Running "./bootstrap -p" will generate preinstall.am and the shared file
will be installed as part of the regular build process.

In each BSP's linkcmds, you then include with no path like this:

INCLUDE linkcmds.armv4

What I do not know, but you will soon find out, is whether an INCLUDE
directive can be in a block between a {} pair.
> --
> - Kevin Polulak (soh_cah_toa)
> - http://cybercrud.net


-- 
Joel Sherrill, Ph.D.             Director of Research&   Development
joel.sherrill at OARcorp.com        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
     Support Available             (256) 722-9985





More information about the devel mailing list