From owner-svn-src-head@FreeBSD.ORG Wed Nov 18 13:53:04 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 574121065698; Wed, 18 Nov 2009 13:53:04 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (bsdimp.com [199.45.160.85]) by mx1.freebsd.org (Postfix) with ESMTP id 092468FC0A; Wed, 18 Nov 2009 13:53:03 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by harmony.bsdimp.com (8.14.3/8.14.1) with ESMTP id nAIDfNxG062318; Wed, 18 Nov 2009 06:41:23 -0700 (MST) (envelope-from imp@bsdimp.com) Date: Wed, 18 Nov 2009 06:41:46 -0700 (MST) Message-Id: <20091118.064146.-290369589.imp@bsdimp.com> To: davidxu@freebsd.org From: "M. Warner Losh" In-Reply-To: <4B037C0A.5030804@freebsd.org> References: <200911180135.nAI1ZaIe051549@svn.freebsd.org> <20091117.210502.-1623813784.imp@bsdimp.com> <4B037C0A.5030804@freebsd.org> X-Mailer: Mew version 5.2 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r199465 - head/lib/librt X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Nov 2009 13:53:04 -0000 In message: <4B037C0A.5030804@freebsd.org> David Xu writes: : M. Warner Losh wrote: : > In message: <200911180135.nAI1ZaIe051549@svn.freebsd.org> : > David Xu writes: : > : Author: davidxu : > : Date: Wed Nov 18 01:35:36 2009 : > : New Revision: 199465 : > : URL: http://svn.freebsd.org/changeset/base/199465 : > : : > : Log: : > : Fix compiler warnings. : > : : > : Modified: : > : head/lib/librt/sigev_thread.c : > : : > : Modified: head/lib/librt/sigev_thread.c : > : ============================================================================== : > : --- head/lib/librt/sigev_thread.c Wed Nov 18 01:13:15 2009 (r199464) : > : +++ head/lib/librt/sigev_thread.c Wed Nov 18 01:35:36 2009 (r199465) : > : @@ -439,9 +439,9 @@ worker_routine(void *arg) : > : { : > : struct sigev_node *sn = arg; : > : : > : - _pthread_cleanup_push(worker_cleanup, sn); : > : + pthread_cleanup_push(worker_cleanup, sn); : > : sn->sn_dispatch(sn); : > : - _pthread_cleanup_pop(1); : > : + pthread_cleanup_pop(1); : > : : > : return (0); : > : } : > : > This change causes libthr to be needed now for librt. Before this : > wasn't the case, so ntp break on mips now (I haven't looked at other : > arcs yet). _pthread_cleanup_pop is exported from libc, while : > pthread_cleanup_pop causes __pthread_cleanup_pop_imp to be referenced, : > which is defined in libthr. : > : > I guess that's a long way of saying "gee, this seems wrong to me, : > please explain what you are fixing better or revert this change, : > thanks" :) : > : > Warner : > : > : : librt needs libpthread to function correctly, otherwise SIGEV_THREAD : notification won't work, though the ntp code may not use it, but who : can guarantee librt never use threads? in old design, the timer : functions were really in libpthread and implemented as threads. : : Regards, : David Xu : : : Index: ntpdate/Makefile : =================================================================== : --- ntpdate/Makefile (revision 199351) : +++ ntpdate/Makefile (working copy) : @@ -9,7 +9,7 @@ : CFLAGS+= -I${.CURDIR}/../../../contrib/ntp/include -I${.CURDIR}/../ : : DPADD= ${LIBNTP} ${LIBM} ${LIBMD} ${LIBRT} : -LDADD= ${LIBNTP} -lm -lmd -lrt : +LDADD= ${LIBNTP} -lm -lmd -lrt -lpthread : : CLEANFILES+= .version version.c : : Index: ntpd/Makefile : =================================================================== : --- ntpd/Makefile (revision 199351) : +++ ntpd/Makefile (working copy) : @@ -33,7 +33,7 @@ : -I${.CURDIR}/../../../contrib/ntp/libopts -I${.CURDIR} : : DPADD= ${LIBPARSE} ${LIBNTP} ${LIBM} ${LIBMD} ${LIBRT} ${LIBOPTS} : -LDADD= ${LIBPARSE} ${LIBNTP} -lm -lmd -lrt ${LIBOPTS} : +LDADD= ${LIBPARSE} ${LIBNTP} -lm -lmd -lrt -lpthread ${LIBOPTS} : : .if ${MK_OPENSSL} != "no" && !defined(RELEASE_CRUNCH) : DPADD+= ${LIBCRYPTO} I'd like to look more deeply into this issue. Can you back out the original commit until I can track things down a little more completely? Warner