From owner-cvs-src-old@FreeBSD.ORG Thu Nov 27 11:31:51 2008 Return-Path: Delivered-To: cvs-src-old@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EF9211065677 for ; Thu, 27 Nov 2008 11:31:51 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D95258FC1C for ; Thu, 27 Nov 2008 11:31:51 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id mARBVpou009759 for ; Thu, 27 Nov 2008 11:31:51 GMT (envelope-from kib@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id mARBVpEp009758 for cvs-src-old@freebsd.org; Thu, 27 Nov 2008 11:31:51 GMT (envelope-from kib@repoman.freebsd.org) Message-Id: <200811271131.mARBVpEp009758@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to kib@repoman.freebsd.org using -f From: Konstantin Belousov Date: Thu, 27 Nov 2008 11:27:59 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/lib/libc/gen Symbol.map dlfcn.c src/lib/libthr/thread thr_fork.c src/libexec/rtld-elf Symbol.map rtld.c rtld_lock.c rtld_lock.h X-BeenThere: cvs-src-old@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: **OBSOLETE** CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Nov 2008 11:31:52 -0000 kib 2008-11-27 11:27:59 UTC FreeBSD src repository Modified files: lib/libc/gen Symbol.map dlfcn.c lib/libthr/thread thr_fork.c libexec/rtld-elf Symbol.map rtld.c rtld_lock.c rtld_lock.h Log: SVN rev 185369 on 2008-11-27 11:27:59Z by kib Add two rtld exported symbols, _rtld_atfork_pre and _rtld_atfork_post. Threading library calls _pre before the fork, allowing the rtld to lock itself to ensure that other threads of the process are out of dynamic linker. _post releases the locks. This allows the rtld to have consistent state in the child. Although child may legitimately call only async-safe functions, the call may need plt relocation resolution, and this requires working rtld. Reported and debugging help by: rink Reviewed by: kan, davidxu MFC after: 1 month (anyway, not before 7.1 is out) Revision Changes Path 1.16 +2 -0 src/lib/libc/gen/Symbol.map 1.15 +12 -0 src/lib/libc/gen/dlfcn.c 1.9 +10 -1 src/lib/libthr/thread/thr_fork.c 1.6 +2 -0 src/libexec/rtld-elf/Symbol.map 1.129 +2 -0 src/libexec/rtld-elf/rtld.c 1.7 +16 -0 src/libexec/rtld-elf/rtld_lock.c 1.4 +2 -0 src/libexec/rtld-elf/rtld_lock.h