New malloc breaks old libpthread

Daniel Eischen deischen at freebsd.org
Tue Jan 17 06:19:50 PST 2006


On Tue, 17 Jan 2006, Daniel Eischen wrote:

> On Mon, 16 Jan 2006, Doug White wrote:
>
> > Got this trying to run an old Xorg binary on a -CURRENT machine I don't
> > update very frequently:
> >
> > /libexec/ld-elf.so.1: /usr/lib/libpthread.so.1: Undefined symbol "__malloc_lock"
> >
> > The libpthread.so.1 was from June 2005, prior to the libpthread version
> > bump. Unfortunately this means that RELENG_6 compatibility is broken in
> > -HEAD since the new libc.so.6 is not compatible with libraries built
> > against it prior to the merge date of the new user malloc.
>
> Don't do that.  We don't guarantee -current libraries built on
> (vastly) different dates will run nicely together.

I wasn't too clear.  libpthread.so.1 is supposed to be matched
with libc.so.5.  Your error message indicates it is trying to use
a recent libc.so.6 (which should be matched with libpthread.so.2),
not libc.so.5.  So something seems screwed up on your end
(/etc/libmap.conf?).

The only consumers of __malloc_lock and the _malloc_{pre,post}fork
symbols (in recent libc.so.6) should be libc_r, libpthread, and
libthr.  As long as you use libraries that are built from the same
source tree, you should be OK.  Even when moving from RELENG_6 to
HEAD.

-- 
DE



More information about the freebsd-current mailing list