Expose emscripten_dir variable via config#321
Conversation
| # We compute this here rather than via Makefile.envs or DEFAULT_CONFIG so | ||
| # that the path is always the resolved, versioned path – not the shared | ||
| # xbuildenv symlink, because there are some issues I have noticed with | ||
| # concurrent builds especially when being used in cibuildwheel etc. |
There was a problem hiding this comment.
This is because the Emscripten version was being mis-found during concurrent builds. For example, in pypa/cibuildwheel#2800, we were previously relying on the symlinks. When running the test suite in parallel, it would find Emscripten 3.1.58 when we would need 4.0.9 and cause weird failures in the tests. I kept the comment a bit vague, though, indeed. Happy to add more details if you need me to?
emcc_path variable via configemscripten_dir variable via config
|
Thanks for the review! Leaving a note here about the comment, if we want to take a look at this later:
|
Thanks for the investigation. Actually, I guess this is something that we need to think more carefully about, not just for emscripten but for other config variables as well. I personally never considered concurrent builds when designing xbuildenv installation. If cibuildwheel is using parallel builds a lot, we should be make pyodide-build more concurrent-robust. |
Make the Emscripten directory available via config so that we don't have to compute the
xbuildenv_pathmess and go back and forth to find out where the Emscripten compiler binary and other tool binaries are located.