Date: Sun, 26 Sep 2010 15:19:19 +0200 From: Bartosz Stec <admin@kkip.pl> Cc: current@freebsd.org Subject: Re: Clang now builds world and kernel, on i386 and amd64 Message-ID: <4C9F4857.2070801@kkip.pl> In-Reply-To: <4C9F427B.3010904@kkip.pl> References: <20100923065134.GA31455@freebsd.org> <4C9B3207.2070302@kkip.pl> <4C9B383A.6080008@FreeBSD.org> <4C9B38E2.7010403@kkip.pl> <4C9B6804.3070102@FreeBSD.org> <4C9C8A64.3000103@kkip.pl> <4C9C8FD9.1030305@FreeBSD.org> <4C9C95D7.40600@kkip.pl> <4C9CB702.50004@FreeBSD.org> <4C9F3ADF.7070903@kkip.pl> <20100926124244.GA34061@owl.midgard.homeip.net> <4C9F427B.3010904@kkip.pl>
next in thread | previous in thread | raw e-mail | index | archive | help
W dniu 2010-09-26 14:54, Bartosz Stec pisze: > W dniu 2010-09-26 14:42, Erik Trulsson pisze: >> On Sun, Sep 26, 2010 at 02:21:51PM +0200, Bartosz Stec wrote: >>> W dniu 2010-09-24 16:34, Dimitry Andric pisze: >>>> On 2010-09-24 14:13, Bartosz Stec wrote: >>>>>> Could you please try to rename this make.conf to e.g. >>>>>> make.conf.disable, >>>>>> and retry the world build? >>>>> Still the same without make.conf. My personal guess is, that clang >>>>> builded by clang with CPUTYPE=athlon-xp is somehow broken. I don't >>>>> think >>>>> CFLAGS=-O2 -pipe could do any harm, and also note that clang >>>>> builded by >>>>> GCC with exactly the same make.conf has no problems with world >>>>> building :) >>>> I still cannot reproduce your issue... To check, I have built world >>>> with CPUTYPE=athlon-xp, verified it used "-O2 -pipe >>>> -march=athlon-xp" as >>>> compilation flags for the world stage, and installed the resulting >>>> clang >>>> executables. >>>> >>>> Those clang executables do not exhibit the same problem as yours do; >>>> they can build tblgen (during the bootstrap-tools stage) fine. >>>> >>>> I suggest you comment out the CPUTYPE macro in make.conf for now, >>>> rebuild your world with gcc, and then rebuild it with clang again, to >>>> see if the issue goes away. >>> Indeed, I was right. Problem is gone after hashing out CPUTYPE line, >>> building world with GCC, and with clang after that. Now world is >>> building without problems. >>> >>> But hey, i just realized that: >>> >>> # dmesg | grep -i cpu >>> CPU: mobile AMD Athlon(tm) XP 2200+ (1800.11-MHz 686-class CPU) >>> >>> I simply forgot that about a year ago I changed Athlon XP in this >>> BOX to >>> Athlon MP and I didn't changed CPUTYPE in make.conf... >>> So maybe clang in fact did exactly what it should and created binary >>> designed to other CPUTYPE ;) I don't know exact differences between >>> Athlon XP/MP architecture (registers specially) but I just started >>> another try with CPUTYPE=Athlon-mp and I will post results :) >> The only difference between Athlon XP and Athlon MP is that the MP >> variants are certified for multi-processor use (in reality most Athlon >> XP also worked just fine in multi-processor systems, or could easily be >> modified to do so.) Available instructions and registers are identical >> between the two. Mobile variants of the Athlon XP should also be >> identical from a programming point of view. >> >> >> > That's what I thought too, but in that case, why are they different > optimisations available? > In /usr/share/examples/etc/make.conf: > > # Currently the following CPU types are recognized: > # Intel x86 architecture: > # (AMD CPUs) opteron athlon64 athlon-mp athlon-xp athlon-4 > # athlon-tbird athlon k8 k6-3 k6-2 k6 k5 > > Or maybe some of them are in fact bywords to compiler? > > Still, my CURRENT box is at idle mostly, so I will experiment a little > and see what I get. > > Cheers > Argh, I assumed that 'Mobile Athlon XP' == 'Athlon MP' while it seem's that they aren't. CPUTYPE=athlon-xp was a right choice for my CPU. Sorry for mistake. -- Bartosz Stec
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4C9F4857.2070801>