19
19
20
20
#include " llvm/ExecutionEngine/Orc/LLJIT.h"
21
21
#include " llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h"
22
+ #include " llvm/MC/TargetRegistry.h"
22
23
#include " llvm/Support/Error.h"
23
24
#include " llvm/Support/TargetSelect.h"
24
25
#include " llvm/Support/Threading.h"
@@ -44,14 +45,23 @@ static bool HostSupportsJit() {
44
45
return false ;
45
46
}
46
47
48
+ // Some tests require a arm-registered-target
49
+ static bool IsARMTargetRegistered () {
50
+ llvm::Triple TT;
51
+ TT.setArch (llvm::Triple::arm);
52
+ TT.setVendor (llvm::Triple::UnknownVendor);
53
+ TT.setOS (llvm::Triple::UnknownOS);
54
+
55
+ std::string UnusedErr;
56
+ return llvm::TargetRegistry::lookupTarget (TT.str (), UnusedErr);
57
+ }
58
+
47
59
struct LLVMInitRAII {
48
60
LLVMInitRAII () {
49
- llvm::InitializeNativeTarget ();
50
- llvm::InitializeNativeTargetAsmPrinter ();
51
- LLVMInitializeARMTarget ();
52
- LLVMInitializeARMTargetInfo ();
53
- LLVMInitializeARMTargetMC ();
54
- LLVMInitializeARMAsmPrinter ();
61
+ llvm::InitializeAllTargets ();
62
+ llvm::InitializeAllTargetInfos ();
63
+ llvm::InitializeAllTargetMCs ();
64
+ llvm::InitializeAllAsmPrinters ();
55
65
}
56
66
~LLVMInitRAII () { llvm::llvm_shutdown (); }
57
67
} LLVMInit;
@@ -190,6 +200,9 @@ TEST(InterpreterExtensionsTest, DISABLED_DefaultCrossJIT) {
190
200
#else
191
201
TEST (InterpreterExtensionsTest, DefaultCrossJIT) {
192
202
#endif
203
+ if (!IsARMTargetRegistered ())
204
+ GTEST_SKIP ();
205
+
193
206
IncrementalCompilerBuilder CB;
194
207
CB.SetTargetTriple (" armv6-none-eabi" );
195
208
auto CI = cantFail (CB.CreateCpp ());
@@ -204,6 +217,9 @@ TEST(InterpreterExtensionsTest, DISABLED_CustomCrossJIT) {
204
217
#else
205
218
TEST (InterpreterExtensionsTest, CustomCrossJIT) {
206
219
#endif
220
+ if (!IsARMTargetRegistered ())
221
+ GTEST_SKIP ();
222
+
207
223
std::string TargetTriple = " armv6-none-eabi" ;
208
224
209
225
IncrementalCompilerBuilder CB;
0 commit comments