[libvirt] [PATCH] configmake: Avoid namespace pollution issue on mingw.

Eric Blake posted 1 patch 1 week ago
Failed in applying to current master (apply log)
ChangeLog          | 6 ++++++
modules/configmake | 3 +++
2 files changed, 9 insertions(+)

[libvirt] [PATCH] configmake: Avoid namespace pollution issue on mingw.

Posted by Eric Blake 1 week ago
Mingw includes a header that declares a struct typedef named DATADIR,
pulled in when including <winsock2.h>; compilation fails if DATADIR
has already been defined as a macro expanding to a string prior to
that inclusion.  Although the configmake module documents that it
should generally be included only after system headers, it is just as
easy to make configmake.h robust to this particular issue by including
the system header first if it exists.

* modules/configmake (Makefile.am): If the project uses
<winsock2.h>, include that header before defining DATADIR.
Reported by libvirt:
https://lists.gnu.org/archive/html/bug-gnulib/2019-07/msg00089.html
---

I'm pushing this under the gnulib maintenance rule, while working on
a further gnulib change to make configmake.h nicer on mingw.

Lots of gnulib changes in the last 8 months:

c8e2eee54 mbrtowc tests: Fix regression on mingw (regression from
2018-02-24).
9f00cc0d8 pthread-h: Fix definitions of types and macros on mingw.
d6f9e7e3b autoupdate
f9221bccc crypto/gc: Cope with libgcrypt without SM3.
28813cfe4 backupfile: fix resource leak on memory failure
2511ab606 Avoid missing-declarations warning in various tests.
059457123 pthread tests: Avoid missing-declarations warning.
3e75e00c4 parse-datetime: Avoid warnings from bison versions >= 3.3.
56d28ccbb parse-datetime: Require Bison 2.4 or newer.
c01635497 areadlink-with-size, xgethostname, xgetdomainname: Fix GCC
warning.
e6aaa7672 parse-datetime: avoid "%pure-parser" deprecation warning from
Bison 3.4
b5a9fa677 update-copyright: Make it work again (regression from 2019-06-15).
d60d9c026 doc: Update info about <pthread.h>.
02c673092 pthread_sigmask tests: Use new multithread modules.
3fabe95a0 pthread-tss: Add tests.
6fc3895e9 pthread-cond: Add tests.
16a69219c pthread-rwlock: Add tests.
243f6dbf6 pthread-mutex: Add tests.
da2524b31 pthread-once: Add tests.
f80da10b7 pthread-thread: Add tests.
e7b9404a9 pthread: Turn into a convenience module.
2d853e8b4 pthread-spin: New module.
672c3be2f pthread-tss: New module.
e08989ca1 pthread-cond: New module.
0473a3ccc pthread-rwlock: New module.
e09ceafdb pthread-mutex: New module.
222a7e6cb pthread-once: New module.
fdff0fd12 pthread-thread: New module.
2d8599e9d pthread-h: Prepare for adding new modules.
79e228295 pthread-h: Add declarations of essential pthread functions.
9d925a90f pthread-h: Respect --enable-threads={posix|windows} option on
mingw.
fba5fd392 pthread-h: Add C++ tests.
30e64672a pthread-h: Add tests.
c1c1d4f62 pthread-h: New module.
3fdb19cf7 sched_yield: New module.
f76440c5c windows-spin: New module.
306452e7d windows-timedrwlock: New module.
72f60af8e windows-rwlock: New module.
6f520fb1d windows-thread: Add support for creating a thread in detached
state.
f249808ba windows-*: Rename glwthread_spinlock_t to glwthread_initguard_t.
4af8b82e7 doc: Fix info about pthread API in HP-UX.
26ac95025 Fix typo in comment.
323b506f5 threads-h: Fix generation of threads.h.
b417a9c02 striconveh test: Fix a compilation failure when iconv is not
available.
ee77e5c1f argmatch: adjust columns for help2man.
b979980a6 areadlink-with-size: avoid realloc when size==0
0ccc444f3 areadlink-with-size: guess a buffer size with 0 size
32a64c671 Replace manually crafted hex regexes with [:xdigit:]
9c16aa292 error: Fix documentation.
72d255bd3 autoupdate
65b63fdc9 doc: Remove documentation of glibc <= 2.1.x as a supported
platform.
952ccf18c doc: Remove documentation of Linux libc5 as a supported platform.
0c2bfb4b5 doc: Remove documentation of Linux libc5 as a supported platform.
76dd681cd doc: Remove documentation of Tandem/NSK as a supported platform.
5b8ebc908 doc: Remove documentation of Mac OS X <= 10.4 as a supported
platform.
559f6b729 doc: Remove documentation of AIX 4 as a supported platform.
05cf22754 doc: Remove documentation of HP-UX 10 as a supported platform.
8689a7ffd doc: Remove documentation of Interix 3.5 as a supported platform.
9f933144e doc: Remove documentation of IRIX 6.4 and older as supported
platforms.
33fb97d11 doc: Remove documentation of OSF/1 as supported platform.
c3566f958 doc: Remove documentation of Interix as a supported platform.
2dfd36adb doc: Remove documentation of BSDI and BSD/OS as supported
platforms.
8f999c446 doc: Remove documentation of Solaris 8 and older as supported
platforms.
9e7e46b0f doc: Remove documentation of Interix 3.5 as a supported platform.
a4b2403ab doc: Remove documentation of BeOS as a supported platform.
7ce5f5c77 thread, lock, cond, tls: Remove support for Pth threads.
e58796ff7 thread, lock, cond, tls: Remove support for old Solaris threads.
d44241344 getcwd-lgpl, getcwd: Don't call realloc when it is pointless.
ac7390ac0 xgetdomainname: Don't return an excessive memory allocation.
98802d166 xgethostname: Don't return an excessive memory allocation.
8f91b5cf3 areadlinkat-with-size: Don't return an excessive memory
allocation.
eb76defb1 areadlink-with-size: Don't return an excessive memory allocation.
d4239808e renameatu: Fix test failure on MSVC.
9ce9be2ef autoupdate
d1e92798e mbrtowc: Fix invalid use of mbtowc() on MSVC.
65b3308bb argmatch: don't define _ in the header
c88299602 verify: document ‘assume’ better
ece9e261a localcharset, nl_langinfo: Fix return value for UTF-8 locales
on MSVC.
3e4a348ea getcwd: Fix crash when invoked with size = 0 on MSVC.
7c3bb8672 nonblocking-pipe tests: Fix test failure on MSVC.
54d342c75 usleep: Implement with millisecond resolution on native Windows.
77dc7fb43 lstat tests: Fix test failure on MSVC.
75b56a533 stat tests: Fix test failure on MSVC.
0b40814b8 getaddrinfo tests: Fix test failure on MSVC.
d40db5e23 poll: Fix type of timeout pointer passed to select() on mingw
x86_64.
9c2e22500 argmatch: Fix compilation errors.
fa2256ec9 autoupdate
fcd36afd1 Include <stdlib.h> when needed.
3712d6cd2 Include <stdlib.h> when needed.
8c4ec56ee inet_ntop, inet_pton: Avoid conflict with native Windows
functions.
6136e9379 inet_ntop, inet_pton: Forward-compatibility with newer Windows
versions.
326d9f992 inet_pton: Fix link error on mingw with _WIN32_WINNT >= 0x0600.
1d56a7919 poll: Add comment.
a734086a9 poll-h: Fix compilation error on mingw with _WIN32_WINNT >=
0x0600.
e597d4b8e accept4: Fix compilation error on OpenIndiana.
c299f3dda autoupdate
e0d220aa1 strverscmp: sync from glibc
bacccb4e5 tss tests: Add tests for destructors and races.
d1e821c9a tls tests: Add tests for destructors and races.
d6bfe4796 windows-tls: Implement TLS key destructors for native Windows.
14b8ae17a threadlib: Avoid autoconf warning "was expanded before it was
required".
47405621b argmatch: remove duplicate const qualifier
a6e8a8612 unistd: stddef.h and sys/types.h namespace cleanup
7f7d18ebc maintainer-makefile: restore portability to non-GNU awks
232ba9230 Document setvbuf _IOLBF problem
e0ddd0761 Document lseek SEEK_DATA/SEEK_HOLE
7ed70c552 autoupdate
66928dc84 autoupdate
962862267 argmatch: put all the docs member last.
5d00a2ec6 argmatch: add support to generate the usage message
13644a818 thrd: Add comment.
d1cb5add4 threads-h: Define 'thread_local' if and only if it actually works.
42b99eaf2 threads-h: Small doc correction.
a12c7fd18 threads-h: Define 'thread_local' if and only it actually works.
b62933398 threads-h: Simplify link dependencies.
9e6e4c033 threads-h: Fix link error on FreeBSD 11.
316b626d2 threadlib: Fix typo (regression from today).
9e2d1943b windows-thread, windows-tls: Fix compilation error on 32-bit
mingw.
e9d8b52d0 autoudpate
7614f78d2 tss tests: Small improvement.
0dbc0378b threads: New module.
14a5f1378 tss: Add tests.
c94b90fcd cnd: Add tests.
4a440ef9b mtx: Add tests.
6ac18d06d thrd: Add tests.
ee2f4139e tss: New module.
36307d84f cnd: New module.
6b4c64f06 mtx: New module.
3696a934e thrd: New module.
bf6dd504c threads-h: Add tests.
80d244810 threads-h: New module.
0894f96f8 windows-thread: New module.
7435d61f2 windows-tls: New module.
7b7305f41 windows-cond: New module.
f46ac2b2b windows-timedrecmutex: New module.
d20c7ec39 windows-timedmutex: New module.
4570a6162 windows-recmutex: New module.
2535ce3ac windows-mutex: New module.
6c3d118e8 windows-once: New module.
7078fef39 lock, cond: Avoid possible counter wraparound on Windows.
d4c0a04b4 cond: Make glthread_cond_timedwait more reliable on Windows.
145e16d89 pthread_mutex_timedlock: New module.
79c254530 thread, lock, cond, tls: Recognize C11 multithreaded applications.
97ae53644 tls tests: Small improvements.
a06d50500 cond tests: Simplify.
e8d62a2ae lock tests: Avoid reference to undefined variable if
!ENABLE_LOCKING.
33d1306e3 nanosleep: Relicense under LGPLv2+.
a5a93a6e1 Reorder pieces of header in perl scripts.
af35f056d verify-tests: work around xlc bug
36bfd5861 Restore Emacs time-stamp hook applicability.
c2fdc30cf Fix comments in last commit.
a05d5d121 Fix scripts to have valid executable format on Alpine Linux.
5905d8ca9 autoupdate
5dd3e60c5 nproc: Ensure nproc(NPROC_ALL) ≥ nproc(NPROC_CURRENT) with
glibc ≥ 2.26.
b827d8a6f posix_spawn_file_actions_addchdir: Fix possible use-after-free
bug.
765146c33 posix_spawn_file_actions_addopen: Fix possible use-after-free bug.
fbb40ec10 posix_spawn_file_actions_addfchdir: Add tests.
d822de87e posix_spawn_file_actions_addfchdir: New module.
2ad7a33b8 doc: Document existence of posix_spawn_file_actions_addchdir
module.
57dd928ae posix_spawn-internal: Fix module description.
1a329ffba doc: Update and improve documentation of glibc functions.
738720729 doc: Mark functions which exist only on Linux and illumos.
b53046a95 doc: Mark functions which exist only on Linux.
741078f98 doc: Some glibc functions also exist on Haiku.
9619fa386 doc: Some glibc functions also exist on BeOS.
16f5083a5 doc: Some glibc functions also exist on FreeBSD.
83b662fd0 doc: Some glibc functions also exist on Solaris 11.4.
ad16bd3f9 doc: Some glibc functions also exist on Solaris 11.
1b58309ef doc: Some glibc functions also exist on FreeBSD, Solaris 11.
a7b9aec54 doc: Some glibc functions also exist on FreeBSD, AIX, HP-UX,
Solaris 11.
d3feefc80 doc: Some glibc functions also exist on IRIX 6.5 in 32-bit mode.
851d2d40d doc: Mention posix_spawn_file_actions_add[f]chdir_np.
8d76d88bd doc: Mention getcpu.
b8f9745c2 doc: Mention the ISO C11 multithreading header and functions.
532a9cfee doc: Mention statx.
73ccb8584 doc: Mention renameat2.
f29d8d685 doc: Mention more ISO TS 18661-1 <math.h> functions.
b0bde85a5 doc: Mention pkey_alloc, pkey_set, pkey_get, pkey_free,
pkey_mprotect.
8d12e3c69 doc: Mention mlock2.
654a75ec2 doc: Mention memfd_create.
0618b6eff doc: Mention copy_file_range.
7b13182c2 doc: Mention preadv2, pwritev2.
653e99f38 doc: Mention strfromf, strfromd, strfroml.
d358d60bd doc: Mention getrandom, getentropy.
95a6c97d2 doc: Mention ISO TS 18661-1 <fenv.h> functions.
5b1e894a9 doc: Mention more ISO TS 18661-1 <math.h> functions.
0fe1b87ed doc: Mention nextdown, nextup.
b054fe3d8 doc: Mention pthread_getattr_default_np,
pthread_setattr_default_np.
6ef6bf8f3 doc: Mention getauxval.
7a1b7bb09 doc: Mention epoll_create1.
a914b7451 doc: Mention timerfd_create, timerfd_gettime, timerfd_settime.
204ab925a doc: Mention signalfd.
4a1d89d40 doc: Mention eventfd, eventfd_read, eventfd_write.
f2b106c99 doc: Mention epoll_pwait.
79894315a doc: Mention sync_file_range.
7c132a631 doc: Mention sched_getcpu.
b5b0c6853 doc: Mention ppoll.
6f974c280 doc: Mention inotify_* functions.
1ebf5e216 doc: Add references to glibc documentation.
36e84d15d doc: Add references to Linux man pages.
c3cd0d5e4 doc: Mention eaccess.
fef6e5042 doc: Mention the availability of specific functions in glibc
versions.
6019b30b7 doc: Mention that glibc no longer provides h_errno.
a782cb37d doc: Remove mention of functions that are gone from glibc.
e6d44a356 doc: Remove mention of function vm86 (does not exist on x86_64).
75bd8d8d8 doc: Update after removal of crypt functions from glibc 2.28.
30b621594 copy-file: fix typo
b0d998d2e copy-file-range: simplify into a stub
a1beabcb1 copy-file: prefer copy_file_range
508eb9919 copy-file-range: new module
b8e6ceb71 autoupdate
9c383f22c binary-io: Attempted use of O_BINARY on consoles no longer fails.
1c0e950aa autoupdate
e76e3faeb autoupdate
1b7fed3b0 dirent-safer: Make opendir_safer usable from C++.
a8f178bd8 canonicalize: Make canonicalize_filename_mode usable from C++.
f8bc6615f autoupdate
9bfa2644f prefix-gnulib-mk: Fix CPPFLAGS migration
8f82e3894 flexmember: update comments again
0ffb8fd22 flexmember: update comment
34d712407 autoupdate
661c55d6c setlocale: Improve fallback on macOS.
bf5935a7c localename: Fix default on macOS.
f56afa9a6 sync texinfo.tex with file on ftp.gnu.org
97e4b2481 maintainer-makefile: catch uses of $< in non-implicit rules
7ded27a6c threadlib: Provide an easy way to avoid mingw's winpthreads
library.
64e905db0 pthread_sigmask: Fix compilation error with
--enable-threads=windows.
07fb4954d close-stream, closein, closeout: simplify
9bba04193 libtool-next-version: New program.
569b5e106 declared.sh: Fix comment.
03752516b version-etc: Ease translation.
d654989d8 gnupload: Explain how to create symlinks.
c7d0b4506 fpucw: port to gcc -pedantic
de3bb547b crypto/af_alg: port to strict C compilers
0003b0187 base64: Avoid false positive warning from Coverity.
461332525 gettext: Update to gettext 0.20.
8570cb9b7 verify: remove verify_true
89a5b4b82 Support C2X and C++17 static_assert
b8068cf09 Fix _GL_HAVE__STATIC_ASSERT typo
620857c4d wcwidth: Ensure width 1, not 2, for ambiguous characters.
3f14b27de Port manywarnings to GCC 9
563c580f6 Sync lib/mktime-internal.h from glibc
4d52476fd autoupdate (removing trailing white space from config.guess)
5b891d3d9 tls tests: Prevent that the test takes too long.
a4398f60f lock tests: Prevent that the test takes too long.
00991ec9b localename: Fix crash on mingw (regression from 2018-11-23).
7ffb59a71 Fix gcc warnings on 64-bit mode mingw.
7f9640b56 error: Tweak indentation.
d54947bda term-style-control: Fix gcc warning on mingw.
7710ffc1b pipe-filter-gi, pipe-filter-ii: Fix gcc warning.
6c85dbeb3 relocatable-prog: Fix gcc warning on mingw.
cff31e5c0 gitsub.sh: New file.
71f2092d2 argmatch: use void* for raw memory pointers
14a920195 prefix-gnulib-mk: fix the support for gnulib-po
22b911f63 di-set: allow free with 'ino_map' being NULL
d6af24178 autoupdate
faed200ba * lib/str-two-way.h: Fix comment typo.
d617a4bb9 x-to-1: Restore ability to use original calling convention.
fec2be3ca gettext: Prepare for next gettext release.
ab5b2560b x-to-1: Avoid failure due to missing perl modules.
ced06e079 openmp-init: New module.
c2b2754fd signbit: Fix compilation error when gnulib's math.h exists twice.
ba61bd3ba openmp: Fix compilation error on platforms without OpenMP.
eb8278fef mountlist: make parsing /proc/self/mountinfo more robust
f6225ebbe openmp: Add workaround for 32-bit programs on AIX.
3fbebf8c8 nproc: Fix return value for privileged processes.
91584ed61 Add copyright notices in several files.
834bd58e6 revert texinfo.tex to 2019-03-03.15 per Gavin
fc075098d autoupdate
a18f7ce3c term-style-control tests: Fix link error.
4a468b774 term-style-control: Fix typo in comment.
7c4dbc521 term-style-control: Add tests.
993d0646c term-style-control: New module.
092288d12 autoupdate
0d8714b7c _Noreturn: beware of C's _Noreturn in C++ pre C++11
453ff9404 Support cross-compilation to musl libc.
66c3c07e0 posix_spawn_file_actions_*: Document musl libc bugs.
ec766932d autoupdate
407a19c08 futimens: Document musl libc bug.
b6f167d31 Clarify that cross-compilation guesses are guesses.
e0de43c19 strtold: Fix typo.
da77d28dc noreturn: In C++ mode with clang, use _Noreturn as fallback.
5a929250f libtextstyle-optional: Fix compiler warnings
480e356f0 bitset: fix memory leaks
0f3c79720 bitset: minor changes
7b31451e2 bitset: expose bitset_resize
17c967e57 doc: Document the 'stdnoreturn' and 'noreturn' modules.
85e7bcab4 doc: Document how to use 'static inline'.
e4d8618df libtextstyle-optional: Add tests.
c23dae8c0 libtextstyle-optional: New module.
4a7bec233 c-stack: Make signal handlers more reliable.
cf8abf91b Help making signal handlers more reliable.
661f63a41 _Noreturn: clang and MSVC do support [[noreturn]] in C++11 mode.
03eccb2d0 _Noreturn: GCC 4.7 does not support [[noreturn]] in C++11 mode
d6db42193 autoupdate
8bac5eba1 fts: minor simplification
b451121ab autoupdate
4d9813bf6 bitset, timevar: Depend on c99
bca971bd8 bitset: a bit (...) more tests
68cc43e4f bitset: fix overflows
3817922f8 bitset: style changes
3cd207e1d fatal-signal: Pass the signal number to the action.
eac483310 fatal-signal: Add function that lists the fatal signals.
a336be6b8 isatty: Make it return true in Cygwin consoles on native Windows.
050440041 all: Update URLs to msdn.microsoft.com.
7952aabdf gnulib-tool: Clarify the coding style.
de6813ed7 autoupdate
426f44034 autoupdate
3bd82a82c strtod: fix clash with strtold
9a943f694 autoupdate
69c4509f3 alloca-opt: Fix conflict mingw's new <alloca.h> file.
a40779486 autoupdate
fdb2c20b0 tests: Avoid havoc with "gcc -fcheck-pointer-bounds".
011b1a33b uninorm tests: Free allocated memory.
3703dbbe8 di-set: Fix memory leak.
8c96eb80b tests: Free allocated memory.
fcf959577 Fix another test failure introduced by the same commit.
613aa429e Fix test failure introduced by last commit.
4c0df5be8 tests: Prepare for using valgrind.
5db7774f1 get-rusage-as, pthread_sigmask tests: Fix -fsanitize=thread
findings.
81d0d262d test-userspec.c: don't print NULL
2ba60a9f1 getloadavg: Write NULL for the null pointer.
fb48c2507 alloca, tsearch-tests: Write NULL for the null pointer.
363bf26b4 strfmon_l: Fix -fsanitize=address finding.
b64bf15ed crypto/des: Fix undefined behaviour.
42254c0a9 Fix undefined behaviour.
fa418ebbd unilbrk/u*-possible-linebreaks: Fix undefined behaviour.
f6f567a94 unistr/*, uniconv/*: Fix undefined behaviour.
7e7501fa2 unistr/u8-cmp: Fix undefined behaviour.
01ec92af9 unictype/numeric: Fix undefined behaviour.
724a59097 autoupdate
9447bd973 git-version-gen: fix --version copyright year
30f4fdcb5 autoupdate
b204bbfc7 relocatable-prog: Use wrapper-free installation on Mac OS X,
take 2.
d355f9056 relocatable-prog: Revert "Use wrapper-free installation on Mac
OS X."
5c04e7191 autoupdate
788db09a9 autoupdate
188d87b05 nstrftime: support the ‘+’ flag
16e6d93c0 autoupdate
82519af2d relocatable-prog: Improve verbose output.
c3a4785d3 stat, lstat: Fix conflict with relocatable-prog-wrapper module.
e3970fb98 long-options: add parse_gnu_standard_options_only
cc42b8c93 relocatable-prog: Update documentation.
95318be14 relocatable-prog: Update documentation.
7039b8937 relocatable-prog: Use wrapper-free installation also on Mac OS
X 10.4.
716fac12c nstrftime: tweak arg order
4fe3afa8f relocatable-prog: Use wrapper-free installation also on Mac OS X.
015c30cac relocatable-prog: Use $ORIGIN trick also on GNU/Hurd.
ddbd29c30 nstrftime: merge glibc strftime changes
35e462817 relocatable-prog: Use $ORIGIN trick on more platforms.
18f4d4133 progreloc: Speed up executable lookup on various platforms.
cd46bf0ca progreloc: Simplify code for Android.
f94c70ae4 autoupdate
314e9b692 autoupdate
dc135c4fd gnulib-tool: Support --import with just a few tests, not
--with-tests.
49137e3bc gnulib-tool: Improve handling of multiple --local-dir options.
341723e1b libtextstyle: New module.
30f8dae4c declared.sh: Fix bug with variables of pointer type.
45ed991d6 Add script for running tests under valgrind.
ddba03e40 declared.sh: Fix --version output.
10d0e6a7d Add script for determining the set of symbols to export from a
library.
3043e43a7 vla: add commentary about VLA_ELEMS
2f6abcc9f dtoastr,ftoastr,ldtoastr: port to c-strtod changes
edacea21c autoupdate
8430fa87e fma: Improve code style.
26201178d *-map tests: Fix compilation error.
b39cc7260 c-strtod, c-strtold: Use the bug fixes for strtod, strtold.
97e23d40a strtod, strtold: Use the locale's decimal point.
cd825c6d5 strtod, strtold tests: Simplify tests.
376b353f9 strtod, strtold: Avoid unnecessary rounding errors.
a908d8969 strtod, strtold: Work around HP-UX 11.31/ia64 bug.
6a7357fe5 autoupdate
c39d926ef strtold: Add tests.
ebad0cfeb strtold: New module.
0babfcddd strtod: Fix compilation error on IRIX 6.5.
a5988c12c Fix build error when building a shared libunistring on Android.
ca02ca64f Avoid build errors due to wrong references between modules.
e67d5ddc3 tmpfile: Add support for Android, part 2.
a7db20edb gperf: Fix error when this module is required by some test module.
abdbeff39 tmpfile: Add support for Android.
954d1e36a bitsetv: allow free on NULL.
07ff53ad5 test-framework-sh: Improve maintainability.
52bf7c2b3 tests: Don't assume that /tmp exists.
1968c439d tests: Accommodate a shell that is not in /bin/sh.
4ca4f8f0c tests: Fix some "unused variable" warnings.
188e767b9 unigbrk/uc-grapheme-breaks: Fix build failure.
5d6ca1aee mountlist: Merge two .m4 files.
675d6027e tests: Enable Linux specific tests on Android.
fa3e028aa relocatable-prog: Use Linux code on Android.
70152b705 getloadavg: Add support for Android.
79b92f92d vma-iter: Add support for Android.
f2ca86eac fts: Optimize on Android.
adec7ef4a fts: Add support for Android.
a3d1c7849 mountlist: Use Linux code on Android.
29c58de5b localename tests: Fix test failure on Android.
248cb6a24 mountlist: Port better to Android.
90efd9e93 striconveh: Fix use of uninitialized iconv_t.
025b5528c nonblocking-socket-tests: Fix test failure on Android 4.3.
3b5f96342 sh-filename: Add support for Android 4.3.
8a2c831f1 ptsname_r: Work around bug on Android 4.3.
0c4342cb6 ttyname_r: Work around bug on Android 4.3.
3324e9ccf getprogname: Port to Android 4.3.
555ed22dd wcrtomb: Work around bug on Android 4.3.
575971db4 setlocale: Work around bug on Android 4.3.
9462eb64f memchr: Work around bug on Android <= 5.0.
26653040b random: Fix compilation error on Android 4.3.
3215a9f56 mbtowc: Fix compilation error on Android 4.3.
ea9062bea fdatasync: Fix compilation error on Android 4.3.
dc0f8ce9f unlinkat: Fix compilation error on Android 4.3.
1f9ed3993 renameat: Fix compilation error on Android 4.3.
3c136a2cc fchownat: Fix compilation error on Android 4.3.
425ee4225 gnulib-tool: Support running testdirs on Android.
34881aff4 relocatable-prog: add a comment
376668638 relocatable-prog: avoid warnings from Automake
f271b56e1 array-list: Pacify warnings about unused arguments
(-Wunused-parameter)
681f1b8b8 threadlib: Revert commit from 2018-06-25. We now have a better
fix.
cca32830b thread: Force linking with -lpthread, even when --as-needed is
in use.
7b56f157a relocatable: avoid compiler warnings (-Wshadow)
6c0f109fb vasnprintf: Don't use %n on Android.
5447f440e *printf: Support cross-compilation to Android.
5ddb2f9d4 autoupdate
f986e77af diacrit: Mark deprecated.
1643f0d68 diacrit: Mark deprecated.
5b490ef07 rintl: Override broken implementation on NetBSD.
e5462c330 log10l: Work around inaccurate implementation on NetBSD.
27f3a1709 logl: Work around inaccurate implementation on NetBSD.
67df3cffa expm1l: Work around inaccurate implementation on NetBSD.
0ac7b4317 expl: Work around inaccurate implementation on NetBSD.
e86cbc464 exp2l: Work around inaccurate implementation on NetBSD.
064adf3d1 floor, floorl: Avoid autoconf warnings.
3b9e41eff Defeat current GCC optimizations in math autoconf tests.
8da562a8a gettext: support disabling use of VLAs
d2a3dfe3f autoupdate
eac175921 sys_stat: Fix 'implicit declaration of function' warning on
OS/2 kLIBC.
2541624fd fcntl: Fix syntax error (regression from 2018-10-05).
34290cb92 autoupdate
c66547cdc relocatable: improve documentation
b1ca7611d backup: update dependencies
c88cf363f getcwd: Fix test failure when building on a Linux 9p file system.
769c6d033 Fix typos found by codespell.
d9e8386aa doc: Fix documentation about container data types.
315eb5ffc verify: Enable _GL_HAVE_STATIC_ASSERT for recent G++ versions.
29d802900 getpass: Fix include filename

 ChangeLog          | 6 ++++++
 modules/configmake | 3 +++
 2 files changed, 9 insertions(+)

diff --git a/ChangeLog b/ChangeLog
index 644330370..35f870abe 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2019-08-08  Eric Blake  <eblake@redhat.com>
+
+	configmake: Avoid namespace pollution issue on mingw.
+	* modules/configmake (Makefile.am): If the project uses
+	<winsock2.h>, include that header before defining DATADIR.
+
 2019-07-28  Bruno Haible  <bruno@clisp.org>

 	mbrtowc tests: Fix regression on mingw (regression from 2018-02-24).
diff --git a/modules/configmake b/modules/configmake
index 5a60f4f80..0074071fc 100644
--- a/modules/configmake
+++ b/modules/configmake
@@ -17,6 +17,9 @@ Makefile.am:
 configmake.h: Makefile
 	$(AM_V_GEN)rm -f $@-t && \
 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+          echo '#if HAVE_WINSOCK2_H'; \
+          echo '# include <winsock2.h> /* avoid mingw pollution on
DATADIR */'; \
+          echo '#endif'; \
 	  echo '#define PREFIX "$(prefix)"'; \
 	  echo '#define EXEC_PREFIX "$(exec_prefix)"'; \
 	  echo '#define BINDIR "$(bindir)"'; \
