mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-11-06 09:26:17 +01:00
5525672a5f
Otherwise, `CFLAGS='-Wall -Werror' meson build` fails detection with: Running compile: Working directory: /data/src/glib/build/meson-private/tmpoozk2y4b Code: #include <stdio.h> #include <string.h> static char buf[100]; static double zero = 0.0; int main () { if (sprintf (buf, "%010f", 1.0 / zero, 33, 44, 55) < 0 || (strcmp (buf, " inf") != 0 && strcmp (buf, " infinity") != 0)) return 1; return 0; } ----------- Command line: `cc /data/src/glib/build/meson-private/tmpoozk2y4b/testfile.c -o /data/src/glib/build/meson-private/tmpoozk2y4b/output.exe -Werror -Wall -D_FILE_OFFSET_BITS=64 -O0 -std=gnu99` -> 1 stderr: /data/src/glib/build/meson-private/tmpoozk2y4b/testfile.c: In function 'main': /data/src/glib/build/meson-private/tmpoozk2y4b/testfile.c:8:21: error: too many arguments for format [-Werror=format-extra-args] 8 | if (sprintf (buf, "%010f", 1.0 / zero, 33, 44, 55) < 0 | ^~~~~~~ cc1: all warnings being treated as errors ----------- Could not compile test file /data/src/glib/build/meson-private/tmpoozk2y4b/testfile.c: 1 Checking if "printf supports the zero flag correctly" runs: DID NOT COMPILE |
||
---|---|---|
.. | ||
gl_cv_cc_double_expbit0 | ||
gl_cv_func_frexp_works | ||
gl_cv_func_frexpl_works | ||
gl_cv_func_ldexpl_works | ||
gl_cv_func_printf_directive_a | ||
gl_cv_func_printf_directive_f | ||
gl_cv_func_printf_directive_ls | ||
gl_cv_func_printf_enomem | ||
gl_cv_func_printf_flag_grouping | ||
gl_cv_func_printf_flag_leftadjust | ||
gl_cv_func_printf_flag_zero | ||
gl_cv_func_printf_infinite | ||
gl_cv_func_printf_infinite_long_double | ||
gl_cv_func_printf_long_double | ||
gl_cv_func_printf_precision | ||
gl_cv_long_double_equals_double | ||
gl_extern_inline | ||
arg-nonnull.h | ||
asnprintf.c | ||
c++defs.h | ||
float+.h | ||
fpucw.h | ||
frexp.c | ||
frexpl.c | ||
g-gnulib.h | ||
glib-gnulib.patch | ||
gnulib_math.h.in | ||
isinf.c | ||
isnan.c | ||
isnand-nolibm.h | ||
isnand.c | ||
isnanf-nolibm.h | ||
isnanf.c | ||
isnanl-nolibm.h | ||
isnanl.c | ||
meson.build | ||
printf-args.c | ||
printf-args.h | ||
printf-frexp.c | ||
printf-frexp.h | ||
printf-frexpl.c | ||
printf-frexpl.h | ||
printf-parse.c | ||
printf-parse.h | ||
printf.c | ||
printf.h | ||
README | ||
signbitd.c | ||
signbitf.c | ||
signbitl.c | ||
vasnprintf.c | ||
vasnprintf.h | ||
verify.h | ||
xsize.c | ||
xsize.h |
The files asnprintf.c printf-args.c printf-args.h printf-parse.c printf-parse.h vasnprintf.c vasnprintf.h are taken from the vasnprintf module of the GNUlib package, which can be found at: http://www.gnu.org/software/gnulib/ All files have been modified to include g-gnulib.h. vasnprintf.c has also been modified to include support for long long printing if the system printf doesn't. This code is protected by #ifndef HAVE_LONG_LONG_FORMAT. Code has been added to printf-args.[ch], printf-parse.c and vasnprintf.c to support printing of __int64 values with the I64 format modifier. This is protected by #ifdef HAVE_INT64_AND_I64. The files printf.h printf.c g-gnulib.h have been written by me. printf.[hc] contain implementations of the remaining functions in the printf family based on vasnprintf. g-gnulib.h is included by all source files in order to move all exported functions to the _g_gnulib namespace, replace malloc by g_malloc and make sure that snprintf is only used if it implements C99 return value semantics. Matthias Clasen November 1, 2003 To update: * Create an empty directory, put a configure.ac file into it. * Run gnulib-tool --lgpl=2 --import --lib=libgnu --source-base=lib \ --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=. \ --no-conditional-dependencies --no-libtool --macro-prefix=gl \ isnand-nolibm isnanf-nolibm isnanl-nolibm printf-frexpl \ signbit vasnprintf * Then pick out the files that are already in glib/gnulib subdirectory (the rest of the files are not needed): asnprintf.c c++defs.h float+.h fpucw.h gnulib_math.h.in (rename from math.in.h) isnan.c isnand.c isnand-nolibm.h isnanf.c isnanf-nolibm.h isnanl.c isnanl-nolibm.h printf-args.c printf-args.h printf-frexp.c printf-frexp.h printf-frexpl.c printf-frexpl.h printf-parse.c printf-parse.h signbitd.c signbitf.c signbitl.c vasnprintf.c vasnprintf.h verify.h xsize.h * Then look at the glib-gnulib.patch and re-introduce custom glib changes contained in that patch. * If gnulib_math.h.in got some new @variables@, these will have to be somehow set in meson.build, otherwise meson would warn about them at configure stage LRN June 06, 2018