We are making use of libjpeg compiled to javascript in a webapp to perform jpeg decoding and encoding in webworkers. This works great, however i've been reading that simd support in emscripten has improved greatly recently. Therefore I am now trying to compile libjpeg-turbo.
I have managed to correctly set up my configure and Makefiles and now I end up with two bitcode files libturbojpeg.a and libsimd.a libsimd.a contains the C code for x64, i386, ARM, and MIPS versions along with the relevant .o files. When trying to combine libturbojpeg.a and libsimd.a i get the following error: ERROR: Linking globals named 'jsimd_can_rgb_ycc': symbol multiply defined! I assume this is because the globals are defined in each of the various CPU types C files. And should be loaded depending on which type of CPU is present. My question is how am I supposed to handle this situation with Emscipten? If I try to compile them directly with the following: sudo ../emcc -O3 ./decoder.cc ./.libs/libturbojpeg.a ./simd/.libs/libsimd.a -o jpegturbo.js --bind --memory-init-file 0 -s TOTAL_MEMORY=100000000 -s DISABLE_EXCEPTION_CATCHING=1 -s ASSERTIONS=1 I get unresolved symbol warnings for all of the simd functions. I'm relatively new to Emscripten so I assume i'm doing something stupidly wrong. Any help would be greatly appreciated -- 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.
