all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Mark H Weaver <mhw@netris.org>
To: Ricardo Wurmus <rekado@elephly.net>
Cc: 35529@debbugs.gnu.org
Subject: bug#35529: libdrm fails to build on armhf-linux
Date: Mon, 06 May 2019 12:40:34 -0400	[thread overview]
Message-ID: <87a7fz7cyq.fsf@netris.org> (raw)
In-Reply-To: <8736lrrget.fsf@elephly.net> (Ricardo Wurmus's message of "Mon, 06 May 2019 13:06:18 +0200")

Hi Ricardo,

Ricardo Wurmus <rekado@elephly.net> writes:

>>>>> This has built fine on berlin.  We have a completed build for
>>>>> /gnu/store/3c28p8b07709isd9jlcnnnyrpgz4ndz8-libdrm-2.4.97.
>>>>
>>>> What kind of hardware was it built on?
>>>
>>> I’m not sure.  We’re using a few Overdrive 1000 machines that have quite
>>> a bit more RAM than the other armhf nodes.
>>
>> Are there any other kinds of build slaves that build armhf binaries for
>> Berlin?
>
> Yes.  We have a Beagleboard (x15.sjd.se), which is set up for 2 parallel
> builds and we use the Qemu service on 5 of our x86_64 machines to build
> for armhf.  (We do the same for aarch64, but using 5 different nodes.)

So, many of the armhf builds are done in an emulator.  This is exactly
what I was curious about.  One problem with doing this is that tests
performed during these builds do not necessarily reflect what will
happen on real armhf hardware.

I'll give just one example of where this approach will fail badly: tests
of thread synchronization.  The memory models used in ARM and x86_64 are
quite different, and an ARM emulator running on x86_64 will effectively
have a much stronger memory model than real ARM hardware does.

It's much harder to perform safe thread synchronization on ARM than on
x86_64.  Many programmers use idioms that they believe are safe, and
which work on x86_64, but are buggy on many architectures with weaker
memory models.  Those are the kinds of bugs that will *not* be
discovered by test suites when we perform the builds under QEMU.

I hope that we will soon phase out the practice of performing builds
within emulators.

In the meantime, it would be good to know which machine built 'libdrm'
for armhf.  Was that information recorded?

> “nss” failed its tests when built on x15.sjd.se, but it worked fine when
> building on one of the Overdrives.

Can you find the failed NSS build log from the X15?  It would useful to
see which tests failed, and whether they're the same ones that failed on
hydra-slave3, which is a Novena with 4 GB of RAM.  Here's the relevant
Hydra build page: <https://hydra.gnu.org/build/3484222>.

       Thanks!
         Mark

  reply	other threads:[~2019-05-06 16:43 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-01 21:41 bug#35529: libdrm fails to build on armhf-linux Mark H Weaver
2019-05-03  5:29 ` Ricardo Wurmus
2019-05-05 17:42   ` Andreas Enge
2019-05-05 22:41   ` Mark H Weaver
2019-05-06  7:15     ` Ricardo Wurmus
2019-05-06  8:22       ` Mark H Weaver
2019-05-06 11:06         ` Ricardo Wurmus
2019-05-06 16:40           ` Mark H Weaver [this message]
2019-05-06 17:00             ` Ricardo Wurmus

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

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

  git send-email \
    --in-reply-to=87a7fz7cyq.fsf@netris.org \
    --to=mhw@netris.org \
    --cc=35529@debbugs.gnu.org \
    --cc=rekado@elephly.net \
    /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 external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.