about summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@gmail.com>2012-02-26 17:41:17 -0500
committerUlrich Drepper <drepper@gmail.com>2012-02-26 17:41:17 -0500
commit4a3dded52708e6d9be190a968f0f09ca57539e13 (patch)
treef67735395e2b1e129760e57e090c5246acb766bc
parent4efeffc1d583597e4f52985b9747269e47b754e2 (diff)
downloadglibc-4a3dded52708e6d9be190a968f0f09ca57539e13.tar.gz
glibc-4a3dded52708e6d9be190a968f0f09ca57539e13.tar.xz
glibc-4a3dded52708e6d9be190a968f0f09ca57539e13.zip
Work around problem of pthread_attr_t definition with old compilers
-rw-r--r--nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h8
-rw-r--r--nptl/sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h8
-rw-r--r--nptl/sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h8
-rw-r--r--nptl/sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h8
-rw-r--r--nptl/sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h8
-rw-r--r--nptl/sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h8
-rw-r--r--sysdeps/unix/sysv/linux/bits/siginfo.h3
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/siginfo.h8
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/siginfo.h8
9 files changed, 53 insertions, 14 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h b/nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
index 437ef1f9ba..1ce0bd0736 100644
--- a/nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
+++ b/nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
@@ -35,11 +35,15 @@
 typedef unsigned long int pthread_t;
 
 
-typedef union __pthread_attr
+union __pthread_attr
 {
   char __size[__SIZEOF_PTHREAD_ATTR_T];
   long int __align;
-} pthread_attr_t;
+};
+#ifndef __have_pthread_attr_t
+typedef union __pthread_attr pthread_attr_t;
+# define __have_pthread_attr_t	1
+#endif
 
 
 typedef struct __pthread_internal_slist
diff --git a/nptl/sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h b/nptl/sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
index 69bd97bd99..1761bf03b0 100644
--- a/nptl/sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
+++ b/nptl/sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
@@ -49,11 +49,15 @@
 typedef unsigned long int pthread_t;
 
 
-typedef union __pthread_attr
+union __pthread_attr
 {
   char __size[__SIZEOF_PTHREAD_ATTR_T];
   long int __align;
-} pthread_attr_t;
+};
+#ifndef __have_pthread_attr_t
+typedef union __pthread_attr pthread_attr_t;
+# define __have_pthread_attr_t	1
+#endif
 
 
 #if __WORDSIZE == 64
diff --git a/nptl/sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h b/nptl/sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h
index d87a635dc4..c64b14f7cd 100644
--- a/nptl/sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h
+++ b/nptl/sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h
@@ -48,11 +48,15 @@
 typedef unsigned long int pthread_t;
 
 
-typedef union __pthread_attr
+union __pthread_attr
 {
   char __size[__SIZEOF_PTHREAD_ATTR_T];
   long int __align;
-} pthread_attr_t;
+};
+#ifndef __have_pthread_attr_t
+typedef union __pthread_attr pthread_attr_t;
+# define __have_pthread_attr_t	1
+#endif
 
 
 #if __WORDSIZE == 64
diff --git a/nptl/sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h b/nptl/sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h
index 34b07921fd..a1ef92b5ad 100644
--- a/nptl/sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h
+++ b/nptl/sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h
@@ -37,11 +37,15 @@
 typedef unsigned long int pthread_t;
 
 
-typedef union __pthread_attr
+union __pthread_attr
 {
   char __size[__SIZEOF_PTHREAD_ATTR_T];
   long int __align;
-} pthread_attr_t;
+};
+#ifndef __have_pthread_attr_t
+typedef union __pthread_attr pthread_attr_t;
+# define __have_pthread_attr_t	1
+#endif
 
 
 typedef struct __pthread_internal_slist
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h b/nptl/sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h
index 2cfaadbacb..60f5d4d409 100644
--- a/nptl/sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h
+++ b/nptl/sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h
@@ -49,11 +49,15 @@
 typedef unsigned long int pthread_t;
 
 
