octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: MXE Octave: "... has no symbols" warning under Mac OS X


From: Ben Abbott
Subject: Re: MXE Octave: "... has no symbols" warning under Mac OS X
Date: Tue, 03 Sep 2013 08:48:52 -0400

On Sep 3, 2013, at 4:11 AM, Anirudha Bose wrote:

> 
> On Tue, Aug 27, 2013 at 7:58 PM, Alexander Hansen <address@hidden> wrote:
>> On 8/27/13 4:58 AM, Ben Abbott wrote:
>>> On Aug 27, 2013, at 4:26 AM, Anirudha Bose wrote:
>>> 
>>>> I have been working on reusing mxe-octave [1] to natively build Octave for 
>>>> Mac OS X. I have been able to complete the build process for the target 
>>>> i686-apple-darwin11, but the executable usr/bin/octave doesn't launch 
>>>> Octave. Here is the error I see.
>>>> 
>>>> dyld: Library not loaded: libcholmod.so
>>>>    Referenced from: /Users/mac6-user1/./mxe-octave/usr/bin/octave
>>>>    Reason: image not found
>>>> Trace/BPT trap: 5
>>>> 
>>>> I tried to trace back the error and saw that the library libcholmod.so 
>>>> belongs to the package suitesparse. The following is a part of the log of 
>>>> suitesparse,  which I think is responsible for the above error.
>>>> 
>>>> ar rv  libcholmod.a cholmod_aat.o cholmod_add.o cholmod_band.o 
>>>> cholmod_change_factor.o cholmod_common.o cholmod_complex.o cholmod_copy.o 
>>>> cholmod_dens$
>>>> ar: creating archive libcholmod.a
>>>> /opt/local/bin/ranlib: file: libcholmod.a(cholmod_ccolamd.o) has no symbols
>>>> /opt/local/bin/ranlib: file: libcholmod.a(cholmod_csymamd.o) has no symbols
>>>> /opt/local/bin/ranlib: file: libcholmod.a(cholmod_metis.o) has no symbols
>>>> /opt/local/bin/ranlib: file: libcholmod.a(cholmod_nesdis.o) has no symbols
>>>> /opt/local/bin/ranlib: file: libcholmod.a(cholmod_camd.o) has no symbols
>>>> /opt/local/bin/ranlib: file: libcholmod.a(cholmod_l_ccolamd.o) has no 
>>>> symbols
>>>> /opt/local/bin/ranlib: file: libcholmod.a(cholmod_l_csymamd.o) has no 
>>>> symbols
>>>> /opt/local/bin/ranlib: file: libcholmod.a(cholmod_l_metis.o) has no symbols
>>>> /opt/local/bin/ranlib: file: libcholmod.a(cholmod_l_nesdis.o) has no 
>>>> symbols
>>>> /opt/local/bin/ranlib: file: libcholmod.a(cholmod_l_camd.o) has no symbols
>>>> 
>>>> I suppose the problem is because Mac OS "ar" is not standard. I have also 
>>>> noticed these warnings with other packages too. Can anyone tell me how to 
>>>> get a proper build under Mac OS X?
>>>> 
>>>> [1] http://hg.octave.org/mxe-octave
>>>> 
>>>> - Anirudha
>>> 
>>> MacOSX's toolchain avoids the use of static libraries (I assume to avoid 
>>> violating GNU licenses).  That is likely at the root of the problem.
>>> 
>>> In any event, I expect that both Fink and Macports include an "ar" with 
>>> their basic installation.
>>> 
>>> Ben
>> 
>> You assume incorrectly in the case of Fink. :-)  We use the system's "ar".
>> 
>> It looks to me like the problem could be that 
>> /Users/mac6-user1/./mxe-octave/usr/bin/octave wants to link "libcholmod.so", 
>> which would be /Users/mac6-user1/./mxe-octave/usr/bin/libcholmod.so .  You 
>> can check this scenario using "otool -L 
>> /Users/mac6-user1/./mxe-octave/usr/bin/octave" .
> 
> This is exactly the reason why I am seeing the above errors. I am using 
> install_name_tool for changing the paths, but is there any way to automate 
> this job? The errors exist in too many executables and shared libraries to be 
> done manually one by one. I also recompiled Octave with a new LDFLAG 
> -headerpad_max_install_names to reserve enough space for changing all dynamic 
> shared library paths.

Maybe there is a better way ... but I wrote scripts to handle this task

        
http://wiki.octave.org/Create_a_MacOS_X_App_Bundle_Using_MacPorts#Fixing_.22dyld:_Library_not_loaded.22_Errors

Ben



reply via email to

[Prev in Thread] Current Thread [Next in Thread]