This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
On 04/19/2018 06:04 AM, Albert ARIBAUD wrote:
One reason to have a separated implementation is that difftime.c has quite complex logic covering many different implementations of time_t (signed, unsigned, with padding bits) whereas here we only have signed 64-bit integer.
difftime.c is a general implementation that works regardless of the widths of time_t, int, long, etc. You tried reinventing its wheel but the reinvention was buggy. Although you could try reinventing its wheel again, I am afraid there will be another bug with reasonably high probability. Instead, let's reuse the wheel that we already have; that will be more likely to be correct, and will be easier to maintain in the future.
It's not just difftime.c. The same argument applies to mktime, etc. We shouldn't have two copies of these functions' source code: we should have just one generic copy, and then compile it once for 64-bit __time64_t and once for 32-bit time_t. The generic code already works for both 64-bit and 32-bit time_t, so it should also work for 64-bit __time64_t.
At bottom I am repeating the comment that Joseph Myers made here: https://sourceware.org/ml/libc-alpha/2018-04/msg00376.html
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |