Compiling Mathlink Module under Redhat 6.0
- To: mathgroup at smc.vnet.net
- Subject: [mg17957] Compiling Mathlink Module under Redhat 6.0
- From: ottffss <ottffss at worldnet.att.net>
- Date: Mon, 7 Jun 1999 02:51:17 -0400
- Sender: owner-wri-mathgroup at wolfram.com
I just finished installing Mathematica 4.0 on my Redhat 6.0 Linux system. I compiled the mathlink examples (addtwo etc.) and when I try to run them I get: link = Install[ "/home/msh/MyStuff/Research/SourceFiles/MathLinkExamples/addtwo", LinkMode -> Launch] LinkConnect::"linkc": \ "\!\(LinkObject[\(\(\"'/home/msh/MyStuff/Research/SourceFiles/\ MathLinkExamples/addtwo'\", 2, 2\)\)]\) is dead; attempt to connect failed." $Failed However, when I link against the prebuilt addtwo that shipped with Mathematica 4.0, everything works fine. Furthermore, Mathlink modules which I compiled under Redhat 4.2 work fine. So I appear to be able to run old Mathlink executables and prebuilt executables from Wolfram, but modules compiled under RedHat 6.0 will not run. I have several Mathematica Licenses and I've installed one of them on another computer running RedHat 5.2 Linux. Everything works fine there: old Mathelink modules, Prebuilt Examples shipped with Mathematica 4.0, and modules compiled under Redhat 5.2. I've downloaded the latest Mathlink software from Wolfram (the one which is glibc 2.0 compatible) just in case it shipped with a non glibc ML library. I get the same results cited above. I think that my problem goes back to an incompatibility between the libraries that the ML library will link with. If I check the libraries against which my RH60 compiled modules will link I get: [msh at localhost MathLinkExamples]$ ldd addtwo libm.so.6 => /lib/libm.so.6 (0x4001a000) libc.so.6 => /lib/libc.so.6 (0x40036000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) [msh at localhost MathLinkExamples]$ The prebuild examples however, link against: [msh at localhost PrebuiltExamples]$ ldd addtwo libm.so.5 => /usr/i486-linux-libc5/lib/libm.so.5 (0x4000e000) libc.so.5 => /usr/i486-linux-libc5/lib/libc.so.5 (0x40016000) [msh at localhost PrebuiltExamples]$ (By the way, these libraries are installed with RH 6.0, but they're in /usr/i486-linux-libc5/lib/. I think this is why the old and prebuilt modules work.) I've called Wolfram tech support with this question and their preliminary position is that I should be able to compile and run mathlink modules under Redhat 6.0. Has anyone out there been able to do this. If so, would you mind sending me a makefile showing exactly how you did it? I suspect that the current MathLink libraries are glibc2.0 compatible, while RedHat 6.0 is based on glibc2.1.