Doug Scoular wrote:> Hi Peter/Erwan et al,
>
> With my incredibly limited understanding of all things com32, years
> ago, I managed to write a com32 module to tell PXE users their MAC
> address, machine make, model and whether they were on a 32 or 64 bit
> processor. Users found this very useful when trying to re-image the
> 8,000 odd boxes spread round the globe.
>
> This was hugely based on Erwan Velu's dmitest.c circa 3.20. I decided
> I'd better update my com32 module and compile it against 3.7x but I
> found that the "lm" flag which I relied on to determine 32/64 bit
was
> gone from dmi_processor.h.
>
> I then thought the solution was obviously to use the cpuid.h code
> which had the "lm" flag... however I find that I cannot include
both:
>
> #include "dmi/dmi.h"
> #include <cpuid.h>
>
> As they have conflicting ideas of what the cpu flags structure should be:
>
> In file included from dugtest.c:30:
> ../../com32/include/cpuid.h:80: error: conflicting types for
's_cpu_flags'
> ../../com32/include/dmi/dmi_processor.h:103: error: previous
> declaration of 's_cpu_flags' was here
>
> While I can maybe code around this by changing the header files, I
> thought I should point this out and ask that, maybe, dmi.h be made
> more modular and rely on cpuid.h for CPU information and, prehaps,
> retire dmi_processor.h.
>
> Any thoughts on the best way to proceed much appreciated. I'm not
> confident in my programming skills to offer much help myself.
>
The quickest way to fix this is obviously to change the name of one of
these structures. Longer term, we really should have *one* structure,
or alternatively a bit vector.
-hpa