epoc32/include/tools/stlport/stl/config/_linux.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
parent 2 2fe1408b6811
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
     1 #ifndef __stl_config__linux_h
     2 #define __stl_config__linux_h
     3 
     4 #define _STLP_PLATFORM "Linux"
     5 
     6 #include <features.h>
     7 
     8 /* This is defined wether library in use is glibc or not.
     9    This may be treated as presence of GNU libc compatible
    10    header files (these define is not really intended to check
    11    for the presence of a particular library, but rather is used
    12    to define an INTERFACE.) */
    13 #ifndef _STLP_USE_GLIBC
    14 #  define _STLP_USE_GLIBC 1
    15 #endif
    16 
    17 #define _STLP_UNIX 1
    18 
    19 #if defined(_REENTRANT) && !defined(_PTHREADS)
    20 # define _PTHREADS
    21 #endif
    22 
    23 #ifdef __UCLIBC__ /* uClibc 0.9.27 */
    24 #  define _STLP_USE_UCLIBC 1
    25 #  if !defined(__UCLIBC_HAS_WCHAR__)
    26 #    ifndef _STLP_NO_WCHAR_T
    27 #      define _STLP_NO_WCHAR_T
    28 #    endif
    29 #    ifndef _STLP_NO_MBSTATE_T
    30 #      define _STLP_NO_MBSTATE_T
    31 #    endif
    32 #    ifndef _STLP_NO_NATIVE_WIDE_STREAMS
    33 #      define _STLP_NO_NATIVE_WIDE_STREAMS
    34 #    endif
    35 #  endif /* __UCLIBC_HAS_WCHAR__ */
    36    /* Hmm, bogus _GLIBCPP_USE_NAMESPACES seems undefined... */
    37 #  define _STLP_VENDOR_GLOBAL_CSTD 1
    38 #  if defined(_STLP_REAL_LOCALE_IMPLEMENTED)
    39      /* locale in uClibc is very restricted */
    40      /* recheck if __UCLIBC_HAS_LOCALE__ defined...*/
    41 #    undef _STLP_REAL_LOCALE_IMPLEMENTED
    42 #  endif
    43 #endif
    44 
    45 
    46 #if defined(_PTHREADS)
    47 #  define _STLP_THREADS
    48 #  define _STLP_PTHREADS
    49 /*
    50 #  ifndef __USE_UNIX98
    51 #    define __USE_UNIX98
    52 #  endif
    53 */
    54 /* This feature exist at least since glibc 2.2.4 */
    55 /* #  define __FIT_XSI_THR */ /* Unix 98 or X/Open System Interfaces Extention */
    56 #  ifdef __USE_XOPEN2K
    57 /* The IEEE Std. 1003.1j-2000 introduces functions to implement spinlocks. */
    58 #   ifndef __UCLIBC__ /* There are no spinlocks in uClibc 0.9.27 */
    59 #     define _STLP_USE_PTHREAD_SPINLOCK
    60 #   else
    61 #     ifndef _STLP_DONT_USE_PTHREAD_SPINLOCK
    62         /* in uClibc (0.9.26) pthread_spinlock* declared in headers
    63          * but absent in library */
    64 #       define _STLP_DONT_USE_PTHREAD_SPINLOCK
    65 #     endif
    66 #   endif
    67 /* #   define __FIT_PSHARED_MUTEX */
    68 #  endif
    69 #endif
    70 
    71 /* Endiannes */
    72 #include <endian.h>
    73 #if !defined(__BYTE_ORDER) || !defined(__LITTLE_ENDIAN) || !defined(__BIG_ENDIAN)
    74 #  error "One of __BYTE_ORDER, __LITTLE_ENDIAN and __BIG_ENDIAN undefined; Fix me!"
    75 #endif
    76 
    77 #if ( __BYTE_ORDER == __LITTLE_ENDIAN )
    78 #  define _STLP_LITTLE_ENDIAN 1
    79 #elif ( __BYTE_ORDER == __BIG_ENDIAN )
    80 #  define _STLP_BIG_ENDIAN 1
    81 #else
    82 #  error "__BYTE_ORDER neither __BIG_ENDIAN nor __LITTLE_ENDIAN; Fix me!"
    83 #endif
    84 
    85 #if defined(__GNUC__) && (__GNUC__ < 3)
    86 #  define _STLP_NO_NATIVE_WIDE_FUNCTIONS 1
    87 /*
    88 #    define _STLP_NO_NATIVE_WIDE_STREAMS   1
    89 */
    90 #endif
    91 
    92 
    93 #endif /* __stl_config__linux_h */