David, On Tuesday 07 Apr 2009 11:16 am, David Matthews wrote:
... The issue is what constitutes a compatible version of libpolyml. It must have the same architecture (i.e. i386 rather than x86_64 or PPC). It must also have a compatible interface number. Often new versions of the Poly/ML run-time system will have a different interface between the compiled ML code and the run-time system and the interface numbers will change. The biggest problem, though, for compatibility between Intel Macs and, say, Linux is that Linux uses ELF for its object files while the Mac uses Macho. ...
Thanks for that. I wasn't seriously expecting to get portabiliity between Linux and MacOS. If I understand you aright, all calls out from compiled ML code go in the saved state go via the ABI offered by libpolyml.so, so if the OS is prepared to load my executable it will run and I don't have to worry about compatibility with other libraries.
I'm not certain of this but I think you need to give the right options to configure to make sure it's building static libraries. I've just tested building Poly/ML with ./configure --disable-shared && make and it appears to make a statically linked version of "poly". Poly/ML uses libtool to do all this so check the documentation for that.
I will look into this and report back. I do have libpolyml.a and libpolymain.a in /usr/local/lib - it is other dependencies that were failing.
Regards,
Rob.
Regards,
Rob.