On 25 Jun 2007, at 11:37, Ryan Schmidt wrote:
On Jun 25, 2007, at 03:47, Kevin Ballard wrote:
On Jun 25, 2007, at 1:41 AM, Weissmann Markus wrote:
Do you have any further information on unify.pl? Does it have a web page or some documentation? I wasn't aware of it neither and also missed your previous mails. I do not expect though, that we are reinventing the wheel: The requirements that I'd expect Mozilla to have on such a tool differ quite a bunch to ours: Mozilla knows what they are building and they know that both builds are "the same" stuff - we don't (e. g. some software may enable features on certain archs).
If files are present in one tree but not the other, unify can be configured to either include or omit those files.
We also do not only need to merge two binaries, we also need to test and merge different kind of files, like C header files, pkgconfig files, libraries, etc.
unify handles this.
I just had a look at unify.pl and I can't see how it e. g. handles merging C-header files (this could e. g. be done with #ifdef arch) or pkgconfig files.
I'd expect the actual lipo-ing of binaries to be the smallest part on Elias' tool - if that's what unify.pl is doing, I see no problems.
I'd be happy for more information on unify.pl - searching the net I don't find anything. :/
Just download the script and try it out, or read its documentation at the top of the script.
Unify takes two trees and merges them into one. Where the trees differ, if it's an object file it lipo's them together, otherwise it omits the file from the result (because there's no way to reliably merge differing non-object files - how can you guarantee that whatever way you choose to merge will actually work?).
If non-object files differ in the two trees, unify exits with an error code.
Well, I really think that the needs of the Mozilla people are quite different to ours: They know both trees, they do not need to cope with different programming languages, header files, etc. I also couldn't find it handling other archs than ia32 and ppc32 - after all we already have aa64 and ppc64 and perhaps we'll get arm32 (iPhone ;) and what-do-I-know.
I don't know offhand how to actually get unify.pl, but I know it's part of Mozilla.
I did not find a web page for it or a way to download it separately; at the time, I downloaded the Firefox source distribution and found unify inside.
At the time I also couldn't find an online repository browser for the Mozilla repository, but I now found a copy of the unify script here:
http://gnuzilla.gnu.org/fulltree/iceweasel-1.5.0.7-g2/build/macosx/ universal/unify
I verified that this is the same version of unify I downloaded earlier, whose filesystem modification date is March 21, 2006.
Thanks a lot for the direct link - I think that having a look at unify.pl can help us avoid some already solved problems. Though I still think that just using unify.pl is not enough - we have a lot more things to handle than unify.pl already can. Making use of unify.pl would also get us into using MPL-licensed code which will be a pain if we integrate merge into port. -Markus --- Markus W. Weissmann http://www.mweissmann.de/