summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDan Fandrich <dan@coneharvesters.com>2011-06-30 02:59:17 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2011-06-30 02:59:17 +0200
commit75214cfe00c72c51c67c9ac2541f06b0540136f1 (patch)
tree98b611e6152e59a4cab9c0a44bef43a67aacc476
parent0c4cf42c1e4fbb5af8952cfbec926fe7d7b318d5 (diff)
Use the _unlocked stdio macros only when they're all available
Signed-off-by: Dan Fandrich <dan@coneharvesters.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--include/libbb.h36
-rw-r--r--include/platform.h10
2 files changed, 25 insertions, 21 deletions
diff --git a/include/libbb.h b/include/libbb.h
index efb925eaf..1502272f6 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -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) */
diff --git a/include/platform.h b/include/platform.h
index d186e4911..60864c929 100644
--- a/include/platform.h
+++ b/include/platform.h
@@ -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