I got an error compiling directxtex with OpenEXR.  The error is in include/psdk_inc/intrin-impl.h .  The log is below:

===

In file included from C:/msys64/mingw64/include/intrin.h:41,
                 from C:/msys64/mingw64/include/Imath/half.h:183,
                 from C:/msys64/mingw64/include/OpenEXR/ImfXdr.h:79,
                 from C:/msys64/mingw64/include/OpenEXR/ImfAttribute.h:18,
                 from C:/msys64/mingw64/include/OpenEXR/ImfHeader.h:25,
                 from C:/msys64/mingw64/include/OpenEXR/ImfRgbaFile.h:22,
                 from C:/msys64/home/jpmugaas/exp/mingw-w64-directxtex/src/DirectXTex-dec2023/Auxiliary/DirectXTexEXR.cpp:46: C:/msys64/mingw64/include/psdk_inc/intrin-impl.h:2013:42: error: macro "__cpuid" requires 5 arguments, but only 2 given
 2013 | void __cpuid(int CPUInfo[4], int InfoType);
      |                                          ^
In file included from C:/msys64/mingw64/include/directxmath/DirectXMath.h:122,                  from C:/msys64/mingw64/include/directxmath/DirectXPackedVector.h:12,                  from C:/msys64/home/jpmugaas/exp/mingw-w64-directxtex/src/DirectXTex-dec2023/DirectXTex/DirectXTexP.h:155,                  from C:/msys64/home/jpmugaas/exp/mingw-w64-directxtex/src/DirectXTex-dec2023/Auxiliary/DirectXTexEXR.cpp:10: C:/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/13.2.0/include/cpuid.h:235: note: macro "__cpuid" defined here   235 | #define __cpuid(level, a, b, c, d)                                      \
      |
C:/msys64/mingw64/include/psdk_inc/intrin-impl.h:2016:42: error: macro "__cpuid" requires 5 arguments, but only 2 given
 2016 | void __cpuid(int CPUInfo[4], int InfoType) {
      |                                          ^
C:/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/13.2.0/include/cpuid.h:235: note: macro "__cpuid" defined here   235 | #define __cpuid(level, a, b, c, d)                                      \
      |
C:/msys64/mingw64/include/psdk_inc/intrin-impl.h:2013:6: error: variable or field '__cpuid' declared void
 2013 | void __cpuid(int CPUInfo[4], int InfoType);
      |      ^~~~~~~
C:/msys64/mingw64/include/psdk_inc/intrin-impl.h:2016:6: error: variable or field '__cpuid' declared void
 2016 | void __cpuid(int CPUInfo[4], int InfoType) {
      |      ^~~~~~~
C:/msys64/mingw64/include/psdk_inc/intrin-impl.h:2017:4: error: expected primary-expression before '__asm__'
 2017 |    __asm__ __volatile__ (
      |    ^~~~~~~
C:/msys64/mingw64/include/psdk_inc/intrin-impl.h:2017:4: error: expected '}' before '__asm__' C:/msys64/mingw64/include/psdk_inc/intrin-impl.h:2016:44: note: to match this '{'
 2016 | void __cpuid(int CPUInfo[4], int InfoType) {
      |                                            ^
C:/msys64/mingw64/include/psdk_inc/intrin-impl.h:2280:1: error: expected declaration before '}' token
 2280 | }
      | ^

===

I was able to fix this in the intrin.h file by inserting the line "#undef __cpuid" just before the "#include <psdk_inc/intrin-impl.h>" line.





_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to