+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):
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>
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
merge-abilist.awk extract-abilist.awk \
rpm2dynsym.sh \
) \
+ $(wildcard scripts/data/*.data) \
$(wildcard abilist/*.abilist)
distribute := $(strip $(distribute))
__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
{
#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
# 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
+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.
+++ /dev/null
-/* 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 */
+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.
/* 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
/* 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
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;
/* 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
/* 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
/* 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
/* 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
/* 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
/* 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
# 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
socklen_t
ssize_t
suseconds_t
-timer_t
time_t
u_char
uid_t
--- /dev/null
+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
__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
{
#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
# 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
+++ /dev/null
-/* 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 */