Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 29 Jan 2001 14:09:41 +0200
From:      Maxim Sobolev <sobomax@FreeBSD.org>
To:        John Polstra <jdp@polstra.com>
Cc:        ports@FreeBSD.org, obrien@FreeBSD.org
Subject:   Re: Strange problems with dynamic linking of libGL.so.1 from  XFree86-4.0.2_5
Message-ID:  <3A755D84.266A80E7@FreeBSD.org>
References:  <3A6C3D19.E1F56291@FreeBSD.org> <3A6FE52B.AC9970C2@FreeBSD.org> <200101251842.f0PIgTL32394@vashon.polstra.com> <3A70756F.D8A7ED75@FreeBSD.org> <200101251903.f0PJ3qF32488@vashon.polstra.com>

next in thread | previous in thread | raw e-mail | index | archive | help
John Polstra wrote:

> In article <3A70756F.D8A7ED75@FreeBSD.org>,
> Maxim Sobolev  <sobomax@FreeBSD.ORG> wrote:
> > John Polstra wrote:
> >
> > > Hmm, now the question is whether libGL.so was built using this
> > > version of libgcc.  Could you please repeat that objdump command on
> > > "/usr/X11R6/lib/libGL.so.1" (still grepping for pthread) and show me
> > > the output?
> >
> > Hmm, the dates of last modification (see above) suggest that it was built using
> > *this* version of libgcc. Nevertheless following is similar output for
> > libGL.so.1:
> >
> > max@notebook$ objdump --syms /usr/X11R6/lib/libGL.so.1 | grep pthread
> > 00000000         *UND*  00000000 pthread_getspecific
> > 00000000         *UND*  00000000 pthread_key_create
> > 00000000         *UND*  00000000 pthread_mutex_unlock
> > 00000000         *UND*  00000000 pthread_self
> > 00000000         *UND*  00000000 pthread_mutex_lock
> > 00000000         *UND*  00000000 pthread_mutex_init
> > 00000000         *UND*  00000000 pthread_setspecific
>
> I think your libGL must have been built with an older libgcc.  If
> possible please try building a fresh libGL and checking again.
>
> First, check in "/usr/lib" and remove any old "libgcc_r.a" you find
> there.  (Save a copy just in case.)  That should not be used any more.

As you suggested I've rebuilt both world and all installed ports from freshly
cvsup'ed sources (it should be done anyway due to libc_r changes), but module linked
against libGL.so.1 still doesn't work with exactly the same symptoms. Also I've noted
that some ports linking with libGL now need -pthread linker flag for link to succeed
(x11-toolkits/gtkglarea for example), which is strange because libGL.so.1 is already
linked with -pthread and thus should have libc_r recorded as dependency in it,
moreover I have a reports from the users with the exactly same misbehaviour. I
suspect that these problems are related somehow.

Please either you or O'Brien look at what is wrong.

Following is trace similar to ones that I sent to you earlier:

max@notebook$ cat register.tcl
pkg_mkIndex -verbose /usr/local/lib/python2.0/site-packages/OpenGL/Tk/freebsd5-tk8.3
Togl.so
max@notebook$ /usr/local/bin/tclsh8.3 register.tcl
warning: error while loading Togl.so: couldn't load file "./Togl.so":
/usr/X11R6/lib/libGL.so.1: Undefined symbol "pthread_getspecific"
max@notebook$ ll /usr/lib/libgcc*
-r--r--r--  1 root  wheel  142544 Jan 26 17:33 /usr/lib/libgcc.a
lrwxr-xr-x  1 root  wheel       8 Jan  9 19:43 /usr/lib/libgcc_r.a@ -> libgcc.a
max@notebook$ ll /usr/X11R6/lib/libGL.so.1
-rwxr-xr-x  1 root  wheel  435959 Jan 27 07:52 /usr/X11R6/lib/libGL.so.1*
max@notebook$ objdump --syms /usr/lib/libgcc.a | grep pthread
00000000  w      *UND*  00000000 pthread_create
00000000  w      *UND*  00000000 pthread_getspecific
00000000  w      *UND*  00000000 pthread_key_delete
00000000  w      *UND*  00000000 pthread_once
00000000  w      *UND*  00000000 pthread_key_create
00000000  w      *UND*  00000000 pthread_mutex_unlock
00000000  w      *UND*  00000000 pthread_mutex_lock
00000000  w      *UND*  00000000 pthread_mutex_trylock
00000000  w      *UND*  00000000 pthread_setspecific
00000000  w      *UND*  00000000 pthread_create
00000000  w      *UND*  00000000 pthread_getspecific
00000000  w      *UND*  00000000 pthread_key_delete
00000000  w      *UND*  00000000 pthread_once
00000000  w      *UND*  00000000 pthread_key_create
00000000  w      *UND*  00000000 pthread_mutex_unlock
00000000  w      *UND*  00000000 pthread_mutex_lock
00000000  w      *UND*  00000000 pthread_mutex_trylock
00000000  w      *UND*  00000000 pthread_setspecific
max@notebook$ objdump --syms /usr/X11R6/lib/libGL.so.1 | grep pthread
00000000         *UND*  00000000 pthread_getspecific
00000000         *UND*  00000000 pthread_key_create
00000000         *UND*  00000000 pthread_mutex_unlock
00000000         *UND*  00000000 pthread_self
00000000         *UND*  00000000 pthread_mutex_lock
00000000         *UND*  00000000 pthread_mutex_init
00000000         *UND*  00000000 pthread_setspecific

-Maxim



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" in the body of the message




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