Erik van Pienbroek schreef op wo 21-08-2013 om 07:55 [+0200]:
> Hi,
> 
> The current trunk seems to have some conflicting declarations which
> causes various build failures. Here are the failures we discovered with
> the test mass rebuild script.

Additionally these two failures were also discovered:

qt5-qtsystems:

In file included
from 
/builddir/build/BUILD/qt-qtsystems/src/systeminfo/windows/qdeviceinfo_win.cpp:50:0:
/usr/i686-w64-mingw32/sys-root/mingw/include/vfw.h:908:3: error:
'interface' does not name a type
   DECLARE_INTERFACE_(IAVIStream,IUnknown) {
   ^
In file included
from 
/builddir/build/BUILD/qt-qtsystems/src/systeminfo/windows/qdeviceinfo_win.cpp:50:0:
/usr/i686-w64-mingw32/sys-root/mingw/include/vfw.h:925:11: error:
'IAVIStream' does not name a type
   typedef IAVIStream *PAVISTREAM;
           ^
(and some more cascaded ones, to me the 'interface' one looks like the
primary cause)

============================================

qt5-qtbase:

/builddir/build/BUILD/qtbase-opensource-src-5.1.0/src/corelib/io/qfilesystemengine_win.cpp:578:3:
 error: conflicting declaration 'typedef struct _FILE_ID_128 FILE_ID_128'
 } FILE_ID_128, *PFILE_ID_128;
   ^
In file included
from /usr/i686-w64-mingw32/sys-root/mingw/include/minwindef.h:146:0,

from /usr/i686-w64-mingw32/sys-root/mingw/include/windef.h:8,

from /usr/i686-w64-mingw32/sys-root/mingw/include/windows.h:69,

from 
/builddir/build/BUILD/qtbase-opensource-src-5.1.0/include/QtCore/../../src/corelib/global/qt_windows.h:71,

from 
/builddir/build/BUILD/qtbase-opensource-src-5.1.0/include/QtCore/qt_windows.h:1,

from /builddir/build/BUILD/qtbase-opensource-src-5.1.0/mkspecs/win32-g
++-cross/qplatformdefs.h:63,

from 
/builddir/build/BUILD/qtbase-opensource-src-5.1.0/src/corelib/io/qfilesystemmetadata_p.h:56,

from 
/builddir/build/BUILD/qtbase-opensource-src-5.1.0/src/corelib/io/qfilesystemengine_p.h:58,

from 
/builddir/build/BUILD/qtbase-opensource-src-5.1.0/src/corelib/io/qfilesystemengine_win.cpp:42:
/usr/i686-w64-mingw32/sys-root/mingw/include/winnt.h:3767:7: error:
'FILE_ID_128' has a previous declaration as 'typedef struct FILE_ID_128
FILE_ID_128'
     } FILE_ID_128, *PFILE_ID_128;
       ^

This seems to be caused by the fact that this structure was only added
to mingw-w64 recently (r6115). As it was missing before, the qt folks
decided to manually implement it for mingw compilers and msvc <= 1700.
Apparently the qt5-qtbase implementation of this structure differs from
the implementation done in mingw-w64. For comparison:

==

mingw-w64 winnt.h:

typedef struct FILE_ID_128 {
  ULONGLONG LowPart;
  ULONGLONG HighPart;
} FILE_ID_128, *PFILE_ID_128; 

==

qt5-qtbase:

#  if defined(Q_CC_MINGW) || (defined(Q_CC_MSVC) && _MSC_VER < 1700)

typedef struct _FILE_ID_128 {
    BYTE  Identifier[16];
} FILE_ID_128, *PFILE_ID_128;

typedef struct _FILE_ID_INFO {
    ULONGLONG VolumeSerialNumber;
    FILE_ID_128 FileId;
} FILE_ID_INFO, *PFILE_ID_INFO;
#  endif // if defined (Q_CC_MINGW) || (defined(Q_CC_MSVC) && _MSC_VER < 1700))

==

The MSDN docs are a bit vague in this area. They only refer to a structure 
called EXT_FILE_ID_128 instead of just FILE_ID_128: 
http://msdn.microsoft.com/nl-nl/library/windows/desktop/hh802691%28v=vs.85%29.aspx
 and 
http://msdn.microsoft.com/nl-nl/library/windows/desktop/hh965605%28v=vs.85%29.aspx

Regards,

Erik



------------------------------------------------------------------------------
Introducing Performance Central, a new site from SourceForge and 
AppDynamics. Performance Central is your source for news, insights, 
analysis and resources for efficient Application Performance Management. 
Visit us today!
http://pubads.g.doubleclick.net/gampad/clk?id=48897511&iu=/4140/ostg.clktrk
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to