unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: ludo@gnu.org (Ludovic Courtès)
To: Mark H Weaver <mhw@netris.org>
Cc: guix-devel@gnu.org
Subject: Re: Pass --build=<triplet> to native builds by default?
Date: Sun, 04 Jan 2015 21:18:40 +0100	[thread overview]
Message-ID: <874ms62tb3.fsf@gnu.org> (raw)
In-Reply-To: <87oaqeweco.fsf@netris.org> (Mark H. Weaver's message of "Sun, 04 Jan 2015 14:11:19 -0500")

Mark H Weaver <mhw@netris.org> skribis:

> ludo@gnu.org (Ludovic Courtès) writes:
>
>> Mark H Weaver <mhw@netris.org> skribis:
>>
>>> Mark H Weaver <mhw@netris.org> writes:
>>>
>>>> ludo@gnu.org (Ludovic Courtès) writes:
>>>>
>>>>> Mark H Weaver <mhw@netris.org> 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>.
>
> [...]
>
>>> 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?

[...]

> I don't see why it matters how the ISAs differ.  The important point is
> that a build process may intentionally produce different build outputs
> when the triplet is armv8l-* vs armv7l-*.

What I meant to say is that “x86_64” is pretty vague and doesn’t specify
extensions, but GMP’s sophisticated config.guess is able to determine
the available extensions using /proc/cpuinfo and similar tricks.  Yet,
we’re fine calling all the variants “x86_64” in practice.

In fact, it may be that:

  personality (PER_LINUX32_3GB)

on an armv8 machine enters pure armv7 mode.

What does “linux32 uname -m” return on armv8?

> Even if we didn't care about deterministic builds, there's a more
> serious problem.  Packages built for armv8l are free to use armv8 ISA
> extensions that do not work at all on an armv7l processor.
>
> As things stand now, we must ensure that none of our build machines
> implement ISA extensions beyond the baseline requirements we've chosen
> for armhf-linux.

OK, understood.

Thanks,
Ludo’.

      reply	other threads:[~2015-01-04 20:18 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-03 20:01 Pass --build=<triplet> to native builds by default? Mark H Weaver
2015-01-03 21:01 ` Ludovic Courtès
2015-01-03 22:11   ` Mark H Weaver
2015-01-03 22:15     ` Mark H Weaver
2015-01-04 16:20       ` Ludovic Courtès
2015-01-04 19:11         ` Mark H Weaver
2015-01-04 20:18           ` Ludovic Courtès [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=874ms62tb3.fsf@gnu.org \
    --to=ludo@gnu.org \
    --cc=guix-devel@gnu.org \
    --cc=mhw@netris.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).