[MPlayer-dev-eng] conflicting types of BITMAPINFOHEADER between libmpdemux/ms_hdr.h and windgi.h

Gianluigi Tiesi mplayer at netfarm.it
Fri Sep 14 04:06:53 CEST 2007


I'm tring to compile latest svn on mingw,
but the struct defined in ms_hdr.h BITMAPINFOHEADER
is incompatible with the one in windgi.h,
the only difference seams to be that wingdi.h doesn't
declares the struct as packed, and defines inconditionately
the struct, but using the one from wingdi.h I get a compilation error:

In file included from libmpdemux/stheader.h:5,
                 from command.c:10:
libmpdemux/ms_hdr.h:64: error: expected specifier-qualifier-list before
'BITMAPINFOHEADER'
In file included from command.c:10:
libmpdemux/stheader.h:89: error: expected specifier-qualifier-list
before 'BITMAPINFOHEADER'
In file included from ./subreader.h:4,
                 from libvo/sub.h:61,
                 from command.c:13:

wingdi.h in mingw has #pragma pack()
does gcc really support this directive?

it appears to me like a mingw header bug since the original ms include
uses pack(), anyway to avoid at all the problem a solution
may be defining as a private struct with different name.

Latest mingw runtime causes a lot of internal warnings,
I may find the time to fixup some of their includes
but mingw team already rejected my 64bit file ops patch

As a workaround I've added

#ifndef _BITMAPINFOHEADER_
#define _BITMAPINFOHEADER_

in mingw wingdi.h so ms_hdr.h one is picked

I've just tried to add packed attr on wingdi.h
and I'm still getting the same error,
by looking at the preprocessor output, it seams
that the struct definition is not included, but it's very strange.


Regards

-- 
Gianluigi Tiesi <sherpya at netfarm.it>
EDP Project Leader
Netfarm S.r.l. - http://www.netfarm.it/
Free Software: http://oss.netfarm.it/



More information about the MPlayer-dev-eng mailing list