Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado
Re: IDL5.4 CALL_EXTERNAL crashes IDL under IRIX
Ole B Christensen wrote: > > Dear all, > > We have recently upgraded from 5.3 to 5.4, using SGI IRIX 6.5. Under IDL > 5.3 we have been reading GRIB data by linking to a shared library of > fortran code with call_external. The same call now crashes IDL 5.4with > the message: > > 276068:/pack/idl5-5.4/idl_5.4/bin/bin.sgi/idl: rld: Fatal Error: > attempted access to unresolvable symbol in > /home/climate/idl/fk/lib/libread_grib.so: s_copy > > I hope that somebody will be able to give a clue to what might be the > problem. > > Any help will be appreciated! > > Greetings, Ole > > The call looks like this: > > tmp = CALL_EXTERNAL( shared_file,entry_name,filename,code,...,read_arr) > with some LONGs, strings and arrays. The large thing is > read_arr = FLTARR( 51200L*120L ) > > The fortran code is compiled with > f77 -n32 -c read_grib.f > ld -n32 -shared read_grib.o -lemos -o libread_grib.so > > excerpts of the fortran: > SUBROUTINE read_grib(argc, argv) > INTEGER*4 argc, argv(*) > j= LOC(argc) > > CALL read_grib1 ( %VAL(argv(1) > > Sent via Deja.com http://www.deja.com/ > Before you buy. I don't have IDL 5.4 to verify this is correct, but it's fairly likely. IDL 5.3 is dependent on libidl.so, which is in turn dependent on libblas.so, which in turn is dependent on libftn.so. So IDL 5.3 itself will dynamically link to libftn.so which is where s_copy is defined. I presume that the library dependencies are different for 5.4, possibly no longer dependent on libblas.so which IRIX does not install by default. This breaks the dependency on libftn.so so it is no longer loaded. I would re-build your DSO and use f77 to do the linking (this is usually recommended because compilers know what linker arguments and libraries are required). f77 will then link using -lf77 and maybe other libraries it needs and this will (hopefully) solve your problem. -- ----------------------------------------------------------- Nigel Wade, System Administrator, Space Plasma Physics Group, University of Leicester, Leicester, LE1 7RH, UK E-mail : nmw@ion.le.ac.uk Phone : +44 (0)116 2523568, Fax : +44 (0)116 2523555
Dear Nigel and the rest that helped, Nigels suggestion about rebuilding solved my problem! Thanks! I changed the old commands f77 -n32 -c read_grib.f ld -n32 -shared read_grib.o -L /home/climate/lib32 -lemos -o libread_grib.so into the compound command f77 -n32 read_grib.f -shared -lemos -L /home/climate/lib32 -o libread_grib.so and ended up with something that worked. Greetings, Ole (Danish Meteorological Institute) In article <3A13BCF7.C5E86865@ion.le.ac.uk>, Nigel Wade <nmw@ion.le.ac.uk> wrote: > > IDL 5.3 is dependent on libidl.so, which is in turn dependent on > libblas.so, which in turn is dependent on libftn.so. So IDL 5.3 itself > will dynamically link to libftn.so which is where s_copy is defined. ... > I would re-build your DSO and use f77 to do the linking (this is usually > recommended because compilers know what linker arguments and libraries > are required). f77 will then link using -lf77 and maybe other libraries > ------------------------------------------------------ Sent via Deja.com http://www.deja.com/ Before you buy.