Clang now builds world and kernel, on i386 and amd64
Bartosz Stec
admin at kkip.pl
Sun Sep 26 13:19:40 UTC 2010
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
More information about the freebsd-current
mailing list