edef1c / libfringe

a Rust library implementing safe, lightweight context switches, without relying on kernel services
https://edef1c.github.io/libfringe
Apache License 2.0
512 stars 31 forks source link

Update alloc usage to support latest nightly; work around check in llvm that broke x86 #78

Closed alecmocatta closed 5 years ago

alecmocatta commented 6 years ago

%eip => 8 just avoids a check LLVM was making during parsing that balked with "register %eip is only available in 64-bit mode": https://github.com/llvm-mirror/llvm/blob/7ead4232dac43866b3aa2b39aa787823654f4f36/lib/Target/X86/AsmParser/X86AsmParser.cpp#L1102

alecmocatta commented 6 years ago

If I could possibly also ask that a new crate version could be published? I'd like to publish a crate dependent on this and it would be nice to not have to mirror it.

cynecx commented 6 years ago

It seems that it has been fixed (the usage of %eip) in upstream llvm: https://github.com/llvm-mirror/llvm/commit/b9c9629e618b883df7f03dc92f0d23eeca38693f. But I don't think that rust nightly has backported this change.

EDIT: It seems that the change has been back-ported into the 7.0 release. So rust-nightly will eventually pick it up.

alecmocatta commented 5 years ago

This is now fixed upstream so closing.