emscripten-core / emscripten-core/emscripten

Compiling with main_module override FETCH functions

Open
#11,390 3 comments 0 reactions 0 assignees View on GitHub
good first bug help wanted
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.