From owner-freebsd-ruby@freebsd.org Sun Jan 10 18:38:26 2016 Return-Path: Delivered-To: freebsd-ruby@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4413FA6A833 for ; Sun, 10 Jan 2016 18:38:26 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from mailman.ysv.freebsd.org (mailman.ysv.freebsd.org [IPv6:2001:1900:2254:206a::50:5]) by mx1.freebsd.org (Postfix) with ESMTP id 2F2491F24 for ; Sun, 10 Jan 2016 18:38:26 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: by mailman.ysv.freebsd.org (Postfix) id 2E7D8A6A822; Sun, 10 Jan 2016 18:38:26 +0000 (UTC) Delivered-To: ruby@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2E1FFA6A821 for ; Sun, 10 Jan 2016 18:38:26 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 067191F21 for ; Sun, 10 Jan 2016 18:38:26 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id u0AIcPHP070164 for ; Sun, 10 Jan 2016 18:38:25 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: ruby@FreeBSD.org Subject: [Bug 206111] lang/ruby23: fix setjmp clobbered variables (using clang 3.8.0 and optimizing for 'high' CPUs) Date: Sun, 10 Jan 2016 18:38:25 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Ports & Packages X-Bugzilla-Component: Individual Port(s) X-Bugzilla-Version: Latest X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Some People X-Bugzilla-Who: dim@FreeBSD.org X-Bugzilla-Status: New X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: ruby@FreeBSD.org X-Bugzilla-Flags: maintainer-feedback? X-Bugzilla-Changed-Fields: bug_id short_desc product version rep_platform op_sys bug_status bug_severity priority component assigned_to reporter flagtypes.name attachments.created Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-ruby@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FreeBSD-specific Ruby discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 10 Jan 2016 18:38:26 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D206111 Bug ID: 206111 Summary: lang/ruby23: fix setjmp clobbered variables (using clang 3.8.0 and optimizing for 'high' CPUs) Product: Ports & Packages Version: Latest Hardware: Any OS: Any Status: New Severity: Affects Some People Priority: --- Component: Individual Port(s) Assignee: ruby@FreeBSD.org Reporter: dim@FreeBSD.org Assignee: ruby@FreeBSD.org Flags: maintainer-feedback?(ruby@FreeBSD.org) Created attachment 165371 --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=3D165371&action= =3Dedit Mark several variables volatile so they won't have undefined state after setjmp() During my preparations for bug 206074 (exp-run for clang 3.8.0), I noticed = that lang/ruby23 would sometimes crash during the build. Specifically, on i386, with CPUTYPE=3Divybridge, you would get segfaults in miniruby. It turns out these are because there are several places in ruby where setjm= p() is used, and where not all variables accessed after setjmp() are marked volatile. This can cause them to have undefined state. Fix this by marking several variables in different functions volatile. These patches were obtained from NetBSD pkgsrc, thanks to J=C3=B6rg Sonnenb= erger for the hint. --=20 You are receiving this mail because: You are the assignee for the bug.=