glib/glib/gnulib
Chun-wei Fan e8d471f3e1 meson: Mostly assume clang-cl is MSVC
We need to enable building the dirent and gnulib sources for clang-cl,
as we are still using the Microsoft-style headers and lib's and CRT.
We need to also do this for the following, for similar reasoning:

-Symbol export (via __declspec(dllexport))
-Dependency discovery without pkg-config files
-long long and ssize_t detection

We do, however, enable the autoptr tests for clang-cl builds.  Note that
at this point real MSVC builds are still better supported than clang-cl
builds, and it will likely remain so for at least the near future,
alhtough real MSVC builds of the GTK stack are consumable and are usable
by clang-cl.
2019-07-11 15:38:21 +08:00
..
gl_cv_cc_double_expbit0 glib: update internal gnulib from upstream 2019-03-13 12:38:42 +00:00
gl_cv_func_frexp_works meson: Mostly assume clang-cl is MSVC 2019-07-11 15:38:21 +08:00
gl_cv_func_frexpl_works build: Improve tests for frexpl() and ldexpl() 2019-04-08 17:50:59 +08:00
gl_cv_func_ldexpl_works build: Improve tests for frexpl() and ldexpl() 2019-04-08 17:50:59 +08:00
gl_cv_func_printf_directive_a glib: update internal gnulib from upstream 2019-03-13 12:38:42 +00:00
gl_cv_func_printf_directive_f meson: Mostly assume clang-cl is MSVC 2019-07-11 15:38:21 +08:00
gl_cv_func_printf_directive_ls glib: update internal gnulib from upstream 2019-03-13 12:38:42 +00:00
gl_cv_func_printf_enomem glib: update internal gnulib from upstream 2019-03-13 12:38:42 +00:00
gl_cv_func_printf_flag_grouping glib: update internal gnulib from upstream 2019-03-13 12:38:42 +00:00
gl_cv_func_printf_flag_leftadjust glib: update internal gnulib from upstream 2019-03-13 12:38:42 +00:00
gl_cv_func_printf_flag_zero glib: update internal gnulib from upstream 2019-03-13 12:38:42 +00:00
gl_cv_func_printf_infinite meson: Mostly assume clang-cl is MSVC 2019-07-11 15:38:21 +08:00
gl_cv_func_printf_infinite_long_double meson: Mostly assume clang-cl is MSVC 2019-07-11 15:38:21 +08:00
gl_cv_func_printf_long_double meson: Mostly assume clang-cl is MSVC 2019-07-11 15:38:21 +08:00
gl_cv_func_printf_precision glib: update internal gnulib from upstream 2019-03-13 12:38:42 +00:00
gl_cv_long_double_equals_double glib: update internal gnulib from upstream 2019-03-13 12:38:42 +00:00
gl_extern_inline glib: update internal gnulib from upstream 2019-03-13 12:38:42 +00:00
arg-nonnull.h glib: update internal gnulib from upstream 2019-03-13 12:38:42 +00:00
asnprintf.c glib: update internal gnulib from upstream 2019-03-13 12:38:42 +00:00
c++defs.h glib: update internal gnulib from upstream 2019-03-13 12:38:42 +00:00
float+.h glib: update internal gnulib from upstream 2019-03-13 12:38:42 +00:00
fpucw.h glib: update internal gnulib from upstream 2019-03-13 12:38:42 +00:00
frexp.c glib: update internal gnulib from upstream 2019-03-13 12:38:42 +00:00
frexpl.c build: Improve tests for frexpl() and ldexpl() 2019-04-08 17:50:59 +08:00
g-gnulib.h Updated FSF's address 2014-01-31 14:31:55 +01:00
glib-gnulib.patch Add the gnulib adaptation patch 2019-03-13 12:38:42 +00:00
gnulib_math.h.in glib: update internal gnulib from upstream 2019-03-13 12:38:42 +00:00
isinf.c build: Check for more math.h functions in gnulib 2019-04-08 17:50:59 +08:00
isnan.c glib: update internal gnulib from upstream 2019-03-13 12:38:42 +00:00
isnand-nolibm.h glib: update internal gnulib from upstream 2019-03-13 12:38:42 +00:00
isnand.c glib: update internal gnulib from upstream 2019-03-13 12:38:42 +00:00
isnanf-nolibm.h build: Check for more math.h functions in gnulib 2019-04-08 17:50:59 +08:00
isnanf.c build: Check for more math.h functions in gnulib 2019-04-08 17:50:59 +08:00
isnanl-nolibm.h glib: update internal gnulib from upstream 2019-03-13 12:38:42 +00:00
isnanl.c glib: update internal gnulib from upstream 2019-03-13 12:38:42 +00:00
meson.build build: Check for more math.h functions in gnulib 2019-04-08 17:50:59 +08:00
printf-args.c glib: update internal gnulib from upstream 2019-03-13 12:38:42 +00:00
printf-args.h glib: update internal gnulib from upstream 2019-03-13 12:38:42 +00:00
printf-frexp.c glib: update internal gnulib from upstream 2019-03-13 12:38:42 +00:00
printf-frexp.h glib: update internal gnulib from upstream 2019-03-13 12:38:42 +00:00
printf-frexpl.c glib: update internal gnulib from upstream 2019-03-13 12:38:42 +00:00
printf-frexpl.h glib: update internal gnulib from upstream 2019-03-13 12:38:42 +00:00
printf-parse.c glib: update internal gnulib from upstream 2019-03-13 12:38:42 +00:00
printf-parse.h glib: update internal gnulib from upstream 2019-03-13 12:38:42 +00:00
printf.c Remove HAVE_CONFIG_H defs and uses 2018-02-21 13:57:10 +00:00
printf.h Updated FSF's address 2014-01-31 14:31:55 +01:00
README Update glib/gnulib/README 2019-04-08 17:51:00 +08:00
signbitd.c glib/gnulib: Include gnulib_math.h in place of math.h 2019-04-08 17:51:00 +08:00
signbitf.c glib/gnulib: Include gnulib_math.h in place of math.h 2019-04-08 17:51:00 +08:00
signbitl.c glib/gnulib: Include gnulib_math.h in place of math.h 2019-04-08 17:51:00 +08:00
vasnprintf.c glib: update internal gnulib from upstream 2019-03-13 12:38:42 +00:00
vasnprintf.h glib: update internal gnulib from upstream 2019-03-13 12:38:42 +00:00
verify.h glib: update internal gnulib from upstream 2019-03-13 12:38:42 +00:00
xsize.h glib: update internal gnulib from upstream 2019-03-13 12:38:42 +00:00

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