Giter VIP home page Giter VIP logo

Comments (8)

murarth avatar murarth commented on May 31, 2024

Apparently, LLVM MCJIT doesn't understand Windows executable formats, even on Windows. This mailing list posting indicates that adding -elf to the end of the target triple will cause LLVM to generate ELF code in memory on Windows. The Rust LLVM JIT code should be doing this, but I'm not sure how to do it. I will be looking into it.

from rusti.

murarth avatar murarth commented on May 31, 2024

@bombless: I've written a very naive attempt to fix this. I have no idea whether it will work at all. It's in a branch in this repo called windows-fix. If you'd try it and let me know if it succeeds or if the output changes, I'd appreciate it.

from rusti.

bombless avatar bombless commented on May 31, 2024

@murarth Thanks!
I tried your idea but it seems that changing the triple here don't work.

$ target/rusti.exe -e 0
error: Error loading target specification: Could not find specification for target "i686-pc-windows-gnu-elf"
thread '<main>' panicked at 'ExecutionEngine init input failed to compile', C:\bot\slave\nightly-dist-rustc-win-32\build\src\libcore\option.rs:330
$ target/rusti -e 0
DEBUG - searching for sysroot in PATH D:\msys64rust\mingw32\bin;D:\msys64rust\usr\local\bin;D:\msys64rust\usr\bin;D:\msys64rust\usr\bin;D:\rust\bin;C:\program files (x86)\cmake\bin;D:\msys64rust\usr\bin\site_perl;D:\msys64rust\usr\bin\vendor_perl;D:\msys64rust\usr\bin\core_perl
DEBUG - sysroot from PATH entry D:\rust\bin
error: Error loading target specification: Could not find specification for target "i686-pc-mingw32-elf"
thread '<main>' panicked at 'ExecutionEngine init input failed to compile', C:\bot\slave\nightly-dist-rustc-win-32\build\src\libcore\option.rs:330
$ target/rusti.exe -e 0
DEBUG - searching for sysroot in PATH D:\msys64rust\mingw32\bin;D:\msys64rust\usr\local\bin;D:\msys64rust\usr\bin;D:\msys64rust\usr\bin;D:\rust\bin;C:\program files (x86)\cmake\bin;D:\msys64rust\usr\bin\site_perl;D:\msys64rust\usr\bin\vendor_perl;D:\msys64rust\usr\bin\core_perl
DEBUG - sysroot from PATH entry D:\rust\bin
error: Error loading target specification: Could not find specification for target "i686-pc-windows-elf"
thread '<main>' panicked at 'ExecutionEngine init input failed to compile', C:\bot\slave\nightly-dist-rustc-win-32\build\src\libcore\option.rs:330

I tried to edit that sys::getProcessTriple() and recompile rustc to get new rustc library but it doesn't work, with same output.

from rusti.

bombless avatar bombless commented on May 31, 2024

Changing source code of src/llvm only affects libraries built on stage1 (I read Makefile before but I forgot this thing yesterday).
Leaving this message so if anyone view this issue and try the same thing as me can save some time.

from rusti.

murarth avatar murarth commented on May 31, 2024

@bombless: I think this issue has been solved by a recent rust-lang change that landed in nightly (2228ce10c 2015-06-09). Can you confirm?

from rusti.

bombless avatar bombless commented on May 31, 2024

I compiled rusti with latest rustc but it seems that recent change of libsyntax breaks the code.
I'll look into it later.

from rusti.

murarth avatar murarth commented on May 31, 2024

@bombless: Yes, there was a breaking change today. (fbb13543f 2015-06-11) is the latest nightly and rusti should compile with that nightly build.

from rusti.

bombless avatar bombless commented on May 31, 2024

Cheers, it works!

from rusti.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.