guix-devel
[Top][All Lists]
Advanced

[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’.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]