Update.
authorUlrich Drepper <drepper@redhat.com>
Tue, 9 Sep 2003 00:07:08 +0000 (00:07 +0000)
committerUlrich Drepper <drepper@redhat.com>
Tue, 9 Sep 2003 00:07:08 +0000 (00:07 +0000)
2003-09-08  Jakub Jelinek  <jakub@redhat.com>

* sysdeps/generic/bits/types.h (__quad_t): Make long int if 64-bit.
(__u_quad_t): Make unsigned long int if 64-bit.
(__SQUAD_TYPE): Make long int if 64-bit.
(__UQUAD_TYPE): Make unsigned long int if 64-bit.
* sysdeps/unix/sysv/linux/s390/bits/typesizes.h: Remove.

2003-09-08  Ulrich Drepper  <drepper@redhat.com>

* Makefile (tests): Run check-c++-types.sh if possible.
* scripts/check-c++-types.h: New file.
* scripts/data/c++-ctypes-i386-linux-gnu.data: New file.

contiguous case.  Bug report from Prem Gopalan <prem@mazunetworks.com>.

18 files changed:
ChangeLog
Makefile
bits/types.h
linuxthreads/ChangeLog
linuxthreads/sysdeps/unix/sysv/linux/s390/bits/typesizes.h [deleted file]
nptl/ChangeLog
nptl/sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
nptl/sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h
nptl/sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
nptl/sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h
nptl/sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h
nptl/sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h
nptl/sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
scripts/check-c++-types.sh
scripts/data/c++-types-i386-linux-gnu.data [new file with mode: 0644]
sysdeps/generic/bits/types.h
sysdeps/unix/sysv/linux/s390/bits/typesizes.h [deleted file]

index 2d80a84..4a0ec36 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2003-09-08  Jakub Jelinek  <jakub@redhat.com>
+
+       * sysdeps/generic/bits/types.h (__quad_t): Make long int if 64-bit.
+       (__u_quad_t): Make unsigned long int if 64-bit.
+       (__SQUAD_TYPE): Make long int if 64-bit.
+       (__UQUAD_TYPE): Make unsigned long int if 64-bit.
+       * sysdeps/unix/sysv/linux/s390/bits/typesizes.h: Remove.
+
+2003-09-08  Ulrich Drepper  <drepper@redhat.com>
+
+       * Makefile (tests): Run check-c++-types.sh if possible.
+       * scripts/check-c++-types.h: New file.
+       * scripts/data/c++-ctypes-i386-linux-gnu.data: New file.
+
 2003-09-08  Andreas Jaeger  <aj@suse.de>
 
        * sysdeps/unix/sysv/linux/x86_64/register-dump.h (register_dump):
@@ -12,8 +26,7 @@
 2003-09-08  Wolfram Gloger  <wg@malloc.de>
 
        * malloc/malloc.c (sYSMALLOc): Move foreign sbrk accounting into
-       contiguous case.  Bug report from Prem Gopalan
-       <prem@mazunetworks.com>.
+       contiguous case.  Bug report from Prem Gopalan <prem@mazunetworks.com>.
        (mALLOPt): Avoid requirement of C99.
 
 2003-09-08  Ulrich Drepper  <drepper@redhat.com>
index 2f4930d..23e8b2f 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -228,6 +228,16 @@ mostlyclean: parent-mostlyclean
 tests-clean:
        @$(MAKE) subdir_testclean no_deps=t
 
+tests: $(objpfx)c++-types-check.out
+ifneq (no,$(CXX)$(wildcard scripts/data/c++-types-$(base-machine)-$(config-os).data))
+$(objpfx)c++-types-check.out: scripts/data/c++-types-$(base-machine)-$(config-os).data
+       scripts/check-c++-types.sh $^ $(CXX) $(filter-out -std=gnu99,$(CFLAGS)) $(CPPFLAGS) > $@
+else
+$(objpfx)c++-types-check.out:
+       @echo 'WARNING C++ tests not run; create a c++-types-XXX file'
+       @echo "not run" > $@
+endif
+
 # The realclean target is just like distclean for the parent, but we want
 # the subdirs to know the difference in case they care.
 realclean distclean: parent-clean
@@ -286,6 +296,7 @@ distribute  :=      README README.libm INSTALL FAQ FAQ.in NOTES NEWS BUGS   \
                            merge-abilist.awk extract-abilist.awk       \
                            rpm2dynsym.sh                               \
                            )                                           \
+               $(wildcard scripts/data/*.data)                         \
                $(wildcard abilist/*.abilist)
 
 distribute := $(strip $(distribute))
index 59b85ac..8abea03 100644 (file)
@@ -51,14 +51,13 @@ __extension__ typedef signed long long int __int64_t;
 __extension__ typedef unsigned long long int __uint64_t;
 #endif
 
-/* quad_t is also 64 bits, but is traditionally defined as `long long'
-   even when `long' is also 64 bits.  */
-#ifdef __GLIBC_HAVE_LONG_LONG
-__extension__ typedef long long int __quad_t;
-__extension__ typedef unsigned long long int __u_quad_t;
-#elif __WORDSIZE == 64
+/* quad_t is also 64 bits.  */
+#if __WORDSIZE == 64
 typedef long int __quad_t;
 typedef unsigned long int __u_quad_t;
+#elif defined __GLIBC_HAVE_LONG_LONG
+__extension__ typedef long long int __quad_t;
+__extension__ typedef unsigned long long int __u_quad_t;
 #else
 typedef struct
 {
@@ -106,9 +105,9 @@ typedef struct
 #define __U32_TYPE             unsigned int
 #define __SLONGWORD_TYPE       long int
 #define __ULONGWORD_TYPE       unsigned long int
-#define        __SQUAD_TYPE            long long int
-#define        __UQUAD_TYPE            unsigned long long int
 #if __WORDSIZE == 32
+# define __SQUAD_TYPE          long long int
+# define __UQUAD_TYPE          unsigned long long int
 # define __SWORD_TYPE          int
 # define __UWORD_TYPE          unsigned int
 # define __SLONG32_TYPE                long int
@@ -116,6 +115,8 @@ typedef struct
 # define __S64_TYPE            __quad_t
 # define __U64_TYPE            __u_quad_t
 #elif __WORDSIZE == 64
+# define __SQUAD_TYPE          long int
+# define __UQUAD_TYPE          unsigned long int
 # define __SWORD_TYPE          long int
 # define __UWORD_TYPE          unsigned long int
 # define __SLONG32_TYPE                int
index 6a1143a..05dba57 100644 (file)
@@ -1,3 +1,7 @@
+2003-09-08  Jakub Jelinek  <jakub@redhat.com>
+
+       * sysdeps/unix/sysv/linux/s390/bits/typesizes.h: Remove.
+
 2003-09-02  Jakub Jelinek  <jakub@redhat.com>
 
        * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: New file.
diff --git a/linuxthreads/sysdeps/unix/sysv/linux/s390/bits/typesizes.h b/linuxthreads/sysdeps/unix/sysv/linux/s390/bits/typesizes.h
deleted file mode 100644 (file)
index 9a1953e..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-/* 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         __S32_TYPE
-#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 */
index 54593f8..0b16c02 100644 (file)
@@ -1,3 +1,15 @@
+2003-09-08  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Change type
+       of pthread_t to be compatible with LT.
+       * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
+       * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
+       * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
+       * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
+       * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Likewise.
+       * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
+       * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
+
 2003-09-04  Ulrich Drepper  <drepper@redhat.com>
 
        * sysdeps/unix/sysv/linux/i386/not-cancel.h (fcntl_not_cancel): Define.
index bd5ab97..2d8a00b 100644 (file)
@@ -33,7 +33,7 @@
 
 /* Thread identifiers.  The structure of the attribute type is
    deliberately not exposed.  */
-typedef struct __opaque_pthread *pthread_t;
+typedef unsigned long int pthread_t;
 
 
 typedef union
index a098106..e31c27d 100644 (file)
@@ -33,7 +33,7 @@
 
 /* Thread identifiers.  The structure of the attribute type is not
    exposed on purpose.  */
-typedef struct __opaque_pthread *pthread_t;
+typedef unsigned long int pthread_t;
 
 
 typedef union
@@ -80,6 +80,7 @@ typedef union
     unsigned long long int __wakeup_seq;
     unsigned long long int __woken_seq;
     void *__mutex;
+    int __locker;
   } __data;
   char __size[__SIZEOF_PTHREAD_COND_T];
   long long int __align;
index c1eca62..6cd6c05 100644 (file)
@@ -33,7 +33,7 @@
 
 /* Thread identifiers.  The structure of the attribute type is not
    exposed on purpose.  */
-typedef struct __opaque_pthread *pthread_t;
+typedef unsigned long int pthread_t;
 
 
 typedef union
index f827b30..2d98a80 100644 (file)
@@ -48,7 +48,7 @@
 
 /* Thread identifiers.  The structure of the attribute type is
    deliberately not exposed.  */
-typedef struct __opaque_pthread *pthread_t;
+typedef unsigned long int pthread_t;
 
 
 typedef union
index 2d37683..022ba49 100644 (file)
@@ -47,7 +47,7 @@
 
 /* Thread identifiers.  The structure of the attribute type is not
    exposed on purpose.  */
-typedef struct __opaque_pthread *pthread_t;
+typedef unsigned long int pthread_t;
 
 
 typedef union
index 8236fd7..3cd8486 100644 (file)
@@ -34,7 +34,7 @@
 
 /* Thread identifiers.  The structure of the attribute type is not
    exposed on purpose.  */
-typedef struct __opaque_pthread *pthread_t;
+typedef unsigned long int pthread_t;
 
 
 typedef union
index 0560689..b947439 100644 (file)
@@ -48,7 +48,7 @@
 
 /* Thread identifiers.  The structure of the attribute type is
    deliberately not exposed.  */
-typedef struct __opaque_pthread *pthread_t;
+typedef unsigned long int pthread_t;
 
 
 typedef union
index ed3050e..3f151d0 100644 (file)
@@ -33,7 +33,7 @@
 
 /* Thread identifiers.  The structure of the attribute type is not
    exposed on purpose.  */
-typedef struct __opaque_pthread *pthread_t;
+typedef unsigned long int pthread_t;
 
 
 typedef union
index 68af809..1992705 100755 (executable)
@@ -30,8 +30,9 @@
 # egrep -v '^_' |
 # sort -u
 #
-cxx=$1
-data=$2
+data=$1
+shift
+cxx="$*"
 while read t; do
   echo -n "$t:"
   $cxx -S -xc++ -o - -D_GNU_SOURCE <(cat <<EOF
@@ -87,7 +88,6 @@ size_t
 socklen_t
 ssize_t
 suseconds_t
-timer_t
 time_t
 u_char
 uid_t
diff --git a/scripts/data/c++-types-i386-linux-gnu.data b/scripts/data/c++-types-i386-linux-gnu.data
new file mode 100644 (file)
index 0000000..aa3666c
--- /dev/null
@@ -0,0 +1,58 @@
+blkcnt64_t:x
+blkcnt_t:l
+blksize_t:l
+caddr_t:Pc
+clockid_t:i
+clock_t:l
+daddr_t:i
+dev_t:y
+fd_mask:l
+fsblkcnt64_t:y
+fsblkcnt_t:m
+fsfilcnt64_t:y
+fsfilcnt_t:m
+fsid_t:8__fsid_t
+gid_t:j
+id_t:j
+ino64_t:y
+ino_t:m
+int16_t:s
+int32_t:i
+int64_t:x
+int8_t:a
+intptr_t:i
+key_t:i
+loff_t:x
+mode_t:j
+nlink_t:j
+off64_t:x
+off_t:l
+pid_t:i
+pthread_key_t:j
+pthread_once_t:i
+pthread_spinlock_t:i
+pthread_t:m
+quad_t:x
+register_t:i
+rlim64_t:y
+rlim_t:m
+sigset_t:10__sigset_t
+size_t:j
+socklen_t:j
+ssize_t:i
+suseconds_t:l
+time_t:l
+u_char:h
+uid_t:j
+uint:j
+u_int:j
+u_int16_t:t
+u_int32_t:j
+u_int64_t:y
+u_int8_t:h
+ulong:m
+u_long:m
+u_quad_t:y
+useconds_t:j
+ushort:t
+u_short:t
index 59b85ac..8abea03 100644 (file)
@@ -51,14 +51,13 @@ __extension__ typedef signed long long int __int64_t;
 __extension__ typedef unsigned long long int __uint64_t;
 #endif
 
-/* quad_t is also 64 bits, but is traditionally defined as `long long'
-   even when `long' is also 64 bits.  */
-#ifdef __GLIBC_HAVE_LONG_LONG
-__extension__ typedef long long int __quad_t;
-__extension__ typedef unsigned long long int __u_quad_t;
-#elif __WORDSIZE == 64
+/* quad_t is also 64 bits.  */
+#if __WORDSIZE == 64
 typedef long int __quad_t;
 typedef unsigned long int __u_quad_t;
+#elif defined __GLIBC_HAVE_LONG_LONG
+__extension__ typedef long long int __quad_t;
+__extension__ typedef unsigned long long int __u_quad_t;
 #else
 typedef struct
 {
@@ -106,9 +105,9 @@ typedef struct
 #define __U32_TYPE             unsigned int
 #define __SLONGWORD_TYPE       long int
 #define __ULONGWORD_TYPE       unsigned long int
-#define        __SQUAD_TYPE            long long int
-#define        __UQUAD_TYPE            unsigned long long int
 #if __WORDSIZE == 32
+# define __SQUAD_TYPE          long long int
+# define __UQUAD_TYPE          unsigned long long int
 # define __SWORD_TYPE          int
 # define __UWORD_TYPE          unsigned int
 # define __SLONG32_TYPE                long int
@@ -116,6 +115,8 @@ typedef struct
 # define __S64_TYPE            __quad_t
 # define __U64_TYPE            __u_quad_t
 #elif __WORDSIZE == 64
+# define __SQUAD_TYPE          long int
+# define __UQUAD_TYPE          unsigned long int
 # define __SWORD_TYPE          long int
 # define __UWORD_TYPE          unsigned long int
 # define __SLONG32_TYPE                int
diff --git a/sysdeps/unix/sysv/linux/s390/bits/typesizes.h b/sysdeps/unix/sysv/linux/s390/bits/typesizes.h
deleted file mode 100644 (file)
index 9eb4927..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-/* 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 */