From owner-svn-src-head@FreeBSD.ORG Wed Jan 5 14:37:23 2011 Return-Path: Delivered-To: svn-src-head@FreeBSD.ORG Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D11B1106566C; Wed, 5 Jan 2011 14:37:23 +0000 (UTC) (envelope-from das@FreeBSD.ORG) Received: from zim.MIT.EDU (ZIM.MIT.EDU [18.95.3.101]) by mx1.freebsd.org (Postfix) with ESMTP id 75DD38FC14; Wed, 5 Jan 2011 14:37:23 +0000 (UTC) Received: from zim.MIT.EDU (localhost [127.0.0.1]) by zim.MIT.EDU (8.14.4/8.14.2) with ESMTP id p05EbMSw040693; Wed, 5 Jan 2011 09:37:22 -0500 (EST) (envelope-from das@FreeBSD.ORG) Received: (from das@localhost) by zim.MIT.EDU (8.14.4/8.14.2/Submit) id p05EbMVl040692; Wed, 5 Jan 2011 09:37:22 -0500 (EST) (envelope-from das@FreeBSD.ORG) Date: Wed, 5 Jan 2011 09:37:22 -0500 From: David Schultz To: John Baldwin Message-ID: <20110105143722.GA40648@zim.MIT.EDU> Mail-Followup-To: John Baldwin , Gleb Kurtsou , Alexander Best , Dimitry Andric , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org References: <201101042051.p04KpSGk054564@svn.freebsd.org> <20110105011635.GA4952@freebsd.org> <20110105121910.GA1841@tops.skynet.lt> <201101050759.50877.jhb@freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201101050759.50877.jhb@freebsd.org> Cc: Gleb Kurtsou , src-committers@FreeBSD.ORG, svn-src-all@FreeBSD.ORG, Dimitry Andric , svn-src-head@FreeBSD.ORG, Alexander Best Subject: Re: svn commit: r216977 - in head/libexec/rtld-elf: amd64 i386 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 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: Wed, 05 Jan 2011 14:37:23 -0000 On Wed, Jan 05, 2011, John Baldwin wrote: > On Wednesday, January 05, 2011 7:19:10 am Gleb Kurtsou wrote: > > On (05/01/2011 01:16), Alexander Best wrote: > > > On Tue Jan 4 11, Dimitry Andric wrote: > > > > Author: dim > > > > Date: Tue Jan 4 20:51:28 2011 > > > > New Revision: 216977 > > > > URL: http://svn.freebsd.org/changeset/base/216977 > > > > > > > > Log: > > > > On amd64 and i386, tell the compiler to refrain from generating SSE, > > > > 3DNow, MMX and floating point instructions in rtld-elf. > > > > > > > > Otherwise, _rtld_bind() (and whatever it calls) could possibly clobber > > > > function arguments that are passed in SSE/3DNow/MMX/FP registers, > > > > usually floating point values. This can happen, for example, when clang > > > > generates SSE code for memset() or memcpy() calls. > > > > > > the sorting order for these flags seems to be: > > > > > > -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 > > > > > > see 'grep -R "\-no-sse" /usr/src'. maybe the sorting order should stay > > > consistent? > > > > > > also what's the status of clang? will these flags make sure that newer > > > cpu extension won't be activated? i checked > > > contrib/llvm/tools/clang/include/clang/Driver/Options.td > > > and clang has support for: > > > > > > -m3dnowa > > > -mssse3 > > > -msse4a > > > -msse4 > > > -msse4_1 > > > -msse4_2 > > > -maes > > > -mavx > > > > > > since these extensions only get set in a hand full of files maybe special > > > cases for CC == clang can be added. > > Why not to add NO_HWFLOAT knob (or similar) into makefile > > infrastructure. And set CFLAGS accordingly, depending on CC, arch, etc. > > These flags are getting rather common in tree. > > It strikes me that we really want clang/gcc to have some sort of > '-mno-hwfloat' so we don't keep having to add new flags in the future. It would have to be called something like -mno-xmmregs. Many SSE instructions are for vector operations on integers, not floating point. Furthermore, I don't think the i387 floating point instructions would cause the problem being addressed here (although they're a bad idea for _rtld_bind() for other reasons).