* Re: [PATCH] Fix binary compatibility of bits/types.h
@ 2003-09-10 20:13 Steve Munroe
0 siblings, 0 replies; 9+ messages in thread
From: Steve Munroe @ 2003-09-10 20:13 UTC (permalink / raw)
To: Ulrich Drepper; +Cc: Glibc hackers, Paul Mackerras, Roland McGrath
Ulrich Drepper writes:
> This is changed in the current NPTL sources.
nptl-0.58 comming soon?
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] Fix binary compatibility of bits/types.h
2003-09-10 19:55 Steve Munroe
2003-09-10 20:00 ` Jakub Jelinek
@ 2003-09-10 20:05 ` Ulrich Drepper
1 sibling, 0 replies; 9+ messages in thread
From: Ulrich Drepper @ 2003-09-10 20:05 UTC (permalink / raw)
To: Steve Munroe; +Cc: Glibc hackers, Paul Mackerras, Roland McGrath
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Steve Munroe wrote:
> Perhaps libc/Makefile can
> check scripts/c++-types-$(base-machine)-$(config-os).data and if not found
> try scripts/c++-types-$(config-machine)-$(config-os).data?
OK, I'll try something like this.
>
> There also seems to be a problem with pthread_t between linuxthreads and
> nptl. pthread_t:m is OK for Linuxthreads but nplt needs
> pthread_t:P16__opaque_pthread.
This is changed in the current NPTL sources.
- --
- --------------. ,-. 444 Castro Street
Ulrich Drepper \ ,-----------------' \ Mountain View, CA 94041 USA
Red Hat `--' drepper at redhat.com `---------------------------
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)
iD8DBQE/X4Pe2ijCOnn/RHQRAlfrAKCZsHhF8qIQQdyzvXmHoC/UowRd2gCgqriU
ZKnzxGpWJ76yCAXY9LMQlfE=
=M9ma
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] Fix binary compatibility of bits/types.h
2003-09-10 19:55 Steve Munroe
@ 2003-09-10 20:00 ` Jakub Jelinek
2003-09-10 20:05 ` Ulrich Drepper
1 sibling, 0 replies; 9+ messages in thread
From: Jakub Jelinek @ 2003-09-10 20:00 UTC (permalink / raw)
To: Steve Munroe
Cc: Ulrich Drepper, Glibc hackers, Paul Mackerras, Roland McGrath
On Wed, Sep 10, 2003 at 02:55:24PM -0500, Steve Munroe wrote:
> There also seems to be a problem with pthread_t between linuxthreads and
> nptl. pthread_t:m is OK for Linuxthreads but nplt needs
> pthread_t:P16__opaque_pthread.
Current NPTL has:
typedef unsigned long int pthread_t;
Jakub
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] Fix binary compatibility of bits/types.h
@ 2003-09-10 19:55 Steve Munroe
2003-09-10 20:00 ` Jakub Jelinek
2003-09-10 20:05 ` Ulrich Drepper
0 siblings, 2 replies; 9+ messages in thread
From: Steve Munroe @ 2003-09-10 19:55 UTC (permalink / raw)
To: Ulrich Drepper; +Cc: Glibc hackers, Paul Mackerras, Roland McGrath
Ulrich Drepper writes:
> But this is exactly what we are talking about. Keeping the size alone
> isn't enough. The mangled name in C++ mustn't change either.
This change does create a problem for powerpc and the new c++-types-check.
The data file names are only qualified with $base-machine (as in
c++-types-powerpc-linux-gnu.data) but 64-bit types will require different
data files between powerpc32 and powerpc64. Perhaps libc/Makefile can
check scripts/c++-types-$(base-machine)-$(config-os).data and if not found
try scripts/c++-types-$(config-machine)-$(config-os).data?
There also seems to be a problem with pthread_t between linuxthreads and
nptl. pthread_t:m is OK for Linuxthreads but nplt needs
pthread_t:P16__opaque_pthread.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] Fix binary compatibility of bits/types.h
2003-09-09 21:28 Steve Munroe
@ 2003-09-09 21:34 ` Ulrich Drepper
0 siblings, 0 replies; 9+ messages in thread
From: Ulrich Drepper @ 2003-09-09 21:34 UTC (permalink / raw)
To: Steve Munroe; +Cc: Roland McGrath, Glibc hackers, Paul Mackerras
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Steve Munroe wrote:
> PPC64 builds and runs make check without error with this change. Since for
>
> PPC64 long and long long are the same size this is what I would expect. If
>
> there are problems it will be higher in the foodchain (C++).
But this is exactly what we are talking about. Keeping the size alone
isn't enough. The mangled name in C++ mustn't change either.
- --
- --------------. ,-. 444 Castro Street
Ulrich Drepper \ ,-----------------' \ Mountain View, CA 94041 USA
Red Hat `--' drepper at redhat.com `---------------------------
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)
iD8DBQE/Xkdb2ijCOnn/RHQRAsGeAJ0fp63sUOhQdCstdbaTWksNeVC/MACcCyIR
HMD4kTPRpW+aZmW43SkNwu4=
=b3by
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] Fix binary compatibility of bits/types.h
@ 2003-09-09 21:28 Steve Munroe
2003-09-09 21:34 ` Ulrich Drepper
0 siblings, 1 reply; 9+ messages in thread
From: Steve Munroe @ 2003-09-09 21:28 UTC (permalink / raw)
To: Roland McGrath; +Cc: Ulrich Drepper, Glibc hackers, Paul Mackerras
Roland McGrath writes:
> > powerpc64-linux port did not exist at that time, so if we wanted to
avoid
> > changes to it now, we could copy the current CVS generic/bits/types.h
> > to sysdeps/unix/sysv/linux/powerpc/bits/types.h, but I think it will
> > be better to match other 64-bit arches.
> I tend to agree, but the PPC32 and PPC64 port maintainers should say
> something.
PPC64 builds and runs make check without error with this change. Since for
PPC64 long and long long are the same size this is what I would expect. If
there are problems it will be higher in the foodchain (C++).
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] Fix binary compatibility of bits/types.h
2003-09-08 21:44 Jakub Jelinek
2003-09-09 0:08 ` Ulrich Drepper
@ 2003-09-09 19:08 ` Roland McGrath
1 sibling, 0 replies; 9+ messages in thread
From: Roland McGrath @ 2003-09-09 19:08 UTC (permalink / raw)
To: Jakub Jelinek; +Cc: Ulrich Drepper, Glibc hackers
> and in 2002-10-23 commit lots of types changed from long to long long
> on 64-bit arches (similarly with ul -> ull and l* -> ll*).
That was intentional on my part, removing gratuitous source differences
between 32- and 64-bit platforms. But I was only thinking about C, where
the width of the type is the only thing that matters, not C++ where names
matter.
> My scripts were only checking
> {alpha,i386,ia64,mips32,powerpc32,powerpc64,s390,s390x,sparc,sparc64,x86_64 -m32,x86_64 -m64}-linux,
> are there any other 64-bit ports supported in glibc?
Don't think so.
> powerpc64-linux port did not exist at that time, so if we wanted to avoid
> changes to it now, we could copy the current CVS generic/bits/types.h
> to sysdeps/unix/sysv/linux/powerpc/bits/types.h, but I think it will
> be better to match other 64-bit arches.
I tend to agree, but the PPC32 and PPC64 port maintainers should say something.
Modulo port maintainers' concerns I think your changes are fine.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] Fix binary compatibility of bits/types.h
2003-09-08 21:44 Jakub Jelinek
@ 2003-09-09 0:08 ` Ulrich Drepper
2003-09-09 19:08 ` Roland McGrath
1 sibling, 0 replies; 9+ messages in thread
From: Ulrich Drepper @ 2003-09-09 0:08 UTC (permalink / raw)
To: Jakub Jelinek; +Cc: Glibc hackers
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Checked in. A regression check for the name mangling is added, too. We
just need base data for the various archs now.
- --
- --------------. ,-. 444 Castro Street
Ulrich Drepper \ ,-----------------' \ Mountain View, CA 94041 USA
Red Hat `--' drepper at redhat.com `---------------------------
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)
iD8DBQE/XRnQ2ijCOnn/RHQRAq4IAJ4giGveJKSR93XuzKZvb/nqLZhcdwCghG7X
/ekdcFABe4QCBeTp/ZSWpDM=
=mU+j
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH] Fix binary compatibility of bits/types.h
@ 2003-09-08 21:44 Jakub Jelinek
2003-09-09 0:08 ` Ulrich Drepper
2003-09-09 19:08 ` Roland McGrath
0 siblings, 2 replies; 9+ messages in thread
From: Jakub Jelinek @ 2003-09-08 21:44 UTC (permalink / raw)
To: Ulrich Drepper, Roland McGrath; +Cc: Glibc hackers
Hi!
The following patch restores bits/types.h to hwo they looked like
on 2002-01-01.
In 2002-07-09 commit s390 -m31 __nlink_t/__ssize_t/__intptr_t were
(probably) unintentionally changed from int to long
and in 2002-10-23 commit lots of types changed from long to long long
on 64-bit arches (similarly with ul -> ull and l* -> ll*).
My scripts were only checking
{alpha,i386,ia64,mips32,powerpc32,powerpc64,s390,s390x,sparc,sparc64,x86_64 -m32,x86_64 -m64}-linux,
are there any other 64-bit ports supported in glibc?
powerpc64-linux port did not exist at that time, so if we wanted to avoid
changes to it now, we could copy the current CVS generic/bits/types.h
to sysdeps/unix/sysv/linux/powerpc/bits/types.h, but I think it will
be better to match other 64-bit arches.
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.
linuxthreads/
* sysdeps/unix/sysv/linux/s390/bits/typesizes.h: Remove.
--- libc/sysdeps/generic/bits/types.h.jj 2003-08-06 14:36:15.000000000 -0400
+++ libc/sysdeps/generic/bits/types.h 2003-09-08 17:14:40.000000000 -0400
@@ -51,14 +51,13 @@ __extension__ typedef signed long long i
__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
+#if __WORDSIZE == 32
#define __SQUAD_TYPE long long int
#define __UQUAD_TYPE unsigned long long int
-#if __WORDSIZE == 32
# 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
--- libc/sysdeps/unix/sysv/linux/s390/bits/typesizes.h.jj 2003-07-31 15:32:29.000000000 -0400
+++ libc/sysdeps/unix/sysv/linux/s390/bits/typesizes.h 2003-09-08 17:26:51.000000000 -0400
@@ -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 */
--- libc/linuxthreads/sysdeps/unix/sysv/linux/s390/bits/typesizes.h.jj 2003-08-01 00:36:20.000000000 -0400
+++ libc/linuxthreads/sysdeps/unix/sysv/linux/s390/bits/typesizes.h 2003-09-08 17:27:13.000000000 -0400
@@ -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 */
Jakub
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2003-09-10 20:13 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-09-10 20:13 [PATCH] Fix binary compatibility of bits/types.h Steve Munroe
-- strict thread matches above, loose matches on Subject: below --
2003-09-10 19:55 Steve Munroe
2003-09-10 20:00 ` Jakub Jelinek
2003-09-10 20:05 ` Ulrich Drepper
2003-09-09 21:28 Steve Munroe
2003-09-09 21:34 ` Ulrich Drepper
2003-09-08 21:44 Jakub Jelinek
2003-09-09 0:08 ` Ulrich Drepper
2003-09-09 19:08 ` Roland McGrath
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).