-
Notifications
You must be signed in to change notification settings - Fork 3.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Linking error after 1.40.0: undefined symbol: _tempFixedLengthArray (referenced by emscripten_glInvalidateFramebuffer__deps) #11771
Comments
As this PR is also rendering-related in Godot I first thought it was the culprit, but to be sure I tried building an antecedent commit which built fine with 1.39.20, and it does fail similarly with 1.40.0. (CC @Faless) |
1.40.0 introduced a regression for us: emscripten-core/emscripten#11771 This is not necessary in the master branch, presumably because it doesn't build any WebGL code (yet).
Yup.. i wonder how we don't have tests that would catch this :( |
Same problem here. I get linker errors because of a missing __heapAccessShiftForWebGLHeap function (and a handful others) when linking WebGL2 apps (linking WebGL1 applications appears to work). |
Yeah... I just can't understand how we don't have tests that use webgl2 (or at least those symbols from webgl2). I've got a simple fix, but I'd like to add test coverage when I land it too. |
Both in Godot's and in my case it seems to be related to creating 3D textures, so maybe it doesn't generally happen when linking WebGL2 apps, but only when calling specific WebGL2 functions (which might explain why it isn't currently covered by tests) |
Btw, maybe I can contribute some tests with nearly zero effort: the samples in this directory are all self-contained and easy to compile with just emcc (no build system needed): https://github.com/floooh/sokol-samples/tree/master/html5 The CMakeLists.txt file can be ignored, and instead the sokol_gfx.h file from here copied into the same directory as the source files: https://github.com/floooh/sokol Then the samples can be compiled with (for instance):
Most of the samples actually don't require WebGL2 though (only mipmap-emsc.c, arraytex-emsc.c and mrt-emsc.c), and sokol_gfx.h doesn't call all WebGL2 functions, but still has pretty good coverage. (PS: maybe ignore the |
Thanks @floooh , I'll try to get some of those added! |
Perhaps we should also have a super simple webgl2 test that references all the symbols.. I think that can be done by simply calling the getProcAddress function which pulls in the while API. |
As suggested by floooh in #11771 (comment) This just adds the 3 WebGL2 ones, which seems like an area we have too little coverage of.
1.40.0 introduced a regression for us: emscripten-core/emscripten#11771 This is not necessary in the master branch, presumably because it doesn't build any WebGL code (yet).
Godot builds have started failing with Emscripten 1.40.0 with the following linking error:
It built fine a few hours before with 1.39.20.
Last successful build logs: https://github.com/godotengine/godot/runs/929922260
First failing build log: https://github.com/godotengine/godot/runs/931617809 (same code, it's a merge of the PR tested in the last successful CI build, which was up to date with its base branch)
This is only reproducible with the
3.2
branch of Godot, as themaster
branch is migrating to Vulkan and does not have a GL backend yet.I see a few WebGL related changes in 1.40.0 (bcf65fe and 2f1d41f), though they're not referenced in the 1.40.0 release notes.
Steps to reproduce:
3.2
branchscons p=javascript -j8
It should be a build from scratch, relinking a successful build from 1.39.20 with 1.40.0 does not trigger the issue.
The text was updated successfully, but these errors were encountered: