coreutils: fix build on 32-bit ARM

Adds an upstream patch to fix failing tests. The patch actually affects gnulib,
which is included as a vendored dependency.
This commit is contained in:
Ben Wolsieffer 2020-11-15 00:30:49 -05:00
parent 0e89c426c7
commit b70430a3dd
2 changed files with 49 additions and 1 deletions

View file

@ -31,7 +31,10 @@ stdenv.mkDerivation (rec {
patches = optional stdenv.hostPlatform.isCygwin ./coreutils-8.23-4.cygwin.patch
# included on coreutils master; TODO: apply unconditionally, I guess
++ optional stdenv.hostPlatform.isAarch64 ./sys-getdents-undeclared.patch;
++ optional stdenv.hostPlatform.isAarch64 ./sys-getdents-undeclared.patch
# fix gnulib tests on 32-bit ARM. Included on coreutils master.
# https://lists.gnu.org/r/bug-gnulib/2020-08/msg00225.html
++ optional stdenv.hostPlatform.isAarch32 ./fix-gnulib-tests-arm.patch;
postPatch = ''
# The test tends to fail on btrfs,f2fs and maybe other unusual filesystems.

View file

@ -0,0 +1,45 @@
>From 175e0bc72808d564074c4adcc72aeadb74adfcc6 Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
Date: Thu, 27 Aug 2020 17:52:58 -0700
Subject: [PATCH] perror, strerror_r: remove unportable tests
Problem reported by Florian Weimer in:
https://lists.gnu.org/r/bug-gnulib/2020-08/msg00220.html
* tests/test-perror2.c (main):
* tests/test-strerror_r.c (main): Omit unportable tests.
---
tests/test-perror2.c | 3 ---
tests/test-strerror_r.c | 3 ---
2 files changed, 6 deletions(-)
diff --git a/gnulib-tests/test-perror2.c b/gnulib-tests/test-perror2.c
index 1d14eda7b..c6214dd25 100644
--- a/gnulib-tests/test-perror2.c
+++ b/gnulib-tests/test-perror2.c
@@ -79,9 +79,6 @@ main (void)
errno = -5;
perror ("");
ASSERT (!ferror (stderr));
- ASSERT (msg1 == msg2 || msg1 == msg4 || STREQ (msg1, str1));
- ASSERT (msg2 == msg4 || STREQ (msg2, str2));
- ASSERT (msg3 == msg4 || STREQ (msg3, str3));
ASSERT (STREQ (msg4, str4));
free (str1);
diff --git a/gnulib-tests/test-strerror_r.c b/gnulib-tests/test-strerror_r.c
index b11d6fd9f..c1dbcf837 100644
--- a/gnulib-tests/test-strerror_r.c
+++ b/gnulib-tests/test-strerror_r.c
@@ -165,9 +165,6 @@ main (void)
strerror_r (EACCES, buf, sizeof buf);
strerror_r (-5, buf, sizeof buf);
- ASSERT (msg1 == msg2 || msg1 == msg4 || STREQ (msg1, str1));
- ASSERT (msg2 == msg4 || STREQ (msg2, str2));
- ASSERT (msg3 == msg4 || STREQ (msg3, str3));
ASSERT (STREQ (msg4, str4));
free (str1);
--
2.17.1