Btw here is the precise command that triggers some errors: (current directory = TBB directory after you unzipped the source code archive)
/home/ubuntu/myfastcomp/emscripten-fastcomp/build/Emscripten/emscripten/em++ -o concurrent_hash_map.o -c -MMD -DTBB_USE_DEBUG -DDO_ITT_NOTIFY -g -O0 -DUSE_PTHREAD -m64 -mrtm -fPIC -D__TBB_BUILD=1 -Wall -Wno-parentheses -Wno-non-virtual-dtor -I./src -I./src/rml/include -I./include ./src/tbb/concurrent_hash_map.cpp and this one works fine: (you just replace em++ by clang) /home/ubuntu/myfastcomp/emscripten-fastcomp/build/Release/bin/clang++ -o concurrent_hash_map.o -c -MMD -DTBB_USE_DEBUG -DDO_ITT_NOTIFY -g -O0 -DUSE_PTHREAD -m64 -mrtm -fPIC -D__TBB_BUILD=1 -Wall -Wno-parentheses -Wno-non-virtual-dtor -I./src -I./src/rml/include -I./include ./src/tbb/concurrent_hash_map.cpp On Wed, May 11, 2016 at 1:25 AM, François Ruty <[email protected]> wrote: > OK so since it appears it's a no-go for Intel TBB, I will have to get rid > of this dependency, so I think I won't investigate the issue with em++ > Here is how you can reproduce the issue though > > OS: ubuntu 14.04 64 bits (AWS VM) > > I successfully built Emscripten from source on ubuntu 14.04 64bit using > those instructions: > https://kripken.github.io/emscripten-site/docs/building_from_source/building_emscripten_from_source_on_linux.html > --> Emscripten 1.36.0 > > Then I downloaded the most recent source of Intel TBB library --> Intel > TBB 4.4 > > To build Intel TBB, there is no configure script and no install, so you > only have to run make. > > In the make procedure a lot of stuff is hardcoded so using emmake does not > work, it's still g++ which is called for compilation. > > So, I symlinked g++ to em++ and I started having a lot of errors, for > example: > Unsupported machine word size > or: > ./include/tbb/tbb_machine.h:338:9: error: use of undeclared identifier > '__TBB_Yield' > __TBB_Yield(); > > I think the reason is that em++ probably sets a custom target OS for cross > compilation (something like "emscripten" or "unknown", so the TBB configure > header has no pre-made config to include for that OS and a lot of stuff end > up undefined. > I modified TBB headers to force it to use its pre-made linux 32 bit config > and got rid of those errors. > > Then, I started having issues about "incorrect output for asm" errors, > which were caused by various areas of TBB headers. > > BUT, if instead of symlinking g++ to em++, I symlink g++ to emscripten > clang (fastcomp) binary, I have no error and everything builds fine! > > So, somehow, the em++ wrapper, either via a flag or via an environment > variable, causes those errors. > > > > > > On Wed, May 11, 2016 at 12:47 AM, François Ruty <[email protected] > > wrote: > >> ok many thanks for the information >> >> On Tue, May 10, 2016 at 9:11 PM, Charles Vaughn <[email protected]> >> wrote: >> >>> I believe TBB includes x86 specific assembly code, so it won't work. >>> >>> On Tuesday, May 10, 2016 at 10:22:48 AM UTC-7, François Ruty wrote: >>>> >>>> ok thanks I'll keep you updated when I have news, in next couple of days >>>> >>>> On Tue, May 10, 2016 at 6:43 PM, Alon Zakai <[email protected]> wrote: >>>> >>>>> 1. Emscripten supports pthreads, so if TBB uses that under the hood, >>>>> things might just work? That happens with c++ standard library <thread>, >>>>> for example. >>>>> >>>>> https://kripken.github.io/emscripten-site/docs/porting/pthreads.html >>>>> >>>>> 2. Yes, sounds like you are seeing a bug that should be fixed. In >>>>> general that should work. >>>>> >>>>> On Tue, May 10, 2016 at 9:39 AM, <[email protected]> wrote: >>>>> >>>>>> Hello, I have 2 questions. I'm trying to port a project with >>>>>> Emscripten, and the project has among its dependencies Intel TBB library. >>>>>> >>>>>> Question 1: do I have to rewrite all the project to get rid of all >>>>>> multithreading code, or does Emscripten somehow map multithreaded code to >>>>>> monothreaded code? >>>>>> >>>>>> Question 2: When trying to build the project with em++, it is parsing >>>>>> dependencies headers and it raises errors with undeclared unidentifiers. >>>>>> I isolated one particular command with em++ that raises such errors. >>>>>> When I run the same command with Emscripten clang++ version, there is >>>>>> no problem. >>>>>> So I'm trying to go through emcc.py to find out which stuff added by >>>>>> emcc, on top of clang++, is causing the problem. >>>>>> Does that sound like a reasonable approach? Are there any known cause >>>>>> that could explain that a compilation with Emscripten clang++ fastcomp is >>>>>> OK but with em++, is not? >>>>>> >>>>>> many thanks >>>>>> >>>>>> -- >>>>>> 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 a topic in the >>>>> Google Groups "emscripten-discuss" group. >>>>> To unsubscribe from this topic, visit >>>>> https://groups.google.com/d/topic/emscripten-discuss/-SQboIAl2ew/unsubscribe >>>>> . >>>>> To unsubscribe from this group and all its topics, send an email to >>>>> [email protected]. >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> >>>> >>>> >>>> -- >>>> François RUTY >>>> Luna Co-Founder and CEO >>>> www.luna-technology.com >>>> [email protected] >>>> +33 (0)6 73 44 76 69 >>>> >>> -- >>> You received this message because you are subscribed to a topic in the >>> Google Groups "emscripten-discuss" group. >>> To unsubscribe from this topic, visit >>> https://groups.google.com/d/topic/emscripten-discuss/-SQboIAl2ew/unsubscribe >>> . >>> To unsubscribe from this group and all its topics, send an email to >>> [email protected]. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> >> >> -- >> François RUTY >> Luna Co-Founder and CEO >> www.luna-technology.com >> [email protected] >> +33 (0)6 73 44 76 69 >> > > > > -- > François RUTY > Luna Co-Founder and CEO > www.luna-technology.com > [email protected] > +33 (0)6 73 44 76 69 > -- François RUTY Luna Co-Founder and CEO www.luna-technology.com [email protected] +33 (0)6 73 44 76 69 -- 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.
