gnucash linking wrong libffi.dylib
David Reiser
dbreiser at gmail.com
Mon Feb 4 06:22:46 PST 2008
On Feb 4, 2008, at 1:52 AM, Peter O'Gorman wrote:
>
> On 3-Feb-08, at 11:27 PM, David Reiser wrote:
>
>>
>> On Feb 3, 2008, at 5:21 PM, Jeffrey Goldberg wrote:
>>
>>> I must confess that I do not even begin to understand prebinding.
>>> Nor do I know what the OS X analog of the linux ldconfig command
>>> and configuration is. But I suspect that the answer to my problem
>>> will lie in those directions.
>>>
>>> I've installed gnome/gnucash using macports (that was a bit of a
>>> trick because of confusion about which guile installation was
>>> needed. Gnucash configure couldn't find guile16, but I had other
>>> problems with guile 1.8. I also needed to install "+without_docs"
>>> because otherwise port tried and failed to install firefox) But I
>>> did finally get something compiled and installed.
>>>
>>> However, it won't run, and this is what I get to standard error.
>>>
>>> dyld: Library not loaded: /usr/lib/libffi.dylib
>>> Referenced from:
>>> /System/Library/Frameworks/QuartzCore.framework/Versions/A/
>>> QuartzCore
>>> Reason: Incompatible library version: QuartzCore requires version
>>> 1.0.0 or later,
>>> but libffi.dylib provides version 0.0.0
>>>
>>> I note that there is a an /opt/local/lib/libffi.dylib installed,
>>> but apparently that's not the dynamic library that gnucash finds.
>>>
>>
>> Seems to me that's x11 that's complaining about the version of
>> libffi. Before 2.2, gnucash used g-wrap to to handle some
>> functions, and g-wrap brought in a rather ancient version of
>> libffi. gnucash has since switched to swig for the functions
>> formerly handled by g-wrap, and you don't even need swig if you are
>> building gnucash from a tarball.
>>
>> While I don't know anything else about your system, you might try
>> removing g-wrap, or whatever else is supplying libffi in macports,
>> and see if xquartz will then use the Leopard-provided /usr/lib/
>> libffi.dylib.
>>
>> I use that other packaging system, so I can't swear what needs to
>> be in place, but I don't have any libffi except /usr/lib/
>> libffi.dylib, and gnucash works for me on an almost identical
>> system.
>
> Hi David,
>
> Something is setting DYLD_LIBRARY_PATH. I know that gnucash used to
> do it, not sure if it still does. The symptoms are that
> DYLD_LIBRARY_PATH is set to /opt/local/lib so the dynamic linker is
> finding the version of libffi.dylib there. I am sure that otool -L
> will confirm that the libffi in /opt/local has compatibility_version
> 0.0.0.
>
> Does gnucash still have a wrapper script that sets DYLD_LIBRARY_PATH?
>
> Peter
> --
> Peter O'Gorman
> http://pogma.com
Yes, gnucash does set DYLD_LIBRARY_PATH. The justification for their
adding it was to allow gnucash to pass make check on a mac. (one
symptom being that configure can find MSGFMT, but make can't).
Jeff,
The patch I use for this is:
perl -pi.bak -e 's,DYLD_LIBRARY_PATH,DYLD_FALLBACK_LIBRARY_PATH,g'
aclocal.m4
perl -pi.bak -e 's,DYLD_LIBRARY_PATH,DYLD_FALLBACK_LIBRARY_PATH,g'
configure
perl -pi.bak -e 's,DYLD_LIBRARY_PATH,DYLD_FALLBACK_LIBRARY_PATH,g'
src/bin/gnucash.in
perl -pi.bak -e 's,DYLD_LIBRARY_PATH,DYLD_FALLBACK_LIBRARY_PATH,g'
src/bin/overrides/gnucash-env.in
perl -pi.bak -e 's,DYLD_LIBRARY_PATH,DYLD_FALLBACK_LIBRARY_PATH,g'
src/gnc-test-env
Dave
More information about the macports-users
mailing list