This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.
Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi! The standard says that say _POSIX_REALTIME_SIGNALS shall be undefined or defined to either -1, 0 or 200112L and that sysconf (_SC_REALTIME_SIGNALS) shall return either -1 or 200112L. For many features we return that, but for many sysconf returns 1. The following patch changes those which have "shall return either -1 or 200112L" wording. I wonder if it shouldn't be #if _POSIX_REALTIME_SIGNALS > 0 return _POSIX_REALTIME_SIGNALS; #else return -1; #endif instead for the feature macros, as e.g. sysconf (_SC_MONOTONIC_CLOCK) will otherwise return 0 on glibc built without _NR_clock_getres defined in asm/unistd.h. 2004-05-10 Jakub Jelinek <jakub@redhat.com> * sysdeps/posix/sysconf.c (__sysconf) <cases _SC_REALTIME_SIGNALS, _SC_PRIORITY_SCHEDULING, _SC_TIMERS, _SC_ASYNCHRONOUS_IO, _SC_PRIORITIZED_IO, _SC_SYNCHRONIZED_IO, _SC_FSYNC, _SC_MAPPED_FILES, _SC_MEMLOCK, _SC_MEMLOCK_RANGE, _SC_MEMORY_PROTECTION, _SC_MESSAGE_PASSING, _SC_SEMAPHORES, _SC_SHARED_MEMORY_OBJECTS, _SC_THREADS, _SC_THREAD_SAFE_FUNCTIONS, _SC_THREAD_ATTR_STACKADDR, _SC_THREAD_ATTR_STACKSIZE, _SC_THREAD_PRIORITY_SCHEDULING, _SC_THREAD_PRIO_INHERIT, _SC_THREAD_PRIO_PROTECT, _SC_THREAD_PROCESS_SHARED>: Return _POSIX_* value instead of 1. * sysdeps/unix/sysv/linux/sysconf.c (__sysconf) <case _SC_MONOTONIC_CLOCK>: Return _POSIX_VERSION instead of 1. nptl/ * sysdeps/unix/sysv/linux/i386/sysconf.c (__sysconf): Return _POSIX_VERSION instead of 1. --- libc/sysdeps/unix/sysv/linux/sysconf.c.jj 2004-04-13 10:42:55.000000000 +0200 +++ libc/sysdeps/unix/sysv/linux/sysconf.c 2004-05-10 18:47:26.977149003 +0200 @@ -44,7 +44,7 @@ __sysconf (int name) INTERNAL_SYSCALL_DECL (err); int r; r = INTERNAL_SYSCALL (clock_getres, err, 2, CLOCK_MONOTONIC, &ts); - return INTERNAL_SYSCALL_ERROR_P (r, err) ? -1 : 1; + return INTERNAL_SYSCALL_ERROR_P (r, err) ? -1 : _POSIX_VERSION; } #endif --- libc/sysdeps/posix/sysconf.c.jj 2004-03-13 10:23:15.000000000 +0100 +++ libc/sysdeps/posix/sysconf.c 2004-05-10 17:51:16.810126812 +0200 @@ -97,98 +97,98 @@ __sysconf (name) case _SC_REALTIME_SIGNALS: #ifdef _POSIX_REALTIME_SIGNALS - return 1; + return _POSIX_REALTIME_SIGNALS; #else return -1; #endif case _SC_PRIORITY_SCHEDULING: #ifdef _POSIX_PRIORITY_SCHEDULING - return 1; + return _POSIX_PRIORITY_SCHEDULING; #else return -1; #endif case _SC_TIMERS: #ifdef _POSIX_TIMERS - return 1; + return _POSIX_TIMERS; #else return -1; #endif case _SC_ASYNCHRONOUS_IO: #ifdef _POSIX_ASYNCHRONOUS_IO - return 1; + return _POSIX_ASYNCHRONOUS_IO; #else return -1; #endif case _SC_PRIORITIZED_IO: #ifdef _POSIX_PRIORITIZED_IO - return 1; + return _POSIX_PRIORITIZED_IO; #else return -1; #endif case _SC_SYNCHRONIZED_IO: #ifdef _POSIX_SYNCHRONIZED_IO - return 1; + return _POSIX_SYNCHRONIZED_IO; #else return -1; #endif case _SC_FSYNC: #ifdef _POSIX_FSYNC - return 1; + return _POSIX_FSYNC; #else return -1; #endif case _SC_MAPPED_FILES: #ifdef _POSIX_MAPPED_FILES - return 1; + return _POSIX_MAPPED_FILES; #else return -1; #endif case _SC_MEMLOCK: #ifdef _POSIX_MEMLOCK - return 1; + return _POSIX_MEMLOCK; #else return -1; #endif case _SC_MEMLOCK_RANGE: #ifdef _POSIX_MEMLOCK_RANGE - return 1; + return _POSIX_MEMLOCK_RANGE; #else return -1; #endif case _SC_MEMORY_PROTECTION: #ifdef _POSIX_MEMORY_PROTECTION - return 1; + return _POSIX_MEMORY_PROTECTION; #else return -1; #endif case _SC_MESSAGE_PASSING: #ifdef _POSIX_MESSAGE_PASSING - return 1; + return _POSIX_MESSAGE_PASSING; #else return -1; #endif case _SC_SEMAPHORES: #ifdef _POSIX_SEMAPHORES - return 1; + return _POSIX_SEMAPHORES; #else return -1; #endif case _SC_SHARED_MEMORY_OBJECTS: #ifdef _POSIX_SHARED_MEMORY_OBJECTS - return 1; + return _POSIX_SHARED_MEMORY_OBJECTS; #else return -1; #endif @@ -507,14 +507,14 @@ __sysconf (name) /* POSIX 1003.1c (POSIX Threads). */ case _SC_THREADS: #ifdef _POSIX_THREADS - return 1; + return _POSIX_THREADS; #else return -1; #endif case _SC_THREAD_SAFE_FUNCTIONS: #ifdef _POSIX_THREAD_SAFE_FUNCTIONS - return 1; + return _POSIX_THREAD_SAFE_FUNCTIONS; #else return -1; #endif @@ -569,42 +569,42 @@ __sysconf (name) case _SC_THREAD_ATTR_STACKADDR: #ifdef _POSIX_THREAD_ATTR_STACKADDR - return 1; + return _POSIX_THREAD_ATTR_STACKADDR; #else return -1; #endif case _SC_THREAD_ATTR_STACKSIZE: #ifdef _POSIX_THREAD_ATTR_STACKSIZE - return 1; + return _POSIX_THREAD_ATTR_STACKSIZE; #else return -1; #endif case _SC_THREAD_PRIORITY_SCHEDULING: #ifdef _POSIX_THREAD_PRIORITY_SCHEDULING - return 1; + return _POSIX_THREAD_PRIORITY_SCHEDULING; #else return -1; #endif case _SC_THREAD_PRIO_INHERIT: #ifdef _POSIX_THREAD_PRIO_INHERIT - return 1; + return _POSIX_THREAD_PRIO_INHERIT; #else return -1; #endif case _SC_THREAD_PRIO_PROTECT: #ifdef _POSIX_THREAD_PRIO_PROTECT - return 1; + return _POSIX_THREAD_PRIO_PROTECT; #else return -1; #endif case _SC_THREAD_PROCESS_SHARED: #ifdef _POSIX_THREAD_PROCESS_SHARED - return 1; + return _POSIX_THREAD_PROCESS_SHARED; #else return -1; #endif --- libc/nptl/sysdeps/unix/sysv/linux/i386/sysconf.c.jj 2004-05-10 10:32:50.000000000 +0200 +++ libc/nptl/sysdeps/unix/sysv/linux/i386/sysconf.c 2004-05-10 18:47:43.728147006 +0200 @@ -41,7 +41,7 @@ __sysconf (int name) return -1; # else extern int __atomic_has_cmpxchg attribute_hidden; - return __atomic_has_cmpxchg ? 1 : -1; + return __atomic_has_cmpxchg ? _POSIX_VERSION : -1; # endif } Jakub
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |