bug-datamash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Outdated GNULIB causing datamash not to compile properly - tests are fai


From: Jiri Hladky
Subject: Outdated GNULIB causing datamash not to compile properly - tests are failing
Date: Tue, 1 Mar 2022 13:07:46 +0100

Hello,

I'm a co-maintainer of the datamash binary package for Fedora. When trying to compile datamash 1.7 for ppc64le for the latest Fedora, I'm getting this test failure [1]  (Fedora Rawhide, and Fedora 36 are affected).

We were able to identify the outdated gnulib version coming with datamash to be the root cause. See:

https://bugzilla.redhat.com/show_bug.cgi?id=2056736#c7
and
https://bugzilla.redhat.com/show_bug.cgi?id=2057524#c10

Could you please review it and propose the fix? It seems like a new version of datamash with the latest gnulib version would be the best way to go. 

Thanks a lot!
Jirka

===============================================================================================
This is a bug on the datamash/gnulib side.
For error declaration it uses #include "error.h" in src/system.h which picks up "lib/error.h":

# 75 "src/system.h" 2
# 1 "lib/error.h" 1
# 52 "lib/error.h"
extern void error (int __status, int __errnum, const char *__format, ...)
     __attribute__ ((__format__ (__printf__, 3, 4)));

extern void error_at_line (int __status, int __errnum, const char *__fname,
                           unsigned int __lineno, const char *__format, ...)
     __attribute__ ((__format__ (__printf__, 5, 6)));

but that is some gnulib prototype for the function, not the glibc one, which is in <error.h>
(i.e. /usr/include/error.h).
That header provides similar declaration, but also includes <bits/error-ldbl.h> header
in certain conditions which makes sure to redirect the error call to __ieee128_error for -mabi=ieeelongdouble
on ppc64le (which is now the default in F36 and later).
Now, it would be fine to use the ?gnulib? error.h if its implementation would be also used,
but that doesn't seem to be the case and you are instead using the glibc definition.

In any way, this has really nothing to do with gcc, it is a glibc vs. gnulib vs. the package issue.

===============================================================================================



1]
FAIL: tests/datamash-error-msgs
===============================

datamash-error-msgs.pl: test e103: stderr mismatch, comparing e103.2 (expected) and e103.E (actual)
*** e103.2      Mon Feb 21 19:56:53 2022
--- e103.E      Mon Feb 21 19:56:53 2022
***************
*** 1 ****
! datamash: invalid trim mean value 12 (expected 0 <= X <= 0.5)
--- 1 ----
! datamash: invalid trim mean value 8.49793e-321 (expected 0 <= X <= 0.5)
datamash-error-msgs.pl: test e104: stderr mismatch, comparing e104.2 (expected) and e104.E (actual)
*** e104.2      Mon Feb 21 19:56:53 2022
--- e104.E      Mon Feb 21 19:56:53 2022
***************
*** 1 ****
! datamash: invalid trim mean value 0.51 (expected 0 <= X <= 0.5)
--- 1 ----
! datamash: invalid trim mean value 8.50267e-321 (expected 0 <= X <= 0.5)
FAIL tests/datamash-error-msgs.pl (exit status: 1)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]