Thanks for the report. This warning is currently visible on many/all of the buildbots on all branches. The conflict is caused by the upgrade of the bundled to libexpat to version 2.2.1 (bpo-30694). 2.2.1 introduced a define of _GNU_SOURCE into Modules/expat/xmlparse.c. The definition in xmlparse is simply: #define _GNU_SOURCE But Python, in pyconfig.h, which ./configure generates from pyconfig.h.in, may already have defined _GNU_SOURCE thusly: #define _GNU_SOURCE 1 pyconfig.h gets included into our copy of Modules/expat/expat_config.h which is included later in xmlparse.c causing the compile warning. The simplest way to avoid the warning is to just change the definition in xmlparse.c to match that in pyconfig.h; the compilers don't complain if the definition is identical. I have now merged that fix into the 3.6 branch so builders of 3.6.2 won't see the warning. I will leave this open for @haypo to review and to handle merging into the other branches affected by bpo-30694 (master, 3.5, 2.7, 3.4, 3.3).
One more thing: building with a recent gcc on Linux: $ gcc --version gcc (Debian 6.3.0-18) 6.3.0 20170516 also gives an "unused but set variable" warning. ./Modules/expat/xmlparse.c: In function ‘gather_time_entropy’: ./Modules/expat/xmlparse.c:780:7: warning: variable ‘gettimeofday_res’ set but not used [-Wunused-but-set-variable] int gettimeofday_res; ^~~~~~~~~~~~~~~~ Since I didn't see it in time, I didn't try to fix this for 3.6.2 but it would be best to silence it going forward.