[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Pass --build=<triplet> to native builds by default?
From: |
Ludovic Courtès |
Subject: |
Re: Pass --build=<triplet> to native builds by default? |
Date: |
Sun, 04 Jan 2015 17:20:44 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux) |
Mark H Weaver <address@hidden> skribis:
> Mark H Weaver <address@hidden> writes:
>
>> address@hidden (Ludovic Courtès) writes:
>>
>>> Mark H Weaver <address@hidden> skribis:
>>>
>>>> It turns out that on ARM systems, the result of 'config.guess' depends
>>>> on the result of 'uname -m'. In other words, details of the kernel (and
>>>> perhaps processor?) on the build machine will determine the triplet of
>>>> our builds, which in turn may affect what set of instructions is used.
>>>
>>> Do you know how the ‘uname -m’ output is used in config.guess? What
>>> does it return on ARM?
>>
>> The output of 'uname -m' becomes the first (cpu) component of the GNU
>> triplet. uname(1) gets its information from the kernel via the uname(2)
>> system call. The field returned by 'uname -m' is described as "Hardware
>> identifier". See <http://man7.org/linux/man-pages/man2/uname.2.html>.
>>
>> Here's the relevant section of config.guess from gcc-4.8.4:
>>
>> arm*:Linux:*:*)
>> eval $set_cc_for_build
>> if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
>> | grep -q __ARM_EABI__
>> then
>> echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
>> else
>> if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
>> | grep -q __ARM_PCS_VFP
>> then
>> echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
>> else
>> echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
>> fi
>> fi
>> exit ;;
>
> I forgot to answer your second question. On my Novena, 'uname -m'
> returns "armv7l". The problem is this: I suspect that if the build
> machine has an armv8 processor, it will return something different like
> "armv8l".
But how do the armv7 and armv8 ISAs differ? If it’s more like
additional SIMD extensions, then indeed it would make sense to use the
same name for both; but if there’s more than that, perhaps using
different triplets is the right thing?
Ludo’.