OSDN Git Service

libc: Fix vfprintf compilation without HAS_FLOATS
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Sun, 22 Mar 2015 13:47:29 +0000 (14:47 +0100)
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Sun, 22 Mar 2015 13:49:27 +0000 (14:49 +0100)
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
libc/stdio/_fpmaxtostr.h
libc/stdio/_vfprintf.c

index b4e7321..7694629 100644 (file)
 #define _FPMAXTOSTR_H 1
 
 #include <features.h>
-#ifdef __UCLIBC_HAS_FLOATS__
-
 #define __need_size_t
 #include <stddef.h>
 #include <stdint.h>
 #include <stdio.h>
 #include <printf.h>
 #include <sys/types.h>
-#include <float.h>
-#include <bits/uClibc_fpmax.h>
+
+#ifdef __UCLIBC_HAS_FLOATS__
+# include <float.h>
+# include <bits/uClibc_fpmax.h>
 
 /* WARNING: Adjust _fp_out_wide() in _vfprintf.c if this changes! */
 /* With 32 bit ints, we can get 9 decimal digits per block. */
-#define DIGITS_PER_BLOCK     9
+# define DIGITS_PER_BLOCK     9
 
-#define NUM_DIGIT_BLOCKS   ((DECIMAL_DIG+DIGITS_PER_BLOCK-1)/DIGITS_PER_BLOCK)
+# define NUM_DIGIT_BLOCKS   ((DECIMAL_DIG+DIGITS_PER_BLOCK-1)/DIGITS_PER_BLOCK)
 
 /* WARNING: Adjust _fp_out_wide() in _vfprintf.c if this changes! */
 /* extra space for '-', '.', 'e+###', and nul */
-#define BUF_SIZE  ( 3 + NUM_DIGIT_BLOCKS * DIGITS_PER_BLOCK )
+# define BUF_SIZE  ( 3 + NUM_DIGIT_BLOCKS * DIGITS_PER_BLOCK )
 
 /* psm: why do these internals differ? */
-#ifdef __USE_OLD_VFPRINTF__
+#  ifdef __USE_OLD_VFPRINTF__
 typedef void (__fp_outfunc_t)(FILE *fp, intptr_t type, intptr_t len, intptr_t buf);
 
 extern size_t _fpmaxtostr(FILE * fp, __fpmax_t x, struct printf_info *info,
                          __fp_outfunc_t fp_outfunc) attribute_hidden;
-#else
+#  else
 typedef size_t (__fp_outfunc_t)(FILE *fp, intptr_t type, intptr_t len, intptr_t buf);
 
 extern ssize_t _fpmaxtostr(FILE * fp, __fpmax_t x, struct printf_info *info,
                           __fp_outfunc_t fp_outfunc) attribute_hidden;
-#endif
+#  endif
 
-#endif /* __UCLIBC_HAS_FLOATS__ */
+# endif /* __UCLIBC_HAS_FLOATS__ */
 #endif /* _FPMAXTOSTR_H */
index 01ee218..a795f49 100644 (file)
 #error Apparently, LONG_LONG_MAX is defined but LLONG_MAX is not.  You need to fix your toolchain headers to support the standard macros for (unsigned) long long.
 #endif
 
-/**********************************************************************/
-/* These provide some control over printf's feature set */
-
-/* Now controlled by uClibc_config.h. */
-/* #define __UCLIBC_HAS_FLOATS__ 1 */
-
-/* Now controlled by uClibc_config.h. */
-/* #define __UCLIBC_HAS_PRINTF_M_SPEC__ */
-
-
-/**********************************************************************/
-
 #include "_fpmaxtostr.h"
 
 #undef __STDIO_HAS_VSNPRINTF
 
 /**********************************************************************/
 
-/* Now controlled by uClibc_config.h. */
-/* #define __UCLIBC_HAS_GLIBC_CUSTOM_PRINTF__ */
-
 #ifdef __UCLIBC_MJN3_ONLY__
 # ifdef L_register_printf_function
 /* emit only once */