emscripten-core / emscripten-core/emscripten
Compiling with main_module override FETCH functions
- Dominant language
- C++
- Stars
- 27.6k
- Forks
- 3.6k
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 105
Description
HI,
Compiling with the option -s MAIN_MODULE=1 on a C code that uses emscripten_fetch function (with -s FETCH = 1) provides this error :
external function '_emscripten_fetch_load_cached_data' is missing. perhaps a side module was not linked in? if this function was expected to arrive from a system library, try to build the MAIN_MODULE with EMCC_FORCE_STDLIBS=1 in the environment
The reason is that the js file generated with -s MAIN_MODULE=1 override this function :
function __emscripten_fetch_load_cached_data(db, fetch, onsuccess, onerror)
with this :
function __emscripten_fetch_load_cached_data(
) {
if (!Module['__emscripten_fetch_load_cached_data']) abort("external function '_emscripten_fetch_load_cached_data' is missing. perhaps a side module was not linked in? if this function was expected to arrive from a system library, try to build the MAIN_MODULE with EMCC_FORCE_STDLIBS=1 in the environment");
return Module['__emscripten_fetch_load_cached_data'].apply(null, arguments);
}
However, both functions are existing, and deleting the second one (the one that override __emscripten_fetch_load_cached_data) fix the issue.
This is surely a bug in the transpiling process, that set this function as a STDLIB function, which isn't.
Contributor guide
Assessment
This issue has not been assessed yet.