I think the emscripten_log issue is

https://github.com/emscripten-core/emscripten/issues/9793

which I am not sure what to do about. Perhaps at minimum we should make
that error message also suggest flipping EXPORT_ALL?

On Wed, Dec 18, 2019 at 2:53 PM 'Sam Clegg' via emscripten-discuss <
[email protected]> wrote:

>
>
> On Tue, Dec 17, 2019 at 8:08 AM Mehdi Sabwat <[email protected]>
> wrote:
>
>> Hi,
>>
>> I am trying to understand the expected behavior of Emscripten when we
>> have a SIDE_MODULE that links to a standard library.
>>
>> I am having this message:
>> Assertion failed: missing linked function `_emscripten_log`. perhaps a
>> side module was not linked in? if this global was expected to arrive from
>> a system library, try to build the MAIN_MODULE with EMCC_FORCE_STDLIBS=1
>> in the environment
>>
>> with the following code :
>>
>> test1.c:
>> #include <dlfcn.h>
>> #include <stdio.h>
>> #include <pthread.h>
>> #include <emscripten.h>
>>
>> int main(int ac, char **av)
>> {
>>   void *handle = dlopen("./libwasmdog.wasm", RTLD_LAZY);
>>   void (*fun_print_name)(const char *) = dlsym(handle, "print_name");
>>   fun_print_name(av[1]);
>>   /*
>>
>>     emscripten_log(EM_LOG_CONSOLE, "removing this call will brake
>> linking\n");
>>     emscripten_debugger();
>>
>>   */
>>   return 0;
>> }
>>
>> EMCC_FORCE_STDLIBS=1 emcc -g -s MAIN_MODULE=1 test1.c -o test.html --
>> preload-file ./libwasmdog.wasm -s ALLOW_MEMORY_GROWTH=1
>> and
>> dog.c:
>> #include "animal.h"
>> #include <stdio.h>
>> #include <stdlib.h>
>> #include <emscripten.h>
>>
>> void print_name(const char *type)
>> {
>>   emscripten_log(EM_LOG_JS_STACK, "\n");
>>   emscripten_debugger();
>>   printf("Je suis un %s\n", type);
>> }
>> emcc -g -s SIDE_MODULE=1 dog.c -o libwasmdog.wasm -s 
>> "EXPORTED_FUNCTIONS=['_emscripten_log',
>> '_emscripten_debugger']"
>>
>> Is this a bug, or am I doing it wrong?
>>
>
> One this that looks wrong here is that you should be exporting
> `print_name` from the side module..  Those emscripten functions are being
> imported (in this case from JS).
>
> However that doesn't explain why _emscripten_log would be undefined.   One
> thing you could try is calling `emscripten_log` from the main module too..
> that would force the JS code for this function to be included.   If that
> fixes the problem then I guess you need to
> `EXTRA_EXPORTED_RUNTIME_METHODS`.  TBH I'm surprised this isn't already
> included when building with MAIN_MODULE.   I seems like all JS functions
> should be included in that case, but I must be mis-remembering.
>
>
>
>> Thank you!
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "emscripten-discuss" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/emscripten-discuss/470197cd-6ade-440b-a945-9e271b09c77f%40googlegroups.com
>> <https://groups.google.com/d/msgid/emscripten-discuss/470197cd-6ade-440b-a945-9e271b09c77f%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
> --
> You received this message because you are subscribed to the Google Groups
> "emscripten-discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/emscripten-discuss/CAL_va2_WuveDwGK1UEAq%3DopKnF_5eDqzpo3R_%3DQVr_Sz2gR%3DEQ%40mail.gmail.com
> <https://groups.google.com/d/msgid/emscripten-discuss/CAL_va2_WuveDwGK1UEAq%3DopKnF_5eDqzpo3R_%3DQVr_Sz2gR%3DEQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"emscripten-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/emscripten-discuss/CAEX4NpRUTGE8WUQis0ZGpaYKS4n15N2maFTqSVUqjGrNv%2BcnrA%40mail.gmail.com.

Reply via email to