From fc00cf7bcdf3367da105d86185411f7b7eced239 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Thu, 11 Dec 2014 22:58:48 +0000 Subject: Move semaphore.h to sysdeps/pthread/. Carlos reported failures in conform/ tests in environments where the compiler used could only find headers in glibc's source and build trees, not any previously installed headers . This patch moves nptl/semaphore.h to sysdeps/pthread/semaphore.h so that it can be found by builds from all glibc subdirectories; it's not in any way NPTL-specific. (I left the Makefile setting to install this header in nptl/, but maybe it should move as well - it's just not clear to me what ifeq ($(subdir),...) conditional should be used to select the directory to associate the header with for installation purposes. The path in the toplevel Makefile used for begin-end-check also remains hardcoded; it's a known todo issue to rework that test to run in each subdirectory checking the headers installed from that subdirectory, rather than a separate hardcoded list.) Tested for x86_64 (testsuite, and that installed stripped shared libraries are unchanged by the patch). I did *not* test a configuration such as that in which Carlos saw failure. * nptl/semaphore.h: Move to ... * sysdeps/pthread/semaphore.h: ... here. * Makefile (installed-headers): Change nptl/semaphore.h to sysdeps/pthread/semaphore.h. --- ChangeLog | 7 ++++ Makefile | 2 +- nptl/semaphore.h | 78 --------------------------------------------- sysdeps/pthread/semaphore.h | 78 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 86 insertions(+), 79 deletions(-) delete mode 100644 nptl/semaphore.h create mode 100644 sysdeps/pthread/semaphore.h diff --git a/ChangeLog b/ChangeLog index 35d61bd3..7630e80 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2014-12-11 Joseph Myers + + * nptl/semaphore.h: Move to ... + * sysdeps/pthread/semaphore.h: ... here. + * Makefile (installed-headers): Change nptl/semaphore.h to + sysdeps/pthread/semaphore.h. + 2014-12-11 Roland McGrath * misc/tst-error1.c (do_test): Ignore -Wformat-security for diff --git a/Makefile b/Makefile index 51ff5ca..b012ced 100644 --- a/Makefile +++ b/Makefile @@ -284,7 +284,7 @@ installed-headers = argp/argp.h assert/assert.h catgets/nl_types.h \ malloc/obstack.h malloc/mcheck.h math/math.h \ math/complex.h math/fenv.h math/tgmath.h misc/sys/uio.h \ $(wildcard nis/rpcsvc/*.h) nptl_db/thread_db.h \ - sysdeps/nptl/pthread.h nptl/semaphore.h \ + sysdeps/nptl/pthread.h sysdeps/pthread/semaphore.h \ nss/nss.h posix/sys/utsname.h posix/sys/times.h \ posix/sys/wait.h posix/sys/types.h posix/unistd.h \ posix/glob.h posix/regex.h posix/wordexp.h posix/fnmatch.h\ diff --git a/nptl/semaphore.h b/nptl/semaphore.h deleted file mode 100644 index 763db34..0000000 --- a/nptl/semaphore.h +++ /dev/null @@ -1,78 +0,0 @@ -/* Copyright (C) 2002-2014 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, see - . */ - -#ifndef _SEMAPHORE_H -#define _SEMAPHORE_H 1 - -#include -#include -#ifdef __USE_XOPEN2K -# define __need_timespec -# include -#endif - -/* Get the definition for sem_t. */ -#include - - -__BEGIN_DECLS - -/* Initialize semaphore object SEM to VALUE. If PSHARED then share it - with other processes. */ -extern int sem_init (sem_t *__sem, int __pshared, unsigned int __value) - __THROW; -/* Free resources associated with semaphore object SEM. */ -extern int sem_destroy (sem_t *__sem) __THROW; - -/* Open a named semaphore NAME with open flags OFLAG. */ -extern sem_t *sem_open (const char *__name, int __oflag, ...) __THROW; - -/* Close descriptor for named semaphore SEM. */ -extern int sem_close (sem_t *__sem) __THROW; - -/* Remove named semaphore NAME. */ -extern int sem_unlink (const char *__name) __THROW; - -/* Wait for SEM being posted. - - This function is a cancellation point and therefore not marked with - __THROW. */ -extern int sem_wait (sem_t *__sem); - -#ifdef __USE_XOPEN2K -/* Similar to `sem_wait' but wait only until ABSTIME. - - This function is a cancellation point and therefore not marked with - __THROW. */ -extern int sem_timedwait (sem_t *__restrict __sem, - const struct timespec *__restrict __abstime); -#endif - -/* Test whether SEM is posted. */ -extern int sem_trywait (sem_t *__sem) __THROWNL; - -/* Post SEM. */ -extern int sem_post (sem_t *__sem) __THROWNL; - -/* Get current value of SEM and store it in *SVAL. */ -extern int sem_getvalue (sem_t *__restrict __sem, int *__restrict __sval) - __THROW; - - -__END_DECLS - -#endif /* semaphore.h */ diff --git a/sysdeps/pthread/semaphore.h b/sysdeps/pthread/semaphore.h new file mode 100644 index 0000000..763db34 --- /dev/null +++ b/sysdeps/pthread/semaphore.h @@ -0,0 +1,78 @@ +/* Copyright (C) 2002-2014 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, see + . */ + +#ifndef _SEMAPHORE_H +#define _SEMAPHORE_H 1 + +#include +#include +#ifdef __USE_XOPEN2K +# define __need_timespec +# include +#endif + +/* Get the definition for sem_t. */ +#include + + +__BEGIN_DECLS + +/* Initialize semaphore object SEM to VALUE. If PSHARED then share it + with other processes. */ +extern int sem_init (sem_t *__sem, int __pshared, unsigned int __value) + __THROW; +/* Free resources associated with semaphore object SEM. */ +extern int sem_destroy (sem_t *__sem) __THROW; + +/* Open a named semaphore NAME with open flags OFLAG. */ +extern sem_t *sem_open (const char *__name, int __oflag, ...) __THROW; + +/* Close descriptor for named semaphore SEM. */ +extern int sem_close (sem_t *__sem) __THROW; + +/* Remove named semaphore NAME. */ +extern int sem_unlink (const char *__name) __THROW; + +/* Wait for SEM being posted. + + This function is a cancellation point and therefore not marked with + __THROW. */ +extern int sem_wait (sem_t *__sem); + +#ifdef __USE_XOPEN2K +/* Similar to `sem_wait' but wait only until ABSTIME. + + This function is a cancellation point and therefore not marked with + __THROW. */ +extern int sem_timedwait (sem_t *__restrict __sem, + const struct timespec *__restrict __abstime); +#endif + +/* Test whether SEM is posted. */ +extern int sem_trywait (sem_t *__sem) __THROWNL; + +/* Post SEM. */ +extern int sem_post (sem_t *__sem) __THROWNL; + +/* Get current value of SEM and store it in *SVAL. */ +extern int sem_getvalue (sem_t *__restrict __sem, int *__restrict __sval) + __THROW; + + +__END_DECLS + +#endif /* semaphore.h */ -- cgit v1.1