Date: Sat, 22 Oct 2011 23:34:56 +0000 From: Nali Toja <nalitoja@gmail.com> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/161911: [patch] editors/emacs-devel: broken pthread_sigmask() Message-ID: <86sjmkd3wr.fsf@gmail.com> Resent-Message-ID: <201110222340.p9MNe5OF009965@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 161911 >Category: ports >Synopsis: [patch] editors/emacs-devel: broken pthread_sigmask() >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sat Oct 22 23:40:05 UTC 2011 >Closed-Date: >Last-Modified: >Originator: Nali Toja >Release: FreeBSD 10.0-CURRENT amd64 >Organization: >Environment: BATCH= WITHOUT_X11= WITHOUT_DBUS= WITHOUT_GNUTLS= >Description: The last gnulib merge in r105666 breaks the one defined in libthr by marking it with defines checked against the stub in libc. PTHREAD_SIGMASK_INEFFECTIVE [1] PTHREAD_SIGMASK_UNBLOCK_BUG [2] while HAVE_PTHREAD assumes the symbol comes from -lpthread. It's a bit unclear whether this is a bug in gnulib, emacs or actually a feature[3], so let's follow gnulib instructions (at least for now) dnl The module 'threadlib' is not in use, due to --avoid=threadlib being dnl specified. dnl The package either has prepared CPPFLAGS and LIBS for use of POSIX:2008 dnl threads, or wants to build single-threaded programs. if test $ac_cv_func_pthread_sigmask = yes; then dnl pthread_sigmask exists and does not require extra libraries. dnl Assume that it is declared. : as according to GNULIB_TOOL_FLAGS in WRKSRC/Makefile.in emacs uses --avoid=threadlib and some system libs (e.g. dbus) bring -lpthread, anyway. [1] http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=commitdiff;h=2616a65 [2] http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=commitdiff;h=2909043 [3] nox11 emacs seems to work fine without linking against -lpthread >How-To-Repeat: $ emacs -Q -nw /path/to/bsd.port.mk (or any other versioned file) M-x vc-annotate (Annotate [waiting...] from bsd.port.mk) In my case it permanently waits while consuming 100% cpu in top(1) where `cvs' process (from `list-processes') has long since exited. >Fix: --- pthread_sigmask.diff begins here --- Index: editors/emacs-devel/Makefile =================================================================== RCS file: /a/.csup/ports/editors/emacs-devel/Makefile,v retrieving revision 1.58 diff -u -p -r1.58 Makefile --- editors/emacs-devel/Makefile 17 Oct 2011 04:55:31 -0000 1.58 +++ editors/emacs-devel/Makefile 22 Oct 2011 21:55:34 -0000 @@ -32,8 +32,8 @@ GNU_CONFIGURE= yes USE_GMAKE= yes USE_NCURSES= yes USE_XZ= yes -CPPFLAGS+= -I${LOCALBASE}/include -LDFLAGS+= -L${LOCALBASE}/lib +CPPFLAGS+= -I${LOCALBASE}/include ${PTHREAD_CFLAGS} +LDFLAGS+= -L${LOCALBASE}/lib ${PTHREAD_LIBS} CONFIGURE_ARGS= --localstatedir=/var WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION} USE_AUTOTOOLS= autoconf:env automake:env aclocal:env autoheader:env --- pthread_sigmask.diff ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?86sjmkd3wr.fsf>