From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Chris Vine Newsgroups: gmane.lisp.guile.devel Subject: async blocking function linking Date: Sun, 4 May 2014 11:34:19 +0100 Message-ID: <20140504113419.0c13fb07@laptop.homenet> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1399199694 14439 80.91.229.3 (4 May 2014 10:34:54 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 4 May 2014 10:34:54 +0000 (UTC) To: guile-devel Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Sun May 04 12:34:46 2014 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Wgtkq-00025W-2Q for guile-devel@m.gmane.org; Sun, 04 May 2014 12:34:44 +0200 Original-Received: from localhost ([::1]:52876 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Wgtkp-0003h1-Mg for guile-devel@m.gmane.org; Sun, 04 May 2014 06:34:43 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:41848) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Wgtkf-0003gE-T1 for guile-devel@gnu.org; Sun, 04 May 2014 06:34:41 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WgtkW-0005of-5R for guile-devel@gnu.org; Sun, 04 May 2014 06:34:33 -0400 Original-Received: from avasout07.plus.net ([84.93.230.235]:59353) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WgtkV-0005oV-WE for guile-devel@gnu.org; Sun, 04 May 2014 06:34:24 -0400 Original-Received: from laptop.homenet ([87.115.90.195]) by avasout07 with smtp id xmaM1n0074CtYU701maNqq; Sun, 04 May 2014 11:34:22 +0100 X-CM-Score: 0.00 X-CNFS-Analysis: v=2.1 cv=OuLBykPt c=1 sm=1 tr=0 a=n163PyXddlDwnTtVFYtscQ==:117 a=n163PyXddlDwnTtVFYtscQ==:17 a=0Bzu9jTXAAAA:8 a=a7_E5ZZ9eK8A:10 a=kj9zAlcOel0A:10 a=g_0wNEBgAAAA:8 a=WVdG0EYLiDdflPT0HBkA:9 a=CjuIK1q_8ugA:10 Original-Received: from laptop.homenet (localhost [127.0.0.1]) by laptop.homenet (Postfix) with ESMTP id 75F51546B9B for ; Sun, 4 May 2014 11:34:21 +0100 (BST) X-Mailer: Claws Mail 3.9.2 (GTK+ 2.24.23; i686-pc-linux-gnu) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (no timestamps) [generic] X-Received-From: 84.93.230.235 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:17136 Archived-At: Hi, guile-2.0's scm_c_call_with_blocked_asyncs, scm_c_call_with_unblocked_asyncs, scm_dynwind_block_asyncs and scm_dynwind_unblock_asyncs will not link for me using 32-bit ubuntu-14.04 (gcc-4.8.2/guile-2.0.9) or 32-bit slackware-14.1 (gcc-4.9.0/guile-2.0.11). I do not have a machine to test a 64-bit system at present. The issue appears to be that this part of the API is not marked as exported, even though these functions are documented and presumably intended to be called by user code. A trivial patch, against guile-2.0.11, is attached dealing with this. Chris --- guile-2.0.11/libguile/async.h.orig 2014-05-04 10:38:14.631777784 +0100 +++ guile-2.0.11/libguile/async.h 2014-05-04 10:45:45.615763664 +0100 @@ -44,10 +44,10 @@ SCM_API SCM scm_noop (SCM args); SCM_API SCM scm_call_with_blocked_asyncs (SCM proc); SCM_API SCM scm_call_with_unblocked_asyncs (SCM proc); -void *scm_c_call_with_blocked_asyncs (void *(*p) (void *d), void *d); -void *scm_c_call_with_unblocked_asyncs (void *(*p) (void *d), void *d); -void scm_dynwind_block_asyncs (void); -void scm_dynwind_unblock_asyncs (void); +SCM_API void *scm_c_call_with_blocked_asyncs (void *(*p) (void *d), void *d); +SCM_API void *scm_c_call_with_unblocked_asyncs (void *(*p) (void *d), void *d); +SCM_API void scm_dynwind_block_asyncs (void); +SCM_API void scm_dynwind_unblock_asyncs (void); /* Critical sections */