[Spice_discussion] Using Icy on Solaris

William Thompson William.T.Thompson.1 at gsfc.nasa.gov
Fri Sep 16 12:18:57 PDT 2005


Dear SPICE folks:

The Icy documentation includes the statement below about 32-bit versus 64-bit. 
I don't personally have a Sun to test it out on, but I had a user run into this 
problem when he tried to use an IDL routine I had written.  I notice that there 
are actually two different Sun builds, one using the gcc compiler, and the other 
using the native Sun C compiler.  Do both versions have this limitation?  Can 
one get around it by recompiling?

Thank you,

Bill Thompson


>  Use on Solaris
> 
> 
> 
> The Solaris gcc build of the Icy dlm functions only in 32 bit mode. The default invocation of IDL uses a 64 bit mode, so you must explicitly invoke IDL in 32 bit mode with the command:
> 
>    $ idl -32
> 
> or
> 
>    $ idlde -32
> 
> The error message returned when running IDL 64 bit with the 32 bit Icy library appears similar to:
> 
>    Error loading sharable executable.
>    Symbol: IDL_Load, File = /naif/icy/lib/icy.so
>    ld.so.1: /usr/local/rsi/idl_6.0/bin/bin.solaris2.sparc64/idl
>    : fatal: /naif/icy/lib/icy.so: wrong ELF
>    class: ELFCLASS32
>    % Execution halted at: $MAIN$
> 
> Notice the ELFCLASS32 tag. This indicates the 32 bit library, while the sparc64 suffix to the idl executable path name indicates the user ran the 64 bit version of IDL.
> 
> Observing the "__eprintf undef" error signal during a compile under Solaris gcc requires either a recompile of all libraries (Icy and cspice) with the Sun cc compiler (do not use the -fast compile option) or the inclusion of libgcc.a during the link phase of the shared library build. 



-- 
William Thompson
NASA Goddard Space Flight Center
Code 612.1
Greenbelt, MD  20771
USA

301-286-2040
William.T.Thompson.1 at gsfc.nasa.gov


More information about the Spice_discussion mailing list