summaryrefslogtreecommitdiff
path: root/libc/sysdeps/posix/sysconf.c
diff options
context:
space:
mode:
authorjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2012-11-17 17:50:14 +0000
committerjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2012-11-17 17:50:14 +0000
commitc27e56d74f3fb58f18e5381e49d30e1134b2005e (patch)
tree961e5061add44ed5f4bdded12ae6f2bb7d4c930a /libc/sysdeps/posix/sysconf.c
parent976bc9d4ac64f30edc1e8fa8ec7552703f04a6de (diff)
downloadeglibc2-c27e56d74f3fb58f18e5381e49d30e1134b2005e.tar.gz
Merge changes between r21628 and r21775 from /fsf/trunk.
git-svn-id: svn://svn.eglibc.org/trunk@21776 7b3dc134-2b1b-0410-93df-9e9f96275f8d
Diffstat (limited to 'libc/sysdeps/posix/sysconf.c')
-rw-r--r--libc/sysdeps/posix/sysconf.c95
1 files changed, 23 insertions, 72 deletions
diff --git a/libc/sysdeps/posix/sysconf.c b/libc/sysdeps/posix/sysconf.c
index bfe28b47e..99043b755 100644
--- a/libc/sysdeps/posix/sysconf.c
+++ b/libc/sysdeps/posix/sysconf.c
@@ -790,80 +790,31 @@ __sysconf (name)
return -1;
#endif
- case _SC_XBS5_ILP32_OFF32:
-#ifdef _XBS5_ILP32_OFF32
- return _XBS5_ILP32_OFF32;
-#else
- return __sysconf_check_spec ("ILP32_OFF32");
-#endif
- case _SC_XBS5_ILP32_OFFBIG:
-#ifdef _XBS5_ILP32_OFFBIG
- return _XBS5_ILP32_OFFBIG;
-#else
- return __sysconf_check_spec ("ILP32_OFFBIG");
-#endif
- case _SC_XBS5_LP64_OFF64:
-#ifdef _XBS5_LP64_OFF64
- return _XBS5_LP64_OFF64;
-#else
- return __sysconf_check_spec ("LP64_OFF64");
-#endif
- case _SC_XBS5_LPBIG_OFFBIG:
-#ifdef _XBS5_LPBIG_OFFBIG
- return _XBS5_LPBIG_OFFBIG;
-#else
- return __sysconf_check_spec ("LPBIG_OFFBIG");
-#endif
+#define START_ENV_GROUP(VERSION) \
+ /* Empty. */
- case _SC_V6_ILP32_OFF32:
-#ifdef _POSIX_V6_ILP32_OFF32
- return _POSIX_V6_ILP32_OFF32;
-#else
- return __sysconf_check_spec ("ILP32_OFF32");
-#endif
- case _SC_V6_ILP32_OFFBIG:
-#ifdef _POSIX_V6_ILP32_OFFBIG
- return _POSIX_V6_ILP32_OFFBIG;
-#else
- return __sysconf_check_spec ("ILP32_OFFBIG");
-#endif
- case _SC_V6_LP64_OFF64:
-#ifdef _POSIX_V6_LP64_OFF64
- return _POSIX_V6_LP64_OFF64;
-#else
- return __sysconf_check_spec ("LP64_OFF64");
-#endif
- case _SC_V6_LPBIG_OFFBIG:
-#ifdef _POSIX_V6_LPBIG_OFFBIG
- return _POSIX_V6_LPBIG_OFFBIG;
-#else
- return __sysconf_check_spec ("LPBIG_OFFBIG");
-#endif
+#define END_ENV_GROUP(VERSION) \
+ /* Empty. */
- case _SC_V7_ILP32_OFF32:
-#ifdef _POSIX_V7_ILP32_OFF32
- return _POSIX_V7_ILP32_OFF32;
-#else
- return __sysconf_check_spec ("ILP32_OFF32");
-#endif
- case _SC_V7_ILP32_OFFBIG:
-#ifdef _POSIX_V7_ILP32_OFFBIG
- return _POSIX_V7_ILP32_OFFBIG;
-#else
- return __sysconf_check_spec ("ILP32_OFFBIG");
-#endif
- case _SC_V7_LP64_OFF64:
-#ifdef _POSIX_V7_LP64_OFF64
- return _POSIX_V7_LP64_OFF64;
-#else
- return __sysconf_check_spec ("LP64_OFF64");
-#endif
- case _SC_V7_LPBIG_OFFBIG:
-#ifdef _POSIX_V7_LPBIG_OFFBIG
- return _POSIX_V7_LPBIG_OFFBIG;
-#else
- return __sysconf_check_spec ("LPBIG_OFFBIG");
-#endif
+#define KNOWN_ABSENT_ENVIRONMENT(SC_PREFIX, ENV_PREFIX, SUFFIX) \
+ case _SC_##SC_PREFIX##_##SUFFIX: \
+ return _##ENV_PREFIX##_##SUFFIX;
+
+#define KNOWN_PRESENT_ENVIRONMENT(SC_PREFIX, ENV_PREFIX, SUFFIX) \
+ case _SC_##SC_PREFIX##_##SUFFIX: \
+ return _##ENV_PREFIX##_##SUFFIX;
+
+#define UNKNOWN_ENVIRONMENT(SC_PREFIX, ENV_PREFIX, SUFFIX) \
+ case _SC_##SC_PREFIX##_##SUFFIX: \
+ return __sysconf_check_spec (#SUFFIX);
+
+#include <posix/posix-envs.def>
+
+#undef START_ENV_GROUP
+#undef END_ENV_GROUP
+#undef KNOWN_ABSENT_ENVIRONMENT
+#undef KNOWN_PRESENT_ENVIRONMENT
+#undef UNKNOWN_ENVIRONMENT
case _SC_XOPEN_LEGACY:
return _XOPEN_LEGACY;