armv6 tree vs. buildkernel
Warner Losh
wlosh at bsdimp.com
Sat Jun 23 22:17:25 UTC 2012
On Jun 23, 2012, at 3:07 PM, Tim Kientzle wrote:
>
> On Jun 23, 2012, at 12:58 PM, Warner Losh wrote:
>
>>
>> On Jun 23, 2012, at 12:58 PM, Tim Kientzle wrote:
>>> On Jun 23, 2012, at 7:35 AM, Warner Losh wrote:
>>>>
>>>>> P.S. How is CPUTYPE/TARGET_CPUTYPE supposed to be inferred for regular "buildworld"?
>>>>> The only option I can find is to set it explicitly in /etc/src.conf
>>>>
>>>> It can't possibly work very well. We need to get TARGET_ARCH=armv6 working instead of continuing these kludges.
>>>
>>>
>>> Help get me oriented and I'll start grinding through this.
>>>
>>> What values of TARGET_ARCH should be supported?
>>
>> arm, armeb, armv6 (and maybe armv6eb if they make those).
>
> So do you consider the -DARM_ARCH_6 and -D_ARM_ARCH_6
> defines to be among these "kluges"?
Yes. The compilers built when we're doing armv6 should have them defined. I believe they are standard. If not, we should migrate tot he standard defines. There was some churn in Mips land because of this (some of which I fixed, some of which I caused :).
> How should the C source identify the architecture and
> customize itself?
I'm not sure I understand this question.
> I'm trying to get a clearer picture of how this *should*
> work before I start roto-tilling a lot of code.
Excellent idea.
>>> Right now, there are ARCH values of arm and armeb.
>>> Should there be armv6eb? armv7?
>>
>> There should be no armv7, since armv6 means v6 and later. At some point there will be an arm64, I suppose too.
>
> So if someone wants an armv7 tree, they should have
> TARGET=arm
> TARGET_ARCH=armv6
> TARGET_CPUTYPE=armv7
Correct. This is much the same as if someone wants a nahalem tree on x86:
TARGET=i386
TARGET_ARCH=i386
TARGET_CPUTYPE=nahalem
or
TARGET=amd64
TARGET_ARCH=amd64
TARGET_CPUTYPE=nahalem
to pick which base you are compiling against, and then which optimizations you wish to build for.
>>> I'm also unclear on the distinction between make's MACHINE_ARCH
>>> and uname -p; are these supposed to be the same? If so, shouldn't
>>> make be using a sysctl instead of a hard-coded value?
>>
>> I thought it already did. That might not be a bad idea. MACHINE_ARCH and uname -p should be identical. If they aren't, that's a bug.
>
> Ah. That helps. (This certainly isn't true in the current
> make source and I can't find where this assumption
> is documented.)
I'm not sure it is. Note that there's a planned migration to bmake soonish.
>> I posted patches here before to do all (most?) of MACHINE_ARCH=armv6. Have you tried them on the armv6 branch? I've not had a chance to port them over yet.
>
> I've seen some oblique references to those patches but
> haven't tracked them down to study yet.
>
> Is this r234548 in users/imp?
Yes, that's one of the two intermingled patches.
Warner
More information about the freebsd-arm
mailing list