Compilation error in both Miami and Liberty (DreamSDK+Win10)
Using latest public DreamSDK on Windows 10, where all previous compilation attempts were successful, I'm suddenly receiving this error with make cdi-prebuilt using prebuilt ELFs.
Is it conflicting typedefs in rwbase.h and dc_hle_types.h?
See below for full error output (from Liberty).
../src/liberty/fakerw/fake.cpp: In function 'RwBool RwRenderStateGet(RwRenderState, void*)':
../src/liberty/fakerw/fake.cpp:452:2: error: reference to 'uint32' is ambiguous
452 | uint32 *uival = (uint32*)value;
| ^~~~~~
In file included from ../vendor/librw/rw.h:7,
from ../src/liberty/fakerw/rwcore.h:5,
from ../src/liberty/fakerw/fake.cpp:3:
../vendor/librw/src/rwbase.h:76:19: note: candidates are: 'typedef uint32_t rw::uint32'
76 | typedef uint32_t uint32;
| ^~~~~~
In file included from ../vendor/koshle/dc/pvr.h:3,
from ../vendor/librw/src/dc/rwdc_common.h:28,
from ../vendor/librw/src/rwbase.h:5,
from ../vendor/librw/rw.h:7,
from ../src/liberty/fakerw/rwcore.h:5,
from ../src/liberty/fakerw/fake.cpp:3:
../vendor/koshle/dc_hle_types.h:27:23: note: 'typedef long unsigned int uint32'
27 | typedef unsigned long uint32; /**< \brief 32-bit unsigned integer */
| ^~~~~~
../src/liberty/fakerw/fake.cpp:452:10: error: 'uival' was not declared in this scope
452 | uint32 *uival = (uint32*)value;
| ^~~~~
../src/liberty/fakerw/fake.cpp:452:19: error: reference to 'uint32' is ambiguous
452 | uint32 *uival = (uint32*)value;
| ^~~~~~
In file included from ../vendor/librw/rw.h:7,
from ../src/liberty/fakerw/rwcore.h:5,
from ../src/liberty/fakerw/fake.cpp:3:
../vendor/librw/src/rwbase.h:76:19: note: candidates are: 'typedef uint32_t rw::uint32'
76 | typedef uint32_t uint32;
| ^~~~~~
In file included from ../vendor/koshle/dc/pvr.h:3,
from ../vendor/librw/src/dc/rwdc_common.h:28,
from ../vendor/librw/src/rwbase.h:5,
from ../vendor/librw/rw.h:7,
from ../src/liberty/fakerw/rwcore.h:5,
from ../src/liberty/fakerw/fake.cpp:3:
../vendor/koshle/dc_hle_types.h:27:23: note: 'typedef long unsigned int uint32'
27 | typedef unsigned long uint32; /**< \brief 32-bit unsigned integer */
| ^~~~~~
../src/liberty/fakerw/fake.cpp:452:26: error: expected primary-expression before ')' token
452 | uint32 *uival = (uint32*)value;
| ^
../src/liberty/fakerw/fake.cpp:453:2: error: reference to 'uint32' is ambiguous
453 | uint32 fog;
| ^~~~~~
In file included from ../vendor/librw/rw.h:7,
from ../src/liberty/fakerw/rwcore.h:5,
from ../src/liberty/fakerw/fake.cpp:3:
../vendor/librw/src/rwbase.h:76:19: note: candidates are: 'typedef uint32_t rw::uint32'
76 | typedef uint32_t uint32;
| ^~~~~~
In file included from ../vendor/koshle/dc/pvr.h:3,
from ../vendor/librw/src/dc/rwdc_common.h:28,
from ../vendor/librw/src/rwbase.h:5,
from ../vendor/librw/rw.h:7,
from ../src/liberty/fakerw/rwcore.h:5,
from ../src/liberty/fakerw/fake.cpp:3:
../vendor/koshle/dc_hle_types.h:27:23: note: 'typedef long unsigned int uint32'
27 | typedef unsigned long uint32; /**< \brief 32-bit unsigned integer */
| ^~~~~~
../src/liberty/fakerw/fake.cpp:471:3: error: 'fog' was not declared in this scope; did you mean 'log'?
471 | fog = GetRenderState(FOGCOLOR);
| ^~~
| log
../src/liberty/fakerw/fake.cpp: In function 'RwBool RwRenderStateSet(RwRenderState, void*)':
../src/liberty/fakerw/fake.cpp:499:2: error: reference to 'uint32' is ambiguous
499 | uint32 uival = (uintptr)value;
| ^~~~~~
In file included from ../vendor/librw/rw.h:7,
from ../src/liberty/fakerw/rwcore.h:5,
from ../src/liberty/fakerw/fake.cpp:3:
../vendor/librw/src/rwbase.h:76:19: note: candidates are: 'typedef uint32_t rw::uint32'
76 | typedef uint32_t uint32;
| ^~~~~~
In file included from ../vendor/koshle/dc/pvr.h:3,
from ../vendor/librw/src/dc/rwdc_common.h:28,
from ../vendor/librw/src/rwbase.h:5,
from ../vendor/librw/rw.h:7,
from ../src/liberty/fakerw/rwcore.h:5,
from ../src/liberty/fakerw/fake.cpp:3:
../vendor/koshle/dc_hle_types.h:27:23: note: 'typedef long unsigned int uint32'
27 | typedef unsigned long uint32; /**< \brief 32-bit unsigned integer */
| ^~~~~~
../src/liberty/fakerw/fake.cpp:500:2: error: reference to 'uint32' is ambiguous
500 | uint32 fog;
| ^~~~~~
In file included from ../vendor/librw/rw.h:7,
from ../src/liberty/fakerw/rwcore.h:5,
from ../src/liberty/fakerw/fake.cpp:3:
../vendor/librw/src/rwbase.h:76:19: note: candidates are: 'typedef uint32_t rw::uint32'
76 | typedef uint32_t uint32;
| ^~~~~~
In file included from ../vendor/koshle/dc/pvr.h:3,
from ../vendor/librw/src/dc/rwdc_common.h:28,
from ../vendor/librw/src/rwbase.h:5,
from ../vendor/librw/rw.h:7,
from ../src/liberty/fakerw/rwcore.h:5,
from ../src/liberty/fakerw/fake.cpp:3:
../vendor/koshle/dc_hle_types.h:27:23: note: 'typedef long unsigned int uint32'
27 | typedef unsigned long uint32; /**< \brief 32-bit unsigned integer */
| ^~~~~~
../src/liberty/fakerw/fake.cpp:503:67: error: 'uival' was not declared in this scope
503 | case rwRENDERSTATETEXTUREADDRESS: SetRenderState(TEXTUREADDRESS, uival); return true;
| ^~~~~
../src/liberty/fakerw/fake.cpp:518:3: error: 'fog' was not declared in this scope; did you mean 'log'?
518 | fog = (uival>>16)&0xFF;
| ^~~
| log
../src/liberty/fakerw/fake.cpp: At global scope:
../src/liberty/fakerw/fake.cpp:547:36: error: reference to 'uint32' is ambiguous
547 | static void *mallocWrap(size_t sz, uint32 hint) { if(sz == 0) return nil; return real_malloc(sz); }
| ^~~~~~
In file included from ../vendor/librw/rw.h:7,
from ../src/liberty/fakerw/rwcore.h:5,
from ../src/liberty/fakerw/fake.cpp:3:
../vendor/librw/src/rwbase.h:76:19: note: candidates are: 'typedef uint32_t rw::uint32'
76 | typedef uint32_t uint32;
| ^~~~~~
In file included from ../vendor/koshle/dc/pvr.h:3,
from ../vendor/librw/src/dc/rwdc_common.h:28,
from ../vendor/librw/src/rwbase.h:5,
from ../vendor/librw/rw.h:7,
from ../src/liberty/fakerw/rwcore.h:5,
from ../src/liberty/fakerw/fake.cpp:3:
../vendor/koshle/dc_hle_types.h:27:23: note: 'typedef long unsigned int uint32'
27 | typedef unsigned long uint32; /**< \brief 32-bit unsigned integer */
| ^~~~~~
../src/liberty/fakerw/fake.cpp:547:36: error: 'uint32' has not been declared
547 | static void *mallocWrap(size_t sz, uint32 hint) { if(sz == 0) return nil; return real_malloc(sz); }
| ^~~~~~
../src/liberty/fakerw/fake.cpp:548:46: error: reference to 'uint32' is ambiguous
548 | static void *reallocWrap(void *p, size_t sz, uint32 hint) { return real_realloc(p, sz); }
| ^~~~~~
In file included from ../vendor/librw/rw.h:7,
from ../src/liberty/fakerw/rwcore.h:5,
from ../src/liberty/fakerw/fake.cpp:3:
../vendor/librw/src/rwbase.h:76:19: note: candidates are: 'typedef uint32_t rw::uint32'
76 | typedef uint32_t uint32;
| ^~~~~~
In file included from ../vendor/koshle/dc/pvr.h:3,
from ../vendor/librw/src/dc/rwdc_common.h:28,
from ../vendor/librw/src/rwbase.h:5,
from ../vendor/librw/rw.h:7,
from ../src/liberty/fakerw/rwcore.h:5,
from ../src/liberty/fakerw/fake.cpp:3:
../vendor/koshle/dc_hle_types.h:27:23: note: 'typedef long unsigned int uint32'
27 | typedef unsigned long uint32; /**< \brief 32-bit unsigned integer */
| ^~~~~~
../src/liberty/fakerw/fake.cpp:548:46: error: 'uint32' has not been declared
548 | static void *reallocWrap(void *p, size_t sz, uint32 hint) { return real_realloc(p, sz); }
| ^~~~~~
../src/liberty/fakerw/fake.cpp: In function 'RwBool RwEngineInit(RwMemoryFunctions*, RwUInt32, RwUInt32)':
../src/liberty/fakerw/fake.cpp:556:24: error: invalid conversion from 'void* (*)(size_t, int)' {aka 'void* (*)(unsigned int, int)'} to 'void* (*)(size_t, rw::uint32)' {aka 'void* (*)(unsigned int, unsigned int)'} [-fpermissive]
556 | gMemfuncs.rwmalloc = mallocWrap;
| ^~~~~~~~~~
| |
| void* (*)(size_t, int) {aka void* (*)(unsigned int, int)}
../src/liberty/fakerw/fake.cpp:557:25: error: invalid conversion from 'void* (*)(void*, size_t, int)' {aka 'void* (*)(void*, unsigned int, int)'} to 'void* (*)(void*, size_t, rw::uint32)' {aka 'void* (*)(void*, unsigned int, unsigned int)'} [-fpermissive]
557 | gMemfuncs.rwrealloc = reallocWrap;
| ^~~~~~~~~~~
| |
| void* (*)(void*, size_t, int) {aka void* (*)(void*, unsigned int, int)}
../src/liberty/fakerw/fake.cpp: In function 'RpMaterial* RpMatFXMaterialSetEffects(RpMaterial*, RpMatFXMaterialFlags)':
../src/liberty/fakerw/fake.cpp:833:122: error: reference to 'uint32' is ambiguous
833 | RpMaterial *RpMatFXMaterialSetEffects( RpMaterial *material, RpMatFXMaterialFlags flags ) { MatFX::setEffects(material, (uint32)flags); return material; }
| ^~~~~~
In file included from ../vendor/librw/rw.h:7,
from ../src/liberty/fakerw/rwcore.h:5,
from ../src/liberty/fakerw/fake.cpp:3:
../vendor/librw/src/rwbase.h:76:19: note: candidates are: 'typedef uint32_t rw::uint32'
76 | typedef uint32_t uint32;
| ^~~~~~
In file included from ../vendor/koshle/dc/pvr.h:3,
from ../vendor/librw/src/dc/rwdc_common.h:28,
from ../vendor/librw/src/rwbase.h:5,
from ../vendor/librw/rw.h:7,
from ../src/liberty/fakerw/rwcore.h:5,
from ../src/liberty/fakerw/fake.cpp:3:
../vendor/koshle/dc_hle_types.h:27:23: note: 'typedef long unsigned int uint32'
27 | typedef unsigned long uint32; /**< \brief 32-bit unsigned integer */
| ^~~~~~
make: *** [../src/liberty/fakerw/fake.texconv.o] Error 1
Edited by Derek Pascarella
