]> git.ipfire.org Git - thirdparty/glibc.git/commit
Correct timespec implementation [BZ #26232]
authorH.J. Lu <hjl.tools@gmail.com>
Mon, 13 Jul 2020 23:15:56 +0000 (16:15 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Tue, 14 Jul 2020 11:42:58 +0000 (04:42 -0700)
commitf896fc0f2bfc9f3f8df0563a7c99dcbf24bab655
treec141461a47a577e88373c197e10e3c7cbf5a6caa
parent5500cdba4018ddbda7909bc7f4f9718610b43cf0
Correct timespec implementation [BZ #26232]

commit 04deeaa9ea74b0679dfc9d9155a37b6425f19a9f
Author: Lucas A. M. Magalhaes <lamm@linux.ibm.com>
Date:   Fri Jul 10 19:41:06 2020 -0300

    Fix time/tst-cpuclock1 intermitent failures

has 2 issues:

1. It assumes time_t == long which is false on x32.
2. tst-timespec.c is compiled without -fexcess-precision=standard which
generates incorrect results on i686 in support_timespec_check_in_range:

  double ratio = (double)observed_norm / expected_norm;
  return (lower_bound <= ratio && ratio <= upper_bound);

This patch does

1. Compile tst-timespec.c with -fexcess-precision=standard.
2. Replace long with time_t.
3. Replace LONG_MIN and LONG_MAX with TYPE_MINIMUM (time_t) and
TYPE_MAXIMUM (time_t).
support/Makefile
support/timespec.c
support/timespec.h
support/tst-timespec.c