Hi guys, so I finally got around to updating my julia distribution. I 
checked print(Sys.dllist()) and it is true that the library 
/usr/local/lib/libsundials_cvode.so was loaded. However, running 

nm /usr/local/lib/libsundials_cvode.so | grep CVodeCreate

in a terminal gave no result - it appears there's no CVodeCreate function 
in this shared library :(

Either one has to make a shared library using a different method than 
./configure --enable-shared (perhaps needing to specify what is shared), or 
else the installation sundials-2.5.0.tar.gz from the Sundials 
website<http://computation.llnl.gov/casc/sundials/download/download.html> is 
not valid for some reason.

Thanks

Tom


On Wednesday, 12 March 2014 18:30:50 UTC+10, Ivar Nesje wrote:
>
> @jameson He says he is using Ubuntu 12.04, but his Julia version is too 
> old for dllist().
>
> Updating to the latest version would be advisable, because that is what 
> everybody who is likely to help you on this list compile the latest master 
> from source at least weekly. I do not know the Ubuntu release schedule and 
> "end of life" dates, but I think I have heard something about trouble 
> providing updates in `apt-get` to old versions of Ubuntu.
>
> @thomas The output is as expected, but I wanted to see if "CVodeCreate" 
> was in there. Give the output of 
>
> nm /usr/local/lib/libsundials_cvode.so | grep CVodeCreate
>
> Ivar
>
> kl. 05:41:26 UTC+1 onsdag 12. mars 2014 skrev Jameson følgende:
>>
>> I have an open issue assigned to me to go implement Sys.dllist() for 
>> windows :/
>>
>> but nm /usr/local/lib/libsundials_cvode.so is listing all of the 
>> functions you call call, so youc can just look to see see if CVodeCreate is 
>> in the list. It also indicates the visibility of that function -- to be 
>> called from external code, it must have a capital T.
>>
>>
>> On Wed, Mar 12, 2014 at 1:05 AM, Thomas Moore <[email protected]>wrote:
>>
>>> I fear print(Sys.dlliist()) is not an option in julia. There's lots of 
>>> other options (Sys,MACHINE, Sys.init, etc) but no Sys.dllist(). 
>>>
>>> My Julia install is Version 0.3.0-prerelease+308 if that is relevant :)
>>>
>>> Also, nm /usr/local/lib/libsundials_cvode.so just gives me a long list 
>>> like this:
>>>
>>> 0000000000200e40 a _DYNAMIC
>>> 0000000000200fe8 a _GLOBAL_OFFSET_TABLE_
>>>                  w _Jv_RegisterClasses
>>> 0000000000200e20 d __CTOR_END__
>>> 0000000000200e18 d __CTOR_LIST__
>>> 0000000000200e30 d __DTOR_END__
>>> 0000000000200e28 d __DTOR_LIST__
>>> 00000000000005f0 r __FRAME_END__
>>> 0000000000200e38 d __JCR_END__
>>> 0000000000200e38 d __JCR_LIST__
>>> 0000000000201010 A __bss_start
>>>                  w __cxa_finalize@@GLIBC_2.2.5
>>> 0000000000000550 t __do_global_ctors_aux
>>> 00000000000004a0 t __do_global_dtors_aux
>>> 0000000000201008 d __dso_handle
>>>                  w __gmon_start__
>>> 0000000000201010 A _edata
>>> 0000000000201020 A _end
>>> 0000000000000588 T _fini
>>> 0000000000000448 T _init
>>> 0000000000000480 t call_gmon_start
>>> 0000000000201010 b completed.6531
>>> 0000000000201018 b dtor_idx.6533
>>> 0000000000000520 t frame_dummy
>>>
>>> Thanks again
>>>
>>> Tom
>>>
>>>
>>> On Tuesday, 11 March 2014 22:57:57 UTC+10, Ivar Nesje wrote:
>>>>
>>>> Your code works for me, so I think there is still a problem on your 
>>>> system configuration.
>>>>
>>>> The error is about the C function `CVodeCreate`, not the Julia 
>>>> function with the same name, and apparently Julia finds the sundials 
>>>> library, but it does not contain the function.
>>>>
>>>> Try to run `print(Sys.dllist())` after running your test code to see 
>>>> what libraries are actually loaded. When you know what library gets 
>>>> loaded, 
>>>> you can inspect the library with eg. `nm /usr/local/lib/
>>>> libsundials_cvode.dylib`, and see if you can find the `CVodeCreate` 
>>>> function.
>>>>
>>>> Ivar
>>>>
>>>>
>>>> kl. 11:35:46 UTC+1 tirsdag 11. mars 2014 skrev Thomas Moore følgende:
>>>>>
>>>>> OK, running 
>>>>>
>>>>> push!(DL_LOAD_PATH, "/usr/local/lib/") 
>>>>>
>>>>> has improved the situation a little: now we get this error:
>>>>>
>>>>> ERROR: ccall: could not find function CVodeCreate in library 
>>>>> libsundials_cvode
>>>>>  in ode at /home/thomas/.julia/Sundials/src/Sundials.jl:250
>>>>>
>>>>> At least the shared library is recognised :) 
>>>>>
>>>>> Sundials.CVodeCreate seems to be a generic function, but in 
>>>>> Sundials.jl at line 250 the call to it doesn't seem to be recognised - 
>>>>> the 
>>>>> error is driven by this call to it:
>>>>>
>>>>>  mem = CVodeCreate(CV_BDF, CV_NEWTON)
>>>>>
>>>>> Any more ideas? :D
>>>>>
>>>>> Again, a massive thanks! I'm sure this will be useful to others 
>>>>> looking for a nice DAE solver in Julia in the near future :)
>>>>>
>>>>> Tom
>>>>>
>>>>> On Monday, 10 March 2014 23:25:25 UTC+10, Isaiah wrote:
>>>>>>
>>>>>> try:
>>>>>>
>>>>>> julia> push!(DL_LOAD_PATH, "/usr/local/lib/")
>>>>>>
>>>>>> you can also double-check whether it is loadable:
>>>>>>
>>>>>> julia> dlopen("/usr/local/lib/libsundials_cvode.so")
>>>>>>
>>>>>> clang.jl is only a dependency for generating the bindings, not at 
>>>>>> runtime.
>>>>>>
>>>>>>
>>>>>> On Mon, Mar 10, 2014 at 8:42 AM, Thomas Moore <[email protected]>wrote:
>>>>>>
>>>>>>> Thanks for your help everyone! I couldn't find the .so file 
>>>>>>> originally, but after building it again with ./configure 
>>>>>>> --enable-shared 
>>>>>>> there was a libsundials_cvode.so in my /usr/local/lib. However I still 
>>>>>>> have 
>>>>>>> the same problem. So far I have:
>>>>>>>
>>>>>>> removed sundials with Pkg.rm("Sundials")
>>>>>>> reinstalled it with Pkg.add("Sundials")
>>>>>>>
>>>>>>> And then run:
>>>>>>>
>>>>>>> push!(DL_LOAD_PATH, "/usr/local/lib/libsundials_cvode.so")
>>>>>>>
>>>>>>> And then run the function I copied above. I fear I'm still getting 
>>>>>>> the exact same error though. It seems it's not recognising the 
>>>>>>> existence of 
>>>>>>> the .so file :(
>>>>>>>
>>>>>>> Any recommendations? My (novice) thoughts are: possibly julia 
>>>>>>> doesn't have permission to access libsundials_cvode.so, I don't know 
>>>>>>> why 
>>>>>>> not though. Also maybe I need some other package installed: for 
>>>>>>> instance, 
>>>>>>> is Clang.jl a dependency - it isn't listed as such?
>>>>>>>
>>>>>>> Thanks!
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Monday, 10 March 2014 21:53:54 UTC+10, Isaiah wrote:
>>>>>>>
>>>>>>>> Ah, good call. Use `./configure --enable-shared` for the Makefile 
>>>>>>>> build.
>>>>>>>>
>>>>>>>>
>>>>>>>> On Mon, Mar 10, 2014 at 3:34 AM, Ivar Nesje <[email protected]>wrote:
>>>>>>>>
>>>>>>>>> I do not know CMake, but now that I have a computer I found out 
>>>>>>>>> that I probably used
>>>>>>>>>
>>>>>>>>> BUILD_SHARED_LIBS:BOOL=on
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> kl. 07:43:38 UTC+1 mandag 10. mars 2014 skrev Ivar Nesje følgende:
>>>>>>>>>
>>>>>>>>>> Sundials does not compile a shared library by default. You must 
>>>>>>>>>> look in the PDF manual to find the right option to send to make or 
>>>>>>>>>> configure. (Large pdf is hard to read on phone)
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>
>>

Reply via email to