From: Dave H. <dhy...@gm...> - 2006-09-25 16:59:33
|
Hi Eduardo, > I have heard there are some issues with compatibility between toolchains > and/or > the OS version, due to the ABI. > > My question is: suppose I have a statically linked library archive compiled > with > toolchain version X and then later I update the gumstix toolchain / OS with > version Y. > > Is the old library compiled with version X still usable? Maybe, maybe not. This is true with every toolchain of every OS that I've ever worked on (which is a quite a number). NONE of them guarantee that if you upgrade the OS and/or the toolchain, that old libraries will continue to work. Now having said that, the ABI between usermode and the kernel is fairly stable, and you'll generally only see incompatability introduced when major numbers change (i.e. going from 2.4 to 2.6). There's no reason why you can't keep multiple toolchains around either. What's important is that you need to have a very clear picture in your mind of which layers of the toolchain do what and manage it properly. This takes time and effort. > You can see where my problem is, since I don't have the source code of the > tool we want, > I can't recompile it. So if they give me a version, I have to make sure > it'll work at least in between minor version leaps. The easiest way to do this is to have a well defined APIs. The ELF file format hasn't changed in eons, and neither has the ARM calling interface (i.e. which registers are used for what when doing a function call). So if the library is well designed, I don't see any reason why it won't work or can't be made to work. This means that you have to do things like examine the dependencies. i.e. run nm on your library and see what symbols the library depends on. Which dependencies are shaky? Which ones aren't likely to change? Where do all of the symbols come from? (i.e. which other libraries do they need). This is more of a Software Development issue and nothing peculiar to the gumstix. I've run into this many times under Windows as well. -- Dave Hylands Vancouver, BC, Canada http://www.DaveHylands.com/ |