Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 25 Apr 2012 17:01:59 -0700
From:      "Ronald F. Guilmette" <rfg@tristatelogic.com>
To:        freebsd-ports@freebsd.org, freebsd-gnome@freebsd.org, pav@FreeBSD.org
Subject:   Need a little help with a dynamic linking problem
Message-ID:  <32762.1335398519@tristatelogic.com>

next in thread | raw e-mail | index | archive | help

My question relates to a port that I am doing of gthumb v2.14.3 to
FreeBSD.  Because gthumb is fundamentally a gnome application, I am
cross-posting my question to both the ports and gnome mailing lists.
(My apologies if that means that some of you see this twice.)

After a modest but unexpected amount of gnashing of teeth and tearing
of hair, I have been able to get gthumb 2.14.3 built and installed on
my FreeBSD 8.2 system.  Now comes to the fun part...

I have installed the whole thing under a special (temporary) directory
that I created called /usr/local/hacked.

When I try to run the gthumb binary that I built and install, I am getting
the following perplexing error message:

/libexec/ld-elf.so.1: /usr/local/hacked/lib/gthumb/extensions/libfile_viewer.so: Undefined symbol "gth_viewer_page_get_type"


Quite obviously, I have been away from working on the GNU software development
toolchain (and its friends, like ld-elf.so) for far far too long, because I
no longer even know how this stuff is even supposed to work, i.e. when it is
(knock on wood) working correctly.  So if someone who knows this stuff can
take pity on me and pass me a clue about what I need to do to resolve the
above dynamic linking failure, I sure would appreciate it.

Some relevant background:

The main gthumb binary is installed in /usr/local/hacked/bin/gthumb and that's
what I am running when I run it.

It seems pretty obviously to me that the main gthumb executable, when executed,
is then trying to dynamically pull in various of the *.so shared library files
that got installed into /usr/local/hacked/lib/gthumb/extensions directory as
part of the nominal build+install process for gthumb.

One last important point:

I've checked, and the symbol "gth_viewer_page_get_type" _is_ in fact defined.
It is defined within the main gthumb executable itself:

% nm gthumb | fgrep gth_viewer_page_get_type
00000000004aaf10 T gth_viewer_page_get_type

So, um, sombody please pass me a clue... How come the dynamic linker doesn't
seem to know that the symbol it is looking for was and is defined in the main
executable file that the present process originated with?  (This specific
lack of cognition on the part of the dynamic linker seems to me to be rather
reminicent of Alzheimer's.)


Regards,
rfg


P.S.  I have already tried both of the following commands prior to executing
my gthumb executable and neither of these made a bit of difference to the
outcome.  I still got the exact same dynamic linker (fatal) error in both
cases...

	setenv LD_LIBRARY_PATH /usr/local/hacked/bin

	setenv LD_LIBRARY_PATH /usr/local/hacked/lib/gthumb/extensions



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?32762.1335398519>