Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 29 Oct 2005 01:36:07 -0700 (PDT)
From:      Rob <spamrefuse@yahoo.com>
To:        Eric Anholt <eta@lclark.edu>
Cc:        freebsd-x11@freebsd.org
Subject:   Re: libXcursor.so.1.0.2 reference in libX11.so.6 ??
Message-ID:  <20051029083607.11993.qmail@web36212.mail.mud.yahoo.com>
In-Reply-To: <1130485803.1034.89.camel@leguin>

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


--- Eric Anholt <eta@lclark.edu> wrote:

> On Thu, 2005-10-27 at 23:25 -0700, Rob wrote:
> > Hi,
> > 
> > I'm mailing to this list, after a long discussion
> > on the FreeBSD-questions list:
> >
>
http://lists.freebsd.org/pipermail/freebsd-questions/2005-October/102547.html
> > 
> > 
> > Eventually, Kris Kennaway suggested that this
> > is partially a problem caused by the X11 library:
> >
>
http://lists.freebsd.org/pipermail/freebsd-questions/2005-October/102678.html
> > 
> > The problem in a nutshell:
> > 
> > Some X11 calls, e.g. XDisplayOpen(), set the error
> > indicator in dlerror(); the error says that a
> > shared object "libXcursor.so.1.0" is not found.
> > 
> > >From 'strings /usr/X11R6/lib/libX11.so.6', there
> > appears output "libXcursor.so.1.0.2".
> > Probably there is something wrong with the X11
> > libraries and the linked objects in there.
> > 
> > Does anybody have clue on this isse?
> 
> This appears to be a bug in the app.  It is
> attempting to use dlerror to check if the
> previous dlsym() call failed, rather than
> checking if the dlsym returned NULL.

Yes, that was indeed a problem with the app. too,
and a fix has been accepted by the app. developer.

> libX11 is doing just fine, but a side effect of
> its eventually-successful dlopen()ing of libXcursor
> is that it will have caused a dlopen error, so
> dlerror() will be returning non-NULL for the
> next person that comes along.

Well, my point is that there is also something
not quite right with X11 and/or with FreeBSD:

See here:
http://cvs.freedesktop.org/xorg/xc/lib/X11/CrGlCur.c?rev=1.3&view=markup

The open_library() call is the source of the
confusion. First, it tries loading
libXcursor.so.1.0.2 (why it's hardcoded in FreeBSD
remains a mistery) and fails, then libXcursor.so.1.0
and fails again, and finally succeeds with
libXcursor.so.1, but the error from the previous
failed attempt (libXcursor.so.1.0) remains uncleared.
Sounds like a not-so-clean implementation of
versioned module loader... 


What do you think of this analysis?

Regards,
Rob.



		
__________________________________ 
Yahoo! FareChase: Search multiple travel sites in one click.
http://farechase.yahoo.com



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