From: Adhemerval Zanella via Libc-alpha <libc-alpha@sourceware.org>
To: libc-alpha@sourceware.org
Subject: [PATCH 22/52] login: Use 64-bit time on struct lastlog [BZ #25844]
Date: Fri, 5 Mar 2021 17:14:48 -0300 [thread overview]
Message-ID: <20210305201518.798584-23-adhemerval.zanella@linaro.org> (raw)
In-Reply-To: <20210305201518.798584-1-adhemerval.zanella@linaro.org>
The new struct has the same size on both 32-bit and 64-bit
architectures. As for utmp{x} 64-bit time_t support, a new file name
is defined for _PATH_LASTLOG.
Also two new symbols are added that read/write 'struct lastlog'
entries, 'lastlog_read' and 'lastlog_write'. Both are GNU extensions
and handle the 32-bit entry operation if the argument is the old
_PATH_LASTLOG path.
Different than utmp{x}, no concurrent access is done (such as
advisory locking). I modeled these function on how program that
access lastlog file uses (such as shadow-utils and util-linux).
The s390 is the only architecture that already defined the
'struct lastlog' with 64-bit time_t and to handle s390 has a specific
lastlog-compat.h header where 'is_path_lastlog_compat' already
return false (thus making both lastlog_read and lastlog_write
always read/write registers with 64-bit ll_time).
It also fixes BZ#25844 by adding the __attribute_nonstring__ on
ll_line and ll_host.
Checked on x86_64-linux-gnu and i686-linux-gnu.
---
bits/types/struct_lastlog.h | 10 +--
login/Makefile | 4 +-
login/Versions | 2 +
.../lastlog-compat.h | 25 +++---
login/lastlog_read.c | 78 ++++++++++++++++++
login/lastlog_write.c | 64 +++++++++++++++
login/tst-lastlog.c | 80 +++++++++++++++++++
login/tst-lastlog.root/tst-lastlog.script | 6 ++
login/utmp.h | 11 +++
sysdeps/generic/paths.h | 3 +-
sysdeps/mach/hurd/i386/libc.abilist | 2 +
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 +
sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 +
sysdeps/unix/sysv/linux/arc/libc.abilist | 2 +
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 2 +
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 +
sysdeps/unix/sysv/linux/csky/libc.abilist | 2 +
sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 +
sysdeps/unix/sysv/linux/i386/libc.abilist | 2 +
sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 +
.../sysv/linux/m68k/coldfire/libc.abilist | 2 +
.../unix/sysv/linux/m68k/m680x0/libc.abilist | 2 +
.../sysv/linux/microblaze/be/libc.abilist | 2 +
.../sysv/linux/microblaze/le/libc.abilist | 2 +
.../sysv/linux/mips/mips32/fpu/libc.abilist | 2 +
.../sysv/linux/mips/mips32/nofpu/libc.abilist | 2 +
.../sysv/linux/mips/mips64/n32/libc.abilist | 2 +
.../sysv/linux/mips/mips64/n64/libc.abilist | 2 +
sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 +
sysdeps/unix/sysv/linux/paths.h | 3 +-
.../linux/powerpc/powerpc32/fpu/libc.abilist | 2 +
.../powerpc/powerpc32/nofpu/libc.abilist | 2 +
.../linux/powerpc/powerpc64/be/libc.abilist | 2 +
.../linux/powerpc/powerpc64/le/libc.abilist | 2 +
.../unix/sysv/linux/riscv/rv32/libc.abilist | 2 +
.../unix/sysv/linux/riscv/rv64/libc.abilist | 2 +
sysdeps/unix/sysv/linux/s390/lastlog-compat.h | 38 +++++++++
.../unix/sysv/linux/s390/s390-32/libc.abilist | 2 +
.../unix/sysv/linux/s390/s390-64/libc.abilist | 2 +
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 2 +
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 +
.../sysv/linux/sparc/sparc32/libc.abilist | 2 +
.../sysv/linux/sparc/sparc64/libc.abilist | 2 +
.../unix/sysv/linux/x86_64/64/libc.abilist | 2 +
.../unix/sysv/linux/x86_64/x32/libc.abilist | 2 +
45 files changed, 369 insertions(+), 21 deletions(-)
rename sysdeps/unix/sysv/linux/s390/bits/struct_lastlog.h => login/lastlog-compat.h (77%)
create mode 100644 login/lastlog_read.c
create mode 100644 login/lastlog_write.c
create mode 100644 login/tst-lastlog.c
create mode 100644 login/tst-lastlog.root/tst-lastlog.script
create mode 100644 sysdeps/unix/sysv/linux/s390/lastlog-compat.h
diff --git a/bits/types/struct_lastlog.h b/bits/types/struct_lastlog.h
index bde4dd2ad0..d267a24b1b 100644
--- a/bits/types/struct_lastlog.h
+++ b/bits/types/struct_lastlog.h
@@ -24,11 +24,7 @@
previous logins. */
struct lastlog
{
-#if __WORDSIZE_TIME64_COMPAT32
- int32_t ll_time;
-#else
- __time_t ll_time;
-#endif
- char ll_line[UT_LINESIZE];
- char ll_host[UT_HOSTSIZE];
+ int64_t ll_time;
+ char ll_line[UT_LINESIZE] __attribute_nonstring__;
+ char ll_host[UT_HOSTSIZE] __attribute_nonstring__;
};
diff --git a/login/Makefile b/login/Makefile
index 794d061604..7d273d95bc 100644
--- a/login/Makefile
+++ b/login/Makefile
@@ -31,7 +31,8 @@ headers := utmp.h bits/utmp.h lastlog.h pty.h \
routines := getlogin getlogin_r setlogin getlogin_r_chk \
getutent getutent_r getutid getutline getutid_r getutline_r \
utmp_file utmpname updwtmp getpt grantpt unlockpt ptsname \
- ptsname_r_chk utmp32 utmpx32 utmp-convert
+ ptsname_r_chk utmp32 utmpx32 utmp-convert \
+ lastlog_read lastlog_write
CFLAGS-grantpt.c += -DLIBEXECDIR='"$(libexecdir)"'
@@ -53,6 +54,7 @@ ifeq ($(have-GLIBC_2.33),yes)
tests-container-internal := tst-utmp32
tests-container := tst-utmp-default
endif
+tests-container += tst-lastlog
# Build the -lutil library with these extra functions.
extra-libs := libutil
diff --git a/login/Versions b/login/Versions
index d28ecdca9f..5751fdcb71 100644
--- a/login/Versions
+++ b/login/Versions
@@ -57,6 +57,8 @@ libc {
getutxent;
getutxid;
getutxline;
+ lastlog_read;
+ lastlog_write;
pututline;
pututxline;
updwtmp;
diff --git a/sysdeps/unix/sysv/linux/s390/bits/struct_lastlog.h b/login/lastlog-compat.h
similarity index 77%
rename from sysdeps/unix/sysv/linux/s390/bits/struct_lastlog.h
rename to login/lastlog-compat.h
index 4faa9922f4..00403dd19a 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/struct_lastlog.h
+++ b/login/lastlog-compat.h
@@ -16,19 +16,22 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#ifndef _UTMP_H
-# error "Never include <bits/struct_lastlog.h> directly; use <utmp.h> instead."
-#endif
+#ifndef _LASTLOG_COMPAT_H
+#define _LASTLOG_COMPAT_H 1
+
+#include <string.h>
-/* The structure describing an entry in the database of
- previous logins. */
-struct lastlog
+struct lastlog_compat
{
-#if __WORDSIZE == 32
- int64_t ll_time;
-#else
- __time_t ll_time;
-#endif
+ int32_t ll_time;
char ll_line[UT_LINESIZE];
char ll_host[UT_HOSTSIZE];
};
+
+static inline bool
+is_path_lastlog_compat (const char *file)
+{
+ return strcmp (file, "/var/log/lastlog") == 0;
+}
+
+#endif
diff --git a/login/lastlog_read.c b/login/lastlog_read.c
new file mode 100644
index 0000000000..9880afdf00
--- /dev/null
+++ b/login/lastlog_read.c
@@ -0,0 +1,78 @@
+/* Read a lastlog entry.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <utmp.h>
+#include <stdbool.h>
+#include <not-cancel.h>
+#include <lastlog-compat.h>
+#include <shlib-compat.h>
+
+ssize_t
+lastlog_read (const char *file, uid_t uid, struct lastlog *ll)
+{
+ int fd = __open_nocancel (file, O_RDONLY | O_LARGEFILE | O_CLOEXEC);
+ if (fd == -1)
+ return -1;
+
+ size_t llsize;
+ void *data;
+
+#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_33)
+ struct lastlog_compat llcompat;
+ if (is_path_lastlog_compat (file))
+ {
+ llsize = sizeof (struct lastlog_compat);
+ data = &llcompat;
+ }
+ else
+#endif
+ {
+ llsize = sizeof (struct lastlog);
+ data = ll;
+ }
+
+ off64_t off = llsize * uid;
+ ssize_t r = __pread64_nocancel (fd, data, llsize, off);
+ __close_nocancel_nostatus (fd);
+
+#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_33)
+ if (r == llsize && data == &llcompat)
+ {
+ ll->ll_time = llcompat.ll_time;
+ memcpy (ll->ll_line, llcompat.ll_line, UT_LINESIZE);
+ memcpy (ll->ll_host, llcompat.ll_host, UT_HOSTSIZE);
+ }
+#endif
+
+ if (r == llsize)
+ {
+#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_33)
+ if (data == &llcompat)
+ {
+ ll->ll_time = llcompat.ll_time;
+ memcpy (ll->ll_line, llcompat.ll_line, UT_LINESIZE);
+ memcpy (ll->ll_host, llcompat.ll_host, UT_HOSTSIZE);
+ }
+#endif
+ /* We need to return the expected 'struct lastlog' size in case of
+ success. */
+ r = sizeof (struct lastlog);
+ }
+
+ return r;
+}
diff --git a/login/lastlog_write.c b/login/lastlog_write.c
new file mode 100644
index 0000000000..37bad677d0
--- /dev/null
+++ b/login/lastlog_write.c
@@ -0,0 +1,64 @@
+/* Write a lastlog entry.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <utmp.h>
+#include <stdbool.h>
+#include <not-cancel.h>
+#include <lastlog-compat.h>
+#include <shlib-compat.h>
+
+ssize_t
+lastlog_write (const char *file, uid_t uid, const struct lastlog *ll)
+{
+ int fd = __open_nocancel (file, O_WRONLY | O_LARGEFILE | O_CLOEXEC);
+ if (fd == -1)
+ return -1;
+
+ size_t llsize;
+ const void *data;
+
+#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_33)
+ struct lastlog_compat llcompat;
+ if (is_path_lastlog_compat (file))
+ {
+ llcompat.ll_time = ll->ll_time;
+ memcpy (llcompat.ll_line, ll->ll_line, UT_LINESIZE);
+ memcpy (llcompat.ll_host, ll->ll_host, UT_HOSTSIZE);
+ llsize = sizeof (struct lastlog_compat);
+ data = &llcompat;
+ }
+ else
+#endif
+ {
+ llsize = sizeof (struct lastlog);
+ data = ll;
+ }
+
+ off64_t off = llsize * uid;
+ ssize_t r = __pwrite64_nocancel (fd, data, llsize, off);
+ __close_nocancel_nostatus (fd);
+
+ /* We need to return the expected 'struct lastlog' size in case of
+ success. */
+#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_33)
+ if (r == llsize && data == &llcompat)
+ r = sizeof (struct lastlog);
+#endif
+
+ return r;
+}
diff --git a/login/tst-lastlog.c b/login/tst-lastlog.c
new file mode 100644
index 0000000000..f36602df3e
--- /dev/null
+++ b/login/tst-lastlog.c
@@ -0,0 +1,80 @@
+/* Tests for lastlog read/write functions.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <stdlib.h>
+#include <string.h>
+#include <utmp.h>
+
+#include <support/check.h>
+#include <support/temp_file.h>
+
+#include <stdio.h>
+
+static struct
+{
+ uid_t uid;
+ struct lastlog ll;
+} entry[] =
+{
+ { 0, { .ll_time = 1000, .ll_line = "tty1" } },
+ { 1000, { .ll_time = 2000, .ll_line = "pts/0", .ll_host = "127.0.0.1" } },
+ { 20, { .ll_time = 3000, .ll_line = "pts/1", .ll_host = "192.168.0.1" } },
+ { 30, { .ll_time = 4000, .ll_line = "tty2" } },
+};
+const size_t entry_size = sizeof (entry) / sizeof (entry[0]);
+
+static void
+run_test (const char *filename)
+{
+ for (int n = 0; n < entry_size; n++)
+ TEST_COMPARE (lastlog_write (filename, entry[n].uid, &entry[n].ll),
+ sizeof (struct lastlog));
+
+ for (int n = 0; n < entry_size; n++)
+ {
+ struct lastlog ll;
+ TEST_COMPARE (lastlog_read (filename, entry[n].uid, &ll),
+ sizeof (struct lastlog));
+ TEST_COMPARE (ll.ll_time, entry[n].ll.ll_time);
+ TEST_COMPARE_BLOB (ll.ll_line, UT_LINESIZE,
+ entry[n].ll.ll_line, UT_LINESIZE);
+ TEST_COMPARE_BLOB (ll.ll_host, UT_HOSTSIZE,
+ entry[n].ll.ll_host, UT_HOSTSIZE);
+ }
+
+ /* Check with an non present uid. */
+ {
+ struct lastlog ll;
+ TEST_COMPARE (lastlog_read (filename, 4000, &ll), 0);
+ }
+}
+
+static int
+do_test (void)
+{
+ /* The path triggers the read/write of compat (32-bit ll_time) entries
+ for ABI that used to support it. */
+ run_test ("/var/run/lastlog");
+
+ /* Any other file handles new (64-bit ll_time) entries. */
+ run_test ("/var/run/lastlog.v2");
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/login/tst-lastlog.root/tst-lastlog.script b/login/tst-lastlog.root/tst-lastlog.script
new file mode 100644
index 0000000000..ca34ce7021
--- /dev/null
+++ b/login/tst-lastlog.root/tst-lastlog.script
@@ -0,0 +1,6 @@
+mkdirp 0755 /var/run
+touch 0664 /var/run/lastlog
+touch 0664 /var/run/lastlog.v2
+
+# Must run localedef as root to write into default paths.
+su
diff --git a/login/utmp.h b/login/utmp.h
index 7fc2d5cdf1..02a445ee82 100644
--- a/login/utmp.h
+++ b/login/utmp.h
@@ -91,6 +91,17 @@ extern int getutline_r (const struct utmp *__line,
#endif /* Use misc. */
+#ifdef __USE_GNU
+/* Read the struct lastlog LL with UID from file FILE. */
+extern ssize_t lastlog_read (const char *__file, uid_t __uid,
+ struct lastlog *__ll)
+ __THROW __nonnull ((1, 3));
+/* Write the struct lastlog LL with UID from file FILE. */
+extern ssize_t lastlog_write (const char *__file, uid_t __uid,
+ const struct lastlog *__ll)
+ __THROW __nonnull ((1, 3));
+#endif
+
__END_DECLS
#endif /* utmp.h */
diff --git a/sysdeps/generic/paths.h b/sysdeps/generic/paths.h
index ab2980e14a..9321ad7294 100644
--- a/sysdeps/generic/paths.h
+++ b/sysdeps/generic/paths.h
@@ -46,7 +46,8 @@
#define _PATH_DRUM "/dev/drum"
#define _PATH_GSHADOW "/etc/gshadow"
#define _PATH_KMEM "/dev/kmem"
-#define _PATH_LASTLOG "/var/log/lastlog"
+#define _PATH_LASTLOG_VER ".v2"
+#define _PATH_LASTLOG "/var/log/lastlog" _PATH_LASTLOG_VER
#define _PATH_MAILDIR "/var/mail"
#define _PATH_MAN "/usr/share/man"
#define _PATH_MEM "/dev/mem"
diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist
index 3a657d5e0d..d5e44b181b 100644
--- a/sysdeps/mach/hurd/i386/libc.abilist
+++ b/sysdeps/mach/hurd/i386/libc.abilist
@@ -2215,6 +2215,8 @@ GLIBC_2.34 getutmpx F
GLIBC_2.34 getutxent F
GLIBC_2.34 getutxid F
GLIBC_2.34 getutxline F
+GLIBC_2.34 lastlog_read F
+GLIBC_2.34 lastlog_write F
GLIBC_2.34 pututline F
GLIBC_2.34 pututxline F
GLIBC_2.34 updwtmp F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 4f91e85ba0..1516f80402 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -2183,6 +2183,8 @@ GLIBC_2.34 getutmpx F
GLIBC_2.34 getutxent F
GLIBC_2.34 getutxid F
GLIBC_2.34 getutxline F
+GLIBC_2.34 lastlog_read F
+GLIBC_2.34 lastlog_write F
GLIBC_2.34 pututline F
GLIBC_2.34 pututxline F
GLIBC_2.34 updwtmp F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 764ea51779..5ac4b37c02 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2265,6 +2265,8 @@ GLIBC_2.34 getutmpx F
GLIBC_2.34 getutxent F
GLIBC_2.34 getutxid F
GLIBC_2.34 getutxline F
+GLIBC_2.34 lastlog_read F
+GLIBC_2.34 lastlog_write F
GLIBC_2.34 pututline F
GLIBC_2.34 pututxline F
GLIBC_2.34 updwtmp F
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 2ebd24f3a6..cefb1394e8 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -1943,6 +1943,8 @@ GLIBC_2.34 getutmpx F
GLIBC_2.34 getutxent F
GLIBC_2.34 getutxid F
GLIBC_2.34 getutxline F
+GLIBC_2.34 lastlog_read F
+GLIBC_2.34 lastlog_write F
GLIBC_2.34 pututline F
GLIBC_2.34 pututxline F
GLIBC_2.34 updwtmp F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 5cfcb00ddb..8111b49085 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -167,6 +167,8 @@ GLIBC_2.34 getutmpx F
GLIBC_2.34 getutxent F
GLIBC_2.34 getutxid F
GLIBC_2.34 getutxline F
+GLIBC_2.34 lastlog_read F
+GLIBC_2.34 lastlog_write F
GLIBC_2.34 pututline F
GLIBC_2.34 pututxline F
GLIBC_2.34 updwtmp F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index d140654389..4dba1f2f46 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -164,6 +164,8 @@ GLIBC_2.34 getutmpx F
GLIBC_2.34 getutxent F
GLIBC_2.34 getutxid F
GLIBC_2.34 getutxline F
+GLIBC_2.34 lastlog_read F
+GLIBC_2.34 lastlog_write F
GLIBC_2.34 pututline F
GLIBC_2.34 pututxline F
GLIBC_2.34 updwtmp F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 11aa688b83..a5ff3d90ca 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -2127,6 +2127,8 @@ GLIBC_2.34 getutmpx F
GLIBC_2.34 getutxent F
GLIBC_2.34 getutxid F
GLIBC_2.34 getutxline F
+GLIBC_2.34 lastlog_read F
+GLIBC_2.34 lastlog_write F
GLIBC_2.34 pututline F
GLIBC_2.34 pututxline F
GLIBC_2.34 updwtmp F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 14eef860ac..89a0f11166 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -2086,6 +2086,8 @@ GLIBC_2.34 getutmpx F
GLIBC_2.34 getutxent F
GLIBC_2.34 getutxid F
GLIBC_2.34 getutxline F
+GLIBC_2.34 lastlog_read F
+GLIBC_2.34 lastlog_write F
GLIBC_2.34 pututline F
GLIBC_2.34 pututxline F
GLIBC_2.34 updwtmp F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index e1db1488a9..a7c408d18c 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2253,6 +2253,8 @@ GLIBC_2.34 getutmpx F
GLIBC_2.34 getutxent F
GLIBC_2.34 getutxid F
GLIBC_2.34 getutxline F
+GLIBC_2.34 lastlog_read F
+GLIBC_2.34 lastlog_write F
GLIBC_2.34 pututline F
GLIBC_2.34 pututxline F
GLIBC_2.34 updwtmp F
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index f5b4433142..259b8020e8 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -2118,6 +2118,8 @@ GLIBC_2.34 getutmpx F
GLIBC_2.34 getutxent F
GLIBC_2.34 getutxid F
GLIBC_2.34 getutxline F
+GLIBC_2.34 lastlog_read F
+GLIBC_2.34 lastlog_write F
GLIBC_2.34 pututline F
GLIBC_2.34 pututxline F
GLIBC_2.34 updwtmp F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 213853a1f1..e1171a34aa 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -168,6 +168,8 @@ GLIBC_2.34 getutmpx F
GLIBC_2.34 getutxent F
GLIBC_2.34 getutxid F
GLIBC_2.34 getutxline F
+GLIBC_2.34 lastlog_read F
+GLIBC_2.34 lastlog_write F
GLIBC_2.34 pututline F
GLIBC_2.34 pututxline F
GLIBC_2.34 updwtmp F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 15dda47ba8..a521506506 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2198,6 +2198,8 @@ GLIBC_2.34 getutmpx F
GLIBC_2.34 getutxent F
GLIBC_2.34 getutxid F
GLIBC_2.34 getutxline F
+GLIBC_2.34 lastlog_read F
+GLIBC_2.34 lastlog_write F
GLIBC_2.34 pututline F
GLIBC_2.34 pututxline F
GLIBC_2.34 updwtmp F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 3ffd49cbfb..aba642460c 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -2178,6 +2178,8 @@ GLIBC_2.34 getutmpx F
GLIBC_2.34 getutxent F
GLIBC_2.34 getutxid F
GLIBC_2.34 getutxline F
+GLIBC_2.34 lastlog_read F
+GLIBC_2.34 lastlog_write F
GLIBC_2.34 pututline F
GLIBC_2.34 pututxline F
GLIBC_2.34 updwtmp F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 2bccbe960a..d3d653d144 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -2175,6 +2175,8 @@ GLIBC_2.34 getutmpx F
GLIBC_2.34 getutxent F
GLIBC_2.34 getutxid F
GLIBC_2.34 getutxline F
+GLIBC_2.34 lastlog_read F
+GLIBC_2.34 lastlog_write F
GLIBC_2.34 pututline F
GLIBC_2.34 pututxline F
GLIBC_2.34 updwtmp F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 209f5f588b..a4ce56c34f 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2169,6 +2169,8 @@ GLIBC_2.34 getutmpx F
GLIBC_2.34 getutxent F
GLIBC_2.34 getutxid F
GLIBC_2.34 getutxline F
+GLIBC_2.34 lastlog_read F
+GLIBC_2.34 lastlog_write F
GLIBC_2.34 pututline F
GLIBC_2.34 pututxline F
GLIBC_2.34 updwtmp F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 45d976790c..51fbf0b1e1 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2167,6 +2167,8 @@ GLIBC_2.34 getutmpx F
GLIBC_2.34 getutxent F
GLIBC_2.34 getutxid F
GLIBC_2.34 getutxline F
+GLIBC_2.34 lastlog_read F
+GLIBC_2.34 lastlog_write F
GLIBC_2.34 pututline F
GLIBC_2.34 pututxline F
GLIBC_2.34 updwtmp F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index ab3156c917..5642781479 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2175,6 +2175,8 @@ GLIBC_2.34 getutmpx F
GLIBC_2.34 getutxent F
GLIBC_2.34 getutxid F
GLIBC_2.34 getutxline F
+GLIBC_2.34 lastlog_read F
+GLIBC_2.34 lastlog_write F
GLIBC_2.34 pututline F
GLIBC_2.34 pututxline F
GLIBC_2.34 updwtmp F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index f8d0534156..10954ebee4 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2169,6 +2169,8 @@ GLIBC_2.34 getutmpx F
GLIBC_2.34 getutxent F
GLIBC_2.34 getutxid F
GLIBC_2.34 getutxline F
+GLIBC_2.34 lastlog_read F
+GLIBC_2.34 lastlog_write F
GLIBC_2.34 pututline F
GLIBC_2.34 pututxline F
GLIBC_2.34 updwtmp F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index f56e5ad002..848cb2e599 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -2216,6 +2216,8 @@ GLIBC_2.34 getutmpx F
GLIBC_2.34 getutxent F
GLIBC_2.34 getutxid F
GLIBC_2.34 getutxline F
+GLIBC_2.34 lastlog_read F
+GLIBC_2.34 lastlog_write F
GLIBC_2.34 pututline F
GLIBC_2.34 pututxline F
GLIBC_2.34 updwtmp F
diff --git a/sysdeps/unix/sysv/linux/paths.h b/sysdeps/unix/sysv/linux/paths.h
index 89686bcf88..b78dff7ae3 100644
--- a/sysdeps/unix/sysv/linux/paths.h
+++ b/sysdeps/unix/sysv/linux/paths.h
@@ -47,7 +47,8 @@
#define _PATH_GSHADOW "/etc/gshadow"
#define _PATH_KLOG "/proc/kmsg"
#define _PATH_KMEM "/dev/kmem"
-#define _PATH_LASTLOG "/var/log/lastlog"
+#define _PATH_LASTLOG_VER ".v2"
+#define _PATH_LASTLOG "/var/log/lastlog" _PATH_LASTLOG_VER
#define _PATH_MAILDIR "/var/mail"
#define _PATH_MAN "/usr/share/man"
#define _PATH_MEM "/dev/mem"
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index cfb457400c..93e83fa602 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2225,6 +2225,8 @@ GLIBC_2.34 getutmpx F
GLIBC_2.34 getutxent F
GLIBC_2.34 getutxid F
GLIBC_2.34 getutxline F
+GLIBC_2.34 lastlog_read F
+GLIBC_2.34 lastlog_write F
GLIBC_2.34 pututline F
GLIBC_2.34 pututxline F
GLIBC_2.34 updwtmp F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index e1fd74fbad..ec0b6d69b1 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2258,6 +2258,8 @@ GLIBC_2.34 getutmpx F
GLIBC_2.34 getutxent F
GLIBC_2.34 getutxid F
GLIBC_2.34 getutxline F
+GLIBC_2.34 lastlog_read F
+GLIBC_2.34 lastlog_write F
GLIBC_2.34 pututline F
GLIBC_2.34 pututxline F
GLIBC_2.34 updwtmp F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index 5c9cdb33b4..f5bd1db3a0 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -2088,6 +2088,8 @@ GLIBC_2.34 getutmpx F
GLIBC_2.34 getutxent F
GLIBC_2.34 getutxid F
GLIBC_2.34 getutxline F
+GLIBC_2.34 lastlog_read F
+GLIBC_2.34 lastlog_write F
GLIBC_2.34 pututline F
GLIBC_2.34 pututxline F
GLIBC_2.34 updwtmp F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 4dcac4c766..27863e57af 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -2378,6 +2378,8 @@ GLIBC_2.34 getutmpx F
GLIBC_2.34 getutxent F
GLIBC_2.34 getutxid F
GLIBC_2.34 getutxline F
+GLIBC_2.34 lastlog_read F
+GLIBC_2.34 lastlog_write F
GLIBC_2.34 pututline F
GLIBC_2.34 pututxline F
GLIBC_2.34 updwtmp F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 69bc04c36c..08c5a32d5d 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -1945,6 +1945,8 @@ GLIBC_2.34 getutmpx F
GLIBC_2.34 getutxent F
GLIBC_2.34 getutxid F
GLIBC_2.34 getutxline F
+GLIBC_2.34 lastlog_read F
+GLIBC_2.34 lastlog_write F
GLIBC_2.34 pututline F
GLIBC_2.34 pututxline F
GLIBC_2.34 updwtmp F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index dc4a3223e6..88b6fa7fc9 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -2145,6 +2145,8 @@ GLIBC_2.34 getutmpx F
GLIBC_2.34 getutxent F
GLIBC_2.34 getutxid F
GLIBC_2.34 getutxline F
+GLIBC_2.34 lastlog_read F
+GLIBC_2.34 lastlog_write F
GLIBC_2.34 pututline F
GLIBC_2.34 pututxline F
GLIBC_2.34 updwtmp F
diff --git a/sysdeps/unix/sysv/linux/s390/lastlog-compat.h b/sysdeps/unix/sysv/linux/s390/lastlog-compat.h
new file mode 100644
index 0000000000..56fadc3b3b
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/s390/lastlog-compat.h
@@ -0,0 +1,38 @@
+/* Compat lastlog definitions. s390 definition.
+ Copyright (C) 2020 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _LASTLOG_COMPAT_H
+#define _LASTLOG_COMPAT_H 1
+
+/* The s390 changes its lastlog to 64-bit on glibc 2.9 without any handling
+ of old format. The is_path_lastlog_compat assumes 64-bit as default. */
+
+struct lastlog_compat
+{
+ int64_t ll_time;
+ char ll_line[UT_LINESIZE];
+ char ll_host[UT_HOSTSIZE];
+};
+
+static inline bool
+is_path_lastlog_compat (const char *file)
+{
+ return false;
+}
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index cead75acc5..7bc5c8866b 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2212,6 +2212,8 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 lastlog_read F
+GLIBC_2.34 lastlog_write F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
GLIBC_2.4 _IO_sprintf F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 31366dd7e6..e26a24fe65 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -2113,6 +2113,8 @@ GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.34 __libc_start_main F
+GLIBC_2.34 lastlog_read F
+GLIBC_2.34 lastlog_write F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
GLIBC_2.4 _IO_sprintf F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 6deb52d706..06143b0283 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2093,6 +2093,8 @@ GLIBC_2.34 getutmpx F
GLIBC_2.34 getutxent F
GLIBC_2.34 getutxid F
GLIBC_2.34 getutxline F
+GLIBC_2.34 lastlog_read F
+GLIBC_2.34 lastlog_write F
GLIBC_2.34 pututline F
GLIBC_2.34 pututxline F
GLIBC_2.34 updwtmp F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 17a141d5b9..eab2af349b 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2090,6 +2090,8 @@ GLIBC_2.34 getutmpx F
GLIBC_2.34 getutxent F
GLIBC_2.34 getutxid F
GLIBC_2.34 getutxline F
+GLIBC_2.34 lastlog_read F
+GLIBC_2.34 lastlog_write F
GLIBC_2.34 pututline F
GLIBC_2.34 pututxline F
GLIBC_2.34 updwtmp F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index b64b351797..4783a8fa97 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2214,6 +2214,8 @@ GLIBC_2.34 getutmpx F
GLIBC_2.34 getutxent F
GLIBC_2.34 getutxid F
GLIBC_2.34 getutxline F
+GLIBC_2.34 lastlog_read F
+GLIBC_2.34 lastlog_write F
GLIBC_2.34 pututline F
GLIBC_2.34 pututxline F
GLIBC_2.34 updwtmp F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index e3e01c29fc..47ded40426 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2141,6 +2141,8 @@ GLIBC_2.34 getutmpx F
GLIBC_2.34 getutxent F
GLIBC_2.34 getutxid F
GLIBC_2.34 getutxline F
+GLIBC_2.34 lastlog_read F
+GLIBC_2.34 lastlog_write F
GLIBC_2.34 pututline F
GLIBC_2.34 pututxline F
GLIBC_2.34 updwtmp F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 9995da84a8..0d144a0c10 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -2100,6 +2100,8 @@ GLIBC_2.34 getutmpx F
GLIBC_2.34 getutxent F
GLIBC_2.34 getutxid F
GLIBC_2.34 getutxline F
+GLIBC_2.34 lastlog_read F
+GLIBC_2.34 lastlog_write F
GLIBC_2.34 pututline F
GLIBC_2.34 pututxline F
GLIBC_2.34 updwtmp F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index adccf45120..a3580872d3 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -2197,6 +2197,8 @@ GLIBC_2.34 getutmpx F
GLIBC_2.34 getutxent F
GLIBC_2.34 getutxid F
GLIBC_2.34 getutxline F
+GLIBC_2.34 lastlog_read F
+GLIBC_2.34 lastlog_write F
GLIBC_2.34 pututline F
GLIBC_2.34 pututxline F
GLIBC_2.34 updwtmp F
--
2.25.1
next prev parent reply other threads:[~2021-03-05 20:17 UTC|newest]
Thread overview: 95+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-05 20:14 [PATCH 00/52] Add 64 bit time support on legacy ABIs Adhemerval Zanella via Libc-alpha
2021-03-05 20:14 ` [PATCH 01/52] io: Use temporary directory and file for ftwtest-sh Adhemerval Zanella via Libc-alpha
2021-03-05 20:56 ` Andreas Schwab
2021-03-05 23:53 ` Joseph Myers
2021-03-08 13:00 ` Adhemerval Zanella via Libc-alpha
2021-03-05 20:14 ` [PATCH 02/52] linux: Add futimes test Adhemerval Zanella via Libc-alpha
2021-03-05 20:30 ` Florian Weimer via Libc-alpha
2021-03-08 13:01 ` Adhemerval Zanella via Libc-alpha
2021-03-08 13:08 ` Florian Weimer via Libc-alpha
2021-03-08 13:26 ` Adhemerval Zanella via Libc-alpha
2021-03-08 13:30 ` Florian Weimer via Libc-alpha
2021-03-05 20:33 ` Florian Weimer via Libc-alpha
2021-03-08 13:02 ` Adhemerval Zanella via Libc-alpha
2021-03-08 13:23 ` Adhemerval Zanella via Libc-alpha
2021-03-06 0:02 ` Joseph Myers
2021-03-06 3:52 ` Paul Zimmermann
2021-03-08 13:03 ` Adhemerval Zanella via Libc-alpha
2021-03-05 20:14 ` [PATCH 03/52] linux: Add lutimes test Adhemerval Zanella via Libc-alpha
2021-03-05 20:31 ` Florian Weimer via Libc-alpha
2021-03-06 0:02 ` Joseph Myers
2021-03-05 20:14 ` [PATCH 04/52] time: Add getitimer and setitimer basic tests Adhemerval Zanella via Libc-alpha
2021-03-05 20:14 ` [PATCH 05/52] time: Add gmtime/gmtime_r tests Adhemerval Zanella via Libc-alpha
2021-03-05 20:14 ` [PATCH 06/52] time: Add timegm/timelocal basic tests Adhemerval Zanella via Libc-alpha
2021-03-05 20:14 ` [PATCH 07/52] time: Add basic timespec_get tests Adhemerval Zanella via Libc-alpha
2021-03-05 20:14 ` [PATCH 08/52] time: Add 64 bit tests for getdate / getdate_r Adhemerval Zanella via Libc-alpha
2021-03-05 20:14 ` [PATCH 09/52] io: Add basic tests for utimensat Adhemerval Zanella via Libc-alpha
2021-03-05 20:14 ` [PATCH 10/52] posix: Add wait3 tests Adhemerval Zanella via Libc-alpha
2021-03-05 20:14 ` [PATCH 11/52] linux: mips: Split libpthread.abilist in n32 and n64 Adhemerval Zanella via Libc-alpha
2021-03-05 20:39 ` Florian Weimer via Libc-alpha
2021-03-08 13:05 ` Adhemerval Zanella via Libc-alpha
2021-03-05 20:14 ` [PATCH 12/52] linux: mips: Split librt.abilist " Adhemerval Zanella via Libc-alpha
2021-03-05 20:14 ` [PATCH 13/52] linux: mips: Split libanl.abilist " Adhemerval Zanella via Libc-alpha
2021-03-05 20:14 ` [PATCH 14/52] linux: s390: Add libanl.abilist in s390 and s390x Adhemerval Zanella via Libc-alpha
2021-03-05 20:14 ` [PATCH 15/52] login: Consolidate utmp and utmpx headers Adhemerval Zanella via Libc-alpha
2021-03-05 20:14 ` [PATCH 16/52] login: Move gnu utmpx to default implementation Adhemerval Zanella via Libc-alpha
2021-03-05 20:14 ` [PATCH 17/52] Consolidate and simplify internal utmp definitions Adhemerval Zanella via Libc-alpha
2021-03-05 20:14 ` [PATCH 18/52] support: Add 'touch' command Adhemerval Zanella via Libc-alpha
2021-03-05 20:14 ` [PATCH 19/52] Add tests-container-internal rules Adhemerval Zanella via Libc-alpha
2021-03-05 20:14 ` [PATCH 20/52] login: Add 64-bit time support to utmp/utmpx Adhemerval Zanella via Libc-alpha
2021-04-27 12:30 ` Florian Weimer via Libc-alpha
2021-04-27 13:58 ` Andreas Schwab
2021-04-27 14:18 ` Florian Weimer via Libc-alpha
2021-04-27 14:51 ` Andreas Schwab
2021-04-27 18:03 ` Joseph Myers
2021-04-30 10:03 ` Florian Weimer via Libc-alpha
2021-04-30 12:17 ` Andreas Schwab
2021-04-30 12:22 ` Florian Weimer via Libc-alpha
2021-04-30 14:11 ` Andreas Schwab
2021-03-05 20:14 ` [PATCH 21/52] linux: Add pwrite64_nocancel Adhemerval Zanella via Libc-alpha
2021-03-05 20:14 ` Adhemerval Zanella via Libc-alpha [this message]
2021-03-06 0:07 ` [PATCH 22/52] login: Use 64-bit time on struct lastlog [BZ #25844] Joseph Myers
2021-03-08 13:05 ` Adhemerval Zanella via Libc-alpha
2021-03-05 20:14 ` [PATCH 23/52] Remove __WORDSIZE_TIME64_COMPAT32 Adhemerval Zanella via Libc-alpha
2021-03-05 20:14 ` [PATCH 24/52] linux: Add fallback for 64-bit time_t SO_{RCV, SND}TIMEO Adhemerval Zanella via Libc-alpha
2021-03-05 20:14 ` [PATCH 25/52] linux: Add fallback for 64-bit time_t SO_TIMESTAMP{NS} Adhemerval Zanella via Libc-alpha
2021-03-05 20:14 ` [PATCH 26/52] linux: Add recvvmsg " Adhemerval Zanella via Libc-alpha
2021-03-05 20:14 ` [PATCH 27/52] y2038: Add __USE_TIME_BITS64 support for time_t Adhemerval Zanella via Libc-alpha
2021-03-05 20:14 ` [PATCH 28/52] y2038: Add __USE_TIME_BITS64 support for struct timeval Adhemerval Zanella via Libc-alpha
2021-03-05 20:14 ` [PATCH 29/52] y2038: Add __USE_TIME_BITS64 support for struct timespec Adhemerval Zanella via Libc-alpha
2021-03-05 20:14 ` [PATCH 30/52] y2038: Add __USE_TIME_BITS64 support for struct utimbuf Adhemerval Zanella via Libc-alpha
2021-03-05 20:14 ` [PATCH 31/52] y2038: linux: Add __USE_TIME_BITS64 support for struct timex Adhemerval Zanella via Libc-alpha
2021-03-05 20:14 ` [PATCH 32/52] y2038: Use a common definition for stat Adhemerval Zanella via Libc-alpha
2021-03-05 20:14 ` [PATCH 33/52] y2038: Use a common definition for msqid_ds Adhemerval Zanella via Libc-alpha
2021-03-05 20:15 ` [PATCH 34/52] y2038: Use a common definition for semid_ds Adhemerval Zanella via Libc-alpha
2021-03-05 20:15 ` [PATCH 35/52] y2038: Use a common definition for shmid_ds Adhemerval Zanella via Libc-alpha
2021-03-05 20:15 ` [PATCH 36/52] y2038: Add __USE_TIME_BITS64 support for socket-constants.h Adhemerval Zanella via Libc-alpha
2021-03-05 20:15 ` [PATCH 37/52] time: Add 64 bit time support for getdate Adhemerval Zanella via Libc-alpha
2021-03-08 21:27 ` Lukasz Majewski
2021-03-05 20:15 ` [PATCH 38/52] y2038: Add support for 64 bit time on legacy ABIs Adhemerval Zanella via Libc-alpha
2021-03-08 21:27 ` Lukasz Majewski
2021-03-05 20:15 ` [PATCH 39/52] posix: Add glob64 with 64 bit time_t support Adhemerval Zanella via Libc-alpha
2021-03-05 20:15 ` [PATCH 40/52] io: Add fts64 " Adhemerval Zanella via Libc-alpha
2021-03-05 20:15 ` [PATCH 41/52] io: Add ftw64 " Adhemerval Zanella via Libc-alpha
2021-03-05 20:15 ` [PATCH 42/52] libsupport: Add 64 bit time_t support for time functions Adhemerval Zanella via Libc-alpha
2021-03-05 20:15 ` [PATCH 43/52] libsupport: Add 64 bit time_t support for stat functions Adhemerval Zanella via Libc-alpha
2021-03-05 20:42 ` Florian Weimer via Libc-alpha
2021-03-08 13:06 ` Adhemerval Zanella via Libc-alpha
2021-03-05 20:15 ` [PATCH 44/52] y2038: Add test coverage Adhemerval Zanella via Libc-alpha
2021-03-06 0:13 ` Joseph Myers
2021-03-08 13:12 ` Adhemerval Zanella via Libc-alpha
2021-03-08 21:28 ` Lukasz Majewski
2021-03-05 20:15 ` [PATCH 45/52] Use 64 bit time_t stat internally Adhemerval Zanella via Libc-alpha
2021-03-05 20:15 ` [PATCH 46/52] debug: build pcprofiledump with LFS and 64 bit time support Adhemerval Zanella via Libc-alpha
2021-03-05 20:15 ` [PATCH 47/52] elf: Use LFS and 64 bit time_t for installed programs Adhemerval Zanella via Libc-alpha
2021-03-05 20:43 ` Florian Weimer via Libc-alpha
2021-03-08 13:14 ` Adhemerval Zanella via Libc-alpha
2021-03-08 15:26 ` Florian Weimer via Libc-alpha
2021-03-05 20:15 ` [PATCH 48/52] iconv: " Adhemerval Zanella via Libc-alpha
2021-03-05 20:15 ` [PATCH 49/52] locale: " Adhemerval Zanella via Libc-alpha
2021-03-05 20:15 ` [PATCH 50/52] nss: " Adhemerval Zanella via Libc-alpha
2021-03-05 20:15 ` [PATCH 51/52] posix: " Adhemerval Zanella via Libc-alpha
2021-03-05 20:15 ` [PATCH 52/52] timezone: " Adhemerval Zanella via Libc-alpha
2021-03-05 23:57 ` [PATCH 00/52] Add 64 bit time support on legacy ABIs Joseph Myers
2021-03-08 13:18 ` Adhemerval Zanella via Libc-alpha
2021-03-07 10:42 ` Lukasz Majewski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/libc/involved.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210305201518.798584-23-adhemerval.zanella@linaro.org \
--to=libc-alpha@sourceware.org \
--cc=adhemerval.zanella@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).