Your message dated Mon, 20 Nov 2017 21:43:22 +0000
with message-id <[email protected]>
and subject line Bug#863064: fixed in mingw-w64 5.0.3-1
has caused the Debian Bug report #863064,
regarding MinGW multimon.h fails to compile with COMPILE_MULTIMON_STUBS defined
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
863064: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863064
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: mingw-w64-common
Version: 5.0.1-1

The following trivial souce file fails to compile with MinGW:

------
#include <windows.h>
#define COMPILE_MULTIMON_STUBS
#include <multimon.h>
------

with the following errors:

$ x86_64-w64-mingw32-gcc -c mingtest.c
In file included from mingtest.c:3:0:
/usr/share/mingw-w64/include/multimon.h: In function  IsPlatformNT :
/usr/share/mingw-w64/include/multimon.h:130:38: error:  osvi  undeclared (first 
use in this function)
     oi.dwOSVersionInfoSize = sizeof (osvi);
                                      ^
/usr/share/mingw-w64/include/multimon.h:130:38: note: each undeclared 
identifier is reported only once for each function it appears in
In file included from mingtest.c:3:0:
/usr/share/mingw-w64/include/multimon.h: In function  xGetMonitorInfo :
/usr/share/mingw-w64/include/multimon.h:260:16: error: invalid type argument of 
 ->  (have  MONITORINFOEX {aka struct tagMONITORINFOEXA} )
  lstrcpyn (c.ex->szDevice, "DISPLAY", sizeof (c.ex->szDevice));
                ^
/usr/share/mingw-w64/include/multimon.h:260:51: error: invalid type argument of 
 ->  (have  MONITORINFOEX {aka struct tagMONITORINFOEXA} )
  lstrcpyn (c.ex->szDevice, "DISPLAY", sizeof (c.ex->szDevice));
                                                   ^

It looks as if this header file has never been tested at all in the mode
that uses COMPILE_MULTIMON_STUBS.

The first line should simply use the actual variable name 'oi' in place
of the nonexistent one 'osvi'. (The point is that this is one of the
many Windows API structs whose first element is a field giving its own
size, to permit later API revisions to append fields to the end without
overrunning memory in older clients, so it's clear that the sizeof is
meant to apply to the _same_ structure we're writing into.)

The second pair of errors arise because c.ex is an actual MONITORINFOEX
structure rather than a pointer to one. So candidate fixes are to
replace the '->' with '.', or to make c.ex a pointer. Looking at the
code, the latter seems like the right choice, because the point of 'c'
itself seems to be that it's a union used to type-pun between pointers
to two related structure types; the user passes in a pointer to
MONITORINFO, and we turn it into a pointer to MONITORINFOEX (which
includes an extra field at the end), and then write the extra field if
the size field permits. So both members of 'c' ought to be pointers, and
hence the right fix is to declare the union at the top of
xGetMonitorInfo() so that the field 'ex' has type LPMONITORINFOEX rather
than plain MONITORINFOEX.

Cheers,
Simon

-- 
for k in [pow(x,37,0x1a1298d262b49c895d47f) for x in [0x50deb914257022de7fff,
0x213558f2215127d5a2d1, 0x90c99e86d08b91218630, 0x109f3d0cfbf640c0beee7,
0xc83e01379a5fbec5fdd1, 0x19d3d70a8d567e388600e, 0x534e2f6e8a4a33155123]]:
 print "".join([chr(32+3*((k>>x)&1))for x in range(79)]) # <[email protected]>

--- End Message ---
--- Begin Message ---
Source: mingw-w64
Source-Version: 5.0.3-1

We believe that the bug you reported is fixed in the latest version of
mingw-w64, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Stephen Kitt <[email protected]> (supplier of updated mingw-w64 package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Sat, 18 Nov 2017 21:16:23 +0100
Source: mingw-w64
Binary: mingw-w64-common mingw-w64-i686-dev mingw-w64-x86-64-dev mingw-w64 
mingw-w64-tools
Architecture: source
Version: 5.0.3-1
Distribution: unstable
Urgency: medium
Maintainer: Stephen Kitt <[email protected]>
Changed-By: Stephen Kitt <[email protected]>
Description:
 mingw-w64  - Development environment targeting 32- and 64-bit Windows
 mingw-w64-common - Common files for Mingw-w64
 mingw-w64-i686-dev - Development files for MinGW-w64 targeting Win32
 mingw-w64-tools - Development tools for 32- and 64-bit Windows
 mingw-w64-x86-64-dev - Development files for MinGW-w64 targeting Win64
Closes: 863064
Changes:
 mingw-w64 (5.0.3-1) unstable; urgency=medium
 .
   * New upstream release.
   * Move to “Priority: optional”, “extra” is obsolete.
   * Mark mingw-w64-common as “Multi-Arch: foreign”.
   * Apply Simon Tatham’s fix for IsPlatformNT in multimon.h. (Along with
     upstream fixes for the pointer issues, this closes: #863064.)
   * Ensure alloca() is available on kFreeBSD.
Checksums-Sha1:
 868b47f85f459d55bd2b8d2921edbb54c2c4eabd 2297 mingw-w64_5.0.3-1.dsc
 96278378b829695007ce6a527278cba19cb829f2 9160627 mingw-w64_5.0.3.orig.tar.bz2
 336ca188e11d93cf07e67dea27cf99ccb7fddc6a 104064 mingw-w64_5.0.3-1.debian.tar.xz
 55fa5f53d179afddc78c1036051edd9ca2044733 6158 
mingw-w64_5.0.3-1_source.buildinfo
Checksums-Sha256:
 a5fb2fa0846dfffe735d4539e3c384150d04d3824aaf55bafec8a59fa7507705 2297 
mingw-w64_5.0.3-1.dsc
 2a601db99ef579b9be69c775218ad956a24a09d7dabc9ff6c5bd60da9ccc9cb4 9160627 
mingw-w64_5.0.3.orig.tar.bz2
 cfa3d2feb021b0f419e9791e66fc687630e9042811aedcd22780e6cd4f68fdd8 104064 
mingw-w64_5.0.3-1.debian.tar.xz
 c38f2b01aa95a4b2697a9bf36ba22c6aede71fd24089444b33ceefa5477d9a38 6158 
mingw-w64_5.0.3-1_source.buildinfo
Files:
 324ae00475a63d4324ee3a7a44b02b47 2297 devel optional mingw-w64_5.0.3-1.dsc
 5524c20312560cc8683b7d8ee292cb8c 9160627 devel optional 
mingw-w64_5.0.3.orig.tar.bz2
 eb108db60abbf8c15379cb0b5f2b1090 104064 devel optional 
mingw-w64_5.0.3-1.debian.tar.xz
 2d9d657030493e0956772071c0cd58ee 6158 devel optional 
mingw-w64_5.0.3-1_source.buildinfo

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEednFjFDWtapl1TDBdZd4qaNrSU8FAloQlUEACgkQdZd4qaNr
SU/wIQ//XygRP+uBAdP2LusLhcwpP5kFKIVuClcW+nAwUYf2hOITAdFZDnPwDVBj
95VLrh4GbxmjcSvVCKQz7OXeIz5+PjWGkFxtiZbgKcN4NcqfzPO2X7nBEkP+GLKT
3bYWM/fGRS/iiaCs/94vujLSZZMBidV6/YLe3y0EH/X9NDxyC/MJdxt1Ma838cZH
5tsLwQs1xcZaF8gxNlhhc5bzi6+3R0OmV2e9SDWvB7B82BzRZ+vShFI2RhpaqqsU
21t8LTPh8z/JdFV54lLVzEVi8lcl5ycFnWrZ11+MeAtf29HENpK6AonP0uMUDRd+
uW5P/fCrWgAaW8tJnUvoHycuGiZlxv4Ub0YmeAS/j/J25cyS4AggoIN2b9w0CwtX
ZeT1TsLUXsTjoOg7mDLBOumhmXB1b2xRLysUivhquj88Kb6g7TL2UMm4AcnuD9ZG
Znp1fNTB8mC24/MJaB2xhmLhsv5BVuUlXQW7ZqC2iPryCGFb4G06p82YFw+kOoUl
5krTS/aXoBW4fHbyiQBXz1KFJE9amkV9Xz7XHtBqfCxi/TeyQlHvNXPm2XUHsGWB
twzNQhycAVgG4CznX6zyZeg4ZTAI0OgZhKYnfrYdIQ4x0Vw5UhtgmkfS0qqmTUdw
VJva4P01H98G20PpdZUzir0Qj7k+UbYzumVaoYh1CFJhL1sTrcY=
=yhtC
-----END PGP SIGNATURE-----

--- End Message ---

Reply via email to