[git commit master 1/1] getconf: only use specs that are available

Bernhard Reutner-Fischer rep.dot.nop at gmail.com
Wed Dec 8 16:24:58 UTC 2010


commit: http://git.uclibc.org/uClibc/commit/?id=a1aaae7b8731a25b7dd8b6a58713dcfc339c3c44
branch: http://git.uclibc.org/uClibc/commit/?id=refs/heads/master

On older glibc (like 2.7), the _SC_V7_* symbols are not defined,
making the build of current uClibc fail on Debian Lenny systems and
other systems using a fairly old glibc. So we make sure to only use
the specs names that are defined by the host C library.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop at gmail.com>
---
 utils/getconf.c |   72 ++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 48 insertions(+), 24 deletions(-)

diff --git a/utils/getconf.c b/utils/getconf.c
index 81566df..812783e 100644
--- a/utils/getconf.c
+++ b/utils/getconf.c
@@ -1014,18 +1014,42 @@ static const struct conf vars[] =
 
 static const struct { const char *name; int num; } specs[] =
   {
+#ifdef _SC_XBS5_ILP32_OFF32
     { "XBS5_ILP32_OFF32", _SC_XBS5_ILP32_OFF32 },
+#endif
+#ifdef _SC_XBS5_ILP32_OFFBIG
     { "XBS5_ILP32_OFFBIG", _SC_XBS5_ILP32_OFFBIG },
+#endif
+#ifdef _SC_XBS5_LP64_OFF64
     { "XBS5_LP64_OFF64", _SC_XBS5_LP64_OFF64 },
+#endif
+#ifdef _SC_XBS5_LPBIG_OFFBIG
     { "XBS5_LPBIG_OFFBIG", _SC_XBS5_LPBIG_OFFBIG },
+#endif
+#ifdef _SC_V6_ILP32_OFF32
     { "POSIX_V6_ILP32_OFF32", _SC_V6_ILP32_OFF32 },
+#endif
+#ifdef _SC_V6_ILP32_OFFBIG
     { "POSIX_V6_ILP32_OFFBIG", _SC_V6_ILP32_OFFBIG },
+#endif
+#ifdef _SC_V6_LP64_OFF64
     { "POSIX_V6_LP64_OFF64", _SC_V6_LP64_OFF64 },
+#endif
+#ifdef _SC_V6_LPBIG_OFFBIG
     { "POSIX_V6_LPBIG_OFFBIG", _SC_V6_LPBIG_OFFBIG },
+#endif
+#ifdef _SC_V7_ILP32_OFF32
     { "POSIX_V7_ILP32_OFF32", _SC_V7_ILP32_OFF32 },
+#endif
+#ifdef _SC_V7_ILP32_OFFBIG
     { "POSIX_V7_ILP32_OFFBIG", _SC_V7_ILP32_OFFBIG },
+#endif
+#ifdef _SC_V7_LP64_OFF64
     { "POSIX_V7_LP64_OFF64", _SC_V7_LP64_OFF64 },
+#endif
+#ifdef _SC_V7_LPBIG_OFFBIG
     { "POSIX_V7_LPBIG_OFFBIG", _SC_V7_LPBIG_OFFBIG },
+#endif
   };
 static const int nspecs = sizeof (specs) / sizeof (specs[0]);
 
@@ -1177,41 +1201,41 @@ environment SPEC.\n\n");
 
       switch (specs[i].num)
 	{
-#ifndef _XBS5_ILP32_OFF32
-	  case _SC_XBS5_ILP32_OFF32:
+#if !defined(_XBS5_ILP32_OFF32) && defined(_SC_XBS5_ILP32_OFF32)
+	case _SC_XBS5_ILP32_OFF32:
 #endif
-#ifndef _XBS5_ILP32_OFFBIG
-	  case _SC_XBS5_ILP32_OFFBIG:
+#if !defined(_XBS5_ILP32_OFFBIG) && defined(_SC_XBS5_ILP32_OFFBIG)
+	case _SC_XBS5_ILP32_OFFBIG:
 #endif
-#ifndef _XBS5_LP64_OFF64
-	  case _SC_XBS5_LP64_OFF64:
+#if !defined(_XBS5_LP64_OFF64) && defined(_SC_XBS5_LP64_OFF64)
+	case _SC_XBS5_LP64_OFF64:
 #endif
-#ifndef _XBS5_LPBIG_OFFBIG
-	  case _SC_XBS5_LPBIG_OFFBIG:
+#if !defined(_XBS5_LPBIG_OFFBIG) && defined(_SC_XBS5_LPBIG_OFFBIG)
+	case _SC_XBS5_LPBIG_OFFBIG:
 #endif
-#ifndef _POSIX_V6_ILP32_OFF32
-	  case _SC_V6_ILP32_OFF32:
+#if !defined(_POSIX_V6_ILP32_OFF32) && defined(_SC_V6_ILP32_OFF32)
+	case _SC_V6_ILP32_OFF32:
 #endif
-#ifndef _POSIX_V6_ILP32_OFFBIG
-	  case _SC_V6_ILP32_OFFBIG:
+#if !defined(_POSIX_V6_ILP32_OFFBIG) && defined(_SC_V6_ILP32_OFFBIG)
+	case _SC_V6_ILP32_OFFBIG:
 #endif
-#ifndef _POSIX_V6_LP64_OFF64
-	  case _SC_V6_LP64_OFF64:
+#if !defined(_POSIX_V6_LP64_OFF64) && defined(_SC_V6_LP64_OFF64)
+	case _SC_V6_LP64_OFF64:
 #endif
-#ifndef _POSIX_V6_LPBIG_OFFBIG
-	  case _SC_V6_LPBIG_OFFBIG:
+#if !defined(_POSIX_V6_LPBIG_OFFBIG) && defined(_SC_V6_LPBIG_OFFBIG)
+	case _SC_V6_LPBIG_OFFBIG:
 #endif
-#ifndef _POSIX_V7_ILP32_OFF32
-	  case _SC_V7_ILP32_OFF32:
+#if !defined(_POSIX_V7_ILP32_OFF32) && defined(_SC_V7_ILP32_OFF32)
+	case _SC_V7_ILP32_OFF32:
 #endif
-#ifndef _POSIX_V7_ILP32_OFFBIG
-	  case _SC_V7_ILP32_OFFBIG:
+#if !defined(_POSIX_V7_ILP32_OFFBIG) && defined(_SC_V7_ILP32_OFFBIG)
+	case _SC_V7_ILP32_OFFBIG:
 #endif
-#ifndef _POSIX_V7_LP64_OFF64
-	  case _SC_V7_LP64_OFF64:
+#if !defined(_POSIX_V7_LP64_OFF64) && defined(_SC_V7_LP64_OFF64)
+	case _SC_V7_LP64_OFF64:
 #endif
-#ifndef _POSIX_V7_LPBIG_OFFBIG
-	  case _SC_V7_LPBIG_OFFBIG:
+#if !defined(_POSIX_V7_LPBIG_OFFBIG) && defined(_SC_V7_LPBIG_OFFBIG)
+	case _SC_V7_LPBIG_OFFBIG:
 #endif
 	    {
 	      const char *args[argc + 3];
-- 
1.7.2.2



More information about the uClibc-cvs mailing list