The machine name arm64pe passed to the linker is completely made up; gnu binutils doesn't (afaik) support this, so it only has to match what the corresponding (not yet merged) lld linker supports - similarly to the existing thumb2pe machine name.
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
lib/Driver/ToolChains/MinGW.cpp | ||
---|---|---|
122–131 ↗ | (On Diff #109890) | Can you use a switch here instead? |
lib/Driver/ToolChains/MinGW.cpp | ||
---|---|---|
122–131 ↗ | (On Diff #109890) | Sure, I can change that. What do you think about the llvm_unreachable part btw? There's nothing stopping a user from trigger that with e.g. -target mips-windows-gnu, and in release builds, such a default: llvm_unreachable() case usually ends up as just running one of the existing cases. Should it be changed into a real runtime error that isn't optimized out from release builds? |
lib/Driver/ToolChains/MinGW.cpp | ||
---|---|---|
129 ↗ | (On Diff #109890) | I believe the reason I used thumb2pe for the arm triple is because MS gave us a watered down thumb environment. |
Updated to use a switch, added a mapping of a missed case of thumb while reformatting the if to a switch.
lib/Driver/ToolChains/MinGW.cpp | ||
---|---|---|
129 ↗ | (On Diff #109890) | There's no thumb mode at all in 64 bit mode (yet at least), so naming it thumb* wouldn't make sense. Modelling the previous name after the old thumbpe makes sense though. |
lib/Driver/ToolChains/MinGW.cpp | ||
---|---|---|
129 ↗ | (On Diff #109890) | Great, thanks. Just wanted to clarify because we never had a discussion about the naming. |
lib/Driver/ToolChains/MinGW.cpp | ||
---|---|---|
130 ↗ | (On Diff #109916) | I believe this was left incase someone wanted to do windows ce in future. |
lib/Driver/ToolChains/MinGW.cpp | ||
---|---|---|
130 ↗ | (On Diff #109916) | Sure, I can add a todo. I wanted to add it, since technically, the modern windows on arm stuff is thumb, we should handle it if the user uses the triple thumbv7-windows-gnu (iirc, some of the tests do). |