Comments (10)
Is there a road map of planned features or support? Might be helpful to those wanting to contribute to the project.
I personally would love to see Win PE/COFF and x86 support, and will likely tinker around with this project to see if I can get it compiling cleanly under Windows/VS and at least add COFF support. Even having a basic layout or flow of the internals would aid in grokking the internals a bit better.
from llvm-mctoll.
For Intel we decided to go for x64 support. No plans for x32 right now but I agree it would be an interesting target to look at.
from llvm-mctoll.
I see, is it even feasible or are there many hidden hard-coded assumptions?
from llvm-mctoll.
It's definitely feasible. The disassembler is coming from LLVM which works for x32 so getting MCInst out is no problem. Once you have MCInst it's going to be different but the basic framework is there to follow.
from llvm-mctoll.
Yes it compiles cleanly on Windows since it's just llvm. But it takes up to an hour.
You may use WSL to generate Linux test binaries.
from llvm-mctoll.
@Trass3r might be helpful to get a wiki page on getting this working under Windows, though those compile times are a bit of a knock. Have you tried using incremental compilation to get them to more reasonable amounts?
from llvm-mctoll.
It's all in the readme, though a bit convoluted. You can use the Visual Studio or Ninja generator.
I think it's like half an hour for a full build of only mctoll and an hour if you build clang. That's llvm 😅. They don't support PCH/modules or shared libraries on Windows.
Incremental builds are faster of course.
from llvm-mctoll.
@Trass3r I'm actually currently going through that (waiting for LLVM to clone), but one can immediately see that the readme would only work under WSL, where as I am talking under the native windows environment (though it doesn't much adaptation). Just nice to have a "Build Instructions (Windows)" section :)
They don't support PCH/modules or shared libraries on Windows.
I assume by "they" you mean LLVM? I find that strange as I did have LLVM 4.x compiling both as a shared lib and static lib quite a while ago. I dunno how much has changed since then given that we are now at LLVM 9.x
from llvm-mctoll.
Make sure to do a shallow clone -b master --depth 1
.
Building llvm's components as shared libs never worked on Windows. If you mean libllvm with the c api, that's something else.
But we are diverging.
from llvm-mctoll.
Make sure to do a shallow clone -b master --depth 1.
Bit late for that, I am unfortunately not a git guru...
I opened #37 for this seeing as this now more about windows support than x86 support.
from llvm-mctoll.
Related Issues (20)
- Wrong lift result for nested "for" loops. HOT 2
- Unable to raise arm binary containing an array HOT 3
- Adapt mctoll to use Opaque pointers HOT 1
- This repo is missing important files
- Unknown prototype for function : _ZNSaIcEC1Ev HOT 1
- Failing to lift binaries HOT 2
- TEST8rr instruction failing to lift properly HOT 1
- Failed to lift binary (core dumped) HOT 1
- Failed to lift simple ARM binary HOT 1
- Build without LLVM source? HOT 1
- Supported LLVM version HOT 1
- assert failed at X86FuncPrototypeDiscovery.cpp:227 HOT 2
- Does Mctoll Translator support Weak Memory Model Architectures ? HOT 1
- cannot compile mctoll without assertions HOT 7
- Error while lifting. HOT 6
- Error when lifting. HOT 1
- is this project still on-going? HOT 1
- i need to install llvm mctoll HOT 3
- generate invalid llir instructions HOT 4
- Cannot get step #4 to work 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 llvm-mctoll.