diff options
| -rw-r--r-- | libc/sysdeps/linux/common/bits/utmp.h | 4 | ||||
| -rw-r--r-- | libc/sysdeps/linux/common/bits/utmpx.h | 2 | ||||
| -rw-r--r-- | libc/sysdeps/linux/mips/bits/wordsize.h | 3 | ||||
| -rw-r--r-- | libc/sysdeps/linux/powerpc/bits/wordsize.h | 2 | ||||
| -rw-r--r-- | libc/sysdeps/linux/sparc/bits/wordsize.h | 1 | ||||
| -rw-r--r-- | libc/sysdeps/linux/x86_64/bits/wordsize.h | 9 | ||||
| -rw-r--r-- | libutil/logout.c | 2 | ||||
| -rw-r--r-- | libutil/logwtmp.c | 2 | 
8 files changed, 16 insertions, 9 deletions
| diff --git a/libc/sysdeps/linux/common/bits/utmp.h b/libc/sysdeps/linux/common/bits/utmp.h index c13380ab8..6ece31e34 100644 --- a/libc/sysdeps/linux/common/bits/utmp.h +++ b/libc/sysdeps/linux/common/bits/utmp.h @@ -36,7 +36,7 @@     previous logins.  */  struct lastlog    { -#if __WORDSIZE == 64 && defined __WORDSIZE_COMPAT32 +#ifdef __WORDSIZE_TIME64_COMPAT32      int32_t ll_time;  #else      __time_t ll_time; @@ -69,7 +69,7 @@ struct utmp  /* The ut_session and ut_tv fields must be the same size when compiled     32- and 64-bit.  This allows data files and shared memory to be     shared between 32- and 64-bit applications.  */ -#if __WORDSIZE == 64 && defined __WORDSIZE_COMPAT32 +#ifdef __WORDSIZE_TIME64_COMPAT32    int32_t ut_session;		/* Session ID, used for windowing.  */    struct    { diff --git a/libc/sysdeps/linux/common/bits/utmpx.h b/libc/sysdeps/linux/common/bits/utmpx.h index 87626f085..815fc90b8 100644 --- a/libc/sysdeps/linux/common/bits/utmpx.h +++ b/libc/sysdeps/linux/common/bits/utmpx.h @@ -66,7 +66,7 @@ struct utmpx  /* The fields ut_session and ut_tv must be the same size when compiled     32- and 64-bit.  This allows files and shared memory to be shared     between 32- and 64-bit applications.  */ -#if __WORDSIZE == 64 && defined __WORDSIZE_COMPAT32 +#ifdef __WORDSIZE_TIME64_COMPAT32    __int32_t ut_session;		/* Session ID, used for windowing.  */    struct    { diff --git a/libc/sysdeps/linux/mips/bits/wordsize.h b/libc/sysdeps/linux/mips/bits/wordsize.h index 39e15062c..fe130806c 100644 --- a/libc/sysdeps/linux/mips/bits/wordsize.h +++ b/libc/sysdeps/linux/mips/bits/wordsize.h @@ -16,3 +16,6 @@     <http://www.gnu.org/licenses/>.  */  #define __WORDSIZE	_MIPS_SZPTR +#if _MIPS_SIM == _ABI64 +# define __WORDSIZE_TIME64_COMPAT32 1 +#endif diff --git a/libc/sysdeps/linux/powerpc/bits/wordsize.h b/libc/sysdeps/linux/powerpc/bits/wordsize.h index cf934234f..3e8a1e0a1 100644 --- a/libc/sysdeps/linux/powerpc/bits/wordsize.h +++ b/libc/sysdeps/linux/powerpc/bits/wordsize.h @@ -2,7 +2,7 @@  #if defined __powerpc64__  # define __WORDSIZE	64 -# define __WORDSIZE_COMPAT32	1 +# define __WORDSIZE_TIME64_COMPAT32	1  #else  # define __WORDSIZE	32  #endif diff --git a/libc/sysdeps/linux/sparc/bits/wordsize.h b/libc/sysdeps/linux/sparc/bits/wordsize.h index c0e600ed5..aa15dbc7a 100644 --- a/libc/sysdeps/linux/sparc/bits/wordsize.h +++ b/libc/sysdeps/linux/sparc/bits/wordsize.h @@ -2,6 +2,7 @@  #if defined __arch64__ || defined __sparcv9  # define __WORDSIZE	64 +# define __WORDSIZE_TIME64_COMPAT32 1  #else  # define __WORDSIZE	32  #endif diff --git a/libc/sysdeps/linux/x86_64/bits/wordsize.h b/libc/sysdeps/linux/x86_64/bits/wordsize.h index e55524100..9db982c90 100644 --- a/libc/sysdeps/linux/x86_64/bits/wordsize.h +++ b/libc/sysdeps/linux/x86_64/bits/wordsize.h @@ -1,9 +1,12 @@  /* Determine the wordsize from the preprocessor defines.  */ -#if defined __x86_64__ +#if defined __x86_64__ && !defined __ILP32__  # define __WORDSIZE	64 -/* This makes /var/run/utmp compatible with 32-bit environment: */ -# define __WORDSIZE_COMPAT32	1  #else  # define __WORDSIZE	32  #endif + +#ifdef __x86_64__ +/* This makes /var/run/utmp compatible with 32-bit environment: */ +# define __WORDSIZE_TIME64_COMPAT32	1 +#endif diff --git a/libutil/logout.c b/libutil/logout.c index 9c7440b19..45804552d 100644 --- a/libutil/logout.c +++ b/libutil/logout.c @@ -50,7 +50,7 @@ logout (const char *line)        memset (ut->ut_host, 0, sizeof ut->ut_host);  #endif  #if _HAVE_UT_TV - 0 -# if !defined __WORDSIZE_COMPAT32 || __WORDSIZE_COMPAT32 == 0 +# if !defined __WORDSIZE_TIME64_COMPAT32        gettimeofday (&ut->ut_tv, NULL);  # else        { diff --git a/libutil/logwtmp.c b/libutil/logwtmp.c index 2a6f28a48..6a53b5ff1 100644 --- a/libutil/logwtmp.c +++ b/libutil/logwtmp.c @@ -23,7 +23,7 @@ void logwtmp(const char *line, const char *name, const char *host)      strncpy(lutmp.ut_line, line, sizeof(lutmp.ut_line)-1);      strncpy(lutmp.ut_name, name, sizeof(lutmp.ut_name)-1);      strncpy(lutmp.ut_host, host, sizeof(lutmp.ut_host)-1); -#if !defined __WORDSIZE_COMPAT32 || __WORDSIZE_COMPAT32 == 0 +#if !defined __WORDSIZE_TIME64_COMPAT32      gettimeofday(&lutmp.ut_tv, NULL);  #else      { | 
