mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-03 08:11:08 +00:00
Update.
2004-12-01 Jakub Jelinek <jakub@redhat.com> * posix/tst-regex.c: Use defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0 conditionals instead of defined _POSIX_CPUTIME. (main): If _POSIX_CPUTIME == 0, call sysconf to see if CPUTIME option is available. * posix/tst-regex.c2: Use defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0 conditionals instead of defined _POSIX_CPUTIME. (do_test): If _POSIX_CPUTIME == 0, call sysconf to see if CPUTIME option is available. * sysdeps/posix/sysconf.c (__sysconf): If _POSIX_CPUTIME resp. _POSIX_THREAD_CPUTIME is defined to 0, return -1 for the corresponding _SC_ argument.
This commit is contained in:
parent
708bfb9a90
commit
bf7c04cd5f
14
ChangeLog
14
ChangeLog
@ -1,3 +1,17 @@
|
||||
2004-12-01 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* posix/tst-regex.c: Use defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0
|
||||
conditionals instead of defined _POSIX_CPUTIME.
|
||||
(main): If _POSIX_CPUTIME == 0, call sysconf to see if CPUTIME
|
||||
option is available.
|
||||
* posix/tst-regex.c2: Use defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0
|
||||
conditionals instead of defined _POSIX_CPUTIME.
|
||||
(do_test): If _POSIX_CPUTIME == 0, call sysconf to see if CPUTIME
|
||||
option is available.
|
||||
* sysdeps/posix/sysconf.c (__sysconf): If _POSIX_CPUTIME resp.
|
||||
_POSIX_THREAD_CPUTIME is defined to 0, return -1 for the corresponding
|
||||
_SC_ argument.
|
||||
|
||||
2004-12-08 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* elf/ldd.bash.in: When set -o pipefail is available, use that for
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Definitions for POSIX timer implementation on top of LinuxThreads.
|
||||
Copyright (C) 2000, 2002 Free Software Foundation, Inc.
|
||||
Copyright (C) 2000, 2002, 2004 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
|
||||
|
||||
@ -85,12 +85,6 @@ extern int __timer_init_failed;
|
||||
/* A distinct thread is used for each clock type. */
|
||||
|
||||
extern struct thread_node __timer_signal_thread_rclk;
|
||||
#ifdef _POSIX_CPUTIME
|
||||
extern struct thread_node __timer_signal_thread_pclk;
|
||||
#endif
|
||||
#ifdef _POSIX_THREAD_CPUTIME
|
||||
extern struct thread_node __timer_signal_thread_tclk;
|
||||
#endif
|
||||
|
||||
|
||||
/* Return pointer to timer structure corresponding to ID. */
|
||||
|
@ -94,24 +94,7 @@ timer_create (clock_id, evp, timerid)
|
||||
case SIGEV_SIGNAL:
|
||||
/* We have a global thread for delivering timed signals.
|
||||
If it is not running, try to start it up. */
|
||||
switch (clock_id)
|
||||
{
|
||||
case CLOCK_REALTIME:
|
||||
default:
|
||||
thread = &__timer_signal_thread_rclk;
|
||||
break;
|
||||
#ifdef _POSIX_CPUTIME
|
||||
case CLOCK_PROCESS_CPUTIME_ID:
|
||||
thread = &__timer_signal_thread_pclk;
|
||||
break;
|
||||
#endif
|
||||
#ifdef _POSIX_THREAD_CPUTIME
|
||||
case CLOCK_THREAD_CPUTIME_ID:
|
||||
thread = &__timer_signal_thread_tclk;
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
|
||||
thread = &__timer_signal_thread_rclk;
|
||||
if (! thread->exists)
|
||||
{
|
||||
if (__builtin_expect (__timer_thread_start (thread),
|
||||
|
@ -52,12 +52,6 @@ int __timer_init_failed;
|
||||
|
||||
/* Node for the thread used to deliver signals. */
|
||||
struct thread_node __timer_signal_thread_rclk;
|
||||
#ifdef _POSIX_CPUTIME
|
||||
struct thread_node __timer_signal_thread_pclk;
|
||||
#endif
|
||||
#ifdef _POSIX_THREAD_CPUTIME
|
||||
struct thread_node __timer_signal_thread_tclk;
|
||||
#endif
|
||||
|
||||
/* Lists to keep free and used timers and threads. */
|
||||
struct list_links timer_free_list;
|
||||
@ -190,12 +184,6 @@ init_module (void)
|
||||
list_append (&thread_free_list, &thread_array[i].links);
|
||||
|
||||
thread_init (&__timer_signal_thread_rclk, 0, CLOCK_REALTIME);
|
||||
#ifdef _POSIX_CPUTIME
|
||||
thread_init (&__timer_signal_thread_pclk, 0, CLOCK_PROCESS_CPUTIME_ID);
|
||||
#endif
|
||||
#ifdef _POSIX_THREAD_CPUTIME
|
||||
thread_init (&__timer_signal_thread_tclk, 0, CLOCK_THREAD_CPUTIME_ID);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@ -280,12 +268,6 @@ thread_cleanup (void *val)
|
||||
|
||||
/* How did the signal thread get killed? */
|
||||
assert (thread != &__timer_signal_thread_rclk);
|
||||
#ifdef _POSIX_CPUTIME
|
||||
assert (thread != &__timer_signal_thread_pclk);
|
||||
#endif
|
||||
#ifdef _POSIX_THREAD_CPUTIME
|
||||
assert (thread != &__timer_signal_thread_tclk);
|
||||
#endif
|
||||
|
||||
pthread_mutex_lock (&__timer_mutex);
|
||||
|
||||
|
@ -107,6 +107,12 @@
|
||||
/* POSIX shared memory objects are implemented. */
|
||||
#define _POSIX_SHARED_MEMORY_OBJECTS 200112L
|
||||
|
||||
/* CPU-time clocks support needs to be checked at runtime. */
|
||||
#define _POSIX_CPUTIME 0
|
||||
|
||||
/* Clock support in threads must be also checked at runtime. */
|
||||
#define _POSIX_THREAD_CPUTIME 0
|
||||
|
||||
/* GNU libc provides regular expression handling. */
|
||||
#define _POSIX_REGEXP 1
|
||||
|
||||
|
@ -1,181 +0,0 @@
|
||||
/* Define POSIX options for Linux/ix86.
|
||||
Copyright (C) 1996-2001, 2002, 2003, 2004 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; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _POSIX_OPT_H
|
||||
#define _POSIX_OPT_H 1
|
||||
|
||||
/* Job control is supported. */
|
||||
#define _POSIX_JOB_CONTROL 1
|
||||
|
||||
/* Processes have a saved set-user-ID and a saved set-group-ID. */
|
||||
#define _POSIX_SAVED_IDS 1
|
||||
|
||||
/* Priority scheduling is supported. */
|
||||
#define _POSIX_PRIORITY_SCHEDULING 200112L
|
||||
|
||||
/* Synchronizing file data is supported. */
|
||||
#define _POSIX_SYNCHRONIZED_IO 200112L
|
||||
|
||||
/* The fsync function is present. */
|
||||
#define _POSIX_FSYNC 200112L
|
||||
|
||||
/* Mapping of files to memory is supported. */
|
||||
#define _POSIX_MAPPED_FILES 200112L
|
||||
|
||||
/* Locking of all memory is supported. */
|
||||
#define _POSIX_MEMLOCK 200112L
|
||||
|
||||
/* Locking of ranges of memory is supported. */
|
||||
#define _POSIX_MEMLOCK_RANGE 200112L
|
||||
|
||||
/* Setting of memory protections is supported. */
|
||||
#define _POSIX_MEMORY_PROTECTION 200112L
|
||||
|
||||
/* Only root can change owner of file. */
|
||||
#define _POSIX_CHOWN_RESTRICTED 1
|
||||
|
||||
/* `c_cc' member of 'struct termios' structure can be disabled by
|
||||
using the value _POSIX_VDISABLE. */
|
||||
#define _POSIX_VDISABLE '\0'
|
||||
|
||||
/* Filenames are not silently truncated. */
|
||||
#define _POSIX_NO_TRUNC 1
|
||||
|
||||
/* X/Open realtime support is available. */
|
||||
#define _XOPEN_REALTIME 1
|
||||
|
||||
/* X/Open realtime thread support is available. */
|
||||
#define _XOPEN_REALTIME_THREADS 1
|
||||
|
||||
/* XPG4.2 shared memory is supported. */
|
||||
#define _XOPEN_SHM 1
|
||||
|
||||
/* Tell we have POSIX threads. */
|
||||
#define _POSIX_THREADS 200112L
|
||||
|
||||
/* We have the reentrant functions described in POSIX. */
|
||||
#define _POSIX_REENTRANT_FUNCTIONS 1
|
||||
#define _POSIX_THREAD_SAFE_FUNCTIONS 200112L
|
||||
|
||||
/* We provide priority scheduling for threads. */
|
||||
#define _POSIX_THREAD_PRIORITY_SCHEDULING 200112L
|
||||
|
||||
/* We support user-defined stack sizes. */
|
||||
#define _POSIX_THREAD_ATTR_STACKSIZE 200112L
|
||||
|
||||
/* We support user-defined stacks. */
|
||||
#define _POSIX_THREAD_ATTR_STACKADDR 200112L
|
||||
|
||||
/* We support POSIX.1b semaphores, but only the non-shared form for now. */
|
||||
#define _POSIX_SEMAPHORES 200112L
|
||||
|
||||
/* Real-time signals are supported. */
|
||||
#define _POSIX_REALTIME_SIGNALS 200112L
|
||||
|
||||
/* We support asynchronous I/O. */
|
||||
#define _POSIX_ASYNCHRONOUS_IO 200112L
|
||||
#define _POSIX_ASYNC_IO 1
|
||||
/* Alternative name for Unix98. */
|
||||
#define _LFS_ASYNCHRONOUS_IO 1
|
||||
/* Support for prioritization is also available. */
|
||||
#define _POSIX_PRIORITIZED_IO 200112L
|
||||
|
||||
/* The LFS support in asynchronous I/O is also available. */
|
||||
#define _LFS64_ASYNCHRONOUS_IO 1
|
||||
|
||||
/* The rest of the LFS is also available. */
|
||||
#define _LFS_LARGEFILE 1
|
||||
#define _LFS64_LARGEFILE 1
|
||||
#define _LFS64_STDIO 1
|
||||
|
||||
/* POSIX shared memory objects are implemented. */
|
||||
#define _POSIX_SHARED_MEMORY_OBJECTS 200112L
|
||||
|
||||
/* CPU-time clocks supported. */
|
||||
#define _POSIX_CPUTIME 0
|
||||
|
||||
/* We support the clock also in threads. */
|
||||
#define _POSIX_THREAD_CPUTIME 0
|
||||
|
||||
/* GNU libc provides regular expression handling. */
|
||||
#define _POSIX_REGEXP 1
|
||||
|
||||
/* Reader/Writer locks are available. */
|
||||
#define _POSIX_READER_WRITER_LOCKS 200112L
|
||||
|
||||
/* We have a POSIX shell. */
|
||||
#define _POSIX_SHELL 1
|
||||
|
||||
/* We support the Timeouts option. */
|
||||
#define _POSIX_TIMEOUTS 200112L
|
||||
|
||||
/* We support spinlocks. */
|
||||
#define _POSIX_SPIN_LOCKS 200112L
|
||||
|
||||
/* The `spawn' function family is supported. */
|
||||
#define _POSIX_SPAWN 200112L
|
||||
|
||||
/* We have POSIX timers. */
|
||||
#define _POSIX_TIMERS 200112L
|
||||
|
||||
/* The barrier functions are available. */
|
||||
#define _POSIX_BARRIERS 200112L
|
||||
|
||||
/* POSIX message queues are available. */
|
||||
#define _POSIX_MESSAGE_PASSING 200112L
|
||||
|
||||
/* Thread process-shared synchronization is not supported. */
|
||||
#define _POSIX_THREAD_PROCESS_SHARED -1
|
||||
|
||||
/* The monotonic clock might be available. */
|
||||
#define _POSIX_MONOTONIC_CLOCK 0
|
||||
|
||||
/* The clock selection interfaces are not available. */
|
||||
#define _POSIX_CLOCK_SELECTION -1
|
||||
|
||||
/* Advisory information interfaces are available. */
|
||||
#define _POSIX_ADVISORY_INFO 200112L
|
||||
|
||||
/* IPv6 support is available. */
|
||||
#define _POSIX_IPV6 200112L
|
||||
|
||||
/* Raw socket support is available. */
|
||||
#define _POSIX_RAW_SOCKETS 200112L
|
||||
|
||||
/* We have at least one terminal. */
|
||||
#define _POSIX2_CHAR_TERM 200112L
|
||||
|
||||
/* Neither process nor thread sporadic server interfaces is available. */
|
||||
#define _POSIX_SPORADIC_SERVER -1
|
||||
#define _POSIX_THREAD_SPORADIC_SERVER -1
|
||||
|
||||
/* trace.h is not available. */
|
||||
#define _POSIX_TRACE -1
|
||||
#define _POSIX_TRACE_EVENT_FILTER -1
|
||||
#define _POSIX_TRACE_INHERIT -1
|
||||
#define _POSIX_TRACE_LOG -1
|
||||
|
||||
/* Typed memory objects are not available. */
|
||||
#define _POSIX_TYPED_MEMORY_OBJECTS -1
|
||||
|
||||
/* No support for priority inheritance or protection. */
|
||||
#define _POSIX_THREAD_PRIO_INHERIT -1
|
||||
#define _POSIX_THREAD_PRIO_PROTECT -1
|
||||
|
||||
#endif /* posix_opt.h */
|
@ -1,181 +0,0 @@
|
||||
/* Define POSIX options for Linux/ia64.
|
||||
Copyright (C) 1996-2001, 2002, 2003, 2004 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; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _POSIX_OPT_H
|
||||
#define _POSIX_OPT_H 1
|
||||
|
||||
/* Job control is supported. */
|
||||
#define _POSIX_JOB_CONTROL 1
|
||||
|
||||
/* Processes have a saved set-user-ID and a saved set-group-ID. */
|
||||
#define _POSIX_SAVED_IDS 1
|
||||
|
||||
/* Priority scheduling is supported. */
|
||||
#define _POSIX_PRIORITY_SCHEDULING 200112L
|
||||
|
||||
/* Synchronizing file data is supported. */
|
||||
#define _POSIX_SYNCHRONIZED_IO 200112L
|
||||
|
||||
/* The fsync function is present. */
|
||||
#define _POSIX_FSYNC 200112L
|
||||
|
||||
/* Mapping of files to memory is supported. */
|
||||
#define _POSIX_MAPPED_FILES 200112L
|
||||
|
||||
/* Locking of all memory is supported. */
|
||||
#define _POSIX_MEMLOCK 200112L
|
||||
|
||||
/* Locking of ranges of memory is supported. */
|
||||
#define _POSIX_MEMLOCK_RANGE 200112L
|
||||
|
||||
/* Setting of memory protections is supported. */
|
||||
#define _POSIX_MEMORY_PROTECTION 200112L
|
||||
|
||||
/* Only root can change owner of file. */
|
||||
#define _POSIX_CHOWN_RESTRICTED 1
|
||||
|
||||
/* `c_cc' member of 'struct termios' structure can be disabled by
|
||||
using the value _POSIX_VDISABLE. */
|
||||
#define _POSIX_VDISABLE '\0'
|
||||
|
||||
/* Filenames are not silently truncated. */
|
||||
#define _POSIX_NO_TRUNC 1
|
||||
|
||||
/* X/Open realtime support is available. */
|
||||
#define _XOPEN_REALTIME 1
|
||||
|
||||
/* X/Open realtime thread support is available. */
|
||||
#define _XOPEN_REALTIME_THREADS 1
|
||||
|
||||
/* XPG4.2 shared memory is supported. */
|
||||
#define _XOPEN_SHM 1
|
||||
|
||||
/* Tell we have POSIX threads. */
|
||||
#define _POSIX_THREADS 200112L
|
||||
|
||||
/* We have the reentrant functions described in POSIX. */
|
||||
#define _POSIX_REENTRANT_FUNCTIONS 1
|
||||
#define _POSIX_THREAD_SAFE_FUNCTIONS 200112L
|
||||
|
||||
/* We provide priority scheduling for threads. */
|
||||
#define _POSIX_THREAD_PRIORITY_SCHEDULING 200112L
|
||||
|
||||
/* We support user-defined stack sizes. */
|
||||
#define _POSIX_THREAD_ATTR_STACKSIZE 200112L
|
||||
|
||||
/* We support user-defined stacks. */
|
||||
#define _POSIX_THREAD_ATTR_STACKADDR 200112L
|
||||
|
||||
/* We support POSIX.1b semaphores, but only the non-shared form for now. */
|
||||
#define _POSIX_SEMAPHORES 200112L
|
||||
|
||||
/* Real-time signals are supported. */
|
||||
#define _POSIX_REALTIME_SIGNALS 200112L
|
||||
|
||||
/* We support asynchronous I/O. */
|
||||
#define _POSIX_ASYNCHRONOUS_IO 200112L
|
||||
#define _POSIX_ASYNC_IO 1
|
||||
/* Alternative name for Unix98. */
|
||||
#define _LFS_ASYNCHRONOUS_IO 1
|
||||
/* Support for prioritization is also available. */
|
||||
#define _POSIX_PRIORITIZED_IO 200112L
|
||||
|
||||
/* The LFS support in asynchronous I/O is also available. */
|
||||
#define _LFS64_ASYNCHRONOUS_IO 1
|
||||
|
||||
/* The rest of the LFS is also available. */
|
||||
#define _LFS_LARGEFILE 1
|
||||
#define _LFS64_LARGEFILE 1
|
||||
#define _LFS64_STDIO 1
|
||||
|
||||
/* POSIX shared memory objects are implemented. */
|
||||
#define _POSIX_SHARED_MEMORY_OBJECTS 200112L
|
||||
|
||||
/* CPU-time clocks supported. */
|
||||
#define _POSIX_CPUTIME 0
|
||||
|
||||
/* We support the clock also in threads. */
|
||||
#define _POSIX_THREAD_CPUTIME 0
|
||||
|
||||
/* GNU libc provides regular expression handling. */
|
||||
#define _POSIX_REGEXP 1
|
||||
|
||||
/* Reader/Writer locks are available. */
|
||||
#define _POSIX_READER_WRITER_LOCKS 200112L
|
||||
|
||||
/* We have a POSIX shell. */
|
||||
#define _POSIX_SHELL 1
|
||||
|
||||
/* We support the Timeouts option. */
|
||||
#define _POSIX_TIMEOUTS 200112L
|
||||
|
||||
/* We support spinlocks. */
|
||||
#define _POSIX_SPIN_LOCKS 200112L
|
||||
|
||||
/* The `spawn' function family is supported. */
|
||||
#define _POSIX_SPAWN 200112L
|
||||
|
||||
/* We have POSIX timers. */
|
||||
#define _POSIX_TIMERS 200112L
|
||||
|
||||
/* The barrier functions are available. */
|
||||
#define _POSIX_BARRIERS 200112L
|
||||
|
||||
/* POSIX message queues are available. */
|
||||
#define _POSIX_MESSAGE_PASSING 200112L
|
||||
|
||||
/* Thread process-shared synchronization is not supported. */
|
||||
#define _POSIX_THREAD_PROCESS_SHARED -1
|
||||
|
||||
/* The monotonic clock might be available. */
|
||||
#define _POSIX_MONOTONIC_CLOCK 0
|
||||
|
||||
/* The clock selection interfaces are not available. */
|
||||
#define _POSIX_CLOCK_SELECTION -1
|
||||
|
||||
/* Advisory information interfaces are available. */
|
||||
#define _POSIX_ADVISORY_INFO 200112L
|
||||
|
||||
/* IPv6 support is available. */
|
||||
#define _POSIX_IPV6 200112L
|
||||
|
||||
/* Raw socket support is available. */
|
||||
#define _POSIX_RAW_SOCKETS 200112L
|
||||
|
||||
/* We have at least one terminal. */
|
||||
#define _POSIX2_CHAR_TERM 200112L
|
||||
|
||||
/* Neither process nor thread sporadic server interfaces is available. */
|
||||
#define _POSIX_SPORADIC_SERVER -1
|
||||
#define _POSIX_THREAD_SPORADIC_SERVER -1
|
||||
|
||||
/* trace.h is not available. */
|
||||
#define _POSIX_TRACE -1
|
||||
#define _POSIX_TRACE_EVENT_FILTER -1
|
||||
#define _POSIX_TRACE_INHERIT -1
|
||||
#define _POSIX_TRACE_LOG -1
|
||||
|
||||
/* Typed memory objects are not available. */
|
||||
#define _POSIX_TYPED_MEMORY_OBJECTS -1
|
||||
|
||||
/* No support for priority inheritance or protection. */
|
||||
#define _POSIX_THREAD_PRIO_INHERIT -1
|
||||
#define _POSIX_THREAD_PRIO_PROTECT -1
|
||||
|
||||
#endif /* posix_opt.h */
|
@ -1,181 +0,0 @@
|
||||
/* Define POSIX options for Linux/x86_64.
|
||||
Copyright (C) 1996-2001, 2002, 2003, 2004 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; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _POSIX_OPT_H
|
||||
#define _POSIX_OPT_H 1
|
||||
|
||||
/* Job control is supported. */
|
||||
#define _POSIX_JOB_CONTROL 1
|
||||
|
||||
/* Processes have a saved set-user-ID and a saved set-group-ID. */
|
||||
#define _POSIX_SAVED_IDS 1
|
||||
|
||||
/* Priority scheduling is supported. */
|
||||
#define _POSIX_PRIORITY_SCHEDULING 200112L
|
||||
|
||||
/* Synchronizing file data is supported. */
|
||||
#define _POSIX_SYNCHRONIZED_IO 200112L
|
||||
|
||||
/* The fsync function is present. */
|
||||
#define _POSIX_FSYNC 200112L
|
||||
|
||||
/* Mapping of files to memory is supported. */
|
||||
#define _POSIX_MAPPED_FILES 200112L
|
||||
|
||||
/* Locking of all memory is supported. */
|
||||
#define _POSIX_MEMLOCK 200112L
|
||||
|
||||
/* Locking of ranges of memory is supported. */
|
||||
#define _POSIX_MEMLOCK_RANGE 200112L
|
||||
|
||||
/* Setting of memory protections is supported. */
|
||||
#define _POSIX_MEMORY_PROTECTION 200112L
|
||||
|
||||
/* Only root can change owner of file. */
|
||||
#define _POSIX_CHOWN_RESTRICTED 1
|
||||
|
||||
/* `c_cc' member of 'struct termios' structure can be disabled by
|
||||
using the value _POSIX_VDISABLE. */
|
||||
#define _POSIX_VDISABLE '\0'
|
||||
|
||||
/* Filenames are not silently truncated. */
|
||||
#define _POSIX_NO_TRUNC 1
|
||||
|
||||
/* X/Open realtime support is available. */
|
||||
#define _XOPEN_REALTIME 1
|
||||
|
||||
/* X/Open realtime thread support is available. */
|
||||
#define _XOPEN_REALTIME_THREADS 1
|
||||
|
||||
/* XPG4.2 shared memory is supported. */
|
||||
#define _XOPEN_SHM 1
|
||||
|
||||
/* Tell we have POSIX threads. */
|
||||
#define _POSIX_THREADS 200112L
|
||||
|
||||
/* We have the reentrant functions described in POSIX. */
|
||||
#define _POSIX_REENTRANT_FUNCTIONS 1
|
||||
#define _POSIX_THREAD_SAFE_FUNCTIONS 200112L
|
||||
|
||||
/* We provide priority scheduling for threads. */
|
||||
#define _POSIX_THREAD_PRIORITY_SCHEDULING 200112L
|
||||
|
||||
/* We support user-defined stack sizes. */
|
||||
#define _POSIX_THREAD_ATTR_STACKSIZE 200112L
|
||||
|
||||
/* We support user-defined stacks. */
|
||||
#define _POSIX_THREAD_ATTR_STACKADDR 200112L
|
||||
|
||||
/* We support POSIX.1b semaphores, but only the non-shared form for now. */
|
||||
#define _POSIX_SEMAPHORES 200112L
|
||||
|
||||
/* Real-time signals are supported. */
|
||||
#define _POSIX_REALTIME_SIGNALS 200112L
|
||||
|
||||
/* We support asynchronous I/O. */
|
||||
#define _POSIX_ASYNCHRONOUS_IO 200112L
|
||||
#define _POSIX_ASYNC_IO 1
|
||||
/* Alternative name for Unix98. */
|
||||
#define _LFS_ASYNCHRONOUS_IO 1
|
||||
/* Support for prioritization is also available. */
|
||||
#define _POSIX_PRIORITIZED_IO 200112L
|
||||
|
||||
/* The LFS support in asynchronous I/O is also available. */
|
||||
#define _LFS64_ASYNCHRONOUS_IO 1
|
||||
|
||||
/* The rest of the LFS is also available. */
|
||||
#define _LFS_LARGEFILE 1
|
||||
#define _LFS64_LARGEFILE 1
|
||||
#define _LFS64_STDIO 1
|
||||
|
||||
/* POSIX shared memory objects are implemented. */
|
||||
#define _POSIX_SHARED_MEMORY_OBJECTS 200112L
|
||||
|
||||
/* CPU-time clocks supported. */
|
||||
#define _POSIX_CPUTIME 0
|
||||
|
||||
/* We support the clock also in threads. */
|
||||
#define _POSIX_THREAD_CPUTIME 0
|
||||
|
||||
/* GNU libc provides regular expression handling. */
|
||||
#define _POSIX_REGEXP 1
|
||||
|
||||
/* Reader/Writer locks are available. */
|
||||
#define _POSIX_READER_WRITER_LOCKS 200112L
|
||||
|
||||
/* We have a POSIX shell. */
|
||||
#define _POSIX_SHELL 1
|
||||
|
||||
/* We support the Timeouts option. */
|
||||
#define _POSIX_TIMEOUTS 200112L
|
||||
|
||||
/* We support spinlocks. */
|
||||
#define _POSIX_SPIN_LOCKS 200112L
|
||||
|
||||
/* The `spawn' function family is supported. */
|
||||
#define _POSIX_SPAWN 200112L
|
||||
|
||||
/* We have POSIX timers. */
|
||||
#define _POSIX_TIMERS 200112L
|
||||
|
||||
/* The barrier functions are available. */
|
||||
#define _POSIX_BARRIERS 200112L
|
||||
|
||||
/* POSIX message queues are available. */
|
||||
#define _POSIX_MESSAGE_PASSING 200112L
|
||||
|
||||
/* Thread process-shared synchronization is not supported. */
|
||||
#define _POSIX_THREAD_PROCESS_SHARED -1
|
||||
|
||||
/* The monotonic clock might be available. */
|
||||
#define _POSIX_MONOTONIC_CLOCK 0
|
||||
|
||||
/* The clock selection interfaces are not available. */
|
||||
#define _POSIX_CLOCK_SELECTION -1
|
||||
|
||||
/* Advisory information interfaces are available. */
|
||||
#define _POSIX_ADVISORY_INFO 200112L
|
||||
|
||||
/* IPv6 support is available. */
|
||||
#define _POSIX_IPV6 200112L
|
||||
|
||||
/* Raw socket support is available. */
|
||||
#define _POSIX_RAW_SOCKETS 200112L
|
||||
|
||||
/* We have at least one terminal. */
|
||||
#define _POSIX2_CHAR_TERM 200112L
|
||||
|
||||
/* Neither process nor thread sporadic server interfaces is available. */
|
||||
#define _POSIX_SPORADIC_SERVER -1
|
||||
#define _POSIX_THREAD_SPORADIC_SERVER -1
|
||||
|
||||
/* trace.h is not available. */
|
||||
#define _POSIX_TRACE -1
|
||||
#define _POSIX_TRACE_EVENT_FILTER -1
|
||||
#define _POSIX_TRACE_INHERIT -1
|
||||
#define _POSIX_TRACE_LOG -1
|
||||
|
||||
/* Typed memory objects are not available. */
|
||||
#define _POSIX_TYPED_MEMORY_OBJECTS -1
|
||||
|
||||
/* No support for priority inheritance or protection. */
|
||||
#define _POSIX_THREAD_PRIO_INHERIT -1
|
||||
#define _POSIX_THREAD_PRIO_PROTECT -1
|
||||
|
||||
#endif /* posix_opt.h */
|
@ -25,7 +25,7 @@
|
||||
#include <unistd.h>
|
||||
|
||||
|
||||
#if _POSIX_THREAD_CPUTIME
|
||||
#if defined _POSIX_THREAD_CPUTIME && _POSIX_THREAD_CPUTIME >= 0
|
||||
static pthread_barrier_t b2;
|
||||
static pthread_barrier_t bN;
|
||||
|
||||
@ -55,9 +55,17 @@ tf (void *arg)
|
||||
int
|
||||
do_test (void)
|
||||
{
|
||||
#if _POSIX_THREAD_CPUTIME
|
||||
#if defined _POSIX_THREAD_CPUTIME && _POSIX_THREAD_CPUTIME >= 0
|
||||
# define N 10
|
||||
|
||||
# if _POSIX_THREAD_CPUTIME == 0
|
||||
if (sysconf (_SC_THREAD_CPUTIME) < 0)
|
||||
{
|
||||
puts ("_POSIX_THREAD_CPUTIME option not available");
|
||||
return 0;
|
||||
}
|
||||
# endif
|
||||
|
||||
if (pthread_barrier_init (&b2, NULL, 2) != 0
|
||||
|| pthread_barrier_init (&bN, NULL, N + 1) != 0)
|
||||
{
|
||||
|
@ -1,3 +1,24 @@
|
||||
2004-12-09 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* init.c (__pthread_initialize_minimal_internal): Also unblock
|
||||
SIGSETXID.
|
||||
|
||||
2004-12-01 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_CPUTIME,
|
||||
_POSIX_THREAD_CPUTIME): Define to 0.
|
||||
* sysdeps/pthread/timer_create.c (timer_create): Remove unused code
|
||||
handling CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID.
|
||||
* sysdeps/pthread/timer_routines.c (__timer_signal_thread_pclk,
|
||||
__timer_signal_thread_tclk): Remove.
|
||||
(init_module): Remove their initialization.
|
||||
(thread_cleanup): Remove their cleanup assertions.
|
||||
* sysdeps/pthread/posix-timer.h (__timer_signal_thread_pclk,
|
||||
__timer_signal_thread_tclk): Remove.
|
||||
* sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Removed.
|
||||
* sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Removed.
|
||||
* sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Removed.
|
||||
|
||||
2004-12-07 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* sysdeps/ia64/tcb-offsets.sym (TID): Add.
|
||||
|
@ -88,16 +88,8 @@ extern pthread_once_t __timer_init_once_control;
|
||||
/* Nonzero if initialization of timer implementation failed. */
|
||||
extern int __timer_init_failed;
|
||||
|
||||
/* Nodes for the threads used to deliver signals. */
|
||||
/* A distinct thread is used for each clock type. */
|
||||
|
||||
/* Node for the thread used to deliver signals. */
|
||||
extern struct thread_node __timer_signal_thread_rclk;
|
||||
#if defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0
|
||||
extern struct thread_node __timer_signal_thread_pclk;
|
||||
#endif
|
||||
#if defined _POSIX_THREAD_CPUTIME && _POSIX_THREAD_CPUTIME >= 0
|
||||
extern struct thread_node __timer_signal_thread_tclk;
|
||||
#endif
|
||||
|
||||
|
||||
/* Return pointer to timer structure corresponding to ID. */
|
||||
|
@ -94,24 +94,7 @@ timer_create (clock_id, evp, timerid)
|
||||
case SIGEV_SIGNAL:
|
||||
/* We have a global thread for delivering timed signals.
|
||||
If it is not running, try to start it up. */
|
||||
switch (clock_id)
|
||||
{
|
||||
case CLOCK_REALTIME:
|
||||
default:
|
||||
thread = &__timer_signal_thread_rclk;
|
||||
break;
|
||||
#if defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0
|
||||
case CLOCK_PROCESS_CPUTIME_ID:
|
||||
thread = &__timer_signal_thread_pclk;
|
||||
break;
|
||||
#endif
|
||||
#if defined _POSIX_THREAD_CPUTIME && _POSIX_THREAD_CPUTIME >= 0
|
||||
case CLOCK_THREAD_CPUTIME_ID:
|
||||
thread = &__timer_signal_thread_tclk;
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
|
||||
thread = &__timer_signal_thread_rclk;
|
||||
if (! thread->exists)
|
||||
{
|
||||
if (__builtin_expect (__timer_thread_start (thread),
|
||||
|
@ -53,12 +53,6 @@ int __timer_init_failed;
|
||||
|
||||
/* Node for the thread used to deliver signals. */
|
||||
struct thread_node __timer_signal_thread_rclk;
|
||||
#if defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0
|
||||
struct thread_node __timer_signal_thread_pclk;
|
||||
#endif
|
||||
#if defined _POSIX_THREAD_CPUTIME && _POSIX_THREAD_CPUTIME >= 0
|
||||
struct thread_node __timer_signal_thread_tclk;
|
||||
#endif
|
||||
|
||||
/* Lists to keep free and used timers and threads. */
|
||||
struct list_links timer_free_list;
|
||||
@ -191,12 +185,6 @@ init_module (void)
|
||||
list_append (&thread_free_list, &thread_array[i].links);
|
||||
|
||||
thread_init (&__timer_signal_thread_rclk, 0, CLOCK_REALTIME);
|
||||
#if defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0
|
||||
thread_init (&__timer_signal_thread_pclk, 0, CLOCK_PROCESS_CPUTIME_ID);
|
||||
#endif
|
||||
#if defined _POSIX_THREAD_CPUTIME && _POSIX_THREAD_CPUTIME >= 0
|
||||
thread_init (&__timer_signal_thread_tclk, 0, CLOCK_THREAD_CPUTIME_ID);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@ -281,12 +269,6 @@ thread_cleanup (void *val)
|
||||
|
||||
/* How did the signal thread get killed? */
|
||||
assert (thread != &__timer_signal_thread_rclk);
|
||||
#if defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0
|
||||
assert (thread != &__timer_signal_thread_pclk);
|
||||
#endif
|
||||
#if defined _POSIX_THREAD_CPUTIME && _POSIX_THREAD_CPUTIME >= 0
|
||||
assert (thread != &__timer_signal_thread_tclk);
|
||||
#endif
|
||||
|
||||
pthread_mutex_lock (&__timer_mutex);
|
||||
|
||||
|
@ -104,6 +104,12 @@
|
||||
/* POSIX shared memory objects are implemented. */
|
||||
#define _POSIX_SHARED_MEMORY_OBJECTS 200112L
|
||||
|
||||
/* CPU-time clocks support needs to be checked at runtime. */
|
||||
#define _POSIX_CPUTIME 0
|
||||
|
||||
/* Clock support in threads must be also checked at runtime. */
|
||||
#define _POSIX_THREAD_CPUTIME 0
|
||||
|
||||
/* GNU libc provides regular expression handling. */
|
||||
#define _POSIX_REGEXP 1
|
||||
|
||||
|
@ -1,178 +0,0 @@
|
||||
/* Define POSIX options for Linux.
|
||||
Copyright (C) 1996-2001, 2002, 2003, 2004 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 Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 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
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _POSIX_OPT_H
|
||||
#define _POSIX_OPT_H 1
|
||||
|
||||
/* Job control is supported. */
|
||||
#define _POSIX_JOB_CONTROL 1
|
||||
|
||||
/* Processes have a saved set-user-ID and a saved set-group-ID. */
|
||||
#define _POSIX_SAVED_IDS 1
|
||||
|
||||
/* Priority scheduling is supported. */
|
||||
#define _POSIX_PRIORITY_SCHEDULING 200112L
|
||||
|
||||
/* Synchronizing file data is supported. */
|
||||
#define _POSIX_SYNCHRONIZED_IO 200112L
|
||||
|
||||
/* The fsync function is present. */
|
||||
#define _POSIX_FSYNC 200112L
|
||||
|
||||
/* Mapping of files to memory is supported. */
|
||||
#define _POSIX_MAPPED_FILES 200112L
|
||||
|
||||
/* Locking of all memory is supported. */
|
||||
#define _POSIX_MEMLOCK 200112L
|
||||
|
||||
/* Locking of ranges of memory is supported. */
|
||||
#define _POSIX_MEMLOCK_RANGE 200112L
|
||||
|
||||
/* Setting of memory protections is supported. */
|
||||
#define _POSIX_MEMORY_PROTECTION 200112L
|
||||
|
||||
/* Only root can change owner of file. */
|
||||
#define _POSIX_CHOWN_RESTRICTED 1
|
||||
|
||||
/* `c_cc' member of 'struct termios' structure can be disabled by
|
||||
using the value _POSIX_VDISABLE. */
|
||||
#define _POSIX_VDISABLE '\0'
|
||||
|
||||
/* Filenames are not silently truncated. */
|
||||
#define _POSIX_NO_TRUNC 1
|
||||
|
||||
/* X/Open realtime support is available. */
|
||||
#define _XOPEN_REALTIME 1
|
||||
|
||||
/* XPG4.2 shared memory is supported. */
|
||||
#define _XOPEN_SHM 1
|
||||
|
||||
/* Tell we have POSIX threads. */
|
||||
#define _POSIX_THREADS 200112L
|
||||
|
||||
/* We have the reentrant functions described in POSIX. */
|
||||
#define _POSIX_REENTRANT_FUNCTIONS 1
|
||||
#define _POSIX_THREAD_SAFE_FUNCTIONS 200112L
|
||||
|
||||
/* We provide priority scheduling for threads. */
|
||||
#define _POSIX_THREAD_PRIORITY_SCHEDULING 200112L
|
||||
|
||||
/* We support user-defined stack sizes. */
|
||||
#define _POSIX_THREAD_ATTR_STACKSIZE 200112L
|
||||
|
||||
/* We support user-defined stacks. */
|
||||
#define _POSIX_THREAD_ATTR_STACKADDR 200112L
|
||||
|
||||
/* We support POSIX.1b semaphores. */
|
||||
#define _POSIX_SEMAPHORES 200112L
|
||||
|
||||
/* Real-time signals are supported. */
|
||||
#define _POSIX_REALTIME_SIGNALS 200112L
|
||||
|
||||
/* We support asynchronous I/O. */
|
||||
#define _POSIX_ASYNCHRONOUS_IO 200112L
|
||||
#define _POSIX_ASYNC_IO 1
|
||||
/* Alternative name for Unix98. */
|
||||
#define _LFS_ASYNCHRONOUS_IO 1
|
||||
/* Support for prioritization is also available. */
|
||||
#define _POSIX_PRIORITIZED_IO 200112L
|
||||
|
||||
/* The LFS support in asynchronous I/O is also available. */
|
||||
#define _LFS64_ASYNCHRONOUS_IO 1
|
||||
|
||||
/* The rest of the LFS is also available. */
|
||||
#define _LFS_LARGEFILE 1
|
||||
#define _LFS64_LARGEFILE 1
|
||||
#define _LFS64_STDIO 1
|
||||
|
||||
/* POSIX shared memory objects are implemented. */
|
||||
#define _POSIX_SHARED_MEMORY_OBJECTS 200112L
|
||||
|
||||
/* CPU-time clocks supported. */
|
||||
#define _POSIX_CPUTIME 0
|
||||
|
||||
/* We support the clock also in threads. */
|
||||
#define _POSIX_THREAD_CPUTIME 0
|
||||
|
||||
/* GNU libc provides regular expression handling. */
|
||||
#define _POSIX_REGEXP 1
|
||||
|
||||
/* Reader/Writer locks are available. */
|
||||
#define _POSIX_READER_WRITER_LOCKS 200112L
|
||||
|
||||
/* We have a POSIX shell. */
|
||||
#define _POSIX_SHELL 1
|
||||
|
||||
/* We support the Timeouts option. */
|
||||
#define _POSIX_TIMEOUTS 200112L
|
||||
|
||||
/* We support spinlocks. */
|
||||
#define _POSIX_SPIN_LOCKS 200112L
|
||||
|
||||
/* The `spawn' function family is supported. */
|
||||
#define _POSIX_SPAWN 200112L
|
||||
|
||||
/* We have POSIX timers. */
|
||||
#define _POSIX_TIMERS 200112L
|
||||
|
||||
/* The barrier functions are available. */
|
||||
#define _POSIX_BARRIERS 200112L
|
||||
|
||||
/* POSIX message queues are available. */
|
||||
#define _POSIX_MESSAGE_PASSING 200112L
|
||||
|
||||
/* Thread process-shared synchronization is supported. */
|
||||
#define _POSIX_THREAD_PROCESS_SHARED 200112L
|
||||
|
||||
/* The monotonic clock might be available. */
|
||||
#define _POSIX_MONOTONIC_CLOCK 0
|
||||
|
||||
/* The clock selection interfaces are available. */
|
||||
#define _POSIX_CLOCK_SELECTION 200112L
|
||||
|
||||
/* Advisory information interfaces are available. */
|
||||
#define _POSIX_ADVISORY_INFO 200112L
|
||||
|
||||
/* IPv6 support is available. */
|
||||
#define _POSIX_IPV6 200112L
|
||||
|
||||
/* Raw socket support is available. */
|
||||
#define _POSIX_RAW_SOCKETS 200112L
|
||||
|
||||
/* We have at least one terminal. */
|
||||
#define _POSIX2_CHAR_TERM 200112L
|
||||
|
||||
/* Neither process nor thread sporadic server interfaces is available. */
|
||||
#define _POSIX_SPORADIC_SERVER -1
|
||||
#define _POSIX_THREAD_SPORADIC_SERVER -1
|
||||
|
||||
/* trace.h is not available. */
|
||||
#define _POSIX_TRACE -1
|
||||
#define _POSIX_TRACE_EVENT_FILTER -1
|
||||
#define _POSIX_TRACE_INHERIT -1
|
||||
#define _POSIX_TRACE_LOG -1
|
||||
|
||||
/* Typed memory objects are not available. */
|
||||
#define _POSIX_TYPED_MEMORY_OBJECTS -1
|
||||
|
||||
/* No support for priority inheritance or protection so far. */
|
||||
#define _POSIX_THREAD_PRIO_INHERIT -1
|
||||
#define _POSIX_THREAD_PRIO_PROTECT -1
|
||||
|
||||
#endif /* posix_opt.h */
|
@ -1,178 +0,0 @@
|
||||
/* Define POSIX options for Linux.
|
||||
Copyright (C) 1996-2001, 2002, 2003, 2004 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 Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 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
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _POSIX_OPT_H
|
||||
#define _POSIX_OPT_H 1
|
||||
|
||||
/* Job control is supported. */
|
||||
#define _POSIX_JOB_CONTROL 1
|
||||
|
||||
/* Processes have a saved set-user-ID and a saved set-group-ID. */
|
||||
#define _POSIX_SAVED_IDS 1
|
||||
|
||||
/* Priority scheduling is supported. */
|
||||
#define _POSIX_PRIORITY_SCHEDULING 200112L
|
||||
|
||||
/* Synchronizing file data is supported. */
|
||||
#define _POSIX_SYNCHRONIZED_IO 200112L
|
||||
|
||||
/* The fsync function is present. */
|
||||
#define _POSIX_FSYNC 200112L
|
||||
|
||||
/* Mapping of files to memory is supported. */
|
||||
#define _POSIX_MAPPED_FILES 200112L
|
||||
|
||||
/* Locking of all memory is supported. */
|
||||
#define _POSIX_MEMLOCK 200112L
|
||||
|
||||
/* Locking of ranges of memory is supported. */
|
||||
#define _POSIX_MEMLOCK_RANGE 200112L
|
||||
|
||||
/* Setting of memory protections is supported. */
|
||||
#define _POSIX_MEMORY_PROTECTION 200112L
|
||||
|
||||
/* Only root can change owner of file. */
|
||||
#define _POSIX_CHOWN_RESTRICTED 1
|
||||
|
||||
/* `c_cc' member of 'struct termios' structure can be disabled by
|
||||
using the value _POSIX_VDISABLE. */
|
||||
#define _POSIX_VDISABLE '\0'
|
||||
|
||||
/* Filenames are not silently truncated. */
|
||||
#define _POSIX_NO_TRUNC 1
|
||||
|
||||
/* X/Open realtime support is available. */
|
||||
#define _XOPEN_REALTIME 1
|
||||
|
||||
/* XPG4.2 shared memory is supported. */
|
||||
#define _XOPEN_SHM 1
|
||||
|
||||
/* Tell we have POSIX threads. */
|
||||
#define _POSIX_THREADS 200112L
|
||||
|
||||
/* We have the reentrant functions described in POSIX. */
|
||||
#define _POSIX_REENTRANT_FUNCTIONS 1
|
||||
#define _POSIX_THREAD_SAFE_FUNCTIONS 200112L
|
||||
|
||||
/* We provide priority scheduling for threads. */
|
||||
#define _POSIX_THREAD_PRIORITY_SCHEDULING 200112L
|
||||
|
||||
/* We support user-defined stack sizes. */
|
||||
#define _POSIX_THREAD_ATTR_STACKSIZE 200112L
|
||||
|
||||
/* We support user-defined stacks. */
|
||||
#define _POSIX_THREAD_ATTR_STACKADDR 200112L
|
||||
|
||||
/* We support POSIX.1b semaphores. */
|
||||
#define _POSIX_SEMAPHORES 200112L
|
||||
|
||||
/* Real-time signals are supported. */
|
||||
#define _POSIX_REALTIME_SIGNALS 200112L
|
||||
|
||||
/* We support asynchronous I/O. */
|
||||
#define _POSIX_ASYNCHRONOUS_IO 200112L
|
||||
#define _POSIX_ASYNC_IO 1
|
||||
/* Alternative name for Unix98. */
|
||||
#define _LFS_ASYNCHRONOUS_IO 1
|
||||
/* Support for prioritization is also available. */
|
||||
#define _POSIX_PRIORITIZED_IO 200112L
|
||||
|
||||
/* The LFS support in asynchronous I/O is also available. */
|
||||
#define _LFS64_ASYNCHRONOUS_IO 1
|
||||
|
||||
/* The rest of the LFS is also available. */
|
||||
#define _LFS_LARGEFILE 1
|
||||
#define _LFS64_LARGEFILE 1
|
||||
#define _LFS64_STDIO 1
|
||||
|
||||
/* POSIX shared memory objects are implemented. */
|
||||
#define _POSIX_SHARED_MEMORY_OBJECTS 200112L
|
||||
|
||||
/* CPU-time clocks supported. */
|
||||
#define _POSIX_CPUTIME 0
|
||||
|
||||
/* We support the clock also in threads. */
|
||||
#define _POSIX_THREAD_CPUTIME 0
|
||||
|
||||
/* GNU libc provides regular expression handling. */
|
||||
#define _POSIX_REGEXP 1
|
||||
|
||||
/* Reader/Writer locks are available. */
|
||||
#define _POSIX_READER_WRITER_LOCKS 200112L
|
||||
|
||||
/* We have a POSIX shell. */
|
||||
#define _POSIX_SHELL 1
|
||||
|
||||
/* We support the Timeouts option. */
|
||||
#define _POSIX_TIMEOUTS 200112L
|
||||
|
||||
/* We support spinlocks. */
|
||||
#define _POSIX_SPIN_LOCKS 200112L
|
||||
|
||||
/* The `spawn' function family is supported. */
|
||||
#define _POSIX_SPAWN 200112L
|
||||
|
||||
/* We have POSIX timers. */
|
||||
#define _POSIX_TIMERS 200112L
|
||||
|
||||
/* The barrier functions are available. */
|
||||
#define _POSIX_BARRIERS 200112L
|
||||
|
||||
/* POSIX message queues are available. */
|
||||
#define _POSIX_MESSAGE_PASSING 200112L
|
||||
|
||||
/* Thread process-shared synchronization is supported. */
|
||||
#define _POSIX_THREAD_PROCESS_SHARED 200112L
|
||||
|
||||
/* The monotonic clock might be available. */
|
||||
#define _POSIX_MONOTONIC_CLOCK 0
|
||||
|
||||
/* The clock selection interfaces are available. */
|
||||
#define _POSIX_CLOCK_SELECTION 200112L
|
||||
|
||||
/* Advisory information interfaces are available. */
|
||||
#define _POSIX_ADVISORY_INFO 200112L
|
||||
|
||||
/* IPv6 support is available. */
|
||||
#define _POSIX_IPV6 200112L
|
||||
|
||||
/* Raw socket support is available. */
|
||||
#define _POSIX_RAW_SOCKETS 200112L
|
||||
|
||||
/* We have at least one terminal. */
|
||||
#define _POSIX2_CHAR_TERM 200112L
|
||||
|
||||
/* Neither process nor thread sporadic server interfaces is available. */
|
||||
#define _POSIX_SPORADIC_SERVER -1
|
||||
#define _POSIX_THREAD_SPORADIC_SERVER -1
|
||||
|
||||
/* trace.h is not available. */
|
||||
#define _POSIX_TRACE -1
|
||||
#define _POSIX_TRACE_EVENT_FILTER -1
|
||||
#define _POSIX_TRACE_INHERIT -1
|
||||
#define _POSIX_TRACE_LOG -1
|
||||
|
||||
/* Typed memory objects are not available. */
|
||||
#define _POSIX_TYPED_MEMORY_OBJECTS -1
|
||||
|
||||
/* No support for priority inheritance or protection so far. */
|
||||
#define _POSIX_THREAD_PRIO_INHERIT -1
|
||||
#define _POSIX_THREAD_PRIO_PROTECT -1
|
||||
|
||||
#endif /* posix_opt.h */
|
@ -1,178 +0,0 @@
|
||||
/* Define POSIX options for Linux.
|
||||
Copyright (C) 1996-2001, 2002, 2003, 2004 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 Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 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
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _POSIX_OPT_H
|
||||
#define _POSIX_OPT_H 1
|
||||
|
||||
/* Job control is supported. */
|
||||
#define _POSIX_JOB_CONTROL 1
|
||||
|
||||
/* Processes have a saved set-user-ID and a saved set-group-ID. */
|
||||
#define _POSIX_SAVED_IDS 1
|
||||
|
||||
/* Priority scheduling is supported. */
|
||||
#define _POSIX_PRIORITY_SCHEDULING 200112L
|
||||
|
||||
/* Synchronizing file data is supported. */
|
||||
#define _POSIX_SYNCHRONIZED_IO 200112L
|
||||
|
||||
/* The fsync function is present. */
|
||||
#define _POSIX_FSYNC 200112L
|
||||
|
||||
/* Mapping of files to memory is supported. */
|
||||
#define _POSIX_MAPPED_FILES 200112L
|
||||
|
||||
/* Locking of all memory is supported. */
|
||||
#define _POSIX_MEMLOCK 200112L
|
||||
|
||||
/* Locking of ranges of memory is supported. */
|
||||
#define _POSIX_MEMLOCK_RANGE 200112L
|
||||
|
||||
/* Setting of memory protections is supported. */
|
||||
#define _POSIX_MEMORY_PROTECTION 200112L
|
||||
|
||||
/* Only root can change owner of file. */
|
||||
#define _POSIX_CHOWN_RESTRICTED 1
|
||||
|
||||
/* `c_cc' member of 'struct termios' structure can be disabled by
|
||||
using the value _POSIX_VDISABLE. */
|
||||
#define _POSIX_VDISABLE '\0'
|
||||
|
||||
/* Filenames are not silently truncated. */
|
||||
#define _POSIX_NO_TRUNC 1
|
||||
|
||||
/* X/Open realtime support is available. */
|
||||
#define _XOPEN_REALTIME 1
|
||||
|
||||
/* XPG4.2 shared memory is supported. */
|
||||
#define _XOPEN_SHM 1
|
||||
|
||||
/* Tell we have POSIX threads. */
|
||||
#define _POSIX_THREADS 200112L
|
||||
|
||||
/* We have the reentrant functions described in POSIX. */
|
||||
#define _POSIX_REENTRANT_FUNCTIONS 1
|
||||
#define _POSIX_THREAD_SAFE_FUNCTIONS 200112L
|
||||
|
||||
/* We provide priority scheduling for threads. */
|
||||
#define _POSIX_THREAD_PRIORITY_SCHEDULING 200112L
|
||||
|
||||
/* We support user-defined stack sizes. */
|
||||
#define _POSIX_THREAD_ATTR_STACKSIZE 200112L
|
||||
|
||||
/* We support user-defined stacks. */
|
||||
#define _POSIX_THREAD_ATTR_STACKADDR 200112L
|
||||
|
||||
/* We support POSIX.1b semaphores. */
|
||||
#define _POSIX_SEMAPHORES 200112L
|
||||
|
||||
/* Real-time signals are supported. */
|
||||
#define _POSIX_REALTIME_SIGNALS 200112L
|
||||
|
||||
/* We support asynchronous I/O. */
|
||||
#define _POSIX_ASYNCHRONOUS_IO 200112L
|
||||
#define _POSIX_ASYNC_IO 1
|
||||
/* Alternative name for Unix98. */
|
||||
#define _LFS_ASYNCHRONOUS_IO 1
|
||||
/* Support for prioritization is also available. */
|
||||
#define _POSIX_PRIORITIZED_IO 200112L
|
||||
|
||||
/* The LFS support in asynchronous I/O is also available. */
|
||||
#define _LFS64_ASYNCHRONOUS_IO 1
|
||||
|
||||
/* The rest of the LFS is also available. */
|
||||
#define _LFS_LARGEFILE 1
|
||||
#define _LFS64_LARGEFILE 1
|
||||
#define _LFS64_STDIO 1
|
||||
|
||||
/* POSIX shared memory objects are implemented. */
|
||||
#define _POSIX_SHARED_MEMORY_OBJECTS 200112L
|
||||
|
||||
/* CPU-time clocks supported. */
|
||||
#define _POSIX_CPUTIME 0
|
||||
|
||||
/* We support the clock also in threads. */
|
||||
#define _POSIX_THREAD_CPUTIME 0
|
||||
|
||||
/* GNU libc provides regular expression handling. */
|
||||
#define _POSIX_REGEXP 1
|
||||
|
||||
/* Reader/Writer locks are available. */
|
||||
#define _POSIX_READER_WRITER_LOCKS 200112L
|
||||
|
||||
/* We have a POSIX shell. */
|
||||
#define _POSIX_SHELL 1
|
||||
|
||||
/* We support the Timeouts option. */
|
||||
#define _POSIX_TIMEOUTS 200112L
|
||||
|
||||
/* We support spinlocks. */
|
||||
#define _POSIX_SPIN_LOCKS 200112L
|
||||
|
||||
/* The `spawn' function family is supported. */
|
||||
#define _POSIX_SPAWN 200112L
|
||||
|
||||
/* We have POSIX timers. */
|
||||
#define _POSIX_TIMERS 200112L
|
||||
|
||||
/* The barrier functions are available. */
|
||||
#define _POSIX_BARRIERS 200112L
|
||||
|
||||
/* POSIX message queues are available. */
|
||||
#define _POSIX_MESSAGE_PASSING 200112L
|
||||
|
||||
/* Thread process-shared synchronization is supported. */
|
||||
#define _POSIX_THREAD_PROCESS_SHARED 200112L
|
||||
|
||||
/* The monotonic clock might be available. */
|
||||
#define _POSIX_MONOTONIC_CLOCK 0
|
||||
|
||||
/* The clock selection interfaces are available. */
|
||||
#define _POSIX_CLOCK_SELECTION 200112L
|
||||
|
||||
/* Advisory information interfaces are available. */
|
||||
#define _POSIX_ADVISORY_INFO 200112L
|
||||
|
||||
/* IPv6 support is available. */
|
||||
#define _POSIX_IPV6 200112L
|
||||
|
||||
/* Raw socket support is available. */
|
||||
#define _POSIX_RAW_SOCKETS 200112L
|
||||
|
||||
/* We have at least one terminal. */
|
||||
#define _POSIX2_CHAR_TERM 200112L
|
||||
|
||||
/* Neither process nor thread sporadic server interfaces is available. */
|
||||
#define _POSIX_SPORADIC_SERVER -1
|
||||
#define _POSIX_THREAD_SPORADIC_SERVER -1
|
||||
|
||||
/* trace.h is not available. */
|
||||
#define _POSIX_TRACE -1
|
||||
#define _POSIX_TRACE_EVENT_FILTER -1
|
||||
#define _POSIX_TRACE_INHERIT -1
|
||||
#define _POSIX_TRACE_LOG -1
|
||||
|
||||
/* Typed memory objects are not available. */
|
||||
#define _POSIX_TYPED_MEMORY_OBJECTS -1
|
||||
|
||||
/* No support for priority inheritance or protection so far. */
|
||||
#define _POSIX_THREAD_PRIO_INHERIT -1
|
||||
#define _POSIX_THREAD_PRIO_PROTECT -1
|
||||
|
||||
#endif /* posix_opt.h */
|
@ -37,7 +37,7 @@
|
||||
#include <regex.h>
|
||||
|
||||
|
||||
#ifdef _POSIX_CPUTIME
|
||||
#if defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0
|
||||
static clockid_t cl;
|
||||
static int use_clock;
|
||||
#endif
|
||||
@ -118,9 +118,14 @@ main (int argc, char *argv[])
|
||||
if (inlen != 0)
|
||||
error (EXIT_FAILURE, errno, "cannot convert buffer");
|
||||
|
||||
#ifdef _POSIX_CPUTIME
|
||||
/* See whether we can use the CPU clock. */
|
||||
use_clock = clock_getcpuclockid (0, &cl) == 0;
|
||||
#if defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0
|
||||
# if _POSIX_CPUTIME == 0
|
||||
if (sysconf (_SC_CPUTIME) < 0)
|
||||
use_clock = 0;
|
||||
else
|
||||
# endif
|
||||
/* See whether we can use the CPU clock. */
|
||||
use_clock = clock_getcpuclockid (0, &cl) == 0;
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG
|
||||
@ -202,7 +207,7 @@ static int
|
||||
run_test (const char *expr, const char *mem, size_t memlen, int icase,
|
||||
int expected)
|
||||
{
|
||||
#ifdef _POSIX_CPUTIME
|
||||
#if defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0
|
||||
struct timespec start;
|
||||
struct timespec finish;
|
||||
#endif
|
||||
@ -211,7 +216,7 @@ run_test (const char *expr, const char *mem, size_t memlen, int icase,
|
||||
size_t offset;
|
||||
int cnt;
|
||||
|
||||
#ifdef _POSIX_CPUTIME
|
||||
#if defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0
|
||||
if (use_clock && !timing)
|
||||
use_clock = clock_gettime (cl, &start) == 0;
|
||||
#endif
|
||||
@ -260,7 +265,7 @@ run_test (const char *expr, const char *mem, size_t memlen, int icase,
|
||||
|
||||
regfree (&re);
|
||||
|
||||
#ifdef _POSIX_CPUTIME
|
||||
#if defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0
|
||||
if (use_clock && !timing)
|
||||
{
|
||||
use_clock = clock_gettime (cl, &finish) == 0;
|
||||
@ -345,7 +350,7 @@ static int
|
||||
run_test_backwards (const char *expr, const char *mem, size_t memlen,
|
||||
int icase, int expected)
|
||||
{
|
||||
#ifdef _POSIX_CPUTIME
|
||||
#if defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0
|
||||
struct timespec start;
|
||||
struct timespec finish;
|
||||
#endif
|
||||
@ -354,7 +359,7 @@ run_test_backwards (const char *expr, const char *mem, size_t memlen,
|
||||
size_t offset;
|
||||
int cnt;
|
||||
|
||||
#ifdef _POSIX_CPUTIME
|
||||
#if defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0
|
||||
if (use_clock && !timing)
|
||||
use_clock = clock_gettime (cl, &start) == 0;
|
||||
#endif
|
||||
@ -406,7 +411,7 @@ run_test_backwards (const char *expr, const char *mem, size_t memlen,
|
||||
|
||||
regfree (&re);
|
||||
|
||||
#ifdef _POSIX_CPUTIME
|
||||
#if defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0
|
||||
if (use_clock && !timing)
|
||||
{
|
||||
use_clock = clock_gettime (cl, &finish) == 0;
|
||||
|
@ -8,7 +8,7 @@
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#ifdef _POSIX_CPUTIME
|
||||
#if defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0
|
||||
static clockid_t cl;
|
||||
static int use_clock;
|
||||
#endif
|
||||
@ -16,9 +16,14 @@ static int use_clock;
|
||||
static int
|
||||
do_test (void)
|
||||
{
|
||||
#ifdef _POSIX_CPUTIME
|
||||
/* See whether we can use the CPU clock. */
|
||||
use_clock = clock_getcpuclockid (0, &cl) == 0;
|
||||
#if defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0
|
||||
# if _POSIX_CPUTIME == 0
|
||||
if (sysconf (_SC_CPUTIME) < 0)
|
||||
use_clock = 0;
|
||||
else
|
||||
# endif
|
||||
/* See whether we can use the CPU clock. */
|
||||
use_clock = clock_getcpuclockid (0, &cl) == 0;
|
||||
#endif
|
||||
|
||||
static const char *pat[] = {
|
||||
@ -112,7 +117,7 @@ do_test (void)
|
||||
rpbuf.no_sub = 1;
|
||||
}
|
||||
|
||||
#ifdef _POSIX_CPUTIME
|
||||
#if defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0
|
||||
struct timespec start, stop;
|
||||
if (use_clock)
|
||||
use_clock = clock_gettime (cl, &start) == 0;
|
||||
@ -211,7 +216,7 @@ do_test (void)
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef _POSIX_CPUTIME
|
||||
#if defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0
|
||||
if (use_clock)
|
||||
use_clock = clock_gettime (cl, &stop) == 0;
|
||||
if (use_clock)
|
||||
|
@ -897,7 +897,7 @@ __sysconf (name)
|
||||
#endif
|
||||
|
||||
case _SC_CPUTIME:
|
||||
#ifdef _POSIX_CPUTIME
|
||||
#if _POSIX_CPUTIME > 0
|
||||
return _POSIX_CPUTIME;
|
||||
#else
|
||||
return -1;
|
||||
@ -1062,7 +1062,7 @@ __sysconf (name)
|
||||
#endif
|
||||
|
||||
case _SC_THREAD_CPUTIME:
|
||||
#ifdef _POSIX_THREAD_CPUTIME
|
||||
#if _POSIX_THREAD_CPUTIME > 0
|
||||
return _POSIX_THREAD_CPUTIME;
|
||||
#else
|
||||
return -1;
|
||||
|
Loading…
Reference in New Issue
Block a user