| /* Handle POSIX compilation environments that may or may not be present. |
| Copyright (C) 2012-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 |
| <http://www.gnu.org/licenses/>. */ |
| |
| /* Before including this file, the including file must have included |
| <bits/environments.h> (generally via <unistd.h>) and must have |
| defined the following macros, exactly one of which will be called |
| for each POSIX environment: |
| |
| KNOWN_PRESENT_ENVIRONMENT, for POSIX environments that are known to |
| be supported in this libc. |
| |
| KNOWN_ABSENT_ENVIRONMENT, for POSIX environments that are known not |
| to be supported on this system. |
| |
| UNKNOWN_ENVIRONMENT, for POSIX environments not supported in this |
| libc but possibly supported by another libc on the same system, |
| that can be selected using the same compiler but different |
| compilation options. |
| |
| Each macro has arguments (SC_PREFIX, ENV_PREFIX, SUFFIX). The |
| corresponding argument to sysconf is _SC_##SC_PREFIX##_##SUFFIX. |
| The environment name, as used with getconf, is |
| ENV_PREFIX##_##SUFFIX, and the corresponding macro is the same with |
| a leading "_". |
| |
| In addition, the macros START_ENV_GROUP and END_ENV_GROUP must be |
| defined. These are called with arguments V5, V6, V7 before and |
| after the relevant groups of environments. */ |
| |
| START_ENV_GROUP (V7) |
| |
| #if _POSIX_V7_ILP32_OFF32 > 0 |
| KNOWN_PRESENT_ENVIRONMENT (V7, POSIX_V7, ILP32_OFF32) |
| #elif defined _POSIX_V7_ILP32_OFF32 |
| KNOWN_ABSENT_ENVIRONMENT (V7, POSIX_V7, ILP32_OFF32) |
| #else |
| UNKNOWN_ENVIRONMENT (V7, POSIX_V7, ILP32_OFF32) |
| #endif |
| |
| #if _POSIX_V7_ILP32_OFFBIG > 0 |
| KNOWN_PRESENT_ENVIRONMENT (V7, POSIX_V7, ILP32_OFFBIG) |
| #elif defined _POSIX_V7_ILP32_OFFBIG |
| KNOWN_ABSENT_ENVIRONMENT (V7, POSIX_V7, ILP32_OFFBIG) |
| #else |
| UNKNOWN_ENVIRONMENT (V7, POSIX_V7, ILP32_OFFBIG) |
| #endif |
| |
| #if _POSIX_V7_LP64_OFF64 > 0 |
| KNOWN_PRESENT_ENVIRONMENT (V7, POSIX_V7, LP64_OFF64) |
| #elif defined _POSIX_V7_LP64_OFF64 |
| KNOWN_ABSENT_ENVIRONMENT (V7, POSIX_V7, LP64_OFF64) |
| #else |
| UNKNOWN_ENVIRONMENT (V7, POSIX_V7, LP64_OFF64) |
| #endif |
| |
| #if _POSIX_V7_LPBIG_OFFBIG > 0 |
| KNOWN_PRESENT_ENVIRONMENT (V7, POSIX_V7, LPBIG_OFFBIG) |
| #elif defined _POSIX_V7_LPBIG_OFFBIG |
| KNOWN_ABSENT_ENVIRONMENT (V7, POSIX_V7, LPBIG_OFFBIG) |
| #else |
| UNKNOWN_ENVIRONMENT (V7, POSIX_V7, LPBIG_OFFBIG) |
| #endif |
| |
| END_ENV_GROUP (V7) |
| |
| START_ENV_GROUP (V6) |
| |
| #if _POSIX_V6_ILP32_OFF32 > 0 |
| KNOWN_PRESENT_ENVIRONMENT (V6, POSIX_V6, ILP32_OFF32) |
| #elif defined _POSIX_V6_ILP32_OFF32 |
| KNOWN_ABSENT_ENVIRONMENT (V6, POSIX_V6, ILP32_OFF32) |
| #else |
| UNKNOWN_ENVIRONMENT (V6, POSIX_V6, ILP32_OFF32) |
| #endif |
| |
| #if _POSIX_V6_ILP32_OFFBIG > 0 |
| KNOWN_PRESENT_ENVIRONMENT (V6, POSIX_V6, ILP32_OFFBIG) |
| #elif defined _POSIX_V6_ILP32_OFFBIG |
| KNOWN_ABSENT_ENVIRONMENT (V6, POSIX_V6, ILP32_OFFBIG) |
| #else |
| UNKNOWN_ENVIRONMENT (V6, POSIX_V6, ILP32_OFFBIG) |
| #endif |
| |
| #if _POSIX_V6_LP64_OFF64 > 0 |
| KNOWN_PRESENT_ENVIRONMENT (V6, POSIX_V6, LP64_OFF64) |
| #elif defined _POSIX_V6_LP64_OFF64 |
| KNOWN_ABSENT_ENVIRONMENT (V6, POSIX_V6, LP64_OFF64) |
| #else |
| UNKNOWN_ENVIRONMENT (V6, POSIX_V6, LP64_OFF64) |
| #endif |
| |
| #if _POSIX_V6_LPBIG_OFFBIG > 0 |
| KNOWN_PRESENT_ENVIRONMENT (V6, POSIX_V6, LPBIG_OFFBIG) |
| #elif defined _POSIX_V6_LPBIG_OFFBIG |
| KNOWN_ABSENT_ENVIRONMENT (V6, POSIX_V6, LPBIG_OFFBIG) |
| #else |
| UNKNOWN_ENVIRONMENT (V6, POSIX_V6, LPBIG_OFFBIG) |
| #endif |
| |
| END_ENV_GROUP (V6) |
| |
| START_ENV_GROUP (V5) |
| |
| #if _XBS5_ILP32_OFF32 > 0 |
| KNOWN_PRESENT_ENVIRONMENT (XBS5, XBS5, ILP32_OFF32) |
| #elif defined _XBS5_ILP32_OFF32 |
| KNOWN_ABSENT_ENVIRONMENT (XBS5, XBS5, ILP32_OFF32) |
| #else |
| UNKNOWN_ENVIRONMENT (XBS5, XBS5, ILP32_OFF32) |
| #endif |
| |
| #if _XBS5_ILP32_OFFBIG > 0 |
| KNOWN_PRESENT_ENVIRONMENT (XBS5, XBS5, ILP32_OFFBIG) |
| #elif defined _XBS5_ILP32_OFFBIG |
| KNOWN_ABSENT_ENVIRONMENT (XBS5, XBS5, ILP32_OFFBIG) |
| #else |
| UNKNOWN_ENVIRONMENT (XBS5, XBS5, ILP32_OFFBIG) |
| #endif |
| |
| #if _XBS5_LP64_OFF64 > 0 |
| KNOWN_PRESENT_ENVIRONMENT (XBS5, XBS5, LP64_OFF64) |
| #elif defined _XBS5_LP64_OFF64 |
| KNOWN_ABSENT_ENVIRONMENT (XBS5, XBS5, LP64_OFF64) |
| #else |
| UNKNOWN_ENVIRONMENT (XBS5, XBS5, LP64_OFF64) |
| #endif |
| |
| #if _XBS5_LPBIG_OFFBIG > 0 |
| KNOWN_PRESENT_ENVIRONMENT (XBS5, XBS5, LPBIG_OFFBIG) |
| #elif defined _XBS5_LPBIG_OFFBIG |
| KNOWN_ABSENT_ENVIRONMENT (XBS5, XBS5, LPBIG_OFFBIG) |
| #else |
| UNKNOWN_ENVIRONMENT (XBS5, XBS5, LPBIG_OFFBIG) |
| #endif |
| |
| END_ENV_GROUP (V5) |