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