* utmp.h & utmpx.h for s390.
@ 2002-10-09 6:15 Martin Schwidefsky
2002-10-09 7:05 ` [PATCH] */lib64 for s390x Jakub Jelinek
0 siblings, 1 reply; 3+ messages in thread
From: Martin Schwidefsky @ 2002-10-09 6:15 UTC (permalink / raw)
To: libc-hacker; +Cc: bk, aj
Hi folks,
Jakub Jelinek writes:
> I haven't changed s390x, but IMHO it is better to recompile the affected
> apps now in the /usr/lib -> /usr/lib64 transition which changes most
> of the things anyway, than to suffer forever.
All I can say is: he is right. I wanted to look into versioned symbols for
the glibc functions that are affected by the utmp.h/utmpx.h change but I
am too busy with other stuff right now (and I know that extreme caution
is required for anything to do with versioning).
I just copied the utmp.h/utmpx.h headers from powerpc/x86_64 to the s390
folder so credits go to Steven and Jakub.
blue skies,
Martin.
2002-10-09 Steven Munroe <sjmunroe@us.ibm.com>
Jakub Jelinek <jakub@redhat.com>
* sysdeps/s390/s390-32/bits/wordsize.h (__WORDSIZE_COMPAT32): Define.
* sysdeps/s390/s390-64/bits/wordsize.h (__WORDSIZE_COMPAT32): Define.
* sysdeps/unix/sysv/linux/s390/bits/utmp.h: New file.
* sysdeps/unix/sysv/linux/s390/bits/utmpx.h: New file.
diff -urN libc-head/sysdeps/s390/s390-32/bits/wordsize.h libc-s390/sysdeps/s390/s390-32/bits/wordsize.h
--- libc-head/sysdeps/s390/s390-32/bits/wordsize.h Wed Oct 2 22:52:30 2002
+++ libc-s390/sysdeps/s390/s390-32/bits/wordsize.h Wed Oct 9 14:50:44 2002
@@ -2,6 +2,7 @@
#if defined __s390x__
# define __WORDSIZE 64
+# define __WORDSIZE_COMPAT32 1
#else
# define __WORDSIZE 32
#endif
diff -urN libc-head/sysdeps/s390/s390-64/bits/wordsize.h libc-s390/sysdeps/s390/s390-64/bits/wordsize.h
--- libc-head/sysdeps/s390/s390-64/bits/wordsize.h Wed Oct 2 22:57:48 2002
+++ libc-s390/sysdeps/s390/s390-64/bits/wordsize.h Wed Oct 9 14:51:03 2002
@@ -2,6 +2,7 @@
#if defined __s390x__
# define __WORDSIZE 64
+# define __WORDSIZE_COMPAT32 1
#else
# define __WORDSIZE 32
#endif
diff -urN libc-head/sysdeps/unix/sysv/linux/s390/bits/utmp.h libc-s390/sysdeps/unix/sysv/linux/s390/bits/utmp.h
--- libc-head/sysdeps/unix/sysv/linux/s390/bits/utmp.h Thu Jan 1 01:00:00 1970
+++ libc-s390/sysdeps/unix/sysv/linux/s390/bits/utmp.h Wed Oct 9 14:44:48 2002
@@ -0,0 +1,126 @@
+/* The `struct utmp' type, describing entries in the utmp file. GNU version.
+ Copyright (C) 1993, 1996, 1997, 1998, 1999, 2002
+ 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, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#ifndef _UTMP_H
+# error "Never include <bits/utmp.h> directly; use <utmp.h> instead."
+#endif
+
+#include <paths.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <bits/wordsize.h>
+
+
+#define UT_LINESIZE 32
+#define UT_NAMESIZE 32
+#define UT_HOSTSIZE 256
+
+
+/* The structure describing an entry in the database of
+ previous logins. */
+struct lastlog
+ {
+#if __WORDSIZE == 64 && defined __WORDSIZE_COMPAT32
+ int32_t ll_time;
+#else
+ __time_t ll_time;
+#endif
+ char ll_line[UT_LINESIZE];
+ char ll_host[UT_HOSTSIZE];
+ };
+
+
+/* The structure describing the status of a terminated process. This
+ type is used in `struct utmp' below. */
+struct exit_status
+ {
+ short int e_termination; /* Process termination status. */
+ short int e_exit; /* Process exit status. */
+ };
+
+
+/* The structure describing an entry in the user accounting database. */
+struct utmp
+{
+ short int ut_type; /* Type of login. */
+ pid_t ut_pid; /* Process ID of login process. */
+ char ut_line[UT_LINESIZE]; /* Devicename. */
+ char ut_id[4]; /* Inittab ID. */
+ char ut_user[UT_NAMESIZE]; /* Username. */
+ char ut_host[UT_HOSTSIZE]; /* Hostname for remote login. */
+ struct exit_status ut_exit; /* Exit status of a process marked
+ as DEAD_PROCESS. */
+
+/* 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/64bit applications. For example /var/run/utmp. */
+#if __WORDSIZE == 64 && defined __WORDSIZE_COMPAT32
+ int32_t ut_session; /* Session ID, used for windowing. */
+ struct
+ {
+ int32_t tv_sec; /* Seconds. */
+ int32_t tv_usec; /* Microseconds. */
+ } ut_tv; /* Time entry was made. */
+#else
+ long int ut_session; /* Session ID, used for windowing. */
+ struct timeval ut_tv; /* Time entry was made. */
+#endif
+
+ int32_t ut_addr_v6[4]; /* Internet address of remote host. */
+ char __unused[20]; /* Reserved for future use. */
+};
+
+/* Backwards compatibility hacks. */
+#define ut_name ut_user
+#ifndef _NO_UT_TIME
+/* We have a problem here: `ut_time' is also used otherwise. Define
+ _NO_UT_TIME if the compiler complains. */
+# define ut_time ut_tv.tv_sec
+#endif
+#define ut_xtime ut_tv.tv_sec
+#define ut_addr ut_addr_v6[0]
+
+
+/* Values for the `ut_type' field of a `struct utmp'. */
+#define EMPTY 0 /* No valid user accounting information. */
+
+#define RUN_LVL 1 /* The system's runlevel. */
+#define BOOT_TIME 2 /* Time of system boot. */
+#define NEW_TIME 3 /* Time after system clock changed. */
+#define OLD_TIME 4 /* Time when system clock changed. */
+
+#define INIT_PROCESS 5 /* Process spawned by the init process. */
+#define LOGIN_PROCESS 6 /* Session leader of a logged in user. */
+#define USER_PROCESS 7 /* Normal process. */
+#define DEAD_PROCESS 8 /* Terminated process. */
+
+#define ACCOUNTING 9
+
+/* Old Linux name for the EMPTY type. */
+#define UT_UNKNOWN EMPTY
+
+
+/* Tell the user that we have a modern system with UT_HOST, UT_PID,
+ UT_TYPE, UT_ID and UT_TV fields. */
+#define _HAVE_UT_TYPE 1
+#define _HAVE_UT_PID 1
+#define _HAVE_UT_ID 1
+#define _HAVE_UT_TV 1
+#define _HAVE_UT_HOST 1
diff -urN libc-head/sysdeps/unix/sysv/linux/s390/bits/utmpx.h libc-s390/sysdeps/unix/sysv/linux/s390/bits/utmpx.h
--- libc-head/sysdeps/unix/sysv/linux/s390/bits/utmpx.h Thu Jan 1 01:00:00 1970
+++ libc-s390/sysdeps/unix/sysv/linux/s390/bits/utmpx.h Wed Oct 9 14:44:52 2002
@@ -0,0 +1,102 @@
+/* Structures and definitions for the user accounting database. GNU version.
+ Copyright (C) 1997, 1998, 2000, 2001, 2002 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, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#ifndef _UTMPX_H
+# error "Never include <bits/utmpx.h> directly; use <utmpx.h> instead."
+#endif
+
+#include <bits/types.h>
+#include <sys/time.h>
+
+
+#ifdef __USE_GNU
+# include <paths.h>
+# define _PATH_UTMPX _PATH_UTMP
+# define _PATH_WTMPX _PATH_WTMP
+#endif
+
+
+#define __UT_LINESIZE 32
+#define __UT_NAMESIZE 32
+#define __UT_HOSTSIZE 256
+
+
+/* The structure describing the status of a terminated process. This
+ type is used in `struct utmpx' below. */
+struct __exit_status
+ {
+#ifdef __USE_GNU
+ short int e_termination; /* Process termination status. */
+ short int e_exit; /* Process exit status. */
+#else
+ short int __e_termination; /* Process termination status. */
+ short int __e_exit; /* Process exit status. */
+#endif
+ };
+
+
+/* The structure describing an entry in the user accounting database. */
+struct utmpx
+{
+ short int ut_type; /* Type of login. */
+ __pid_t ut_pid; /* Process ID of login process. */
+ char ut_line[__UT_LINESIZE]; /* Devicename. */
+ char ut_id[4]; /* Inittab ID. */
+ char ut_user[__UT_NAMESIZE]; /* Username. */
+ char ut_host[__UT_HOSTSIZE]; /* Hostname for remote login. */
+ struct __exit_status ut_exit; /* Exit status of a process marked
+ as DEAD_PROCESS. */
+
+/* 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/64bit applications. */
+#if __WORDSIZE == 64 && defined __WORDSIZE_COMPAT32
+ __int32_t ut_session; /* Session ID, used for windowing. */
+ struct
+ {
+ __int32_t tv_sec; /* Seconds. */
+ __int32_t tv_usec; /* Microseconds. */
+ } ut_tv; /* Time entry was made. */
+#else
+ long int ut_session; /* Session ID, used for windowing. */
+ struct timeval ut_tv; /* Time entry was made. */
+#endif
+ __int32_t ut_addr_v6[4]; /* Internet address of remote host. */
+ char __unused[20]; /* Reserved for future use. */
+};
+
+
+/* Values for the `ut_type' field of a `struct utmpx'. */
+#define EMPTY 0 /* No valid user accounting information. */
+
+#ifdef __USE_GNU
+# define RUN_LVL 1 /* The system's runlevel. */
+#endif
+#define BOOT_TIME 2 /* Time of system boot. */
+#define NEW_TIME 3 /* Time after system clock changed. */
+#define OLD_TIME 4 /* Time when system clock changed. */
+
+#define INIT_PROCESS 5 /* Process spawned by the init process. */
+#define LOGIN_PROCESS 6 /* Session leader of a logged in user. */
+#define USER_PROCESS 7 /* Normal process. */
+#define DEAD_PROCESS 8 /* Terminated process. */
+
+#ifdef __USE_GNU
+# define ACCOUNTING 9 /* System accounting. */
+#endif
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH] */lib64 for s390x
2002-10-09 6:15 utmp.h & utmpx.h for s390 Martin Schwidefsky
@ 2002-10-09 7:05 ` Jakub Jelinek
2002-10-15 15:26 ` Andreas Jaeger
0 siblings, 1 reply; 3+ messages in thread
From: Jakub Jelinek @ 2002-10-09 7:05 UTC (permalink / raw)
To: Martin Schwidefsky; +Cc: libc-hacker
On Wed, Oct 09, 2002 at 03:05:11PM +0200, Martin Schwidefsky wrote:
> All I can say is: he is right. I wanted to look into versioned symbols for
> the glibc functions that are affected by the utmp.h/utmpx.h change but I
> am too busy with other stuff right now (and I know that extreme caution
> is required for anything to do with versioning).
Don't you need following too?
2002-10-09 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/configure.in: Use */lib64 for s390x too.
* sysdeps/unix/sysv/linux/configure: Rebuilt.
--- libc/sysdeps/unix/sysv/linux/configure.in 28 Sep 2002 20:39:35 -0000 1.1.1.17
+++ libc/sysdeps/unix/sysv/linux/configure.in 9 Oct 2002 11:14:45 -0000 1.14
@@ -185,7 +185,8 @@ fi
if test "$prefix" = "/usr" -o "$prefix" = "/usr/"; then
# 64bit libraries on sparc go to /lib64 and not /lib
if test "$machine" = "sparc/sparc64" -o "$machine" = "x86_64" \
- -o "$machine" = "powerpc/powerpc64"; then
+ -o "$machine" = "powerpc/powerpc64" \
+ -o "$machine" = "s390/s390-64"; then
libc_cv_slibdir="/lib64"
if test "$libdir" = '${exec_prefix}/lib'; then
libdir='${exec_prefix}/lib64';
--- libc/sysdeps/unix/sysv/linux/configure 28 Sep 2002 20:39:35 -0000 1.1.1.17
+++ libc/sysdeps/unix/sysv/linux/configure 9 Oct 2002 11:14:45 -0000 1.14
@@ -185,7 +185,8 @@ fi
if test "$prefix" = "/usr" -o "$prefix" = "/usr/"; then
# 64bit libraries on sparc go to /lib64 and not /lib
if test "$machine" = "sparc/sparc64" -o "$machine" = "x86_64" \
- -o "$machine" = "powerpc/powerpc64"; then
+ -o "$machine" = "powerpc/powerpc64" \
+ -o "$machine" = "s390/s390-64"; then
libc_cv_slibdir="/lib64"
if test "$libdir" = '${exec_prefix}/lib'; then
libdir='${exec_prefix}/lib64';
Jakub
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] */lib64 for s390x
2002-10-09 7:05 ` [PATCH] */lib64 for s390x Jakub Jelinek
@ 2002-10-15 15:26 ` Andreas Jaeger
0 siblings, 0 replies; 3+ messages in thread
From: Andreas Jaeger @ 2002-10-15 15:26 UTC (permalink / raw)
To: Jakub Jelinek; +Cc: Martin Schwidefsky, libc-hacker
Jakub Jelinek <jakub@redhat.com> writes:
> On Wed, Oct 09, 2002 at 03:05:11PM +0200, Martin Schwidefsky wrote:
>> All I can say is: he is right. I wanted to look into versioned symbols for
>> the glibc functions that are affected by the utmp.h/utmpx.h change but I
>> am too busy with other stuff right now (and I know that extreme caution
>> is required for anything to do with versioning).
>
> Don't you need following too?
>
> 2002-10-09 Jakub Jelinek <jakub@redhat.com>
>
> * sysdeps/unix/sysv/linux/configure.in: Use */lib64 for s390x too.
> * sysdeps/unix/sysv/linux/configure: Rebuilt.
I'm going to apply this now,
Andreas
>
> --- libc/sysdeps/unix/sysv/linux/configure.in 28 Sep 2002 20:39:35 -0000 1.1.1.17
> +++ libc/sysdeps/unix/sysv/linux/configure.in 9 Oct 2002 11:14:45 -0000 1.14
> @@ -185,7 +185,8 @@ fi
> if test "$prefix" = "/usr" -o "$prefix" = "/usr/"; then
> # 64bit libraries on sparc go to /lib64 and not /lib
> if test "$machine" = "sparc/sparc64" -o "$machine" = "x86_64" \
> - -o "$machine" = "powerpc/powerpc64"; then
> + -o "$machine" = "powerpc/powerpc64" \
> + -o "$machine" = "s390/s390-64"; then
> libc_cv_slibdir="/lib64"
> if test "$libdir" = '${exec_prefix}/lib'; then
> libdir='${exec_prefix}/lib64';
> --- libc/sysdeps/unix/sysv/linux/configure 28 Sep 2002 20:39:35 -0000 1.1.1.17
> +++ libc/sysdeps/unix/sysv/linux/configure 9 Oct 2002 11:14:45 -0000 1.14
> @@ -185,7 +185,8 @@ fi
> if test "$prefix" = "/usr" -o "$prefix" = "/usr/"; then
> # 64bit libraries on sparc go to /lib64 and not /lib
> if test "$machine" = "sparc/sparc64" -o "$machine" = "x86_64" \
> - -o "$machine" = "powerpc/powerpc64"; then
> + -o "$machine" = "powerpc/powerpc64" \
> + -o "$machine" = "s390/s390-64"; then
> libc_cv_slibdir="/lib64"
> if test "$libdir" = '${exec_prefix}/lib'; then
> libdir='${exec_prefix}/lib64';
>
> Jakub
>
Andreas
--
Andreas Jaeger
SuSE Labs aj@suse.de
private aj@arthur.inka.de
http://www.suse.de/~aj
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2002-10-15 7:36 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-10-09 6:15 utmp.h & utmpx.h for s390 Martin Schwidefsky
2002-10-09 7:05 ` [PATCH] */lib64 for s390x Jakub Jelinek
2002-10-15 15:26 ` Andreas Jaeger
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).