2017-02-03 4 views
7

में RxCpp चलाते समय मैं llvm के आईआर दुभाषिया lli में RxCpp उदाहरण को चलाने के लिए चाहता हूं।llvm त्रुटि: स्थानांतरण अभी तक कार्यान्वित नहीं किया गया है! जब orxjit या lli

दुर्भाग्य से, RxCpp उदाहरण के किसी भी चल रहे lli में विफल रहता है:

git clone https://github.com/Reactive-Extensions/RxCpp.git --depth 1 
cd RxCpp/Rx/v2/examples/pythogerian 
clang++ -S -emit-llvm -fno-use-cxa-exit -I../../src main.cpp 
lli main.ll 

त्रुटि संदेश:

Relocation type not implemented yet! 
UNREACHABLE executed at llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp:232! 

सवाल:

क्या इस त्रुटि वास्तव में क्या मतलब है? - एलवीएम के ओआरसी-जिट के भीतर क्या धारणाएं की जाती हैं जो संतुष्ट नहीं हैं?

क्या कोई कामकाज है? - क्या कोई एलएलवीएम-आईआर ट्रांसफॉर्मेशन है जो मैं इस काम को करने के लिए आवेदन कर सकता हूं (उदाहरण के लिए। कंपाइलर-फ्लैग के माध्यम से)?

आरएक्ससीपीपी इस विशेष समस्या को एलवीएम के ऑर्कजीट में किस कारण से उपयोग कर रहा है?

परीक्षण किया पर:

clang version 5.0.0 (https://github.com/llvm-mirror/clang.git 6c9e299494de2a5b0425e46bc937f29a05128252) 
clang version 4.0.0-+rc1-1 (tags/RELEASE_400/rc1) 
clang version 3.9.0-1 (tags/RELEASE_390/final) 
clang version 3.8.1-12 (tags/RELEASE_381/final) 
Target: x86_64-pc-linux-gnu 
Thread model: posix 
InstalledDir: /usr/bin 
+0

आप उल्लेख कर सकते हैं कि आप किस क्लैंग संस्करण का उपयोग कर रहे हैं, और आप किस प्लेटफॉर्म पर हैं। –

उत्तर

1

thread_local/__thread साथ एक मुद्दा लगता है।

सफेद स्थान के साथ rx-utils.hpp में #define RXCPP_THREAD_LOCAL __thread की जगह इस मुद्दे "ठीक करता है"।

कारण एलएलवीएम बैकएंड में विफलता है क्योंकि यह अभी तक टीएलएस का समर्थन नहीं करता है। यह Bug 21431 से संबंधित है और तथ्य यह है कि llvm के RuntimeDyld में कुछ स्थानांतरण रणनीतियां अनुपलब्ध हैं।

संबंधित मुद्दे