mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-25 14:30:06 +00:00
* sysdeps/pthread/pthread.h (PTHREAD_MUTEX_INITIALIZER,
PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP, PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP, PTHREAD_MUTEX_ADAPTIVE_NP, PTHREAD_RWLOCK_INITIALIZER, PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP, PTHREAD_COND_INITIALIZER): Supply zeros for all fields in the structure. * Makefile (tests): Add tst-initializers1. (CFLAGS-tst-initializers1.c): Set. * tst-initializers1.c: New test. 2005-07-11 Jakub Jelinek <jakub@redhat.com>
This commit is contained in:
parent
553185e2b0
commit
3fd1bc6778
@ -1,3 +1,16 @@
|
|||||||
|
2005-07-11 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
* sysdeps/pthread/pthread.h (PTHREAD_MUTEX_INITIALIZER,
|
||||||
|
PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP,
|
||||||
|
PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP,
|
||||||
|
PTHREAD_MUTEX_ADAPTIVE_NP, PTHREAD_RWLOCK_INITIALIZER,
|
||||||
|
PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP,
|
||||||
|
PTHREAD_COND_INITIALIZER): Supply zeros for all fields
|
||||||
|
in the structure.
|
||||||
|
* Makefile (tests): Add tst-initializers1.
|
||||||
|
(CFLAGS-tst-initializers1.c): Set.
|
||||||
|
* tst-initializers1.c: New test.
|
||||||
|
|
||||||
2005-07-11 Jakub Jelinek <jakub@redhat.com>
|
2005-07-11 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_rwlock_t):
|
* sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_rwlock_t):
|
||||||
|
@ -241,7 +241,7 @@ tests = tst-attr1 tst-attr2 tst-attr3 \
|
|||||||
tst-backtrace1 \
|
tst-backtrace1 \
|
||||||
tst-oddstacklimit \
|
tst-oddstacklimit \
|
||||||
tst-vfork1 tst-vfork2 tst-vfork1x tst-vfork2x \
|
tst-vfork1 tst-vfork2 tst-vfork1x tst-vfork2x \
|
||||||
tst-getpid1 tst-getpid2
|
tst-getpid1 tst-getpid2 tst-initializers1
|
||||||
xtests = tst-setuid1 tst-setuid1-static
|
xtests = tst-setuid1 tst-setuid1-static
|
||||||
|
|
||||||
# Files which must not be linked with libpthread.
|
# Files which must not be linked with libpthread.
|
||||||
@ -412,6 +412,7 @@ CFLAGS-tst-cleanupx4.c += -fexceptions
|
|||||||
CFLAGS-tst-oncex3.c += -fexceptions
|
CFLAGS-tst-oncex3.c += -fexceptions
|
||||||
CFLAGS-tst-oncex4.c += -fexceptions
|
CFLAGS-tst-oncex4.c += -fexceptions
|
||||||
CFLAGS-tst-align.c += $(stack-align-test-flags)
|
CFLAGS-tst-align.c += $(stack-align-test-flags)
|
||||||
|
CFLAGS-tst-initializers1.c += -W -Wall -Werror
|
||||||
|
|
||||||
tst-cancel7-ARGS = --command "$(built-program-cmd)"
|
tst-cancel7-ARGS = --command "$(built-program-cmd)"
|
||||||
tst-cancelx7-ARGS = $(tst-cancel7-ARGS)
|
tst-cancelx7-ARGS = $(tst-cancel7-ARGS)
|
||||||
|
@ -62,22 +62,22 @@ enum
|
|||||||
|
|
||||||
/* Mutex initializers. */
|
/* Mutex initializers. */
|
||||||
#define PTHREAD_MUTEX_INITIALIZER \
|
#define PTHREAD_MUTEX_INITIALIZER \
|
||||||
{ { 0, } }
|
{ { 0, 0, 0, 0, 0, 0 } }
|
||||||
#ifdef __USE_GNU
|
#ifdef __USE_GNU
|
||||||
# if __WORDSIZE == 64
|
# if __WORDSIZE == 64
|
||||||
# define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP \
|
# define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP \
|
||||||
{ { 0, 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP } }
|
{ { 0, 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, 0 } }
|
||||||
# define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP \
|
# define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP \
|
||||||
{ { 0, 0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP } }
|
{ { 0, 0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP, 0 } }
|
||||||
# define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP \
|
# define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP \
|
||||||
{ { 0, 0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP } }
|
{ { 0, 0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP, 0 } }
|
||||||
# else
|
# else
|
||||||
# define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP \
|
# define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP \
|
||||||
{ { 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP } }
|
{ { 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, 0, 0 } }
|
||||||
# define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP \
|
# define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP \
|
||||||
{ { 0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP } }
|
{ { 0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP, 0, 0 } }
|
||||||
# define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP \
|
# define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP \
|
||||||
{ { 0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP } }
|
{ { 0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP, 0, 0 } }
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -93,8 +93,13 @@ enum
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* Read-write lock initializers. */
|
/* Read-write lock initializers. */
|
||||||
|
# if __WORDSIZE == 64
|
||||||
# define PTHREAD_RWLOCK_INITIALIZER \
|
# define PTHREAD_RWLOCK_INITIALIZER \
|
||||||
{ { 0, } }
|
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
|
||||||
|
# else
|
||||||
|
# define PTHREAD_RWLOCK_INITIALIZER \
|
||||||
|
{ { 0, 0, 0, 0, 0, 0, 0, 0 } }
|
||||||
|
# endif
|
||||||
# ifdef __USE_GNU
|
# ifdef __USE_GNU
|
||||||
# if __WORDSIZE == 64
|
# if __WORDSIZE == 64
|
||||||
# define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP \
|
# define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP \
|
||||||
@ -102,7 +107,7 @@ enum
|
|||||||
PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP } }
|
PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP } }
|
||||||
# else
|
# else
|
||||||
# define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP \
|
# define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP \
|
||||||
{ { 0, 0, 0, 0, 0, 0, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP } }
|
{ { 0, 0, 0, 0, 0, 0, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, 0 } }
|
||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
#endif /* Unix98 or XOpen2K */
|
#endif /* Unix98 or XOpen2K */
|
||||||
@ -140,7 +145,7 @@ enum
|
|||||||
|
|
||||||
|
|
||||||
/* Conditional variable handling. */
|
/* Conditional variable handling. */
|
||||||
#define PTHREAD_COND_INITIALIZER { { 0, } }
|
#define PTHREAD_COND_INITIALIZER { { 0, 0, 0, 0, 0, (void *) 0, 0, 0 } }
|
||||||
|
|
||||||
|
|
||||||
/* Cleanup buffers */
|
/* Cleanup buffers */
|
||||||
|
48
nptl/tst-initializers1.c
Normal file
48
nptl/tst-initializers1.c
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
/* Copyright (C) 2005 Free Software Foundation, Inc.
|
||||||
|
This file is part of the GNU C Library.
|
||||||
|
Contributed by Jakub Jelinek <jakub@redhat.com>, 2005.
|
||||||
|
|
||||||
|
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. */
|
||||||
|
|
||||||
|
#include <pthread.h>
|
||||||
|
|
||||||
|
pthread_mutex_t mtx_normal = PTHREAD_MUTEX_INITIALIZER;
|
||||||
|
pthread_mutex_t mtx_recursive = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
|
||||||
|
pthread_mutex_t mtx_errorchk = PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP;
|
||||||
|
pthread_mutex_t mtx_adaptive = PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP;
|
||||||
|
pthread_rwlock_t rwl_normal = PTHREAD_RWLOCK_INITIALIZER;
|
||||||
|
pthread_rwlock_t rwl_writer
|
||||||
|
= PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP;
|
||||||
|
pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
|
||||||
|
|
||||||
|
int
|
||||||
|
main (void)
|
||||||
|
{
|
||||||
|
if (mtx_normal.__data.__kind != PTHREAD_MUTEX_TIMED_NP)
|
||||||
|
return 1;
|
||||||
|
if (mtx_recursive.__data.__kind != PTHREAD_MUTEX_RECURSIVE_NP)
|
||||||
|
return 1;
|
||||||
|
if (mtx_errorchk.__data.__kind != PTHREAD_MUTEX_ERRORCHECK_NP)
|
||||||
|
return 1;
|
||||||
|
if (mtx_adaptive.__data.__kind != PTHREAD_MUTEX_ADAPTIVE_NP)
|
||||||
|
return 1;
|
||||||
|
if (rwl_normal.__data.__flags != PTHREAD_RWLOCK_PREFER_READER_NP)
|
||||||
|
return 1;
|
||||||
|
if (rwl_writer.__data.__flags
|
||||||
|
!= PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP)
|
||||||
|
return 1;
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user