summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko2011-06-21 17:12:52 +0200
committerDenys Vlasenko2011-06-21 17:12:52 +0200
commit1e18a01fa2965ef967b99d519018e21c9b5f15af (patch)
treeb76c9ea65545bfeaa76e822eed76f9b476a8ef32
parent33092f1003982fc26339c0fda66283805cfbcfb1 (diff)
downloadbusybox-1e18a01fa2965ef967b99d519018e21c9b5f15af.zip
busybox-1e18a01fa2965ef967b99d519018e21c9b5f15af.tar.gz
ls: fix HAVE_STRVERSCMP check; add check for older uclibc versions
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--coreutils/ls.c2
-rw-r--r--include/platform.h10
2 files changed, 11 insertions, 1 deletions
diff --git a/coreutils/ls.c b/coreutils/ls.c
index 6080f59..f11eb43 100644
--- a/coreutils/ls.c
+++ b/coreutils/ls.c
@@ -886,7 +886,7 @@ static int sortcmp(const void *a, const void *b)
if (sort_opts == SORT_DIR) {
dif = S_ISDIR(d2->dn_mode) - S_ISDIR(d1->dn_mode);
} else
-#ifdef HAVE_STRVERSCMP && HAVE_STRVERSCMP == 1
+#if defined(HAVE_STRVERSCMP) && HAVE_STRVERSCMP == 1
if (sort_opts == SORT_VERSION) {
dif = strverscmp(d1->name, d2->name);
} else
diff --git a/include/platform.h b/include/platform.h
index d6b7488..cbe85f4 100644
--- a/include/platform.h
+++ b/include/platform.h
@@ -359,6 +359,16 @@ typedef unsigned smalluint;
# undef HAVE_NET_ETHERNET_H
#endif
+#if defined(__UCLIBC_MAJOR__)
+# if __UCLIBC_MAJOR__ == 0 \
+ && ( __UCLIBC_MINOR__ < 9 \
+ || (__UCLIBC_MINOR__ == 9 && __UCLIBC_SUBLEVEL__ < 31) \
+ )
+# undef HAVE_STRVERSCMP
+# endif
+#endif
+
+
#if defined(__dietlibc__)
# undef HAVE_STRCHRNUL
#endif