-typedef union __pthread_attr
+union __pthread_attr
 {
   char __size[__SIZEOF_PTHREAD_ATTR_T];
   long int __align;
-} pthread_attr_t;
+};
+#ifndef __have_pthread_attr_t
+typedef union __pthread_attr pthread_attr_t;
+# define __have_pthread_attr_t	1
+#endif
 
 
 #if __WORDSIZE == 64
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h b/nptl/sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
index 7cbb200a8f..0b0f9393f7 100644
--- a/nptl/sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
@@ -48,11 +48,15 @@
 typedef unsigned long int pthread_t;
 
 
-typedef union __pthread_attr
+union __pthread_attr
 {
   char __size[__SIZEOF_PTHREAD_ATTR_T];
   long int __align;
-} pthread_attr_t;
+};
+#ifndef __have_pthread_attr_t
+typedef union __pthread_attr pthread_attr_t;
+# define __have_pthread_attr_t	1
+#endif
 
 
 #if __WORDSIZE == 64
diff --git a/sysdeps/unix/sysv/linux/bits/siginfo.h b/sysdeps/unix/sysv/linux/bits/siginfo.h
index 0635e2f106..08713fcd64 100644
--- a/sysdeps/unix/sysv/linux/bits/siginfo.h
+++ b/sysdeps/unix/sysv/linux/bits/siginfo.h
@@ -270,7 +270,10 @@ enum
 # endif
 
 /* Forward declaration.  */
+# ifndef __have_pthread_attr_t
 typedef union __pthread_attr pthread_attr_t;
+#  define __have_pthread_attr_t	1
+# endif
 
 typedef struct sigevent
   {
diff --git a/sysdeps/unix/sysv/linux/s390/bits/siginfo.h b/sysdeps/unix/sysv/linux/s390/bits/siginfo.h
index a4a07ecfdb..4b717947ad 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/siginfo.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/siginfo.h
@@ -271,6 +271,12 @@ enum
 #  define __SIGEV_PAD_SIZE	((__SIGEV_MAX_SIZE / sizeof (int)) - 3)
 # endif
 
+/* Forward declaration.  */
+# ifndef __have_pthread_attr_t
+typedef union __pthread_attr pthread_attr_t;
+#  define __have_pthread_attr_t	1
+# endif
+
 typedef struct sigevent
   {
     sigval_t sigev_value;
@@ -288,7 +294,7 @@ typedef struct sigevent
 	struct
 	  {
 	    void (*_function) (sigval_t);	/* Function to start.	 */
-	    void *_attribute;			/* Really pthread_attr_t.  */
+	    pthread_attr_t *_attribute;		/* Thread attributes.  */
 	  } _sigev_thread;
       } _sigev_un;
   } sigevent_t;
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/siginfo.h b/sysdeps/unix/sysv/linux/sparc/bits/siginfo.h
index 3634b55c08..5e12da4bf1 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/siginfo.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/siginfo.h
@@ -278,6 +278,12 @@ enum
 #  define __SIGEV_PAD_SIZE	((__SIGEV_MAX_SIZE / sizeof (int)) - 3)
 # endif
 
+/* Forward declaration.  */
+# ifndef __have_pthread_attr_t
+typedef union __pthread_attr pthread_attr_t;
+#  define __have_pthread_attr_t	1
+# endif
+
 typedef struct sigevent
   {
     sigval_t sigev_value;
@@ -295,7 +301,7 @@ typedef struct sigevent
 	struct
 	  {
 	    void (*_function) (sigval_t);	/* Function to start.  */
-	    void *_attribute;			/* Really pthread_attr_t.  */
+	    pthread_attr_t *_attribute;		/* Thread attributes.  */
 	  } _sigev_thread;
       } _sigev_un;
   } sigevent_t;