[M3devel] regular cross builds, package format?

Jay jay.krell at cornell.edu
Tue Dec 30 03:28:09 CET 2008


So..it is reasonably easy to do a cross build, that outputs
a bunch of assembly files, some C files, a "script" or makefile to build them.
 
What you (I) do with such output is copy it to the target machine and run the script, which requires a C compiler, linker, and whatever libraries, and whatever "script runner" (sh, make, etc.).
 
I've been using this stuff to bring up new platforms.
It works well enough.
 
 
There are a number of obvious questions.
 
 
Should the tinderbox go ahead and do that, for "every" target platform?
("every" defined as known working ones)
 
 
What should the form of the "cross build archive" be?
Or, for that matter, what should be form of "native distributions"?
 
 
Should it be possible to build one "intermediate" distribution that can be "finished" on either any autoconf-able Posix platform, or any supported platform?
 
 
That is, should the platform-specificity be factored out of the intermediate representation, and the cross or universal or even native (unlikely) format be that of portable intermediate files, and the "finish" step includes building the backend (not fast).
 
 
I gather this last thing was done by PM3, though I also gather it isn't a small task.
  (I need to look at their code.)
Platform-specifity leaks into the intermediate representation presumably a lot.
You know, the size of integers, alignment affects on layout, etc.
As well, if some systems use RTOSmmap.c and others RTOSbr.c -- or even .m3 files,
the "universal" distribution would have to carry both files and delay the choice.
 
 
If you reject the "universal" notion, there remain some questions, though less complicated ones.
Simpple ones like what the "finish script" is. I generate a makefile, but it seems to be buggy. Sometimes there is no incrementality, it builds everything every time. Sometimes it generates a warning for each file. I don't know why, but since these are so far only for my use, ok.
 
 
Of course there remains the question of cminstall or no cminstall.
I've been getting by without cminstall for quite some time across a few platforms.
A "universal" distribution would probably chose neither of the current options, but something that works better like autoconf. I'm not a huge fan of autoconf, but it has some very tempting characteristics, where it can sniff out system behavior as long as it is either in a known set or not too far off.
 
 
 - Jay


More information about the M3devel mailing list