From 541427964427b96ad8433a23e171dd23d4b93451 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Sun, 4 Mar 2012 11:30:01 -0800 Subject: [PATCH] alpha: Update for pthread_attr_t typedef changes. --- ChangeLog.alpha | 9 +++++++++ sysdeps/unix/sysv/linux/alpha/bits/siginfo.h | 12 +++++++++--- sysdeps/unix/sysv/linux/alpha/nptl/bits/pthreadtypes.h | 11 +++++++---- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/ChangeLog.alpha b/ChangeLog.alpha index 32e8515..0b731b7 100644 --- a/ChangeLog.alpha +++ b/ChangeLog.alpha @@ -1,3 +1,12 @@ +2012-03-04 Richard Henderson + + * sysdeps/unix/sysv/linux/alpha/bits/siginfo.h: Don't name the + siginfo_t struct. Add forward declaration of pthread_attr_t; + use it in sigevent. + * sysdeps/unix/sysv/linux/alpha/nptl/bits/pthreadtypes.h + (pthread_attr_t): Add union tag to pthread_attr_t; only define + typedef if not already defined. + 2012-02-21 Richard Henderson * sysdeps/unix/sysv/linux/alpha/bits/epoll.h: New file. diff --git a/sysdeps/unix/sysv/linux/alpha/bits/siginfo.h b/sysdeps/unix/sysv/linux/alpha/bits/siginfo.h index a2aacc0..8d0c716 100644 --- a/sysdeps/unix/sysv/linux/alpha/bits/siginfo.h +++ b/sysdeps/unix/sysv/linux/alpha/bits/siginfo.h @@ -1,5 +1,5 @@ /* siginfo_t, sigevent and constants. Linux/Alpha version. - Copyright (C) 1997-2002, 2003 Free Software Foundation, Inc. + Copyright (C) 1997-2012 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 @@ -42,7 +42,7 @@ typedef union sigval # define __SI_MAX_SIZE 128 # define __SI_PAD_SIZE ((__SI_MAX_SIZE / sizeof (int)) - 4) -typedef struct siginfo +typedef struct { int si_signo; /* Signal number. */ int si_errno; /* If non-zero, an errno value associated with @@ -260,6 +260,12 @@ enum # define __SIGEV_MAX_SIZE 64 # define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 4) +/* Forward declaration. */ +#ifndef __have_pthread_attr_t +typedef union pthread_attr_t pthread_attr_t; +# define __have_pthread_attr_t 1 +#endif + typedef struct sigevent { sigval_t sigev_value; @@ -277,7 +283,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/alpha/nptl/bits/pthreadtypes.h b/sysdeps/unix/sysv/linux/alpha/nptl/bits/pthreadtypes.h index 41c0be1..bea9955 100644 --- a/sysdeps/unix/sysv/linux/alpha/nptl/bits/pthreadtypes.h +++ b/sysdeps/unix/sysv/linux/alpha/nptl/bits/pthreadtypes.h @@ -1,5 +1,5 @@ /* Machine-specific pthread type layouts. Alpha version. - Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 2003-2012 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 @@ -36,12 +36,15 @@ typedef unsigned long int pthread_t; -typedef union +union pthread_attr_t { char __size[__SIZEOF_PTHREAD_ATTR_T]; long int __align; -} pthread_attr_t; - +}; +#ifndef __have_pthread_attr_t +typedef union pthread_attr_t pthread_attr_t; +# define __have_pthread_attr_t 1 +#endif typedef struct __pthread_internal_list { -- 2.7.4