Hi all,

I decided to try re-installing Sundials-2.5.0 and, lo and behold, after 
deleting the installed sundials-2.5.0 directory and reinstalling with 
./configure --enable-shared (as I tried before), this time it worked! 
Running: 

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

returned: 

000000000000a440 T CVodeCreate

so there is something there now, and the example code worked too!

Thanks for all your help! I can now continue a little project I wanted to 
try out in Julia :)

Tom

On Sunday, 16 March 2014 23:08:52 UTC+10, Thomas Moore wrote:
>
> 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 <tomm...@live.com.au>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 
>>>>>>> <tomm...@live.com.au>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 <iva...@gmail.com>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