-- 
2.20.1




--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [PATCH] configmake: Avoid namespace pollution issue on mingw.

Posted by Eric Blake 1 week ago
On 8/8/19 8:08 AM, Eric Blake wrote:
> Mingw includes a header that declares a struct typedef named DATADIR,
> pulled in when including <winsock2.h>; compilation fails if DATADIR
> has already been defined as a macro expanding to a string prior to
> that inclusion.  Although the configmake module documents that it
> should generally be included only after system headers, it is just as
> easy to make configmake.h robust to this particular issue by including
> the system header first if it exists.
> 
> * modules/configmake (Makefile.am): If the project uses
> <winsock2.h>, include that header before defining DATADIR.
> Reported by libvirt:
> https://lists.gnu.org/archive/html/bug-gnulib/2019-07/msg00089.html
> ---
> 
> I'm pushing this under the gnulib maintenance rule, while working on
> a further gnulib change to make configmake.h nicer on mingw.

Except I posted the wrong patch (the gnulib patch I'm still working on,
not the actual libvirt patch I pushed).  That would be:

From 05fb5f5af29c0169243928a93bbdc48cc0e87e4d Mon Sep 17 00:00:00 2001
From: Eric Blake <eblake@redhat.com>
Date: Thu, 8 Aug 2019 07:16:42 -0500
Subject: [PATCH] maint: Update to latest gnulib

