This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Fix ssize_t definition on s390 32-bit


Hi!

On Thu, Jul 31, 2003 at 03:20:19PM +0200, Jakub Jelinek wrote:
> Kills lots of warnings I saw during last build.
> There is still a bunch of warnings on s390, because
> typedef long unsigned int size_t;
> __extension__ typedef int __ssize_t;

Here is a patch which should fix it.
sysdeps/unix/sysv/linux/s390/bits/types.h had
typedef long __ssize_t;
before 2002-10-23 bits/typesizes.h changes and it matches GCC
size_t definition.

2003-07-31  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/generic/bits/types.h (__ssize_t): Use __SSIZE_T_TYPE
	instead of __SWORD_TYPE.
	* sysdeps/generic/bits/typesizes.h (__SSIZE_T_TYPE): Define.
	* sysdeps/mach/hurd/bits/typesizes.h (__SSIZE_T_TYPE): Define.
	* sysdeps/unix/bsd/bsd4.4/freebsd/bits/typesizes.h (__SSIZE_T_TYPE):
	Define.
	* sysdeps/unix/sysv/linux/alpha/bits/bits/typesizes.h (__SSIZE_T_TYPE):
	Define.
	* sysdeps/unix/sysv/linux/sparc/bits/bits/typesizes.h (__SSIZE_T_TYPE):
	Define.
	* sysdeps/unix/sysv/linux/s390/bits/typesizes.h: New file.

--- libc/sysdeps/generic/bits/typesizes.h.jj	2003-03-25 15:33:05.000000000 -0500
+++ libc/sysdeps/generic/bits/typesizes.h	2003-07-31 09:22:38.000000000 -0400
@@ -57,6 +57,7 @@
 #define __TIMER_T_TYPE		void *
 #define __BLKSIZE_T_TYPE	__SLONGWORD_TYPE
 #define __FSID_T_TYPE		struct { int __val[2]; }
+#define __SSIZE_T_TYPE		__SWORD_TYPE
 
 /* Number of descriptors that can fit in an `fd_set'.  */
 #define	__FD_SETSIZE		1024
--- libc/sysdeps/generic/bits/types.h.jj	2003-07-30 06:00:33.000000000 -0400
+++ libc/sysdeps/generic/bits/types.h	2003-07-31 09:38:38.000000000 -0400
@@ -1,5 +1,5 @@
 /* bits/types.h -- definitions of __*_t types underlying *_t types.
-   Copyright (C) 2002 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2003 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
@@ -178,10 +178,10 @@ __STD_TYPE __FSBLKCNT64_T_TYPE __fsblkcn
 __STD_TYPE __FSFILCNT_T_TYPE __fsfilcnt_t;
 __STD_TYPE __FSFILCNT64_T_TYPE __fsfilcnt64_t;
 
+__STD_TYPE __SSIZE_T_TYPE __ssize_t; /* Type of a byte count, or error.  */
 
 /* These few don't really vary by system, they always correspond
    to one of the other defined types.  */
-__STD_TYPE __SWORD_TYPE __ssize_t; /* Type of a byte count, or error.  */
 typedef __off64_t __loff_t;	/* Type of file sizes and offsets (LFS).  */
 typedef __quad_t *__qaddr_t;
 typedef char *__caddr_t;
--- libc/sysdeps/mach/hurd/bits/typesizes.h.jj	2003-02-21 03:19:41.000000000 -0500
+++ libc/sysdeps/mach/hurd/bits/typesizes.h	2003-07-31 09:40:08.000000000 -0400
@@ -57,6 +57,7 @@
 #define __TIMER_T_TYPE		__S32_TYPE
 #define __BLKSIZE_T_TYPE	__SLONGWORD_TYPE
 #define __FSID_T_TYPE		__UQUAD_TYPE
+#define __SSIZE_T_TYPE		__SWORD_TYPE
 
 /* Number of descriptors that can fit in an `fd_set'.  */
 #define	__FD_SETSIZE		256
--- libc/sysdeps/unix/bsd/bsd4.4/freebsd/bits/typesizes.h.jj	2002-11-02 20:21:17.000000000 -0500
+++ libc/sysdeps/unix/bsd/bsd4.4/freebsd/bits/typesizes.h	2003-07-31 09:40:18.000000000 -0400
@@ -1,5 +1,5 @@
 /* bits/typesizes.h -- underlying types for *_t.  FreeBSD version.
-   Copyright (C) 2002 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2003 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
@@ -57,6 +57,7 @@
 #define __TIMER_T_TYPE		__S32_TYPE
 #define __BLKSIZE_T_TYPE	__U32_TYPE
 #define __FSID_T_TYPE		struct { int __val[2]; }
+#define __SSIZE_T_TYPE		__SWORD_TYPE
 
 /* Number of descriptors that can fit in an `fd_set'.  */
 #define	__FD_SETSIZE		1024
