From owner-freebsd-hackers@FreeBSD.ORG Wed Jul 20 15:15:01 2011 Return-Path: Delivered-To: hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 221331065719; Wed, 20 Jul 2011 15:15:01 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id E62AF8FC14; Wed, 20 Jul 2011 15:15:00 +0000 (UTC) Received: from bigwig.baldwin.cx (66.111.2.69.static.nyinternet.net [66.111.2.69]) by cyrus.watson.org (Postfix) with ESMTPSA id 868EA46B45; Wed, 20 Jul 2011 11:15:00 -0400 (EDT) Received: from jhbbsd.localnet (unknown [209.249.190.124]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 2562C8A02E; Wed, 20 Jul 2011 11:15:00 -0400 (EDT) From: John Baldwin To: "Julian H. Stacey" Date: Wed, 20 Jul 2011 11:13:51 -0400 User-Agent: KMail/1.13.5 (FreeBSD/8.2-CBSD-20110617; KDE/4.5.5; amd64; ; ) References: <201107201235.p6KCYvmT007475@fire.js.berklix.net> In-Reply-To: <201107201235.p6KCYvmT007475@fire.js.berklix.net> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit Message-Id: <201107201113.52085.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.6 (bigwig.baldwin.cx); Wed, 20 Jul 2011 11:15:00 -0400 (EDT) Cc: freebsd-hackers@freebsd.org, hackers@freebsd.org, Dan Nelson Subject: Re: Freebsd-7.4 + std gcc 4.2.1 fails to honour -march=i586 X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2011 15:15:01 -0000 On Wednesday, July 20, 2011 8:34:57 am Julian H. Stacey wrote: > Hi, > Reference: > > From: John Baldwin > > Date: Wed, 20 Jul 2011 07:48:05 -0400 > > Message-id: <201107200748.05786.jhb@freebsd.org> > > John Baldwin wrote: > > On Wednesday, July 20, 2011 7:33:26 am Julian H. Stacey wrote: > > > What should FreeBSD do ? > > > Add a comment to man gcc ... that -march=i586 is not > > > enough, & feed the comment back to gcc project & see how > > > they want to handle it ? > > > > No, this is not a GCC bug. If you want to use a single build machine that > > will compile programs for other machines on a network to use, it must use the > > lowest common denominator for its CPUTYPE in /etc/make.conf. > > > > The out-of-the-box crt files from a FreeBSD install will work fine on a 486 > > and above, so can only get yourself into this quandry by building a new world > > with a CPUTYPE (or similar CFLAGS) setting in /etc/make.conf that violates > > this rule. > > > > You can fix your machine by fixing the CPUTYPE in your build machine and > > building and installing a new world (do use NO_CLEAN=yes for your build, do a > > full build). You will also want to rebuild any other binaries on this machine > > that you share with other machines. > > > > -- > > John Baldwin > > > Hi John, > Yes I realise all that now thanks. > The point now is man gcc is misleading/ incomplete: > "-march=cpu-type > Generate instructions for the machine type cpu-type." > Those instructions will not make a program that runs on a lesser CPU type > without alternate crt for lesse CPU. > > CFLAGS in make.conf is fine for single developer/ host debugging, > but is not appropriate for multi user multi make builds os src/ ports/ other > > Its seems just that gcc -march fails to select alternate crt. > > One gross ugly solution needing root would be to create chroots, > but Too ugly. > > I suggest gcc via -march should also be used as a selection for sub > dirs for crt ? & we should co-operate with gcc project on that, > *BSD & *linux must all face same phenomena so lets not develop > a non standard solution. I think this is a harder problem than you expect. It is not just the crt files that matter, but every library. You would need CPU-specific versions of every static library on the build system, and possibly you would want to do this for all shared libraries too. -- John Baldwin