Openwall GNU/*/Linux - a small security-enhanced Linux distro for servers
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Sun, 20 Oct 2019 22:46:43 -0400
From: Rich Felker <dalias@...c.org>
To: musl@...ts.openwall.com
Subject: [PATCH] remaining steps for time64 switchover

The attached patch series on top of present git master (commit
9b2921bea1d5017832e1b45d1fd64220047a9802) should contain all changes
needed for fully working time64 on 32-bit archs, in a form that's
plausibly ready for commit (no makeshift hacks just to get things
demonstrably working). The one omission I'm aware of is what to do
with struct utmpx, which is not actually used at present in any libc
interfaces and thus not part of the ABI surface of libc. That will be
addressed in a separate thread.

Comments and basic testing are welcome at this point. It should be
possible to build for any of the 32-bit archs, but I have only tested
build for a few and only tested execution on i386 and sh.

Some useful checks for anyone wanting to help test, especially on the
more obscure archs:

- Any new failures in libc-test?

- Any failures when subbing the new libc.so/ldso into an existing
  ecosystem of existing (time32) software?

- Anything look odd about time-related types? timeval/timespec members
  at positions that aren't naturally aligned?

- Does software built against new libc headers basically work?

- Does it work with clock set post-2038?

Being that only the final switchover patches are a big step to take,
I'll probably start pushing the earlier patches in this series pretty
soon, but want to give a little time for more eyes on them.

Note that the final switchovers are split out by arch right now,
mainly because that was the way that made sense to create them (sed to
replace arch name, apply to next arch, fix rejects manually) but also
because it helps compare/review them against each other. It would be
possible to squash them together for final merge but I probably won't.

Rich

View attachment "0001-add-time64-symbol-name-redirects-to-public-headers-u.patch" of type "text/plain" (12539 bytes)

View attachment "0002-prepare-struct-sched_param-for-change-in-time_t-defi.patch" of type "text/plain" (1005 bytes)

View attachment "0003-disable-lfs64-aliases-for-remapped-time64-functions.patch" of type "text/plain" (2766 bytes)

View attachment "0004-make-fstatat-fill-in-old-time32-stat-fields-too.patch" of type "text/plain" (2016 bytes)

View attachment "0005-add-time32-ABI-compat-shims-compat-source-tree.patch" of type "text/plain" (50334 bytes)

View attachment "0006-add-time64-redirect-for-and-redirecting-implementati.patch" of type "text/plain" (2361 bytes)

View attachment "0007-add-__dlsym_time64-asm-entry-point-for-all-legacy-32.patch" of type "text/plain" (5143 bytes)

View attachment "0008-add-framework-for-arch-provided-makefile-fragments-c.patch" of type "text/plain" (1706 bytes)

View attachment "0009-switch-i386-to-64-bit-time_t.patch" of type "text/plain" (4641 bytes)

View attachment "0010-switch-sh-to-64-bit-time_t.patch" of type "text/plain" (4009 bytes)

View attachment "0011-switch-arm-to-64-bit-time_t.patch" of type "text/plain" (4606 bytes)

View attachment "0012-switch-m68k-to-64-bit-time_t.patch" of type "text/plain" (4007 bytes)

View attachment "0013-switch-microblaze-to-64-bit-time_t.patch" of type "text/plain" (4324 bytes)

View attachment "0014-switch-mips-to-64-bit-time_t.patch" of type "text/plain" (5204 bytes)

View attachment "0015-switch-mipsn32-to-64-bit-time_t.patch" of type "text/plain" (5290 bytes)

View attachment "0016-switch-or1k-to-64-bit-time_t.patch" of type "text/plain" (4093 bytes)

View attachment "0017-switch-powerpc-to-64-bit-time_t.patch" of type "text/plain" (4086 bytes)

Powered by blists - more mailing lists

Your e-mail address:

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.