Skip to content

check_check and check_check_export fail on Guix powerpc64le-linux #333

@marusich

Description

@marusich

As described in Guix bug report 47698, "check" fails to build on Guix powerpc64le-linux because its check_check and check_check_export tests fail. The build was conducted in an isolated environment where the following versions of software were used:

  • check version: 0.15.2
  • libc version: 2.31
  • gcc version: 7.5.0
  • binutils version: 2.34

Please check out the Guix bug report for more details. In particular, see here for a copy of the test-suite.log file showing the failure.

When the failure occurs, we are building natively using the powerpc64le-unknown-linux-gnu triplet on a system that uses Debian's Linux kernel. The kernel version shown in /proc/version is:

Linux version 5.10.0-1-powerpc64le (debian-kernel@lists.debian.org) (gcc-10 (Debian 10.2.1-3) 10.2.1 20201224, GNU ld (GNU Binutils for Debian) 2.35.1) #1 SMP Debian 5.10.5-1 (2021-01-09)

The failure occurs when attempting to build "check" using Guix (e.g., via a command such as guix build check); the check_check and check_check_export test failures cause the overall build of "check" to fail. Guix builds "check" in an isolated environment where nothing from the underlying Debian system is used; with the exception of the kernel itself, the only software that is used to build "check" and run its tests comes from Guix, not Debian. The kernel from Debian is used for syscalls, file system access, etc., but the build environment has no access to tools in the usual locations like /usr/bin/gcc. This means that, for example, although /proc/version above indicates that Debian is using GCC 10, during the build it is in fact GCC 7.5.0 which is used to compile "check".

Do you have any idea what might be causing these failures, or how I can try to narrow down the problem? I'm having a hard time understanding the intent of the tests, since it isn't clear to me if assertions made during the tests are actually assertions or if they are themselves part of the code under test. Because of this confusion, and because I'm totally unfamiliar with the "check" framework to begin with, it's hard to tell what the intended behavior is, so it's hard to tell what's wrong. I'm hoping maybe you can help point me in the right direction.

This problem does not occur when using Guix on x86_64-linux (i.e., a system building "check" natively using the triplet x86_64-unknown-linux-gnu), so it might be a powerpc64le-specific issue. The only existing bug I saw that seemed possibly relevant was Fedora 28 (x86_64) test fails #157, but there isn't really any additional info in that bug report, I'm afraid.

I'm happy to put in the time to debug this myself - I've already tried putting in a few hours to do so - but I'm a little lost and not sure how to debug further. Any advice on how to get started would be very welcome. Thank you in advance for taking the time to help.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions