From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8435 invoked by alias); 10 Aug 2006 06:53:33 -0000 Received: (qmail 8418 invoked by uid 22791); 10 Aug 2006 06:53:32 -0000 X-Spam-Check-By: sourceware.org Received: from sunsite.ms.mff.cuni.cz (HELO sunsite.mff.cuni.cz) (195.113.15.26) by sourceware.org (qpsmtpd/0.31) with ESMTP; Thu, 10 Aug 2006 06:53:30 +0000 Received: from sunsite.mff.cuni.cz (sunsite.mff.cuni.cz [127.0.0.1]) by sunsite.mff.cuni.cz (8.13.1/8.13.1) with ESMTP id k7A6rPGI008607; Thu, 10 Aug 2006 08:53:25 +0200 Received: (from jj@localhost) by sunsite.mff.cuni.cz (8.13.1/8.13.1/Submit) id k7A6rPWX008606; Thu, 10 Aug 2006 08:53:25 +0200 Date: Thu, 10 Aug 2006 06:53:00 -0000 From: Jakub Jelinek To: Ulrich Drepper Cc: Glibc hackers Subject: [PATCH] Fix sparc64 build Message-ID: <20060810065324.GG4556@sunsite.mff.cuni.cz> Reply-To: Jakub Jelinek Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.1i Mailing-List: contact libc-hacker-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-hacker-owner@sourceware.org X-SW-Source: 2006-08/txt/msg00014.txt.bz2 Hi! sparc64 doesn't provide the pause syscall, so it is emulated using sigsuspend. The following adds __pause_nocancel, which is now required by pthread_mutex_lock.c. 2006-08-09 Jakub Jelinek * sysdeps/unix/sysv/linux/sparc/sparc64/pause.c (__pause_nocancel): New function. --- libc/sysdeps/unix/sysv/linux/sparc/sparc64/pause.c 14 Apr 2005 21:44:25 -0000 1.3 +++ libc/sysdeps/unix/sysv/linux/sparc/sparc64/pause.c 9 Aug 2006 19:32:11 -0000 @@ -1,5 +1,5 @@ /* pause -- suspend the process until a signal arrives. POSIX.1 version. - Copyright (C) 2003 Free Software Foundation, Inc. + Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -44,4 +44,15 @@ __libc_pause (void) } weak_alias (__libc_pause, pause) +int +__pause_nocancel (void) +{ + sigset_t set; + + __sigemptyset (&set); + INLINE_SYSCALL (rt_sigprocmask, 4, SIG_BLOCK, CHECK_SIGSET (NULL), + CHECK_SIGSET_NULL_OK (&set), _NSIG / 8); + return INLINE_SYSCALL (rt_sigsuspend, 2, CHECK_SIGSET (&set), _NSIG / 8); +} + LIBC_CANCEL_HANDLED (); /* sigsuspend handles our cancellation. */ Jakub