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