summaryrefslogtreecommitdiffstats
path: root/newlib/libc/include/sys/features.h
Commit message (Collapse)AuthorAgeFilesLines
* cygwin: make POSIX/XSI version macros dependent on feature test macrosYaakov Selkowitz2016-04-041-10/+37
| | | | | | | | | | | | | Each version of SUS specifies a different value for _POSIX_VERSION, _POSIX2_VERSION, and _XOPEN_VERSION. glibc also changes the value of the other _POSIX2_ variables but not the _POSIX_* variables. _POSIX_TIMERS should be set to a version number, not just 1. The _POSIX_V7_* macros were missing, which was not noticed because the V6 values were aliased in sysconf (<unistd.h>). Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
* Feature test macros overhaul: C++ TR1Yaakov Selkowitz2016-03-231-5/+5
| | | | | | | | | | | | While C++11 was the first version of the standard to use C99 functionality, TR1 (for C++03) also does, and G++ does not distinguish between C++98 and C++03, or when TR1 is in use. Therefore, while not strictly correct for "pure" C++98, enabling C99 for all C++ usage is the simplest solution (and much better than always using -D_GNU_SOURCE as on Linux). See thread starting: https://sourceware.org/ml/newlib/2016/msg00297.html Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
* Feature test macros overhaul: sys/features.hYaakov Selkowitz2016-03-171-19/+275
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the complete rework of the feature tests macros for better compatibility with GNU libc, primarily based on the Linux man pages documentation: http://man7.org/linux/man-pages/man7/feature_test_macros.7.html The previous implementation was flawed in its approach that macros were often used to hide symbols if defined (e.g. !defined __STRICT_ANSI__ or !defined _POSIX_SOURCE), whereas the approach of glibc is that these macros make symbols available when defined (e.g. defined _BSD_SOURCE, or as used internally, #if __BSD_VISIBLE). As much open-source software is written with glibc in mind, this necessitated patching numerous packages just to compile. In particular, __STRICT_ANSI__ (which is defined by gcc -ansi or -std=c*) was given too much importance. This implementation limits the influence of __STRICT_ANSI__ to controlling the default when no other feature test macros are defined, and to the inclusion of <alloca.h> in <stdlib.h> as documented. These are the only places where __STRICT_ANSI__ should be tested. The following macros are now accepted: _ATFILE_SOURCE, _BSD_SOURCE, _DEFAULT_SOURCE, _ISOC99_SOURCE, _ISOC11_SOURCE, _LARGEFILE_SOURCE, _SVID_SOURCE, _XOPEN_SOURCE_EXTENDED. The existing __*_VISIBLE internal macros have been kept mostly compatible with the original BSD implementation, with some changes to the criteria which controls them. Several more macros in this style have been added where needed for concision or accuracy. Enabling C++11 or newer in the compiler also enables C99 and C11 functions. Doing so should help move away from the need to define _GNU_SOURCE in g++ for _GLIBCXX_USE_C99 support as on Linux: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51749 Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
* sys/features.h: Update Cygwin POSIX option macrosCorinna Vinschen2016-02-181-34/+34
| | | | | | | | * libc/include/sys/features.h: Set POSIX option macros from 200112L to 200809L for Cygwin. (_POSIX_SPAWN): Set to 200809L for Cygwin. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Define the newlib version macros in one place: _newlib_version.h.Pieter du Preez2016-02-171-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, the newlib version information needs to be updated in two places: - newlib/acinclude.m4 - newlib/libc/include/sys/features.h The goal of this patch is to: - supply a single location for defining the newlib version information: newlib/acinclude.m4 - define __NEWLIB__, __NEWLIB_MINOR__ and __NEWLIB_PATCHLEVEL__ This is in line with what gcc does for its version macros. See: https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html This patch moves the definition of the _NEWLIB_VERSION, __NEWLIB__ and __NEWLIB_MINOR__ macros from newlib/libc/include/sys/features.h, to the newly generated newlib/_newlib_version.h file. Additionally, the __NEWLIB_PATCHLEVEL__ macro was created, for completeness. In order to stay backwards compatible, newlib/_newlib_version.h gets included by newlib/newlib.h and newlib/libc/include/sys/features.h. Note: This patch does _not_ include the modifications to the following files, as these should all be generated any way. *Makefile.in, *aclocal.m4, *configure stamp-* files Signed-off-by: Pieter du Preez <pdupreez@gmail.com>
* POSIX barrier implementation, take 3Václav Haisman2016-02-131-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The attached patch should address all of the review comments. Modifed change log: Newlib: * libc/include/sys/features.h (_POSIX_BARRIERS): Define for Cygwin. * libc/include/sys/types.h (pthread_barrier_t) (pthread_barrierattr_t): Do not define for Cygwin. Cygwin: * common.din (pthread_barrierattr_init) (pthread_barrierattr_setpshared, pthread_barrierattr_getpshared) (pthread_barrierattr_destroy, pthread_barrier_init) (pthread_barrier_destroy, pthread_barrier_wait): Export. * include/cygwin/types.h (pthread_barrierattr_t) (pthread_barrier_t): Declare. * include/pthread.h (PTHREAD_BARRIER_SERIAL_THREAD) (pthread_barrierattr_init, pthread_barrierattr_setpshared) (pthread_barrierattr_getpshared, pthread_barrierattr_destroy) (pthread_barrier_init, pthread_barrier_destroy) (pthread_barrier_wait): Declare. * thread.h (PTHREAD_BARRIER_MAGIC) (PTHREAD_BARRIERATTR_MAGIC): Define. (class pthread_barrierattr, class pthread_barrier): Declare. * thread.cc (delete_and_clear): New local helper function. (class pthread_barrierattr, class pthread_barrier): Implement. * miscfuncs.h (likely, unlikely): New macros. -- VH
* 2014-12-26 Freddie Chopin <freddie_chopin@op.pl>Jeff Johnston2015-01-051-2/+2
| | | | * libc/include/sys/features.h: update newlib version and copyright year
* 2014-09-17 Jeff Johnston <jjohnstn@redhat.com>Jeff Johnston2014-09-171-0/+6
| | | | | * libc/include/sys/features.h: Add __NEWLIB__ and __NEWLIB_MINOR__ macros.
* Port newlib to x86_64-pc-cygwin.Corinna Vinschen2013-04-231-3/+9
| | | | | | | | | | | * libc/include/sys/features.h: Redefine compilation environment definitions for Cygwin to cover 64 bit Cygwin. * libc/ctype/ctype_.c (_ctype_): Fix definition for 64 bit Cygwin. * libc/include/machine/setjmp.h: Change definition of _JBLEN to allow different values for 32 bit and 64 bit Cygwin. * libc/include/reent.h (stat64): Define as stat under Cygwin, instead of as __stat64. Undef stat64 if not building Newlib. * libc/include/sys/stat.h (stat64): Define as stat under Cygwin.
* * libc/include/sys/cdefs.h: Align with latest FreeBSD file header.Corinna Vinschen2013-04-221-0/+2
| | | | * libc/include/sys/features.h (__GNUC_PREREQ__): Define.
* * libc/include/sys/features.h (__GNUC_PREREQ): Define. UseCorinna Vinschen2012-10-161-0/+10
| | | | | | | throughout in place of explicit GNUC version checks. * libc/include/_ansi.h (_NOINLINE): Define. (_NOINLINE_STATIC): Define. * libc/stdio/vfprintf.c (__sbprintf): Define _NOINLINE_STATIC.
* * libc/include/time.h [_POSIX_CLOCK_SELECTION] (clock_nanosleep):Yaakov Selkowitz2011-07-201-1/+1
| | | | | | Declare. * libc/include/sys/features.h [__CYGWIN__] (_POSIX_CLOCK_SELECTION): Define.
* * libc/include/time.h (CLOCK_PROCESS_CPUTIME_ID): Rename fromYaakov Selkowitz2011-05-161-2/+2
| | | | | | | CLOCK_PROCESS_CPUTIME. (CLOCK_THREAD_CPUTIME_ID): Rename from CLOCK_THREAD_CPUTIME. * libc/include/sys/features.h [__CYGWIN__] (_POSIX_CPUTIME): Define. (_POSIX_THREAD_CPUTIME): Define.
* * libc/include/sys/features.h (_POSIX_THREAD_ATTR_STACKADDR): DefineCorinna Vinschen2011-05-151-1/+1
| | | | to 200112L for Cygwin.
* * libc/include/sys/features.h [__CYGWIN__] (_POSIX_SPIN_LOCKS): Define.Yaakov Selkowitz2011-05-021-1/+1
| | | | | * libc/include/sys/types.h: Cygwin provides its own pthread_spinlock_t typedef.
* * libc/include/sys/features.h: Define __STDC_ISO_10646__ for Cygwin.Corinna Vinschen2011-01-271-0/+6
| | | | * libc/include/wchar.h: Include features.h.
* * libc/include/sys/features.h: Define _POSIX_MONOTONIC_CLOCK for Cygwin.Corinna Vinschen2010-08-091-1/+1
|
* * libc/include/sys/features.h: Allow for _XOPEN_SOURCE to have anCorinna Vinschen2010-03-171-3/+9
| | | | empty definition. Also add support for values of 500 or less.
* 2010-03-02 Craig Howland <howland@LGSInnovations.com>Jeff Johnston2010-03-021-0/+13
| | | | | | | | * libc/include/sys/features.h: Add POSIX.1-permitted definition of _POSIX_C_SOURCE if not already defined and _XOPEN_SOURCE has an appropriate value. Specifically, check for POSIX.1-2008 & 2001 values. * libc/include/sys/config.h: Add #include <sys/features.h> so that all includes get the new check added to it.
* 2009-07-06 Joel Sherrill <joel.sherrill@oarcorp.com>Jeff Johnston2009-07-061-0/+3
| | | | | * libc/include/sys/features.h: Enable UNIX98 mutex attributes for RTEMS.
* 2009-06-17 Michael Eager <eager@eagercon.com>Jeff Johnston2009-06-171-0/+7
| | | | | | | * libc/include/pthread.h: Support XMK (Xilinx) BSP, add RTEMS to PTHREAD_MUTEX_NORMAL. * libc/include/sys/features.h: Same. * libc/include/sys/types.h: Same.
* 2009-04-06 Ken Werner <ken.werner@de.ibm.com>Jeff Johnston2009-04-061-5/+0
| | | | | * libc/include/sys/features.h: Undefine _POSIX_TIMERS for spu. * libc/include/machine/time.h (nanosleep): Declare.
* 2008-12-12 Ralf Corsepius <ralf.corsepius@rtems.org>Jeff Johnston2008-12-121-2/+2
| | | | | | * libc/include/sys/features.h: Set RTEMS's _POSIX_MONOTONIC_CLOCK to 200112L (SUSv3 compliance). Comment out RTEMS's _POSIX_SHARED_MEMORY_OBJECTS (Unsupported).
* * libc/include/sys/features.h (_POSIX_V6_ILP32_OFF32): Always define.Corinna Vinschen2008-12-041-3/+3
| | | | | (_POSIX_V6_LP64_OFF64): Ditto. (_POSIX_V6_LPBIG_OFFBIG): Ditto.
* 2008-10-16 Joel Sherrill <joel.sherrill@oarcorp.com>Jeff Johnston2008-10-161-0/+1
| | | | | | * libc/include/time.h: Add CLOCK_MONOTONIC. * libc/include/sys/features.h: Define _POSIX_MONOTONIC_CLOCK for RTEMS.
* 2007-12-19 Jeff Johnston <jjohnstn@redhat.com>Jeff Johnston2007-12-191-1/+4
| | | | | * libc/include/sys/features.h: Add checks for C90 compilers using -ansi.
* 2007-06-13 Patrick Mansfield <patmans@us.ibm.com>Jeff Johnston2007-06-131-0/+5
| | | | | | | | | | * libc/include/sys/features.h: Define _POSIX_TIMERS for spu. * libc/include/sys/unistd.h: Change usleep prototype to Posix form and move outside of OS flag checks. * libc/machine/spu/Makefile.am: Add sleep and usleep. * libc/machine/spu/Makefile.in: Regenerate. * libc/machine/spu/sleep.c: Copy libc/posix/sleep.c. * libc/machine/spu/usleep.c: Copy libc/posix/usleep.c.
* * libc/include/sys/features.h: Add _POSIX_MESSAGE_PASSING forCorinna Vinschen2007-02-141-1/+1
| | | | Cygwin.
* * libc/include/sys/features.h: Add _POSIX_SHARED_MEMORY_OBJECTS forCorinna Vinschen2007-02-081-3/+3
| | | | Cygwin. Fix value of _POSIX_SEMAPHORES. Fix formatting.
* * libc/include/sys/features.h: Add definition of all supportedCorinna Vinschen2007-02-071-11/+83
| | | | | | | | | _POSIX_xxx values for Cygwin. * libc/include/sys/types.h (pthread_rwlock_t): Omit definition on Cygwin. (pthread_rwlockattr_t): Ditto. * libc/include/sys/unistd.h: Define all _SC_xxx values as required by SUSv3. Unify formatting.
* 2006-09-13 Joel Sherrill <joel@oarcorp.com>Jeff Johnston2006-09-131-0/+3
| | | | | | | | | | | * libc/include/pthread.h: Add pthread barriers, rwlocks, and spinlocks. Change const to _CONST and prefix parameter names with an underscore. * libc/include/sys/types.h: Add id and attribute types for barriers, wrlocks, and spinlocks. * libc/include/sys/features.h: Enable barriers, wrlocks, and spinlocks for RTEMS.
* * libc/include/sys/features.h: Define _POSIX_MEMLOCK_RANGE for Cygwin.Corinna Vinschen2005-10-181-0/+1
|
* * libc/include/sys/features.h: Add _POSIX_TIMERS define for __CYGWIN__.Christopher Faylor2004-02-091-9/+10
| | | | | | * libc/include/sys/reent.h (__getreent): Protect against possibly being defined. * libc/include/sys/unistd.h (fdatasync): Don't define for __CYGWIN__.
* * libc/include/sys/features.h (_POSIX_SEMAPHORES): New Cygwin define.Christopher Faylor2002-03-281-0/+1
|
* * libc/include/sys/features.h: Add appropriate defines for Cygwin pthreadChristopher Faylor2001-04-121-0/+5
| | | | | | | support. * libc/include/sys/signal.h: Remove unneeded __CYGWIN__ protection. * libc/include/sys/types.h: Protect __CYGWIN__ from the rtems pthreads types. Include <cygwin/types.h> for the cygwin specific typedefs.
* * libc/include/sys/features.h: __CYGWIN__ preferred over __CYGWIN32__DJ Delorie2001-01-121-1/+1
|
* 2000-12-11 Joel Sherrill <joel@OARcorp.com>Jeff Johnston2000-12-121-0/+89
* Merge RTEMS specific .h files into main libc/include. * libc/sys/rtems/include/signal.h: Removed. * libc/sys/rtems/include/time.h: Removed. * libc/sys/rtems/sys/features.h: Removed. * libc/sys/rtems/sys/sched.h: Removed. * libc/sys/rtems/sys/siginfo.h: Removed. * libc/sys/rtems/sys/signal.h: Removed. * libc/sys/rtems/sys/time.h: Removed. * libc/sys/rtems/sys/times.h: Removed. definitions for time_t and clock_t since these are no longer in time.h. * libc/include/pthread.h: New file. * libc/include/sys/sched.h: New file. * libc/include/sys/features.h: New file. * libc/include/time.h: Removed duplicate definition of clock_t and time_t, get them from <sys/types.h> instead. Add prototypes for POSIX clock and timer functionality. * libc/sys/linux/sys/types.h: Changed to include * libc/include/machine/types.h: Add _CLOCKID_T_ and _TIMER_T_. * libc/include/sys/signal.h: Add more complete set of POSIX signal functionality including real-time and threaded signals. * libc/include/sys/types.h: Add clock_t, time_t, struct timespec, and struct itimerspec. Centralizing these makes things cleaner. RTEMS uses 64-bit dev_t. Added numerous primitive definitions for pthreads including macros, pthread_attr_t, pthread_mutexattr_t, pthread_condattr_t, pthread_key_t, pthread_once_t, and pthread_t. * libc/include/sys/unistd.h: Added getlogin_r() prototype. If RTEMS follow POSIX on read(), write() and sbrk() prototype. Feature flags removed and moved to new file <sys/features.h>. Full set of POSIX sysconf() constants