facebook / wdt

Warp speed Data Transfer (WDT) is an embeddedable library (and command line tool) aiming to transfer data between 2 systems as fast as possible over multiple TCP paths.
https://www.facebook.com/WdtOpenSource
Other
2.86k stars 391 forks source link

Add support for ARM devices; Raspberry Pi, etc. #184

Open ritiek opened 5 years ago

ritiek commented 5 years ago

wdt currently does not compile on ARM devices. I tried disabling -msse4.2 and -mpclmul compiler flags in CMakeLists.txt which are not supported on ARM but then it gave me:

$ make
...
[ 31%] Building CXX object CMakeFiles/wdt_min.dir/ErrorCodes.cpp.o
[ 34%] Building CXX object CMakeFiles/wdt_min.dir/util/FileByteSource.cpp.o
[ 36%] Building CXX object CMakeFiles/wdt_min.dir/util/FileCreator.cpp.o
/tmp/ccaKjm1j.s: Assembler messages:
/tmp/ccaKjm1j.s:1365: Error: selected processor does not support `yield' in ARM mode
/tmp/ccaKjm1j.s:4125: Error: selected processor does not support `yield' in ARM mode
/tmp/ccaKjm1j.s:4355: Error: selected processor does not support `yield' in ARM mode
CMakeFiles/wdt_min.dir/build.make:206: recipe for target 'CMakeFiles/wdt_min.dir/util/FileCreator.cpp.o' failed
make[2]: *** [CMakeFiles/wdt_min.dir/util/FileCreator.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/wdt_min.dir/all' failed
make[1]: *** [CMakeFiles/wdt_min.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

Specifically:

Error: selected processor does not support `yield' in ARM mode

I've hit a wall here.

ldemailly commented 5 years ago

I guess you could try to conditionally exclude the yield call but you may need to have to replace that by an arm specific way ?

ritiek commented 5 years ago

Yep, I guess so but I am not sure how the code is supposed to be replaced to work on ARM devices.

ldemailly commented 5 years ago

google search may give some hint: https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/YGVrZbxYOlU