guid_g_hash_table_equal

Donald Allen donaldcallen at gmail.com
Thu Nov 18 13:47:04 EST 2010


On Thu, Nov 18, 2010 at 1:29 PM, Donald Allen <donaldcallen at gmail.com>wrote:

>
>
> On Thu, Nov 18, 2010 at 12:53 PM, Donald Allen <donaldcallen at gmail.com>wrote:
>
>>
>>
>> On Thu, Nov 18, 2010 at 10:22 AM, John Ralls <jralls at ceridwen.us> wrote:
>>
>>>
>>> On Nov 18, 2010, at 6:23 AM, Donald Allen wrote:
>>>
>>> > I've just obtained 2.3.16 via svn to try to test the fix to a postgres
>>> issue
>>> > John Ralls, Geert, and I have been discussing. I ran autogen.sh,
>>> configure,
>>> > make -j 3, make install and gnucash will not run, probably an oversight
>>> on
>>> > my part. The error I get is
>>> >
>>> > dca at octavian:~/Software/Gnucash/gnucash$ export
>>> > LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib/gnucash
>>> > dca at octavian:~/Software/Gnucash/gnucash$ gnucash
>>> > gnucash: symbol lookup error:
>>> /usr/local/lib/gnucash/libgncmod-app-utils.so:
>>> > undefined symbol: guid_g_hash_table_equal
>>> >
>>> > That function appears to be defined in src/libqof/qof/guid.c and I
>>> verified
>>> > that that file got compiled. I also looked at
>>> /usr/local/lib/libgnc-qof.so
>>> > with nm and guid_g_hash_table_equal is defined in that library. That's
>>> as
>>> > far as I've gotten. Any idea what's going on here?
>>>
>>> Do `ldd /usr/local/lib/gnucash/libgncmod-app-utils.so` and make sure that
>>> libgnc-qof.so is in the list.
>>>
>>
>> dca at octavian:~$ ldd /usr/local/lib/gnucash/libgncmod-app-utils.so | fgrep
>> libgnc-qof
>>         libgnc-qof.so.1 => /usr/lib64/libgnc-qof.so.1 (0x00007ffbc0dcd000)
>> dca at octavian:~$ find /usr/local -name libgnc-qof.so.1 -print
>> /usr/local/lib/libgnc-qof.so.1
>> dca at octavian:~$ nm /usr/local/lib/libgnc-qof.so.1 | fgrep
>> guid_g_hash_table_equal
>> 0000000000014510 T guid_g_hash_table_equal
>> dca at octavian:~$
>>
>
> I have a guess about what's going on here. I'm not sure what the output of
> ldd is saying (the ld man page is amazingly unhelpful, a reminder of the bad
> old 4.1BSD days on overloaded Vax 780s, where we joked "it was hard to
> build, it ought to be hard to use"), but I'm guessing that it's saying that
> the dynamic loading of libgnc-qof.so.1 is going to come from
> /usr/lib64/libgnc-qof.so.1, which is there courtesy the Slackware 2.2.9
> package that is installed. If I'm right, that's the wrong version of that
> library. I suspect that having 2.2.9 installed has confused things. Does
> this sound plausible or am I tilting at windmills? If I'm right, then I
> should remove the 2.2.9 package and re-link?
>

I'm not sure if the above analysis is quite right (I suspect that it was
crucial to have set LD_LIBRARY_PATH to point to
/usr/local/lib:/usr/local/gnucash before doing the ldd and I'm not sure I
did, but it's moot now; read on), but it was close enough. I removed the
2.2.9 package and uninstalled the svn head that I compiled earlier and
started over with a make clean. It runs now.

/Don

>
> /Don
>
>
>>> Regards,
>>> John Ralls
>>>
>>>
>>
>


More information about the gnucash-devel mailing list