Subject: Re: gnucash issues
To: None <tech-pkg@netbsd.org>
From: Martin J. Laubach <mjl@netbsd.org>
List: tech-pkg
Date: 02/07/2004 20:25:18
|  Yes they do come from gnucash, they appear to be generated though due to
|  a lack of symbols in binaries  IE this is something to do with the
|  linker/libtool options we use.

  In fact it has to do with ld.so and devel/glib. Here's what I just
appended to PR/21452.

	mjl



--- snip ---
From: "Martin J. Laubach" <mjl@emsi.priv.at>
To: gnats-bugs@gnats.netbsd.org
Subject: Re: pkg/21452

  I think I tracked it down and as a result have now a gnucash that
doesn't complain about not finding callbacks and has working buttons.

  To make a long story short, it seems our ld.so does not work quite
the way the linux version does (see for example the "kgsrc/mail/evolution
1.2.x -> 1.4.x upgrade time" thread on tech-pkg from january 2004) in
that it does not search the "right" modules when given RTLD_GLOBAL.

  The problem actually is in devel/glib, not in gnucash. Our glib
package has indeed a patch-ag that is supposed to fix the problem
under FreeBSD, but it has two problems: (a) the fix is under #ifdef
__FreeBSD__, and (b) it won't work for non-current because it uses
RTLD_DEFAULT which our ld.so only has grown recently.

  So my ugly fix includes:

  * Build a -current ld.so_elf and install it on your 1.6 system.
  * Also install /usr/include/dlfcn.h
  * Modify patch-ag for devel/glib to also apply to NetBSD (I just
    removed the not-relevant part, but that's lazyness).
  * Rebuild devel/glib and install it (make replace is fine).

  That's it.

  Regards,

	mjl