-
Notifications
You must be signed in to change notification settings - Fork 144
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fixing the fp80 types windows compilation issue. #592
Comments
This was very helpful. Few other changes to build with current FP80 type headers (Math.h now). I got it building with these changes:
Development EnvironmentUsing LLVM_v142 with MSVC 2019. This guy provides a clean install and integration for all recent MSVC versions. Have to use clang-cl for C/C++ compiler to support combination of MSFT/Clang argument syntax. Also llvm linker encounters issues with unsupported arguments and varying syntax so let Cmake default to MSVC 2019 link.exe. This is working for me: In CMakeLists.txt:
... In LLVM.Common.Props from llvm-utils install in MSVC platform targets directory:
Lastly, if you're finding yourself with random compile failures then successful compiles, or corrupted intermediate object stores... There are some highly annoying and esoteric llvm bugs when doing incremental linking or mp compiling while also mixing target and host architectures. Since vcpkg/cmake can default to x86 when you're targeting x64 this will drive you mad. If possible do something like: |
@rileysjc can you turn this into a PR? |
Can do. I'm just about done with a full MSVC 2019 Solution for Remill that folks can use to build the project with relative ease in Windows land. I've also found some cleaner solutions for some of these issues, and others, that I've rolled into the solution. I'll get going on a PR and maybe side discussions for general purpose fixes and workaround as soon as I wrap up my current |
Any updates regarding this, if you're still willing to share? Some comments in this thread would be very welcomed until you have the time to PR this |
Ping @rileysjc. |
Holidays and starting some new projects ate up some cycles late December. Making solid progress on a full MSVC17 WIN AMD64 package that includes a variety of ports (latest version or close to), optimizations (e.g. step LTO, lockless heaps, static wpo, ucrt, external llvm project integrations, etc... I'm on the last leg now, in a perfect world. We can start a sidebar chat with regard to deliverables for the REMILL project. I'll check my patches against current code this week. |
Clang on Windows does support double-80 since some time now (https://reviews.llvm.org/D115441?id=393120) For bitcode compilation add "-mlong-double-80" to the command line and for clang-cl add "-Xclang -mlong-double-80". |
Due to some windows limitation on managing the fp80 types easily , it's better to wrape this two lines to get it compiled properly :
https://github.com/lifting-bits/remill/blob/master/include/remill/Arch/Runtime/Types.h#L101
https://github.com/lifting-bits/remill/blob/master/include/remill/Arch/Runtime/Types.h#L82
The text was updated successfully, but these errors were encountered: