From owner-cvs-src-old@FreeBSD.ORG Sat Jun 20 14:17:00 2009 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 DBC871065740 for ; Sat, 20 Jun 2009 14:17:00 +0000 (UTC) (envelope-from kan@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C8EDF8FC14 for ; Sat, 20 Jun 2009 14:17:00 +0000 (UTC) (envelope-from kan@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 n5KEH0Gl015052 for ; Sat, 20 Jun 2009 14:17:00 GMT (envelope-from kan@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5KEH07F015051 for cvs-src-old@freebsd.org; Sat, 20 Jun 2009 14:17:00 GMT (envelope-from kan@repoman.freebsd.org) Message-Id: <200906201417.n5KEH07F015051@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to kan@repoman.freebsd.org using -f From: Alexander Kabaev Date: Sat, 20 Jun 2009 14:16:41 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/libexec/rtld-elf rtld.c rtld.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: Sat, 20 Jun 2009 14:17:01 -0000 kan 2009-06-20 14:16:41 UTC FreeBSD src repository Modified files: libexec/rtld-elf rtld.c rtld.h Log: SVN rev 194531 on 2009-06-20 14:16:41Z by kan Allow order of initialization of loaded shared objects to be altered through their .init code. This might happen if init vector calls dlopen on its own and that dlopen causes some not yet initialized object to be initialized earlier as part of that dlopened DAG. Do not reset module reference counts to zero on final fini vector run when process is exiting. Just add an additional parameter to force fini vector invocation regardless of current reference count value if object was not destructed yet. This allows dlclose called from fini vector to proceed normally instead of failing with handle validation error. Reviewed by: kib Reported by: venki kaps Revision Changes Path 1.136 +43 -46 src/libexec/rtld-elf/rtld.c 1.43 +4 -2 src/libexec/rtld-elf/rtld.h