[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: DLMs & IRIX
"Robert S. Mallozzi" wrote:
> Hi all,
> Does anyone have any experience using DLMs under
> IRIX 6.5? I have a DLM that works fine under Linux,
> but fails under IRIX. I then tried the IDL example
> called "testmodule" that comes with the distribution,
> and it fails with the same error under IRIX - the
> DLM cannot be loaded:
> % cd test
> % cp /usr/local/rsi/idl/external/dlm/* .
> % vi Makefile <change IRIX to IRIX64>
> % make
> % idl
> IDL> DLM_LOAD, 'testmodule'
> % DLM_LOAD: Error loading sharable executable.
> Symbol: IDL_Load, File = /usr/people3/mallors/test/testmodule.so
> 1291373:/usr/local/rsi/idl_5.2/bin/bin.sgi/idl: rld: Fatal Error:
> Cannot Successfully map soname
> '/usr/people3/mallors/test/testmodule.so' under any of the
> filenames /usr/people3/mallors/test/testmodule.so
> % Execution halted at: $MAIN$
> IDL> exit
> % file /usr/people3/mallors/test/testmodule.so
> ELF N32 MSB mips-4 dynamic lib MIPS - version 1
> I did have to change the testmodule Makefile a little
> since it looks for the system called "IRIX", and uname
> on my system is "IRIX64". I tried setting the
> IDL_DLM_PATH environment variable as well (and even
> LD_LIBRARY_PATH), but no luck.
It's most likely the SGI ABI problem.
IDL used to be a o32 binary, so any external code had to be built
using the -o32 compiler flag. I cannot remember which version
was the first to become N32, 5.1 was o32 and 5.2.1 is n32, but I
don't know what 5.2 is.
You can check by the command :
If is is listed as ELF 32-bit MSB then you need to build the DLMs
with the -o32 flag.
All I had to change to build the testmodule DLM was to change the
IRIX to IRIX64 in the Makefile. My default compiler options are
abi=n32:isa=mips3:proc=r4k and this worked with IDL 5.2.1.
Nigel Wade, System Administrator, Space Plasma Physics Group,
University of Leicester, Leicester, LE1 7RH, UK
E-mail : email@example.com
Phone : +44 (0)116 2523568, Fax : +44 (0)116 2523555