After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 431145 - gnome-pilot libraries are not linking to required libraries
gnome-pilot libraries are not linking to required libraries
Status: RESOLVED FIXED
Product: gnome-pilot
Classification: Other
Component: general
2.0.15
Other Linux
: Normal normal
: ---
Assigned To: Matt Davey
gnome-pilot Maintainers
: 431144 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2007-04-18 21:37 UTC by Matthew Barnes
Modified: 2007-04-24 14:46 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Proposed patch (1.22 KB, patch)
2007-04-18 21:40 UTC, Matthew Barnes
none Details | Review

Description Matthew Barnes 2007-04-18 21:37:59 UTC
Forwarding this from a downstream bug report:
http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=198211

libgnomepilotd, libgnomepilotdconduit, and libgpilotdcm do not link to their required libraries as specified by the Makefile variable GNOME_PILOT_LIBS.

To reproduce (in an RPM-based distribution):

   $ rpm -ql gnome-pilot-devel | grep lib.*so | xargs ldd -r | grep missing

A partial solution to this problem was offered in bug #360190 under the pretense of making --as-needed work, although the problem is more severe than that.

Even with the following patch applied, there's still a few outliers:

   $ rpm -ql gnome-pilot-devel | grep lib.*so | xargs ldd -r | grep missing
   undefined symbol: gnome_pilot_conduit_sync_type_int_to_str      
   (/usr/lib/libgpilotdcm.so)
   undefined symbol: gnome_pilot_conduit_sync_type_str_to_int      
   (/usr/lib/libgpilotdcm.so)
   undefined symbol: gnome_pilot_conduit_set_name  (/usr/lib/libgpilotdcm.so)

I suspect this to be related to the build-order problem between libgpilotdCM and gpilotd, as mentioned in the README file.
Comment 1 Matthew Barnes 2007-04-18 21:40:33 UTC
Created attachment 86602 [details] [review]
Proposed patch
Comment 2 Matthew Barnes 2007-04-18 21:45:29 UTC
Actually, the last part of the reproducer should really be "> /dev/null" and not "grep missing".  End result is the same.
Comment 3 Matt Davey 2007-04-19 07:48:34 UTC
Thanks for this report, and patch.  I'll take a look (blow the dust off those parts of the build scripts...).

Matthew, I presume your supplied patch is the one you apply in gnome-pilot-2.0.15-5.fc7.

I may get time to look at this this weekend... watch this space.
Comment 4 Matthew Barnes 2007-04-19 11:23:27 UTC
(In reply to comment #3)
> Matthew, I presume your supplied patch is the one you apply in
> gnome-pilot-2.0.15-5.fc7.

Correct.
Comment 5 Matthew Barnes 2007-04-19 17:28:37 UTC
*** Bug 431144 has been marked as a duplicate of this bug. ***
Comment 6 Matt Davey 2007-04-22 20:00:57 UTC
Fixed in svn.  It's a bit of a hack job, as a proper fix would have taken me further than I was willing to go into the gpilotd build structure...

The problem was that libgpilotdcm gets built first, and it was calling two functions that get built in the gpilotd/ directory.  libgpilotdcm is needed for the gpilotd and gpilotd-control-applet executables, but they get built in gpilotd/, which is why libgpilotdcm needs to be built first.  Ugly.

To work around this I've duplicated a small amount of code, avoiding the creation of the dependency.

I don't know why it was felt that libgpilotdcm needed to be in a separate library;  a neater solution to this issue would have been to have merged it with libgpilotdconduit (or to have built all the libraries in one directory, and built the executables after that). 
Comment 7 Matthew Barnes 2007-04-23 20:11:32 UTC
With the recent fix applied, I'm still getting one undefined symbol:

   $ rpm -ql gnome-pilot-devel | grep lib.*so | xargs ldd -r > /dev/null
   undefined symbol: gnome_pilot_conduit_set_name  (/usr/lib/libgpilotdcm.so)

Reopening just to get this last bugger fixed.

Comment 8 Matthew Barnes 2007-04-23 21:21:20 UTC
Also, in conduits/*/Makefile.am where you add -lgpilotdconduit to LIBADD, I think you want this instead:

    libxxx_conduit_la_LIBADD = \
            $(GNOME_PILOT_LIBS) \
            $(top_builddir)/gpilotd/libgpilotdconduit.la

otherwise it looks for an already-installed libgpilotdconduit.
Comment 9 Matt Davey 2007-04-23 22:58:45 UTC
Thanks for the testing Matthew.  I know I had the _set_name call fixed,
possibly I overlooked committing one file...

Reopening.
Comment 10 Matt Davey 2007-04-24 07:47:26 UTC
Should be fixed now.
Comment 11 Matthew Barnes 2007-04-24 14:46:20 UTC
Indeed it is.  Thanks!