Date: Mon, 19 Feb 2007 12:45:51 -0500 From: Kris Kennaway <kris@obsecurity.org> To: Christian Baer <christian.baer@uni-dortmund.de> Cc: freebsd-questions@freebsd.org Subject: Re: Compiler Flags for SPARC64 Message-ID: <20070219174550.GA27605@xor.obsecurity.org> In-Reply-To: <erc7qs$qra$11@nermal.rz1.convenimus.net> References: <erc7qs$qra$11@nermal.rz1.convenimus.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Feb 19, 2007 at 02:14:04PM +0100, Christian Baer wrote: > Hello everybody out there! > > Please excuse my posting this question again on this list, but the last > post on the freebsd-sparc64 didn't help much. There isn't really much > traffic on that list. > > Assuming that gcc when run on sparc64 produces v7 code (for sun4/4c) by > default, I went about trying to improve that as v7 code is known to be a > fair bit slower as v9 (sun4u) code. The improvement can be as much as > 100% for some apps like OpenSSL or OpenSSH. > > I went about trying some Compiler flags. -mcpu=ultrasparc and -mcpu=v9 > both came into mind. However this lead to several problems of programs > not compiling anymore. Most notably was the failure of 'make buildworld'. > > When gcc is told to produce v9 code, it doesn't produce 64bit code (you > have to set -m64 for that), it just uses a few additional commands the > CPU knows, which should make the resulting code faster but no longer > compatible with older CPUs (non-UltraSPARC). This means that there > shouldn't be any problem with pointers that are now "strange" to the > code. But even if I explicitly set the -m32 flag, I still can't make the > world. > > I discussed this in a German newsgroup, where someone told me that the > CPU is set to v9 by default on FreeBSD, as it only supports SPARC64 and > not SPARC32. Although this assumption makes sense, I couldn't find any > evidence to back it up. While some compiler flags are set by default > on some platforms for optimization for that particular CPU, there > doesn't seem to be anything set for sparc64. Additionaly, if the mcpu > were really set to ultrasparc or v9, then setting it again shouldn't > cause buildworld to stop with the error "I don't know what platform this > is." > > Has anyone got any ideas on how to go on with this? You'll have to look at the compiler spec and how it is bootstrapped. FWIW, I don't think there are any secret flags you can set to improve the compiler targetting, as the defaults are already appropriate. Kris
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070219174550.GA27605>