Use the _unlocked stdio macros only when they're all available
authorDan Fandrich <dan@coneharvesters.com>
Thu, 30 Jun 2011 00:59:17 +0000 (02:59 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Thu, 30 Jun 2011 00:59:17 +0000 (02:59 +0200)
Signed-off-by: Dan Fandrich <dan@coneharvesters.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
include/libbb.h
include/platform.h

index efb925eaf693ce230c73c31f6cf473136a741380..1502272f689c71c50f526edd1bcaa61987cb3f75 100644 (file)
@@ -161,23 +161,27 @@ int sysinfo(struct sysinfo* info);
 
 
 /* Busybox does not use threads, we can speed up stdio. */
-#undef  getc
-#define getc(stream) getc_unlocked(stream)
-#undef  getchar
-#define getchar() getchar_unlocked()
-#undef  putc
-#define putc(c, stream) putc_unlocked(c, stream)
-#undef  putchar
-#define putchar(c) putchar_unlocked(c)
-#undef  fgetc
-#define fgetc(stream) getc_unlocked(stream)
-#undef  fputc
-#define fputc(c, stream) putc_unlocked(c, stream)
+#ifdef HAVE_UNLOCKED_STDIO
+# undef  getc
+# define getc(stream) getc_unlocked(stream)
+# undef  getchar
+# define getchar() getchar_unlocked()
+# undef  putc
+# define putc(c, stream) putc_unlocked(c, stream)
+# undef  putchar
+# define putchar(c) putchar_unlocked(c)
+# undef  fgetc
+# define fgetc(stream) getc_unlocked(stream)
+# undef  fputc
+# define fputc(c, stream) putc_unlocked(c, stream)
+#endif
 /* Above functions are required by POSIX.1-2008, below ones are extensions */
-#undef  fgets
-#define fgets(s, n, stream) fgets_unlocked(s, n, stream)
-#undef  fputs
-#define fputs(s, stream) fputs_unlocked(s, stream)
+#ifdef HAVE_UNLOCKED_LINE_OPS
+# undef  fgets
+# define fgets(s, n, stream) fgets_unlocked(s, n, stream)
+# undef  fputs
+# define fputs(s, stream) fputs_unlocked(s, stream)
+#endif
 
 
 /* Make all declarations hidden (-fvisibility flag only affects definitions) */
index d186e49114a7e05f839e3eb4b26f9adaf22ef55d..60864c929d36aaf67e1ce2448d4cf5be42fea900 100644 (file)
@@ -350,16 +350,14 @@ typedef unsigned smalluint;
 #define HAVE_STRSIGNAL 1
 #define HAVE_STRVERSCMP 1
 #define HAVE_VASPRINTF 1
+#define HAVE_UNLOCKED_STDIO 1
+#define HAVE_UNLOCKED_LINE_OPS 1
 #define HAVE_GETLINE 1
 #define HAVE_XTABS 1
 #define HAVE_MNTENT_H 1
 #define HAVE_NET_ETHERNET_H 1
 #define HAVE_SYS_STATFS_H 1
 
-#if defined(__GLIBC__) && (__GLIBC__ < 2 || __GLIBC_MINOR__ < 1)
-# undef HAVE_NET_ETHERNET_H
-#endif
-
 #if defined(__UCLIBC_MAJOR__)
 # if __UCLIBC_MAJOR__ == 0 \
   && (   __UCLIBC_MINOR__ < 9 \
@@ -369,7 +367,6 @@ typedef unsigned smalluint;
 # endif
 #endif
 
-
 #if defined(__dietlibc__)
 # undef HAVE_STRCHRNUL
 #endif
@@ -387,6 +384,8 @@ typedef unsigned smalluint;
 # undef HAVE_STRSIGNAL
 # undef HAVE_STRVERSCMP
 # undef HAVE_VASPRINTF
+# undef HAVE_UNLOCKED_STDIO
+# undef HAVE_UNLOCKED_LINE_OPS
 # undef HAVE_NET_ETHERNET_H
 #endif
 
@@ -424,6 +423,7 @@ typedef unsigned smalluint;
 # undef HAVE_STPCPY
 # undef HAVE_STRCHRNUL
 # undef HAVE_STRVERSCMP
+# undef HAVE_UNLOCKED_LINE_OPS
 # undef HAVE_NET_ETHERNET_H
 #endif