Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 27 Dec 1999 21:58:21 +0100
From:      Pascal Hofstee <daeron@shadowmere.student.utwente.nl>
To:        John Polstra <jdp@FreeBSD.org>
Cc:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/include dlfcn.h src/lib/libc/gen dllockinit.3 Makefile.inc dlfcn.c src/libexec/rtld-elf lockdflt.c Makefile debug.h rtld.c rtld.h src/libexec/rtld-elf/alpha reloc.c src/libexec/rtld-elf/i386 reloc.c
Message-ID:  <19991227215821.A4497@shadowmere.student.utwente.nl>
In-Reply-To: <199912270444.UAA01884@freefall.freebsd.org>; from jdp@FreeBSD.org on Sun, Dec 26, 1999 at 08:44:04PM -0800
References:  <199912270444.UAA01884@freefall.freebsd.org>

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

On Sun, Dec 26, 1999 at 08:44:04PM -0800, John Polstra wrote:
> jdp         1999/12/26 20:44:04 PST
> 
>   Modified files:
>     include              dlfcn.h 
>     lib/libc/gen         Makefile.inc dlfcn.c 
>     libexec/rtld-elf     Makefile debug.h rtld.c rtld.h 
>     libexec/rtld-elf/alpha reloc.c 
>     libexec/rtld-elf/i386 reloc.c 
>   Added files:
>     lib/libc/gen         dllockinit.3 
>     libexec/rtld-elf     lockdflt.c 
>   Log:
>   Add a new function dllockinit() for registering thread locking
>   functions to be used by the dynamic linker.  This can be called by
>   threads packages at start-up time.  I will add the call to libc_r
>   soon.
>   
>   Also add a default locking method that is used up until dllockinit()
>   is called.  The default method works by blocking SIGVTALRM, SIGPROF,
>   and SIGALRM in critical sections.  It is based on the observation
>   that most user-space threads packages implement thread preemption
>   with one of these signals (usually SIGVTALRM).
>   
>   The dynamic linker has never been reentrant, but it became less
>   reentrant in revision 1.34 of "src/libexec/rtld-elf/rtld.c".
>   Starting with that revision, multiple threads each doing lazy
>   binding could interfere with each other.  The usual symptom was
>   that a symbol was falsely reported as undefined at start-up time.
>   It was rare but not unseen.  This commit fixes it.

With a buildworld of CURRENT that has this commit included (built earlier
today) I get the following error when trying to run applications that use
the pthread-functionality, like Mozilla and Licq.

ld-elf.so.1: assert failed: /usr/src/libexec/rtld-elf/lockdflt.c:55
Abort trap (core dumped)
	
-- 
--------------------
  Pascal Hofstee - daeron@shadowmere.student.utwente.nl

-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GCS d- s+: a-- C++ UB++++ P+ L- E--- W- N+ o? K- w--- O? M V? PS+ PE Y-- PGP--
t+ 5 X-- R tv+ b+ DI D- G e* h+ r- y+
------END GEEK CODE BLOCK------


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




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