Hi Alexandr, Thank you for your suggestion. That seems to have solved my problem! Now, I would just like to understand the subtleness of the situation. The entire example (taken from Mathlab examples directory) I am working with is: #define _GNU_SOURCE #include <stdlib.h> #include <stdio.h> #include <string.h> #include "engine.h" int main() { Engine *ep; if (!(ep = engOpen("\0"))) { fprintf(stderr, "\nCan't start MATLAB engine\n"); return EXIT_FAILURE; } else { // main loop while (true) { // do stuff ... } engClose(ep); } } I am compiling this with the following command (running this command in linux 62 or linux 32 produces an identical binary): gcc -m32 myexaple.c -o myexample -I/mathlab/include/dir -L/usr/lib -L/mathlab/lib/dir -leng -lmx When I run myexample in a 32b booted linux it works fine and the mathlab engine is "opened" normally. When I run the same in a 64b booted linux the engine does not open and I get the EXIT_FAILURE condition. Finally, if I run 'linux32 myexample' under a 64b booted linux it also works fine! So it seems, for some applications, just running a 32b executible under 64b environment is not enough, or am I wrong it trying to run *any* 32b executible *without* prefixing it with "linux32" ? Any insight would be greatly appreciated! Vahe Avedissian --- Original Message ---- From: Alexandr Malusek <Alexandr.Malusek@imv.liu.se> To: opensuse@opensuse.org Sent: Friday, August 31, 2007 11:10:01 AM Subject: Re: [opensuse] 32b compiled program not running in 64x environment - open SuSE 10.2 On Thursday 30 August 2007 00:31, Vahe Avedissian wrote: ...
I have open SuSE 10.2 32 and 64 bit installed on the same machine.
I compile a small matlab example under 32b (either by booting 32b linux or -m32 compiler flag) and run under 32 and 64 bit linux. The code compiles under both environments.
However, the code runs normally under 32b linux, but the 64b linux runtime causes an error condition and the sample code exits.
As a workaround, you can install and run the 32-bit version of Matlab under 64-bit openSUSE. On our servers, we put the 32-bit version into /lw/matlab/7.4 and the 64-bit one into /lw64/matlab/7.4. The command that simulates the 32-bit environment under 64-bit linux is "linux32": $ /lw64/matlab/7.4/bin/matlab # start 64-bit matlab $ linux32 /lw/matlab/7.4/bin/matlab # start 32-bit matlab To install the 32-bit version of Matlab, run "linux32 install". If I remember it right, several Matlab toolboxes were available for the 32-bit version only some time ago. In other words, they were 32-bit and didn't run under the 64-bit Matlab---just as your code. Mathworks may tell you more. -- A.M. -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org ____________________________________________________________________________________ Luggage? GPS? Comic books? Check out fitting gifts for grads at Yahoo! Search http://search.yahoo.com/search?fr=oni_on_mail&p=graduation+gifts&cs=... -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org