emscripten-core/emscripten

Compiling with main_module override FETCH functions

Open

#11.390 aberto em 10 de jun. de 2020

Ver no GitHub
 (3 comments) (0 reactions) (0 assignees)C++ (3.519 forks)batch import
good first bughelp wanted

Métricas do repositório

Stars
 (27.361 stars)
Métricas de merge de PR
 (Mesclagem média 19d 10h) (147 fundiu PRs em 30d)

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.

Guia do colaborador