Comments (9)
Btw. I tried to change the version of LLVM to llvm70 in the build.sh
script and still getting the later error:
[ 72%] Building CXX object CMakeFiles/rellic-decomp-7.0.dir/rellic/AST/Util.cpp.o
/var/tmp/xchalup4/rellic/rellic-build/libraries/llvm/bin/clang++ -DGFLAGS_IS_A_DLL=0 -DGOOGLE_GLOG_DLL_DECL="" -DNDEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -isystem /var/tmp/xchalup4/rellic/rellic-build -isystem /var/tmp/xchalup4/rellic -isystem /var/tmp/xchalup4/rellic/rellic-build/libraries/llvm/include -isystem /var/tmp/xchalup4/rellic/rellic-build/libraries/z3/include -isystem /var/tmp/xchalup4/rellic/rellic-build/libraries/glog/include -isystem /var/tmp/xchalup4/rellic/rellic-build/libraries/gflags/include -O2 -g -DNDEBUG -Wall -Wextra -Wno-unused-parameter -Wno-c++98-compat -Wno-unreachable-code-return -Wno-nested-anon-types -Wno-extended-offsetof -Wno-variadic-macros -Wno-return-type-c-linkage -Wno-c99-extensions -Wno-ignored-attributes -Wno-unused-local-typedef -Wno-unknown-pragmas -Wno-unknown-warning-option -fPIC -fno-omit-frame-pointer -fvisibility-inlines-hidden -fno-exceptions -fno-asynchronous-unwind-tables -Wgnu-alignof-expression -Wno-gnu-anonymous-struct -Wno-gnu-designator -Wno-gnu-zero-variadic-macro-arguments -Wno-gnu-statement-expression -gdwarf-2 -g3 -O3 -Werror -pedantic -fopenmp=libomp -std=c++11 -o CMakeFiles/rellic-decomp-7.0.dir/rellic/AST/Util.cpp.o -c /var/tmp/xchalup4/rellic/rellic/AST/Util.cpp
/var/tmp/xchalup4/rellic/rellic/AST/ExprCombine.cpp:109:17: error: no matching function for call to 'ignoringParens'
has(ignoringParens(binaryOperator(stmt().bind("binop")))))) {}
^~~~~~~~~~~~~~
/var/tmp/xchalup4/rellic/rellic-build/libraries/llvm/include/clang/ASTMatchers/ASTMatchers.h:795:25: note: candidate function not viable: no known conversion from
'clang::ast_matchers::internal::BindableMatcher<clang::Stmt>' to 'const internal::Matcher<QualType>' for 1st argument
AST_MATCHER_P(QualType, ignoringParens,
^
/var/tmp/xchalup4/rellic/rellic-build/libraries/llvm/include/clang/ASTMatchers/ASTMatchersMacros.h:130:32: note: expanded from macro 'AST_MATCHER_P'
AST_MATCHER_P_OVERLOAD(Type, DefineMatcher, ParamType, Param, 0)
^
/var/tmp/xchalup4/rellic/rellic-build/libraries/llvm/include/clang/ASTMatchers/ASTMatchersMacros.h:150:57: note: expanded from macro 'AST_MATCHER_P_OVERLOAD'
inline ::clang::ast_matchers::internal::Matcher<Type> DefineMatcher( \
^
from rellic.
And LLVM 8:
[100%] Linking CXX executable rellic-decomp-8.0
/var/tmp/xchalup4/rellic/rellic-build/libraries/cmake/bin/cmake -E cmake_link_script CMakeFiles/rellic-decomp-8.0.dir/link.txt --verbose=1
/var/tmp/xchalup4/rellic/rellic-build/libraries/llvm/bin/clang++ -O2 -g -DNDEBUG -rdynamic CMakeFiles/rellic-decomp-8.0.dir/rellic/AST/Compat/Stmt.cpp.o CMakeFiles/rellic-decomp-8.0.dir/rellic/AST/Compat/Expr.cpp.o CMakeFiles/rellic-decomp-8.0.dir/rellic/AST/InferenceRule.cpp.o CMakeFiles/rellic-decomp-8.0.dir/rellic/AST/DeadStmtElim.cpp.o CMakeFiles/rellic-decomp-8.0.dir/rellic/AST/CondBasedRefine.cpp.o CMakeFiles/rellic-decomp-8.0.dir/rellic/AST/ExprCombine.cpp.o CMakeFiles/rellic-decomp-8.0.dir/rellic/AST/GenerateAST.cpp.o CMakeFiles/rellic-decomp-8.0.dir/rellic/AST/IRToASTVisitor.cpp.o CMakeFiles/rellic-decomp-8.0.dir/rellic/AST/LoopRefine.cpp.o CMakeFiles/rellic-decomp-8.0.dir/rellic/AST/NestedCondProp.cpp.o CMakeFiles/rellic-decomp-8.0.dir/rellic/AST/NestedScopeCombiner.cpp.o CMakeFiles/rellic-decomp-8.0.dir/rellic/AST/Util.cpp.o CMakeFiles/rellic-decomp-8.0.dir/rellic/AST/Z3CondSimplify.cpp.o CMakeFiles/rellic-decomp-8.0.dir/rellic/AST/Z3ConvVisitor.cpp.o CMakeFiles/rellic-decomp-8.0.dir/rellic/BC/Util.cpp.o CMakeFiles/rellic-decomp-8.0.dir/rellic/BC/Compat/Value.cpp.o CMakeFiles/rellic-decomp-8.0.dir/tools/decomp/Decomp.cpp.o -o rellic-decomp-8.0 libraries/llvm/lib/libLLVMCore.a libraries/llvm/lib/libLLVMSupport.a libraries/llvm/lib/libLLVMAnalysis.a libraries/llvm/lib/libLLVMipo.a libraries/llvm/lib/libLLVMIRReader.a libraries/llvm/lib/libLLVMBitReader.a libraries/llvm/lib/libLLVMBitWriter.a libraries/llvm/lib/libLLVMTransformUtils.a libraries/llvm/lib/libLLVMScalarOpts.a libraries/llvm/lib/libLLVMLTO.a libraries/llvm/lib/libclangIndex.a libraries/llvm/lib/libclangCodeGen.a libraries/llvm/lib/libclangASTMatchers.a libraries/llvm/lib/libclangTooling.a libraries/z3/bin/libz3.a libraries/glog/lib/libglog.a libraries/gflags/lib/libgflags.a libraries/llvm/lib/libLLVMLTO.a libraries/llvm/lib/libLLVMObjCARCOpts.a libraries/llvm/lib/libLLVMPasses.a libraries/llvm/lib/libLLVMCodeGen.a libraries/llvm/lib/libLLVMTarget.a libraries/llvm/lib/libLLVMCoroutines.a libraries/llvm/lib/libLLVMipo.a libraries/llvm/lib/libLLVMIRReader.a libraries/llvm/lib/libLLVMAsmParser.a libraries/llvm/lib/libLLVMBitWriter.a libraries/llvm/lib/libLLVMInstrumentation.a libraries/llvm/lib/libLLVMLinker.a libraries/llvm/lib/libLLVMVectorize.a libraries/llvm/lib/libLLVMScalarOpts.a libraries/llvm/lib/libLLVMAggressiveInstCombine.a libraries/llvm/lib/libLLVMInstCombine.a libraries/llvm/lib/libLLVMTransformUtils.a libraries/llvm/lib/libLLVMAnalysis.a libraries/llvm/lib/libLLVMCoverage.a libraries/llvm/lib/libLLVMObject.a libraries/llvm/lib/libclangFormat.a libraries/llvm/lib/libclangToolingInclusions.a libraries/llvm/lib/libclangFrontend.a libraries/llvm/lib/libLLVMProfileData.a libraries/llvm/lib/libclangParse.a libraries/llvm/lib/libLLVMMCParser.a libraries/llvm/lib/libclangSerialization.a libraries/llvm/lib/libLLVMBitReader.a libraries/llvm/lib/libclangSema.a libraries/llvm/lib/libclangAnalysis.a libraries/llvm/lib/libclangASTMatchers.a libraries/llvm/lib/libclangEdit.a libraries/llvm/lib/libclangToolingCore.a libraries/llvm/lib/libclangAST.a libraries/llvm/lib/libclangRewrite.a libraries/llvm/lib/libclangLex.a libraries/llvm/lib/libclangDriver.a libraries/llvm/lib/libclangBasic.a libraries/llvm/lib/libLLVMCore.a libraries/llvm/lib/libLLVMMC.a libraries/llvm/lib/libLLVMBinaryFormat.a libraries/llvm/lib/libLLVMDebugInfoCodeView.a libraries/llvm/lib/libLLVMDebugInfoMSF.a libraries/llvm/lib/libLLVMOption.a libraries/llvm/lib/libLLVMSupport.a -lrt -ldl -lm libraries/llvm/lib/libLLVMDemangle.a -lomp -lpthread -lpthread
/usr/bin/ld: CMakeFiles/rellic-decomp-8.0.dir/rellic/AST/GenerateAST.cpp.o: in function `rellic::GenerateAST::StructureRegion(llvm::Region*)':
/var/tmp/xchalup4/rellic/rellic/AST/GenerateAST.cpp:326: undefined reference to `llvm::RegionBase<llvm::RegionTraits<llvm::Function> >::getNameStr[abi:cxx11]() const'
from rellic.
Hi, thanks for the report! What platform are you using?
from rellic.
GNU/Linux, more precisely, Ubuntu 18.10, x86_64
from rellic.
Great, managed to reproduce the 4.0 and 8.0 bugs. I'll look into it by thursday.
from rellic.
Great, thank you!
from rellic.
So, #31 resolves this issue, however for LLVM 8.0 I had to add --use-host-compiler
so the build command was ./rellic/scripts/build.sh --llvm-version 8.0 --use-host-compiler
and LLVM 7.0.0 has a double free issue in clang's ASTMatcher
library that is fixed in 7.0.1. Other versions should work.
from rellic.
Still got this problem (tried with different version of LLVM and with/without --use-host-compiler):
rellic/AST/GenerateAST.cpp.o: in function `rellic::GenerateAST::StructureRegion(llvm::Region*)':
/var/tmp/xchalup4/rellic/rellic/AST/GenerateAST.cpp:326: undefined reference to `llvm::RegionBase<llvm::RegionTraits<llvm::Function> >::getNameStr[abi:cxx11]() const'
from rellic.
Well, from what I gather this is likely caused by ABI mismatches between standard library versions or implementations. Unfortunately I can't reproduce the build error anywhere on my side. So as a solution for you I'd propose just to comment out or modify the offending lines, since it's just a log prints.
Of course a better solution would be highly appreciated via a PR ;)
from rellic.
Related Issues (20)
- Could `NestedCondProp` also propagate `while` conditions?
- Move invalid store handling to an LLVM pass
- memcpy intrinsic tests failing on ARM64 with LLVM-13 HOT 3
- Remove 'compat' code
- Invalid operand in IRToASTVisitor.cpp:264 HOT 2
- Globals should be sorted using a topological ordering HOT 1
- Ideas for refinement pass improvements / new refinement passes HOT 1
- Probable bug in `LoopRefine` HOT 4
- Inline asm is treated as extern functions and discarded
- Investigate reworking CBR and RBR to match Dream
- Anvill to Rellic does not compile HOT 1
- Improve README
- Canonicalization pass
- Use new user-extension points to inject debug info
- Scheduled CI runs are failing
- rellic decompilation failure HOT 17
- Rellic produces semantically non-equivalent code HOT 1
- Assertion `NewParamInfo.size() == getNumParams() && "Parameter count mismatch!"` failed. HOT 3
- "Exception terminator 'invoke' is not supported yet" HOT 5
- Crash with message "Invalid z3 op" on an IR file. HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rellic.