Requires adjustments to use verify_expr() which replaces
verify_true(), and to disable the new syntax check
'sc_prohibit_gnu_make_extensions' since we require GNU make.

Signed-off-by: Eric Blake <eblake@redhat.com>
---
 src/util/viratomic.h | 18 +++++++++---------
 .gnulib              |  2 +-
 cfg.mk               |  1 +
 3 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/src/util/viratomic.h b/src/util/viratomic.h
index 35800dafcd..9dfb77b992 100644
--- a/src/util/viratomic.h
+++ b/src/util/viratomic.h
@@ -157,58 +157,58 @@ VIR_STATIC unsigned int virAtomicIntXor(volatile
unsigned int *atomic,

 # define virAtomicIntGet(atomic) \
     (__extension__ ({ \
-            (void)verify_true(sizeof(*(atomic)) == sizeof(int)); \
+            (void)verify_expr(sizeof(*(atomic)) == sizeof(int), 0); \
             (void)(0 ? *(atomic) ^ *(atomic) : 0); \
             __sync_synchronize(); \
             (int)*(atomic); \
         }))
 # define virAtomicIntSet(atomic, newval) \
     (__extension__ ({ \
-            (void)verify_true(sizeof(*(atomic)) == sizeof(int)); \
+            (void)verify_expr(sizeof(*(atomic)) == sizeof(int), 0); \
             (void)(0 ? *(atomic) ^ (newval) : 0); \
             *(atomic) = (newval); \
             __sync_synchronize(); \
         }))
 # define virAtomicIntInc(atomic) \
     (__extension__ ({ \
-            (void)verify_true(sizeof(*(atomic)) == sizeof(int)); \
+            (void)verify_expr(sizeof(*(atomic)) == sizeof(int), 0); \
             (void)(0 ? *(atomic) ^ *(atomic) : 0); \
             __sync_add_and_fetch((atomic), 1); \
         }))
 # define virAtomicIntDecAndTest(atomic) \
     (__extension__ ({ \
-            (void)verify_true(sizeof(*(atomic)) == sizeof(int)); \
+            (void)verify_expr(sizeof(*(atomic)) == sizeof(int), 0); \
             (void)(0 ? *(atomic) ^ *(atomic) : 0); \
             __sync_fetch_and_sub((atomic), 1) == 1; \
         }))
 # define virAtomicIntCompareExchange(atomic, oldval, newval) \
     (__extension__ ({ \
-            (void)verify_true(sizeof(*(atomic)) == sizeof(int)); \
+            (void)verify_expr(sizeof(*(atomic)) == sizeof(int), 0); \
             (void)(0 ? *(atomic) ^ (newval) ^ (oldval) : 0); \
             (bool)__sync_bool_compare_and_swap((atomic), \
                                                (oldval), (newval)); \
         }))
 # define virAtomicIntAdd(atomic, val) \
     (__extension__ ({ \
-            (void)verify_true(sizeof(*(atomic)) == sizeof(int)); \
+            (void)verify_expr(sizeof(*(atomic)) == sizeof(int), 0); \
             (void)(0 ? *(atomic) ^ (val) : 0); \
             (int) __sync_fetch_and_add((atomic), (val)); \
         }))
 # define virAtomicIntAnd(atomic, val) \
     (__extension__ ({ \
-            (void)verify_true(sizeof(*(atomic)) == sizeof(int)); \
+            (void)verify_expr(sizeof(*(atomic)) == sizeof(int), 0); \
             (void) (0 ? *(atomic) ^ (val) : 0); \
             (unsigned int) __sync_fetch_and_and((atomic), (val)); \
         }))
 # define virAtomicIntOr(atomic, val) \
     (__extension__ ({ \
-            (void)verify_true(sizeof(*(atomic)) == sizeof(int)); \
+            (void)verify_expr(sizeof(*(atomic)) == sizeof(int), 0); \
             (void) (0 ? *(atomic) ^ (val) : 0); \
             (unsigned int) __sync_fetch_and_or((atomic), (val)); \
         }))
 # define virAtomicIntXor(atomic, val) \
     (__extension__ ({ \
-            (void)verify_true(sizeof(*(atomic)) == sizeof(int)); \
+            (void)verify_expr(sizeof(*(atomic)) == sizeof(int), 0); \
             (void) (0 ? *(atomic) ^ (val) : 0); \
             (unsigned int) __sync_fetch_and_xor((atomic), (val)); \
         }))
diff --git a/.gnulib b/.gnulib
index 8089c00979..c8e2eee548 160000
--- a/.gnulib
+++ b/.gnulib
@@ -1 +1 @@
-Subproject commit 8089c00979a5b089cff592c6b91420e595657167
+Subproject commit c8e2eee548e6e81f3fccd31cf9f9a825db7fc8a8
diff --git a/cfg.mk b/cfg.mk
index cc1f79a051..85b5a0a5a2 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -59,6 +59,7 @@ local-checks-to-skip = \
   sc_obsolete_symbols \
   sc_prohibit_S_IS_definition \
   sc_prohibit_atoi_atof \
+  sc_prohibit_gnu_make_extensions \
   sc_prohibit_hash_without_use \
   sc_prohibit_jm_in_m4 \
   sc_prohibit_quote_without_use \
-- 
2.20.1




-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3226
Virtualization:  qemu.org | libvirt.org

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list