From owner-svn-src-head@FreeBSD.ORG Sun Jul 21 12:47:34 2013 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 43CF3641; Sun, 21 Jul 2013 12:47:34 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 363EC9D0; Sun, 21 Jul 2013 12:47:34 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r6LClYAt016961; Sun, 21 Jul 2013 12:47:34 GMT (envelope-from andrew@svn.freebsd.org) Received: (from andrew@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r6LClYvj016960; Sun, 21 Jul 2013 12:47:34 GMT (envelope-from andrew@svn.freebsd.org) Message-Id: <201307211247.r6LClYvj016960@svn.freebsd.org> From: Andrew Turner Date: Sun, 21 Jul 2013 12:47:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r253518 - head/lib/libc/arm/gen X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 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: Sun, 21 Jul 2013 12:47:34 -0000 Author: andrew Date: Sun Jul 21 12:47:33 2013 New Revision: 253518 URL: http://svnweb.freebsd.org/changeset/base/253518 Log: Teach siglongjmp about the VFP version of the setjmp buffer. This fixes a bug where a call to sigsetjmp followed by siglongjmp may fail when run on a machine with VFP enabled. Modified: head/lib/libc/arm/gen/sigsetjmp.S Modified: head/lib/libc/arm/gen/sigsetjmp.S ============================================================================== --- head/lib/libc/arm/gen/sigsetjmp.S Sun Jul 21 11:59:41 2013 (r253517) +++ head/lib/libc/arm/gen/sigsetjmp.S Sun Jul 21 12:47:33 2013 (r253518) @@ -57,8 +57,10 @@ ENTRY(sigsetjmp) WEAK_ALIAS(__siglongjmp, siglongjmp) ENTRY(siglongjmp) - ldr r2, .L_setjmp_magic - ldr r3, [r0] - teq r2, r3 + ldr r2, .L_setjmp_magic /* load magic */ + ldr r3, [r0] /* get magic from jmp_buf */ + bic r3, r3, #(_JB_MAGIC__SETJMP ^ _JB_MAGIC__SETJMP_VFP) + /* ignore VFP-ness of magic */ + teq r2, r3 /* magic correct? */ beq PIC_SYM(_C_LABEL(_longjmp), PLT) b PIC_SYM(_C_LABEL(longjmp), PLT)