From owner-svn-src-all@FreeBSD.ORG Wed Nov 18 04:46:04 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6391F1065676; Wed, 18 Nov 2009 04:46:04 +0000 (UTC) (envelope-from davidxu@freebsd.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 371EF8FC0A; Wed, 18 Nov 2009 04:46:04 +0000 (UTC) Received: from apple.my.domain (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.3/8.14.3) with ESMTP id nAI4k2l6008466; Wed, 18 Nov 2009 04:46:02 GMT (envelope-from davidxu@freebsd.org) Message-ID: <4B037C0A.5030804@freebsd.org> Date: Wed, 18 Nov 2009 12:46:02 +0800 From: David Xu User-Agent: Thunderbird 2.0.0.9 (X11/20080612) MIME-Version: 1.0 To: "M. Warner Losh" References: <200911180135.nAI1ZaIe051549@svn.freebsd.org> <20091117.210502.-1623813784.imp@bsdimp.com> In-Reply-To: <20091117.210502.-1623813784.imp@bsdimp.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed 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-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Nov 2009 04:46:04 -0000 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}