Hi Adhemerval, > This patchset add support for 64 bit time on ABIs which only support > 32 bit time. It is done through a new build flags, _TIME_BITS=64, > which is supported only when Long File Support is also used > (_FILE_OFFSET_BITS=64). The new flag redefine the required structures > and redirected the required symbols to newer exported ones. > > However, different then LFS support, the new 64 bit time_t symbols > are only exported for the ABI that require them. ABIs that provides > 64 bit time as the default ABI as unaffected. > > On Linux, to fully support 64 bit time_t it requires a minimum of > kernel v5.1 due the newer syscalls. > > To make the patch review easier, it is divided in 5 subparts: > > 1. Patches from 01/52 to 14/52 are newer tests and infrastructure > changes that are independent of 64 bit time support. > > 2. Patches from 15/52 to 23/52 add the 64 bit time support on > utmp/utmpx/lastlog and it affects *all* the ABIs with the > exception of s390. > > 3. Patches from 24/52 to 41/52 are the one that adjust the exported > API, add some specific newer symbols (glob, ftw, and fts) and > enable the _TIME_BITS on the installed headers. > > 4. Patches from 42/52 to 44/52 enables basic test coverage. > Although it does not cover all the newer symbol redirection, the idea > is to use Lukasz patches and newer tests to cover all the symbols for > 2.34 release. There are still floating some patches, which would allow changing time on target machines (usually in VM). I hope to get them pulled soon. > > 5. Patches from 45/52 to 52/52 make glibc itself to use the newer > 64 bit symbol internally and on installed programs. > > I checked for i686-linux-gnu running on a x86_64 5.4 kernel, > powerpc-linux-gnu running on ppc64 5.10 kernel, and on > arm-linux-gnueabihf running on arm64 4.12.13 kernel. As expected, > the arm shows some tests failures due the missing kernel support: > Big thanks for preparing this patch set - this is a huge step to have 64 bit time_t support on ports with __TIMESIZE != 64 and __WORDSIZE == 32 > FAIL: io/tst-utimensat-time64 > FAIL: misc/tst-futimens-time64 > FAIL: misc/tst-futimes-time64 > FAIL: misc/tst-lutimes-time64 > FAIL: misc/tst-utime-time64 > FAIL: misc/tst-utimes-time64 > > Adhemerval Zanella (50): > io: Use temporary directory and file for ftwtest-sh > linux: Add futimes test > linux: Add lutimes test > time: Add getitimer and setitimer basic tests > time: Add gmtime/gmtime_r tests > time: Add timegm/timelocal basic tests > time: Add basic timespec_get tests > time: Add 64 bit tests for getdate / getdate_r > io: Add basic tests for utimensat > posix: Add wait3 tests > linux: mips: Split libpthread.abilist in n32 and n64 > linux: mips: Split librt.abilist in n32 and n64 > linux: mips: Split libanl.abilist in n32 and n64 > linux: s390: Add libanl.abilist in s390 and s390x > login: Consolidate utmp and utmpx headers > login: Move gnu utmpx to default implementation > Consolidate and simplify internal utmp definitions > support: Add 'touch' command > Add tests-container-internal rules > login: Add 64-bit time support to utmp/utmpx > linux: Add pwrite64_nocancel > login: Use 64-bit time on struct lastlog [BZ #25844] > Remove __WORDSIZE_TIME64_COMPAT32 > linux: Add fallback for 64-bit time_t SO_{RCV,SND}TIMEO > linux: Add fallback for 64-bit time_t SO_TIMESTAMP{NS} > linux: Add recvvmsg fallback for 64-bit time_t SO_TIMESTAMP{NS} > y2038: Add __USE_TIME_BITS64 support for time_t > y2038: Add __USE_TIME_BITS64 support for struct timeval > y2038: Add __USE_TIME_BITS64 support for struct timespec > y2038: Add __USE_TIME_BITS64 support for struct utimbuf > y2038: linux: Add __USE_TIME_BITS64 support for struct timex > y2038: Use a common definition for semid_ds > y2038: Use a common definition for shmid_ds > y2038: Add __USE_TIME_BITS64 support for socket-constants.h > time: Add 64 bit time support for getdate > y2038: Add support for 64 bit time on legacy ABIs > posix: Add glob64 with 64 bit time_t support > io: Add fts64 with 64 bit time_t support > io: Add ftw64 with 64 bit time_t support > libsupport: Add 64 bit time_t support for time functions > libsupport: Add 64 bit time_t support for stat functions > y2038: Add test coverage > Use 64 bit time_t stat internally > debug: build pcprofiledump with LFS and 64 bit time support > elf: Use LFS and 64 bit time_t for installed programs > iconv: Use LFS and 64 bit time_t for installed programs > locale: Use LFS and 64 bit time_t for installed programs > nss: Use LFS and 64 bit time_t for installed programs > posix: Use LFS and 64 bit time_t for installed programs > timezone: Use LFS and 64 bit time_t for installed programs > > Lukasz Majewski (2): > y2038: Use a common definition for stat > y2038: Use a common definition for msqid_ds > > Makeconfig | 14 + > Makefile | 4 +- > Makerules | 21 +- > NEWS | 5 + > Rules | 12 +- > .../updwtmp.c => bits/types/struct_lastlog.h | 26 +- > bits/types/struct_utmp.h | 53 ++ > bits/types/struct_utmpx.h | 54 +++ > bits/utmp.h | 48 +- > .../sysv/linux/s390/bits => bits}/utmpx.h | 34 +- > bits/wordsize.h | 6 - > csu/check_fds.c | 8 +- > debug/Makefile | 1 + > elf/Makefile | 13 +- > elf/dl-load.c | 8 +- > elf/dl-misc.c | 4 +- > elf/dl-profile.c | 4 +- > iconv/Makefile | 8 + > iconv/gconv_cache.c | 4 +- > include/dirent.h | 2 +- > include/features-time64.h | 1 + > include/features.h | 2 + > include/file_change_detection.h | 6 +- > include/fts.h | 51 ++ > include/ftw.h | 18 + > include/glob.h | 28 ++ > include/sys/socket.h | 5 + > include/sys/stat.h | 2 +- > include/time.h | 12 +- > include/utmp.h | 5 +- > include/utmpx.h | 1 + > inet/rcmd.c | 6 +- > intl/loadmsgcat.c | 4 +- > io/Makefile | 28 +- > io/file_change_detection.c | 16 +- > io/fts.h | 43 +- > io/fts64-time64.c | 35 ++ > io/ftw.c | 5 +- > io/ftw.h | 46 +- > .../s390-32/getutent_r.c => io/ftw64-time64.c | 34 +- > io/ftwtest-sh | 246 +++++----- > io/ftwtest-time64.c | 1 + > io/getdirname.c | 6 +- > io/sys/poll.h | 11 + > io/sys/stat.h | 113 ++++- > io/tst-fts-time64.c | 1 + > io/tst-futimesat-time64.c | 4 + > io/tst-futimesat.c | 47 +- > io/tst-stat-time64.c | 102 ++++ > io/tst-utimensat-time64.c | 2 + > io/tst-utimensat.c | 115 +++++ > io/utime.h | 16 + > libio/filedoalloc.c | 2 +- > libio/fileops.c | 8 +- > libio/oldfileops.c | 2 +- > libio/wfileops.c | 2 +- > locale/Makefile | 9 + > locale/loadarchive.c | 8 +- > locale/loadlocale.c | 6 +- > login/Makefile | 16 +- > login/Versions | 26 + > login/getutent.c | 7 +- > login/getutent_r.c | 48 +- > login/getutid.c | 7 +- > login/getutid_r.c | 33 +- > login/getutline.c | 7 +- > login/getutline_r.c | 33 +- > login/getutmp.c | 42 +- > login/getutmpx.c | 35 +- > login/getutxent.c | 9 +- > login/getutxid.c | 9 +- > login/getutxline.c | 9 +- > .../getutent.c => login/lastlog-compat.h | 29 +- > login/lastlog_read.c | 78 +++ > login/lastlog_write.c | 64 +++ > login/login.c | 10 +- > .../linux/s390/s390-32 => login}/login32.c | 16 +- > login/pututxline.c | 9 +- > login/tst-lastlog.c | 80 ++++ > login/tst-lastlog.root/tst-lastlog.script | 6 + > login/tst-utmp-default.c | 292 ++++++++++++ > .../tst-utmp-default.script | 10 + > login/tst-utmp32.c | 318 ++++++++++++ > login/tst-utmp32.root/tst-utmp32.script | 7 + > login/updwtmp.c | 32 +- > login/updwtmpx.c | 9 +- > .../utmp-convert.h => login/utmp-convert.c | 59 +-- > .../s390-32/getutmp.c => login/utmp-convert.h | 39 +- > .../sysv/linux/updwtmp.c => login/utmp-path.h | 42 +- > login/utmp-private.h | 24 +- > login/utmp.h | 11 + > login/utmp32.c | 247 ++++++++++ > .../linux/s390/s390-32 => login}/utmp32.h | 9 + > login/utmp_file.c | 451 > +++++++++++------- login/utmpname.c | > 8 + {sysdeps/gnu => login}/utmpx.h | 0 > login/utmpx32.c | 112 +++++ > .../linux/s390/s390-32 => login}/utmpx32.h | 6 +- > manual/creature.texi | 44 ++ > manual/users.texi | 4 +- > misc/Makefile | 2 + > misc/sys/select.h | 27 ++ > misc/tst-pselect-time64.c | 1 + > nptl/Makefile | 3 + > nptl/tst-cancel4_2-time64.c | 1 + > nscd/nscd_helper.c | 4 +- > nss/Makefile | 11 +- > nss/nss_database.c | 4 +- > posix/Makefile | 10 +- > posix/glob.c | 46 +- > posix/glob.h | 22 + > posix/glob64-lstat-compat.c | 3 +- > posix/glob64-time64.c | 49 ++ > .../getutid.c => posix/globfree64-time64.c | 22 +- > posix/sched.h | 11 +- > posix/sys/wait.h | 20 + > posix/tst-gnuglob64-time64.c | 7 + > posix/tst-sched_rr_get_interval-time64.c | 1 + > posix/tst-wait-skeleton.c | 209 ++++++++ > posix/tst-wait3-time64.c | 1 + > .../s390-32/updwtmpx.c => posix/tst-wait3.c | 18 +- > posix/tst-wait4-time64.c | 1 + > posix/tst-wait4.c | 193 +------- > resolv/netdb.h | 11 + > resource/sys/resource.h | 10 + > rt/Makefile | 9 + > rt/aio.h | 15 +- > rt/mqueue.h | 22 + > rt/tst-aio6-time64.c | 1 + > rt/tst-cpuclock2-time64.c | 1 + > rt/tst-cpuclock2.c | 9 +- > rt/tst-mqueue1-time64.c | 1 + > rt/tst-mqueue2-time64.c | 1 + > rt/tst-mqueue4-time64.c | 1 + > rt/tst-mqueue8-time64.c | 1 + > rt/tst-timer4-time64.c | 1 + > signal/signal.h | 13 + > socket/sys/socket.h | 11 + > support/Makefile | 8 + > support/support-xfstat-time64.c | 32 ++ > .../support-xstat-time64.c | 28 +- > support/test-container.c | 11 + > support/timespec-add-time64.c | 27 ++ > support/timespec-add.c | 2 +- > support/timespec-sub-time64.c | 27 ++ > support/timespec-sub.c | 2 +- > support/timespec-time64.c | 40 ++ > support/timespec.c | 9 +- > support/timespec.h | 52 +- > .../xclock_gettime_time64.c | 22 +- > support/xlstat-time64.c | 32 ++ > support/xtime.h | 5 + > support/xunistd.h | 13 + > sysdeps/aarch64/bits/wordsize.h | 2 - > .../getutxent.c => generic/features-time64.h} | 17 +- > sysdeps/generic/paths.h | 12 +- > sysdeps/generic/time64-compat.h | 3 + > sysdeps/generic/utmp-compat.h | 3 + > sysdeps/generic/utmp-equal.h | 42 -- > sysdeps/gnu/getutmpx.c | 1 - > sysdeps/gnu/glob64-lstat-compat.c | 3 +- > sysdeps/gnu/utmp_file.c | 31 -- > sysdeps/mach/hurd/i386/libc.abilist | 17 + > sysdeps/mach/hurd/i386/libutil.abilist | 1 + > sysdeps/mips/bits/wordsize.h | 6 - > sysdeps/nptl/pthread.h | 119 +++++ > sysdeps/posix/dl-fileid.h | 4 +- > sysdeps/posix/euidaccess.c | 4 +- > sysdeps/posix/getaddrinfo.c | 21 +- > sysdeps/posix/getcwd.c | 15 +- > sysdeps/posix/pathconf.c | 4 +- > sysdeps/posix/sysconf.c | 4 +- > sysdeps/posix/tempname.c | 8 +- > sysdeps/powerpc/powerpc32/bits/wordsize.h | 2 - > sysdeps/powerpc/powerpc64/bits/wordsize.h | 2 - > sysdeps/pthread/Makefile | 10 + > sysdeps/pthread/semaphore.h | 25 + > sysdeps/pthread/threads.h | 33 ++ > sysdeps/pthread/tst-abstime-time64.c | 1 + > sysdeps/pthread/tst-cnd-timedwait-time64.c | 1 + > sysdeps/pthread/tst-cond11-time64.c | 1 + > sysdeps/pthread/tst-join14-time64.c | 1 + > sysdeps/pthread/tst-mtx-timedlock-time64.c | 1 + > sysdeps/pthread/tst-rwlock14-time64.c | 1 + > sysdeps/pthread/tst-sem5-time64.c | 1 + > sysdeps/pthread/tst-thrd-sleep-time64.c | 1 + > sysdeps/riscv/bits/wordsize.h | 2 - > sysdeps/s390/s390-32/bits/wordsize.h | 2 - > sysdeps/s390/s390-64/bits/wordsize.h | 2 - > sysdeps/sparc/sparc32/bits/wordsize.h | 2 - > sysdeps/sparc/sparc64/bits/wordsize.h | 2 - > sysdeps/unix/sysv/linux/Makefile | 22 +- > sysdeps/unix/sysv/linux/Versions | 125 +++++ > sysdeps/unix/sysv/linux/aarch64/libc.abilist | 17 + > .../unix/sysv/linux/aarch64/libutil.abilist | 1 + > sysdeps/unix/sysv/linux/alpha/bits/wordsize.h | 1 - > sysdeps/unix/sysv/linux/alpha/libc.abilist | 17 + > sysdeps/unix/sysv/linux/alpha/libutil.abilist | 1 + > sysdeps/unix/sysv/linux/arc/libc.abilist | 17 + > sysdeps/unix/sysv/linux/arc/libutil.abilist | 1 + > sysdeps/unix/sysv/linux/arm/be/libanl.abilist | 1 + > sysdeps/unix/sysv/linux/arm/be/libc.abilist | 78 +++ > .../unix/sysv/linux/arm/be/libpthread.abilist | 14 + > sysdeps/unix/sysv/linux/arm/be/librt.abilist | 5 + > .../unix/sysv/linux/arm/be/libutil.abilist | 1 + > sysdeps/unix/sysv/linux/arm/le/libanl.abilist | 1 + > sysdeps/unix/sysv/linux/arm/le/libc.abilist | 78 +++ > .../unix/sysv/linux/arm/le/libpthread.abilist | 14 + > sysdeps/unix/sysv/linux/arm/le/librt.abilist | 5 + > .../unix/sysv/linux/arm/le/libutil.abilist | 1 + > sysdeps/unix/sysv/linux/arm/time64-compat.h | 2 + > sysdeps/unix/sysv/linux/bits/msq.h | 1 + > sysdeps/unix/sysv/linux/bits/sem.h | 1 + > sysdeps/unix/sysv/linux/bits/shm.h | 1 + > .../unix/sysv/linux/bits/socket-constants.h | 47 +- > sysdeps/unix/sysv/linux/bits/struct_stat.h | 51 +- > .../linux/bits/struct_stat_time64_helper.h | 63 +++ > sysdeps/unix/sysv/linux/bits/time.h | 10 + > sysdeps/unix/sysv/linux/bits/timex.h | 31 ++ > .../sysv/linux/bits/types/struct_msqid64_ds.h | 10 +- > .../bits/types/struct_msqid64_ds_helper.h | 28 ++ > .../sysv/linux/bits/types/struct_msqid_ds.h | 12 +- > .../sysv/linux/bits/types/struct_semid64_ds.h | 5 +- > .../types/struct_semid64_ds_helper.h} | 23 +- > .../sysv/linux/bits/types/struct_semid_ds.h | 10 +- > .../sysv/linux/bits/types/struct_shmid64_ds.h | 9 +- > .../bits/types/struct_shmid64_ds_helper.h} | 25 +- > .../sysv/linux/bits/types/struct_shmid_ds.h | 10 +- > .../unix/sysv/linux/convert_scm_timestamps.c | 96 ++++ > sysdeps/unix/sysv/linux/csky/libanl.abilist | 1 + > sysdeps/unix/sysv/linux/csky/libc.abilist | 78 +++ > .../unix/sysv/linux/csky/libpthread.abilist | 14 + > sysdeps/unix/sysv/linux/csky/librt.abilist | 5 + > sysdeps/unix/sysv/linux/csky/libutil.abilist | 1 + > sysdeps/unix/sysv/linux/csky/time64-compat.h | 2 + > sysdeps/unix/sysv/linux/fdopendir.c | 4 +- > sysdeps/unix/sysv/linux/features-time64.h | 37 ++ > sysdeps/unix/sysv/linux/fexecve.c | 4 +- > sysdeps/unix/sysv/linux/getsockopt.c | 79 ++- > sysdeps/unix/sysv/linux/glob-lstat-compat.c | 6 +- > sysdeps/unix/sysv/linux/glob.c | 6 + > sysdeps/unix/sysv/linux/glob64-lstat-compat.c | 12 +- > sysdeps/unix/sysv/linux/glob64-time64.c | 44 ++ > sysdeps/unix/sysv/linux/glob64.c | 8 +- > .../getutid_r.c => globfree64-time64.c} | 30 +- > .../sysv/linux/hppa/bits/socket-constants.h | 36 +- > .../linux/hppa/bits/types/struct_msqid_ds.h | 12 +- > .../linux/hppa/bits/types/struct_semid_ds.h | 4 + > .../linux/hppa/bits/types/struct_shmid_ds.h | 10 +- > sysdeps/unix/sysv/linux/hppa/libanl.abilist | 1 + > sysdeps/unix/sysv/linux/hppa/libc.abilist | 78 +++ > .../unix/sysv/linux/hppa/libpthread.abilist | 14 + > sysdeps/unix/sysv/linux/hppa/librt.abilist | 5 + > sysdeps/unix/sysv/linux/hppa/libutil.abilist | 1 + > .../sysv/linux/hppa/socket-constants-time64.h | 35 ++ > sysdeps/unix/sysv/linux/hppa/time64-compat.h | 2 + > sysdeps/unix/sysv/linux/i386/Makefile | 2 + > sysdeps/unix/sysv/linux/i386/libanl.abilist | 1 + > sysdeps/unix/sysv/linux/i386/libc.abilist | 78 +++ > .../unix/sysv/linux/i386/libpthread.abilist | 14 + > sysdeps/unix/sysv/linux/i386/librt.abilist | 5 + > sysdeps/unix/sysv/linux/i386/libutil.abilist | 1 + > sysdeps/unix/sysv/linux/i386/time64-compat.h | 2 + > sysdeps/unix/sysv/linux/ia64/libc.abilist | 17 + > sysdeps/unix/sysv/linux/ia64/libutil.abilist | 1 + > sysdeps/unix/sysv/linux/include/sys/msg.h | 2 - > sysdeps/unix/sysv/linux/include/sys/shm.h | 2 - > sysdeps/unix/sysv/linux/include/sys/timex.h | 2 + > .../unix/sysv/linux/m68k/bits/struct_stat.h | 50 +- > .../sysv/linux/m68k/coldfire/libanl.abilist | 1 + > .../sysv/linux/m68k/coldfire/libc.abilist | 78 +++ > .../linux/m68k/coldfire/libpthread.abilist | 14 + > .../sysv/linux/m68k/coldfire/librt.abilist | 5 + > .../sysv/linux/m68k/coldfire/libutil.abilist | 1 + > .../sysv/linux/m68k/m680x0/libanl.abilist | 1 + > .../unix/sysv/linux/m68k/m680x0/libc.abilist | 78 +++ > .../sysv/linux/m68k/m680x0/libpthread.abilist | 14 + > .../unix/sysv/linux/m68k/m680x0/librt.abilist | 5 + > .../sysv/linux/m68k/m680x0/libutil.abilist | 1 + > sysdeps/unix/sysv/linux/m68k/time64-compat.h | 2 + > .../sysv/linux/microblaze/be/libanl.abilist | 1 + > .../sysv/linux/microblaze/be/libc.abilist | 78 +++ > .../linux/microblaze/be/libpthread.abilist | 14 + > .../sysv/linux/microblaze/be/librt.abilist | 5 + > .../sysv/linux/microblaze/be/libutil.abilist | 1 + > .../sysv/linux/microblaze/bits/struct_stat.h | 48 +- > .../sysv/linux/microblaze/le/libanl.abilist | 1 + > .../sysv/linux/microblaze/le/libc.abilist | 78 +++ > .../linux/microblaze/le/libpthread.abilist | 14 + > .../sysv/linux/microblaze/le/librt.abilist | 5 + > .../sysv/linux/microblaze/le/libutil.abilist | 1 + > .../sysv/linux/microblaze/time64-compat.h | 2 + > .../sysv/linux/mips/bits/socket-constants.h | 36 +- > .../unix/sysv/linux/mips/bits/struct_stat.h | 89 ++-- > .../linux/mips/bits/types/struct_msqid_ds.h | 18 +- > .../linux/mips/bits/types/struct_semid_ds.h | 4 + > .../linux/mips/bits/types/struct_shmid_ds.h | 14 +- > .../sysv/linux/mips/mips32/fpu/libc.abilist | 78 +++ > .../sysv/linux/mips/mips32/libanl.abilist | 1 + > .../sysv/linux/mips/mips32/libpthread.abilist | 14 + > .../unix/sysv/linux/mips/mips32/librt.abilist | 5 + > .../sysv/linux/mips/mips32/libutil.abilist | 1 + > .../sysv/linux/mips/mips32/nofpu/libc.abilist | 78 +++ > .../sysv/linux/mips/mips32/time64-compat.h | 2 + > .../sysv/linux/mips/mips64/libutil.abilist | 1 + > .../sysv/linux/mips/mips64/n32/libanl.abilist | 5 + > .../sysv/linux/mips/mips64/n32/libc.abilist | 78 +++ > .../linux/mips/mips64/n32/libpthread.abilist | 252 ++++++++++ > .../sysv/linux/mips/mips64/n32/librt.abilist | 42 ++ > .../linux/mips/mips64/n32/time64-compat.h | 2 + > .../mips/mips64/{ => n64}/libanl.abilist | 0 > .../sysv/linux/mips/mips64/n64/libc.abilist | 17 + > .../mips/mips64/{ => n64}/libpthread.abilist | 0 > .../linux/mips/mips64/{ => n64}/librt.abilist | 0 > .../sysv/linux/mips/socket-constants-time64.h | 35 ++ > sysdeps/unix/sysv/linux/nios2/libanl.abilist | 1 + > sysdeps/unix/sysv/linux/nios2/libc.abilist | 78 +++ > .../unix/sysv/linux/nios2/libpthread.abilist | 14 + > sysdeps/unix/sysv/linux/nios2/librt.abilist | 5 + > sysdeps/unix/sysv/linux/nios2/libutil.abilist | 1 + > sysdeps/unix/sysv/linux/nios2/time64-compat.h | 2 + > sysdeps/unix/sysv/linux/not-cancel.h | 4 + > sysdeps/unix/sysv/linux/oldglob.c | 11 +- > sysdeps/unix/sysv/linux/opendir.c | 7 +- > sysdeps/unix/sysv/linux/pathconf.c | 5 +- > sysdeps/unix/sysv/linux/paths.h | 10 +- > .../linux/powerpc/bits/socket-constants.h | 36 +- > .../sysv/linux/powerpc/bits/struct_stat.h | 52 +- > .../powerpc/bits/types/struct_msqid_ds.h | 12 +- > .../powerpc/bits/types/struct_semid_ds.h | 10 +- > .../powerpc/bits/types/struct_shmid_ds.h | 10 +- > .../unix/sysv/linux/powerpc/bits/wordsize.h | 2 - > .../linux/powerpc/powerpc32/fpu/libc.abilist | 78 +++ > .../linux/powerpc/powerpc32/libanl.abilist | 1 + > .../powerpc/powerpc32/libpthread.abilist | 14 + > .../linux/powerpc/powerpc32/librt.abilist | 5 + > .../linux/powerpc/powerpc32/libutil.abilist | 1 + > .../powerpc/powerpc32/nofpu/libc.abilist | 78 +++ > .../linux/powerpc/powerpc32/time64-compat.h | 2 + > .../linux/powerpc/powerpc64/be/libc.abilist | 17 + > .../powerpc/powerpc64/be/libutil.abilist | 1 + > .../linux/powerpc/powerpc64/le/libc.abilist | 17 + > .../powerpc/powerpc64/le/libutil.abilist | 1 + > .../linux/powerpc/socket-constants-time64.h | 35 ++ > .../s390-32/login.c => pwrite64_nocancel.c} | 30 +- > sysdeps/unix/sysv/linux/recvmmsg.c | 17 +- > sysdeps/unix/sysv/linux/recvmsg.c | 23 +- > .../unix/sysv/linux/riscv/rv32/libc.abilist | 17 + > .../sysv/linux/riscv/rv32/libutil.abilist | 1 + > .../unix/sysv/linux/riscv/rv64/libc.abilist | 17 + > .../sysv/linux/riscv/rv64/libutil.abilist | 1 + > .../unix/sysv/linux/s390/bits/struct_utmp.h | 51 ++ > .../sysv/linux/s390/bits/struct_utmpx.h} | 65 +-- > sysdeps/unix/sysv/linux/s390/bits/utmp.h | 127 ----- > .../sysv/linux/s390/lastlog-compat.h} | 34 +- > .../unix/sysv/linux/s390/s390-32/getutxline.c | 30 -- > .../sysv/linux/s390/s390-32/libanl.abilist | 5 + > .../unix/sysv/linux/s390/s390-32/libc.abilist | 63 +++ > .../linux/s390/s390-32/libpthread.abilist | 14 + > .../sysv/linux/s390/s390-32/librt.abilist | 5 + > .../unix/sysv/linux/s390/s390-32/pututxline.c | 30 -- > .../sysv/linux/s390/s390-32/time64-compat.h | 2 + > .../sysv/linux/s390/s390-32/utmp-compat.h | 2 +- > sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c | 184 ------- > .../sysv/linux/s390/s390-32/utmpx-convert.h | 85 ---- > .../unix/sysv/linux/s390/s390-32/utmpx32.c | 139 ------ > .../linux/s390/{ => s390-64}/libanl.abilist | 0 > .../unix/sysv/linux/s390/s390-64/libc.abilist | 2 + > .../sysv/linux/s390/s390-64/utmp-compat.h | 3 + > sysdeps/unix/sysv/linux/semctl.c | 1 - > sysdeps/unix/sysv/linux/setsockopt.c | 83 +++- > sysdeps/unix/sysv/linux/sh/be/libanl.abilist | 1 + > sysdeps/unix/sysv/linux/sh/be/libc.abilist | 78 +++ > .../unix/sysv/linux/sh/be/libpthread.abilist | 14 + > sysdeps/unix/sysv/linux/sh/be/librt.abilist | 5 + > sysdeps/unix/sysv/linux/sh/be/libutil.abilist | 1 + > sysdeps/unix/sysv/linux/sh/le/libanl.abilist | 1 + > sysdeps/unix/sysv/linux/sh/le/libc.abilist | 78 +++ > .../unix/sysv/linux/sh/le/libpthread.abilist | 14 + > sysdeps/unix/sysv/linux/sh/le/librt.abilist | 5 + > sysdeps/unix/sysv/linux/sh/le/libutil.abilist | 1 + > sysdeps/unix/sysv/linux/sh/time64-compat.h | 2 + > .../unix/sysv/linux/socket-constants-time64.h | 35 ++ > .../sysv/linux/sparc/bits/socket-constants.h | 36 +- > .../linux/sparc/bits/types/struct_msqid_ds.h | 12 +- > .../linux/sparc/bits/types/struct_semid_ds.h | 10 +- > .../linux/sparc/bits/types/struct_shmid_ds.h | 10 +- > sysdeps/unix/sysv/linux/sparc/bits/wordsize.h | 2 - > .../linux/sparc/socket-constants-time64.h | 35 ++ > .../sysv/linux/sparc/sparc32/libanl.abilist | 1 + > .../sysv/linux/sparc/sparc32/libc.abilist | 78 +++ > .../linux/sparc/sparc32/libpthread.abilist | 14 + > .../sysv/linux/sparc/sparc32/librt.abilist | 5 + > .../sysv/linux/sparc/sparc32/libutil.abilist | 1 + > .../sysv/linux/sparc/sparc32/time64-compat.h | 2 + > .../sysv/linux/sparc/sparc64/libc.abilist | 17 + > .../sysv/linux/sparc/sparc64/libutil.abilist | 1 + > sysdeps/unix/sysv/linux/struct_stat_time64.h | 59 +-- > sysdeps/unix/sysv/linux/sys/timerfd.h | 22 + > sysdeps/unix/sysv/linux/sys/timex.h | 28 +- > sysdeps/unix/sysv/linux/tst-futimens-time64.c | 2 + > sysdeps/unix/sysv/linux/tst-futimens.c | 8 +- > sysdeps/unix/sysv/linux/tst-futimes-time64.c | 2 + > sysdeps/unix/sysv/linux/tst-futimes.c | 85 ++++ > sysdeps/unix/sysv/linux/tst-lutimes-time64.c | 2 + > sysdeps/unix/sysv/linux/tst-lutimes.c | 95 ++++ > sysdeps/unix/sysv/linux/tst-ppoll-time64.c | 1 + > sysdeps/unix/sysv/linux/tst-timerfd-time64.c | 1 + > sysdeps/unix/sysv/linux/tst-utime-time64.c | 2 + > sysdeps/unix/sysv/linux/tst-utime.c | 6 +- > sysdeps/unix/sysv/linux/tst-utimes-time64.c | 2 + > sysdeps/unix/sysv/linux/tst-utimes.c | 6 +- > sysdeps/unix/sysv/linux/ttyname.c | 17 +- > sysdeps/unix/sysv/linux/ttyname.h | 10 +- > sysdeps/unix/sysv/linux/ttyname_r.c | 16 +- > sysdeps/unix/sysv/linux/utmp-path.h | 54 +++ > sysdeps/unix/sysv/linux/utmp_file.c | 37 -- > .../unix/sysv/linux/x86/bits/struct_stat.h | 90 ++-- > .../linux/x86/bits/types/struct_semid_ds.h | 4 + > .../unix/sysv/linux/x86_64/64/libc.abilist | 17 + > .../unix/sysv/linux/x86_64/64/libutil.abilist | 1 + > .../unix/sysv/linux/x86_64/x32/libc.abilist | 17 + > .../sysv/linux/x86_64/x32/libutil.abilist | 1 + > sysdeps/wordsize-32/bits/wordsize.h | 1 - > sysdeps/wordsize-64/bits/wordsize.h | 1 - > sysdeps/x86/bits/wordsize.h | 3 - > sysvipc/Makefile | 2 + > sysvipc/ftok.c | 4 +- > sysvipc/sys/msg.h | 10 + > sysvipc/sys/sem.h | 21 + > sysvipc/sys/shm.h | 10 + > sysvipc/test-sysvmsg-time64.c | 1 + > sysvipc/test-sysvsem-time64.c | 1 + > sysvipc/test-sysvshm-time64.c | 1 + > time/Makefile | 18 +- > time/bits/types/struct_timespec.h | 12 +- > time/bits/types/struct_timeval.h | 5 + > time/bits/types/time_t.h | 4 + > time/getdate.c | 22 +- > time/sys/time.h | 71 +++ > time/time.h | 128 ++++- > time/tst-adjtime-time64.c | 1 + > time/tst-clock-time64.c | 1 + > time/tst-clock2-time64.c | 1 + > time/tst-clock_nanosleep-time64.c | 1 + > time/tst-cpuclock1-time64.c | 1 + > time/tst-ctime-time64.c | 1 + > time/tst-ctime.c | 16 + > time/tst-difftime-time64.c | 1 + > time/tst-getdate.c | 147 +++--- > time/tst-gmtime-time64.c | 1 + > time/tst-gmtime.c | 125 +++++ > time/tst-itimer-time64.c | 1 + > time/tst-itimer.c | 175 +++++++ > time/tst-mktime4-time64.c | 1 + > time/tst-timegm-time64.c | 1 + > time/tst-timegm.c | 95 ++++ > time/tst-timespec_get-time64.c | 1 + > time/tst-timespec_get.c | 40 ++ > time/tst-y2039-time64.c | 1 + > time/tst-y2039.c | 10 + > time/tzfile.c | 6 +- > timezone/Makefile | 1 + > 463 files changed, 9068 insertions(+), 2386 deletions(-) > rename sysdeps/unix/sysv/linux/s390/s390-32/updwtmp.c => > bits/types/struct_lastlog.h (64%) create mode 100644 > bits/types/struct_utmp.h create mode 100644 bits/types/struct_utmpx.h > rename {sysdeps/unix/sysv/linux/s390/bits => bits}/utmpx.h (64%) > create mode 100644 include/features-time64.h > create mode 100644 include/utmpx.h > create mode 100644 io/fts64-time64.c > rename sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c => > io/ftw64-time64.c (55%) create mode 100644 io/ftwtest-time64.c > create mode 100644 io/tst-fts-time64.c > create mode 100644 io/tst-futimesat-time64.c > create mode 100644 io/tst-stat-time64.c > create mode 100644 io/tst-utimensat-time64.c > create mode 100644 io/tst-utimensat.c > rename sysdeps/unix/sysv/linux/s390/s390-32/getutent.c => > login/lastlog-compat.h (66%) create mode 100644 login/lastlog_read.c > create mode 100644 login/lastlog_write.c > rename {sysdeps/unix/sysv/linux/s390/s390-32 => login}/login32.c > (72%) create mode 100644 login/tst-lastlog.c > create mode 100644 login/tst-lastlog.root/tst-lastlog.script > create mode 100644 login/tst-utmp-default.c > create mode 100644 > login/tst-utmp-default.root/tst-utmp-default.script create mode > 100644 login/tst-utmp32.c create mode 100644 > login/tst-utmp32.root/tst-utmp32.script rename > sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h => > login/utmp-convert.c (58%) rename > sysdeps/unix/sysv/linux/s390/s390-32/getutmp.c => > login/utmp-convert.h (59%) rename sysdeps/unix/sysv/linux/updwtmp.c > => login/utmp-path.h (50%) create mode 100644 login/utmp32.c rename > {sysdeps/unix/sysv/linux/s390/s390-32 => login}/utmp32.h (78%) rename > {sysdeps/gnu => login}/utmpx.h (100%) create mode 100644 > login/utmpx32.c rename {sysdeps/unix/sysv/linux/s390/s390-32 => > login}/utmpx32.h (93%) create mode 100644 misc/tst-pselect-time64.c > create mode 100644 nptl/tst-cancel4_2-time64.c create mode 100644 > posix/glob64-time64.c rename > sysdeps/unix/sysv/linux/s390/s390-32/getutid.c => > posix/globfree64-time64.c (67%) create mode 100644 > posix/tst-gnuglob64-time64.c create mode 100644 > posix/tst-sched_rr_get_interval-time64.c create mode 100644 > posix/tst-wait-skeleton.c create mode 100644 posix/tst-wait3-time64.c > rename sysdeps/unix/sysv/linux/s390/s390-32/updwtmpx.c => > posix/tst-wait3.c (66%) create mode 100644 posix/tst-wait4-time64.c > create mode 100644 rt/tst-aio6-time64.c create mode 100644 > rt/tst-cpuclock2-time64.c create mode 100644 rt/tst-mqueue1-time64.c > create mode 100644 rt/tst-mqueue2-time64.c > create mode 100644 rt/tst-mqueue4-time64.c > create mode 100644 rt/tst-mqueue8-time64.c > create mode 100644 rt/tst-timer4-time64.c > create mode 100644 support/support-xfstat-time64.c > rename sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c => > support/support-xstat-time64.c (63%) create mode 100644 > support/timespec-add-time64.c create mode 100644 > support/timespec-sub-time64.c create mode 100644 > support/timespec-time64.c rename > sysdeps/unix/sysv/linux/s390/s390-32/getutxid.c => > support/xclock_gettime_time64.c (66%) create mode 100644 > support/xlstat-time64.c rename > sysdeps/{unix/sysv/linux/s390/s390-32/getutxent.c => > generic/features-time64.h} (66%) create mode 100644 > sysdeps/generic/time64-compat.h create mode 100644 > sysdeps/generic/utmp-compat.h delete mode 100644 > sysdeps/generic/utmp-equal.h delete mode 100644 > sysdeps/gnu/getutmpx.c delete mode 100644 sysdeps/gnu/utmp_file.c > create mode 100644 sysdeps/pthread/tst-abstime-time64.c create mode > 100644 sysdeps/pthread/tst-cnd-timedwait-time64.c create mode 100644 > sysdeps/pthread/tst-cond11-time64.c create mode 100644 > sysdeps/pthread/tst-join14-time64.c create mode 100644 > sysdeps/pthread/tst-mtx-timedlock-time64.c create mode 100644 > sysdeps/pthread/tst-rwlock14-time64.c create mode 100644 > sysdeps/pthread/tst-sem5-time64.c create mode 100644 > sysdeps/pthread/tst-thrd-sleep-time64.c create mode 100644 > sysdeps/unix/sysv/linux/arm/time64-compat.h create mode 100644 > sysdeps/unix/sysv/linux/bits/struct_stat_time64_helper.h create mode > 100644 sysdeps/unix/sysv/linux/bits/types/struct_msqid64_ds_helper.h > rename sysdeps/unix/sysv/linux/{s390/s390-32/getutline.c => > bits/types/struct_semid64_ds_helper.h} (64%) rename > sysdeps/{gnu/updwtmp.c => > unix/sysv/linux/bits/types/struct_shmid64_ds_helper.h} (57%) create > mode 100644 sysdeps/unix/sysv/linux/convert_scm_timestamps.c create > mode 100644 sysdeps/unix/sysv/linux/csky/time64-compat.h create mode > 100644 sysdeps/unix/sysv/linux/features-time64.h create mode 100644 > sysdeps/unix/sysv/linux/glob64-time64.c rename > sysdeps/unix/sysv/linux/{s390/s390-32/getutid_r.c => > globfree64-time64.c} (62%) create mode 100644 > sysdeps/unix/sysv/linux/hppa/socket-constants-time64.h create mode > 100644 sysdeps/unix/sysv/linux/hppa/time64-compat.h create mode > 100644 sysdeps/unix/sysv/linux/i386/time64-compat.h create mode > 100644 sysdeps/unix/sysv/linux/m68k/time64-compat.h create mode > 100644 sysdeps/unix/sysv/linux/microblaze/time64-compat.h create mode > 100644 sysdeps/unix/sysv/linux/mips/mips32/time64-compat.h create > mode 100644 sysdeps/unix/sysv/linux/mips/mips64/n32/libanl.abilist > create mode 100644 > sysdeps/unix/sysv/linux/mips/mips64/n32/libpthread.abilist create > mode 100644 sysdeps/unix/sysv/linux/mips/mips64/n32/librt.abilist > create mode 100644 > sysdeps/unix/sysv/linux/mips/mips64/n32/time64-compat.h rename > sysdeps/unix/sysv/linux/mips/mips64/{ => n64}/libanl.abilist (100%) > rename sysdeps/unix/sysv/linux/mips/mips64/{ => > n64}/libpthread.abilist (100%) rename > sysdeps/unix/sysv/linux/mips/mips64/{ => n64}/librt.abilist (100%) > create mode 100644 > sysdeps/unix/sysv/linux/mips/socket-constants-time64.h create mode > 100644 sysdeps/unix/sysv/linux/nios2/time64-compat.h create mode > 100644 sysdeps/unix/sysv/linux/powerpc/powerpc32/time64-compat.h > create mode 100644 > sysdeps/unix/sysv/linux/powerpc/socket-constants-time64.h rename > sysdeps/unix/sysv/linux/{s390/s390-32/login.c => pwrite64_nocancel.c} > (62%) create mode 100644 > sysdeps/unix/sysv/linux/s390/bits/struct_utmp.h rename > sysdeps/{gnu/bits/utmpx.h => > unix/sysv/linux/s390/bits/struct_utmpx.h} (51%) delete mode 100644 > sysdeps/unix/sysv/linux/s390/bits/utmp.h rename > sysdeps/{gnu/getutmp.c => unix/sysv/linux/s390/lastlog-compat.h} > (61%) delete mode 100644 > sysdeps/unix/sysv/linux/s390/s390-32/getutxline.c create mode 100644 > sysdeps/unix/sysv/linux/s390/s390-32/libanl.abilist delete mode > 100644 sysdeps/unix/sysv/linux/s390/s390-32/pututxline.c create mode > 100644 sysdeps/unix/sysv/linux/s390/s390-32/time64-compat.h delete > mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c delete mode > 100644 sysdeps/unix/sysv/linux/s390/s390-32/utmpx-convert.h delete > mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c rename > sysdeps/unix/sysv/linux/s390/{ => s390-64}/libanl.abilist (100%) > create mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/utmp-compat.h > create mode 100644 sysdeps/unix/sysv/linux/sh/time64-compat.h create > mode 100644 sysdeps/unix/sysv/linux/socket-constants-time64.h create > mode 100644 sysdeps/unix/sysv/linux/sparc/socket-constants-time64.h > create mode 100644 > sysdeps/unix/sysv/linux/sparc/sparc32/time64-compat.h create mode > 100644 sysdeps/unix/sysv/linux/tst-futimens-time64.c create mode > 100644 sysdeps/unix/sysv/linux/tst-futimes-time64.c create mode > 100644 sysdeps/unix/sysv/linux/tst-futimes.c create mode 100644 > sysdeps/unix/sysv/linux/tst-lutimes-time64.c create mode 100644 > sysdeps/unix/sysv/linux/tst-lutimes.c create mode 100644 > sysdeps/unix/sysv/linux/tst-ppoll-time64.c create mode 100644 > sysdeps/unix/sysv/linux/tst-timerfd-time64.c create mode 100644 > sysdeps/unix/sysv/linux/tst-utime-time64.c create mode 100644 > sysdeps/unix/sysv/linux/tst-utimes-time64.c create mode 100644 > sysdeps/unix/sysv/linux/utmp-path.h delete mode 100644 > sysdeps/unix/sysv/linux/utmp_file.c create mode 100644 > sysvipc/test-sysvmsg-time64.c create mode 100644 > sysvipc/test-sysvsem-time64.c create mode 100644 > sysvipc/test-sysvshm-time64.c create mode 100644 > time/tst-adjtime-time64.c create mode 100644 time/tst-clock-time64.c > create mode 100644 time/tst-clock2-time64.c create mode 100644 > time/tst-clock_nanosleep-time64.c create mode 100644 > time/tst-cpuclock1-time64.c create mode 100644 > time/tst-ctime-time64.c create mode 100644 time/tst-difftime-time64.c > create mode 100644 time/tst-gmtime-time64.c create mode 100644 > time/tst-gmtime.c create mode 100644 time/tst-itimer-time64.c create > mode 100644 time/tst-itimer.c create mode 100644 > time/tst-mktime4-time64.c create mode 100644 time/tst-timegm-time64.c > create mode 100644 time/tst-timegm.c create mode 100644 > time/tst-timespec_get-time64.c create mode 100644 > time/tst-timespec_get.c create mode 100644 time/tst-y2039-time64.c > Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de