Thanks, now I see it. It looks like those methods are in compiler-rt, so presumably clang inserts calls to them automatically. We don't currently build compiler-rt. I'm kind of surprised that we would only need it for this, and that this wasn't noticed until now. Perhaps I'm missing something.
On Wed, Oct 14, 2015 at 2:11 PM, Richard Lincoln <[email protected]> wrote: > If I compile this code in emscripten_test.c: > > #include <complex.h> > > int main(int arc, char **argv) { > double complex a, b, c; > a = 2.0+3.0*I; > b = 3.0+4.0*I; > c = a * b; > c = a / b; > return 0; > } > > Then compile with the command: > > emcc emscripten_test.c -o emscripten_test.js > > The output is: > > warning: unresolved symbol: __divdc3 > warning: unresolved symbol: __muldc3 > > Then run the output with nodejs or serve up this HTML using python: > > <!DOCTYPE html> > <html> > <head> > <meta charset="utf-8"> > <meta name="viewport" content="width=device-width, initial-scale=1.0"> > <title>test</title> > </head> > <body> > <script src="emscripten_test.js"></script> > </body> > </html> > > I get this output in the Firefox console: > > pre-main prep time: 3 ms emscripten_test.js:146:7 > missing function: __divdc3 emscripten_test.js:146:7 > uncaught exception: abort(-1) at jsStackTrace@ > http://localhost:8000/emscripten_test.js:1173:13 > stackTrace@http://localhost:8000/emscripten_test.js:1190:22 > abort@http://localhost:8000/emscripten_test.js:9893:44 > ___divdc3@http://localhost:8000/emscripten_test.js:1788:53 > _main@http://localhost:8000/emscripten_test.js:5903:1 > asm._main@http://localhost:8000/emscripten_test.js:9668:8 > callMain@http://localhost:8000/emscripten_test.js:9758:15 > doRun@http://localhost:8000/emscripten_test.js:9816:42 > run@http://localhost:8000/emscripten_test.js:9830:5 > @http://localhost:8000/emscripten_test.js:9919:1 > <unknown> > -1 emscripten_test.js:143:7 > -1 emscripten_test.js:146:7 > > The output from $ emcc --version: > > emcc (Emscripten gcc/clang-like replacement) 1.34.12 () > Copyright (C) 2014 the Emscripten authors (see AUTHORS.txt) > This is free and open source software under the MIT license. > There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A > PARTICULAR PURPOSE. > > On Wednesday, October 14, 2015 at 8:39:24 PM UTC+2, Alon Zakai wrote: >> >> Is the code sample above what you are building? And with what command? >> >> On Wed, Oct 14, 2015 at 4:56 AM, Richard Lincoln <[email protected]> >> wrote: >> >>> I have updated to version 1.34.12 (it takes 2h15m on this old machine) >>> but I still get the same error. I got the message that libc was updated: >>> >>> INFO:root:(Emscripten: Running sanity checks) >>> WARNING:root:generating system library: libc.bc... >>> WARNING:root: ok >>> WARNING:root:generating system library: dlmalloc.bc... >>> WARNING:root: ok >>> >>> On Wednesday, October 14, 2015 at 1:54:48 AM UTC+2, Alon Zakai wrote: >>>> >>>> I don't see the problem on 1.34.12. We updated our libc quite a bit >>>> between those revisions, so I suggest trying the incoming branch. >>>> >>>> On Tue, Oct 13, 2015 at 2:59 PM, Richard Lincoln <[email protected]> >>>> wrote: >>>> >>>>> Interestingly, on execution complex multiplication works as expected. >>>>> It is only complex division that produces an error: >>>>> >>>>> missing function: __divdc3 >>>>> >>>>> Can anyone reproduce this result? >>>>> >>>>> >>>>> On Tuesday, October 13, 2015 at 9:02:11 PM UTC+2, Richard Lincoln >>>>> wrote: >>>>>> >>>>>> I receive these two warnings when compiling code with complex number >>>>>> multiplication and division: >>>>>> >>>>>> warning: unresolved symbol: __divdc3 >>>>>> warning: unresolved symbol: __muldc3 >>>>>> >>>>>> I can reproduce the message by compiling this: >>>>>> >>>>>> #include <complex.h> >>>>>> >>>>>> void cdiv() { >>>>>> double complex a, b, c; >>>>>> a = 2.0+3.0*I; >>>>>> b = 3.0+4.0*I; >>>>>> c = a / b; >>>>>> c = a * b; >>>>>> } >>>>>> >>>>>> The message is received using emcc 1.34.1. If I change the type to float >>>>>> complex I get: >>>>>> >>>>>> warning: unresolved symbol: __mulsc3 >>>>>> warning: unresolved symbol: __divsc3 >>>>>> >>>>>> Is there a library that I should be linking to? Perhaps something is >>>>>> missing from Emscripten. Should I create an issue for this? >>>>>> >>>>>> Regards, >>>>>> Richard >>>>>> >>>>> -- >>>>> 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]. >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> >>>> -- >>> 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]. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- > 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]. > For more options, visit https://groups.google.com/d/optout. > -- 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]. For more options, visit https://groups.google.com/d/optout.
