Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 26 Sep 2010 14:54:19 +0200
From:      Bartosz Stec <admin@kkip.pl>
To:        Erik Trulsson <ertr1013@student.uu.se>
Cc:        current@freebsd.org
Subject:   Re: Clang now builds world and kernel, on i386 and amd64
Message-ID:  <4C9F427B.3010904@kkip.pl>
In-Reply-To: <20100926124244.GA34061@owl.midgard.homeip.net>
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>

next in thread | previous in thread | raw e-mail | index | archive | help
  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

-- 
Bartosz Stec





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4C9F427B.3010904>