[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 14:48:38 -0400 |
On Sep 3, 2013, at 1:40 PM, Anirudha Bose wrote:
> On Tue, Sep 3, 2013 at 9:56 PM, Benjamin Abbott <address@hidden> wrote:
>
>> On Sep 3, 2013, at 11:57 AM, Anirudha Bose <address@hidden> wrote:
>>
>>> On Tue, Sep 3, 2013 at 6:18 PM, Ben Abbott <address@hidden> wrote:
>>> 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
>>>
>>> I got the following error when I executed your scripts.
>>>
>>> octave:1> dylibs_fix ("bin/octave", "lib", false)
>>> Working in directory -> "lib" ...error: 'dylibs_isdylib' undefined near
>>> line 74 column 21
>>> error: evaluating argument list element number 1
>>> error: called from:
>>> error:
>>> /Users/mac6-user1/mxe/mxe-octave-anirudha/usr/x86_64-apple-darwin12.2.1/dylibs_find.m
>>> at line 74, column 13
>>> error:
>>> /Users/mac6-user1/mxe/mxe-octave-anirudha/usr/x86_64-apple-darwin12.2.1/dylibs_fix.m
>>> at line 160, column 12
>>>
>>> I have saved all the m-scripts at one place, and my working directory
>>> contained the bin and lib folders. Am I doing something wrong?
>>>
>>> - Anirudha
>>
>> Please add the directory containing the scripts to your path.
>
> This doesn't seem to solve my problem. After adding the directory to my path,
> this is what "echo $PATH" returns --
>
> /opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/usr/local/upgraded/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Users/mac6-user1/mxe/mxe-octave-anirudha/usr/x86_64-apple-darwin12.2.1/
>
> The last path contains all the 4 scripts. I opened Octave and executed
> dylibs_fix ("bin/octave", "lib", false), but got the same errors.
The directory to the scripts needs to be added to Octave's path (not your
shell's path).
Ben
- Re: MXE Octave: "... has no symbols" warning under Mac OS X, Anirudha Bose, 2013/09/03
- Re: MXE Octave: "... has no symbols" warning under Mac OS X, Ben Abbott, 2013/09/03
- Message not available
- Message not available
- Message not available
- Re: MXE Octave: "... has no symbols" warning under Mac OS X,
Ben Abbott <=
- Re: MXE Octave: "... has no symbols" warning under Mac OS X, Anirudha Bose, 2013/09/20
- Re: MXE Octave: "... has no symbols" warning under Mac OS X, Ben Abbott, 2013/09/20
- Re: MXE Octave: "... has no symbols" warning under Mac OS X, Anirudha Bose, 2013/09/20
- Re: MXE Octave: "... has no symbols" warning under Mac OS X, Ben Abbott, 2013/09/20
- Re: MXE Octave: "... has no symbols" warning under Mac OS X, Anirudha Bose, 2013/09/20
- Re: MXE Octave: "... has no symbols" warning under Mac OS X, Ben Abbott, 2013/09/20
- Re: MXE Octave: "... has no symbols" warning under Mac OS X, Anirudha Bose, 2013/09/20
- Re: MXE Octave: "... has no symbols" warning under Mac OS X, Anirudha Bose, 2013/09/20
- Re: MXE Octave: "... has no symbols" warning under Mac OS X, Ben Abbott, 2013/09/20
- Re: MXE Octave: "... has no symbols" warning under Mac OS X, Anirudha Bose, 2013/09/20