From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mark H Weaver Subject: bug#35529: libdrm fails to build on armhf-linux Date: Mon, 06 May 2019 12:40:34 -0400 Message-ID: <87a7fz7cyq.fsf@netris.org> References: <87d0l1n97o.fsf@netris.org> <87k1f8gl7k.fsf@elephly.net> <87imuosew7.fsf@netris.org> <874l68qcio.fsf@elephly.net> <8736lsq9ec.fsf@netris.org> <8736lrrget.fsf@elephly.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([209.51.188.92]:53460) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hNghj-0002M7-EN for bug-guix@gnu.org; Mon, 06 May 2019 12:43:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hNghi-0005yv-BI for bug-guix@gnu.org; Mon, 06 May 2019 12:43:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:43762) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hNghi-0005yc-0z for bug-guix@gnu.org; Mon, 06 May 2019 12:43:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hNghh-0003gn-M3 for bug-guix@gnu.org; Mon, 06 May 2019 12:43:01 -0400 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: <8736lrrget.fsf@elephly.net> (Ricardo Wurmus's message of "Mon, 06 May 2019 13:06:18 +0200") List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: "bug-Guix" To: Ricardo Wurmus Cc: 35529@debbugs.gnu.org Hi Ricardo, Ricardo Wurmus 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=E2=80=99m not sure. We=E2=80=99re using a few Overdrive 1000 machine= s 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? > =E2=80=9Cnss=E2=80=9D failed its tests when built on x15.sjd.se, but it w= orked 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: . Thanks! Mark