From owner-svn-src-all@FreeBSD.ORG Fri Mar 13 17:23:51 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id E48AAC5B; Fri, 13 Mar 2015 17:23:51 +0000 (UTC) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5209C89A; Fri, 13 Mar 2015 17:23:51 +0000 (UTC) Received: from tom.home (kostik@localhost [127.0.0.1]) by kib.kiev.ua (8.14.9/8.14.9) with ESMTP id t2DHNjg4003710 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 13 Mar 2015 19:23:45 +0200 (EET) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.9.2 kib.kiev.ua t2DHNjg4003710 Received: (from kostik@localhost) by tom.home (8.14.9/8.14.9/Submit) id t2DHNjP4003709; Fri, 13 Mar 2015 19:23:45 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Fri, 13 Mar 2015 19:23:45 +0200 From: Konstantin Belousov To: Nathan Whitehorn Subject: Re: svn commit: r279937 - in head/sys/powerpc: include powerpc Message-ID: <20150313172345.GY2379@kib.kiev.ua> References: <201503122115.t2CLFdmi026986@svn.freebsd.org> <20150312212234.GS2379@kib.kiev.ua> <55020547.7050102@freebsd.org> <20150312213530.GT2379@kib.kiev.ua> <5502094D.5090001@freebsd.org> <20150313084702.GV2379@kib.kiev.ua> <550318FD.1070906@freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <550318FD.1070906@freebsd.org> User-Agent: Mutt/1.5.23 (2014-03-12) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.0 X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on tom.home Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Mar 2015 17:23:52 -0000 On Fri, Mar 13, 2015 at 10:06:05AM -0700, Nathan Whitehorn wrote: > One more thing I'd appreciate advice on: we have a much worse ABI issue > with setjmp(). On 32-bit systems, _JBLEN is too small to hold all the > nonvolatile vector registers. Do you have any ideas how to handle that? There is no solution there. On x86, both 32 and 64 bit, setjmp only saves fpu control word (and mxcsr on amd64, where SSE2 is guaranteed to be presented). So only limited bits of the whole arch state is saved and restored. I suggest to just leave setjmp as it is. In fact, FreeBSD cannot work on 486SX due to this. Shell uses setjmp, and despite kernel carefully handling FPU-less CPU, shell fails from the beginning. Please note that ucontext_t API was designed by System V group to handle this deficiency in the setjmp/longjmp API, to cover the whole machine context and provide almost-portable interface for non-local control flow :/. As usual, SysV produced something which failed. In particular, the size and layout of ucontext_t is user-visible and cannot be changed.