--- libc/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h.jj	2003-03-25 16:59:17.000000000 -0500
+++ libc/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h	2003-07-31 09:40:27.000000000 -0400
@@ -57,6 +57,7 @@
 #define __TIMER_T_TYPE		void *
 #define __BLKSIZE_T_TYPE	__U32_TYPE
 #define __FSID_T_TYPE		struct { int __val[2]; }
+#define __SSIZE_T_TYPE		__SWORD_TYPE
 
 /* Number of descriptors that can fit in an `fd_set'.  */
 #define	__FD_SETSIZE		1024
--- libc/sysdeps/unix/sysv/linux/s390/bits/typesizes.h.jj	2003-07-31 09:43:23.000000000 -0400
+++ libc/sysdeps/unix/sysv/linux/s390/bits/typesizes.h	2003-07-31 09:43:59.000000000 -0400
@@ -0,0 +1,66 @@
+/* bits/typesizes.h -- underlying types for *_t.  Linux/s390 version.
+   Copyright (C) 2003 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 _BITS_TYPES_H
+# error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
+#endif
+
+#ifndef	_BITS_TYPESIZES_H
+#define	_BITS_TYPESIZES_H	1
+
+/* See <bits/types.h> for the meaning of these macros.  This file exists so
+   that <bits/types.h> need not vary across different GNU platforms.  */
+
+#define __DEV_T_TYPE		__UQUAD_TYPE
+#define __UID_T_TYPE		__U32_TYPE
+#define __GID_T_TYPE		__U32_TYPE
+#define __INO_T_TYPE		__ULONGWORD_TYPE
+#define __INO64_T_TYPE		__UQUAD_TYPE
+#define __MODE_T_TYPE		__U32_TYPE
+#define __NLINK_T_TYPE		__UWORD_TYPE
+#define __OFF_T_TYPE		__SLONGWORD_TYPE
+#define __OFF64_T_TYPE		__SQUAD_TYPE
+#define __PID_T_TYPE		__S32_TYPE
+#define __RLIM_T_TYPE		__ULONGWORD_TYPE
+#define __RLIM64_T_TYPE		__UQUAD_TYPE
+#define	__BLKCNT_T_TYPE		__SLONGWORD_TYPE
+#define	__BLKCNT64_T_TYPE	__SQUAD_TYPE
+#define	__FSBLKCNT_T_TYPE	__ULONGWORD_TYPE
+#define	__FSBLKCNT64_T_TYPE	__UQUAD_TYPE
+#define	__FSFILCNT_T_TYPE	__ULONGWORD_TYPE
+#define	__FSFILCNT64_T_TYPE	__UQUAD_TYPE
+#define	__ID_T_TYPE		__U32_TYPE
+#define __CLOCK_T_TYPE		__SLONGWORD_TYPE
+#define __TIME_T_TYPE		__SLONGWORD_TYPE
+#define __USECONDS_T_TYPE	__U32_TYPE
+#define __SUSECONDS_T_TYPE	__SLONGWORD_TYPE
+#define __DADDR_T_TYPE		__S32_TYPE
+#define __SWBLK_T_TYPE		__SLONGWORD_TYPE
+#define __KEY_T_TYPE		__S32_TYPE
+#define __CLOCKID_T_TYPE	__S32_TYPE
+#define __TIMER_T_TYPE		void *
+#define __BLKSIZE_T_TYPE	__SLONGWORD_TYPE
+#define __FSID_T_TYPE		struct { int __val[2]; }
+#define __SSIZE_T_TYPE		__SLONGWORD_TYPE
+
+/* Number of descriptors that can fit in an `fd_set'.  */
+#define	__FD_SETSIZE		1024
+
+
+#endif /* bits/typesizes.h */
--- libc/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h.jj	2003-03-25 17:00:07.000000000 -0500
+++ libc/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h	2003-07-31 09:40:34.000000000 -0400
@@ -57,6 +57,7 @@
 #define __TIMER_T_TYPE		void *
 #define __BLKSIZE_T_TYPE	__SLONGWORD_TYPE
 #define __FSID_T_TYPE		struct { int __val[2]; }
+#define __SSIZE_T_TYPE		__SWORD_TYPE
 
 /* Number of descriptors that can fit in an `fd_set'.  */
 #define	__FD_SETSIZE		1024


	Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]