Date: Sun, 10 Jan 2016 18:36:13 +0000 From: bugzilla-noreply@freebsd.org To: freebsd-ports-bugs@FreeBSD.org Subject: [Bug 206108] lang/ruby21: fix setjmp clobbered variables (using clang 3.8.0 and optimizing for 'high' CPUs) Message-ID: <bug-206108-13@https.bugs.freebsd.org/bugzilla/>
next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D206108 Bug ID: 206108 Summary: lang/ruby21: 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 Flags: maintainer-feedback?(ruby@FreeBSD.org) Assignee: ruby@FreeBSD.org Created attachment 165369 --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=3D165369&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/ruby21 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.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-206108-13>