I've been trying to debug this for a long time now with no success, any idea why I'd get these function signatures mismatches when compiling my application using emscripten and linking with libskia.a?
There's a bunch of random seeming function signature mismatches, seemingly the last parameter of these functions becomes the return value?
wasm-ld: warning: function signature mismatch: _ZN16SkGradientShader19MakeTwoPointConicalERK7SkPointfS2_fPKjPKfi10SkTileModejPK8SkMatrix
>>> defined as (i32, i32, f32, i32, f32, i32, i32, i32, i32, i32, i32) -> void in C:\Users\MyUser\AppData\Local\Temp\emscripten_temp_5gneoqzq\main_0.o
>>> defined as (i32, f32, i32, f32, i32, i32, i32, i32, i32, i32) -> i32 in C:\Dropbox\MultiGame\multiGame\buildSystem\..\lib\raylib\emscripten\libskia.a(libskia.SkConicalGradient.o)
wasm-ld: warning: function signature mismatch: _ZN16SkGradientShader10MakeLinearEPK7SkPointPKjPKfi10SkTileModejPK8SkMatrix
>>> defined as (i32, i32, i32, i32, i32, i32, i32, i32) -> void in C:\Users\MyUser\AppData\Local\Temp\emscripten_temp_5gneoqzq\main_0.o
>>> defined as (i32, i32, i32, i32, i32, i32, i32) -> i32 in C:\Dropbox\MultiGame\multiGame\buildSystem\..\lib\raylib\emscripten\libskia.a(libskia.SkLinearGradient.o)
wasm-ld: warning: function signature mismatch: _ZN14SkColorFilters6MatrixEPKf
>>> defined as (i32, i32) -> void in C:\Users\MyUser\AppData\Local\Temp\emscripten_temp_5gneoqzq\main_0.o
>>> defined as (i32) -> i32 in C:\Dropbox\MultiGame\multiGame\buildSystem\..\lib\raylib\emscripten\libskia.a(libskia.SkMatrixColorFilter.o)
wasm-ld: warning: function signature mismatch: _Z23GrGLMakeNativeInterfacev
>>> defined as (i32) -> void in C:\Users\MyUser\AppData\Local\Temp\emscripten_temp_5gneoqzq\main_0.o
>>> defined as () -> i32 in C:\Dropbox\MultiGame\multiGame\buildSystem\..\lib\raylib\emscripten\libskia.a(gpu.GrGLMakeNativeInterface_webgl.o)
wasm-ld: warning: function signature mismatch: _ZN16SkGradientShader10MakeRadialERK7SkPointfPKjPKfi10SkTileModejPK8SkMatrix
>>> defined as (i32, i32, f32, i32, i32, i32, i32, i32, i32) -> void in C:\Users\MyUser\AppData\Local\Temp\emscripten_temp_5gneoqzq\main_0.o
>>> defined as (i32, f32, i32, i32, i32, i32, i32, i32) -> i32 in C:\Dropbox\MultiGame\multiGame\buildSystem\..\lib\raylib\emscripten\libskia.a(libskia.SkRadialGradient.o)
wasm-ld: warning: function signature mismatch: _ZN10SkSurfaces12RenderTargetEP18GrRecordingContextN5skgpu8BudgetedERK11SkImageInfoi15GrSurfaceOriginPK14SkSurfacePropsbb
>>> defined as (i32, i32, i32, i32, i32, i32, i32, i32, i32) -> void in C:\Users\MyUser\AppData\Local\Temp\emscripten_temp_5gneoqzq\main_0.o
>>> defined as (i32, i32, i32, i32, i32, i32, i32, i32) -> i32 in C:\Dropbox\MultiGame\multiGame\buildSystem\..\lib\raylib\emscripten\libskia.a(gpu.SkSurface_Ganesh.o)
wasm-ld: warning: function signature mismatch: _ZN6SkData12MakeWithCopyEPKvm
>>> defined as (i32, i32, i32) -> void in C:\Users\MyUser\AppData\Local\Temp\emscripten_temp_5gneoqzq\main_0.o
>>> defined as (i32, i32) -> i32 in C:\Dropbox\MultiGame\multiGame\buildSystem\..\lib\raylib\emscripten\libskia.a(libskia.SkData.o)
wasm-ld: warning: function signature mismatch: _ZN14SkImageFilters4BlurEff10SkTileMode5sk_spI13SkImageFilterERKNS_8CropRectE
>>> defined as (i32, f32, f32, i32, i32, i32) -> void in C:\Users\MyUser\AppData\Local\Temp\emscripten_temp_5gneoqzq\main_0.o
>>> defined as (f32, f32, i32, i32, i32) -> i32 in C:\Dropbox\MultiGame\multiGame\buildSystem\..\lib\raylib\emscripten\libskia.a(libskia.SkBlurImageFilter.o)
wasm-ld: warning: function signature mismatch: _ZN12SkColorSpace8MakeSRGBEv
>>> defined as (i32) -> void in C:\Users\MyUser\AppData\Local\Temp\emscripten_temp_5gneoqzq\main_0.o
>>> defined as () -> i32 in C:\Dropbox\MultiGame\multiGame\buildSystem\..\lib\raylib\emscripten\libskia.a(libskia.SkColorSpace.o)
wasm-ld: warning: function signature mismatch: _ZNK8SkBitmap10makeShaderE10SkTileModeS0_RK17SkSamplingOptionsRK8SkMatrix
>>> defined as (i32, i32, i32, i32, i32, i32) -> void in C:\Users\MyUser\AppData\Local\Temp\emscripten_temp_5gneoqzq\main_0.o
>>> defined as (i32, i32, i32, i32, i32) -> i32 in C:\Dropbox\MultiGame\multiGame\buildSystem\..\lib\raylib\emscripten\libskia.a(libskia.SkBitmap.o)
wasm-ld: warning: function signature mismatch: _ZN15GrDirectContext6MakeGLEv
>>> defined as (i32) -> void in C:\Users\MyUser\AppData\Local\Temp\emscripten_temp_5gneoqzq\main_0.o
>>> defined as () -> i32 in C:\Dropbox\MultiGame\multiGame\buildSystem\..\lib\raylib\emscripten\libskia.a(gpu.GrGLDirectContext.o)
wasm-ld: warning: function signature mismatch: _ZN10SkTypeface12MakeFromDataE5sk_spI6SkDataEi
>>> defined as (i32, i32, i32) -> void in C:\Users\MyUser\AppData\Local\Temp\emscripten_temp_5gneoqzq\main_0.o
>>> defined as (i32, i32) -> i32 in C:\Dropbox\MultiGame\multiGame\buildSystem\..\lib\raylib\emscripten\libskia.a(libskia.SkTypeface.o)
wasm-ld: warning: function signature mismatch: _ZN17SkPictureRecorder24finishRecordingAsPictureEv
>>> defined as (i32, i32) -> void in C:\Users\MyUser\AppData\Local\Temp\emscripten_temp_5gneoqzq\main_0.o
>>> defined as (i32) -> i32 in C:\Dropbox\MultiGame\multiGame\buildSystem\..\lib\raylib\emscripten\libskia.a(libskia.SkPictureRecorder.o)
wasm-ld: warning: function signature mismatch: _ZNK9SkPicture9serializeEPK13SkSerialProcs
>>> defined as (i32, i32, i32) -> void in C:\Users\MyUser\AppData\Local\Temp\emscripten_temp_5gneoqzq\main_0.o
>>> defined as (i32, i32) -> i32 in C:\Dropbox\MultiGame\multiGame\buildSystem\..\lib\raylib\emscripten\libskia.a(libskia.SkPicture.o)
wasm-ld: warning: function signature mismatch: _ZN10SkTextBlob12MakeFromTextEPKvmRK6SkFont14SkTextEncoding
>>> defined as (i32, i32, i32, i32, i32) -> void in C:\Users\MyUser\AppData\Local\Temp\emscripten_temp_5gneoqzq\main_0.o
>>> defined as (i32, i32, i32, i32) -> i32 in C:\Dropbox\MultiGame\multiGame\buildSystem\..\lib\raylib\emscripten\libskia.a(libskia.SkTextBlob.o)
I'm building my application with the latest version of emscripten (3.1.47), and am building the chrome/m119 branch, although I've had this issue with many branches going back to ~chrome/m80
This is my build command:
em++ -std=c++17 -g -s GL_ASSERTIONS=1 -s ASSERTIONS=1 -s SAFE_HEAP=1 -s STACK_OVERFLOW_CHECK=2 -s DEMANGLE_SUPPORT=1 -s VERBOSE=1 -o index.html src\main.cpp C:\Dropbox\MultiGame\multiGame\buildSystem\..\lib\raylib\emscripten\libskia.a C:\Dropbox\MultiGame\multiGame\buildSystem\..\lib\raylib\emscripten\libbox2d.a -IC:\Dropbox\MultiGame\multiGame\buildSystem\..\include\raylib -IC:\Dropbox\MultiGame\multiGame\buildSystem\..\include\raylib\skia -LC:\Dropbox\MultiGame\multiGame\buildSystem\..\lib\raylib\emscripten -lidbfs.js -fno-rtti -fno-exceptions -Wno-c++11-compat-deprecated-writable-strings -Wno-writable-strings -DPLAYING_testGame -s MAX_WEBGL_VERSION=2 -s ALLOW_MEMORY_GROWTH=1 -s LLD_REPORT_UNDEFINED=1 -s ERROR_ON_UNDEFINED_SYMBOLS=0 -s INITIAL_MEMORY=64MB -s STACK_SIZE=10MB --preload-file ..\assetsEmbed@assets