unknown feature `llvm_asm` when compile rust-src

Viewed 1537

I tried to compile rust-src using cargo xbuild but get this error:

error[E0635]: unknown feature `llvm_asm`
-> .cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.28/src/lib.rs:3:12
3 | #![feature(llvm_asm)]

How can I fix this error? It's seem like xbuild tries to compile the new rust-src with an old rustc. I want it to also use the old rust-src.

I can't update to a newer rustc version as it results in lots of "R_x86_32 relocation" errors, so I would prefer to use the 2020-03-24 version.

Minimal example

command

cargo new --bin test

rustup component add rust-src

cargo install cargo-xbuild

cd test

ls test
Cargo.toml  rust-toolchain  src  x86_64-unknown-none.json

rust-toolchain

nightly-2020-03-24

x86_64-unknown-none.json

{
  "llvm-target": "x86_64-unknown-none",
  "data-layout": "e-m:e-i64:64-f80:128-n8:16:32:64-S128",
  "arch": "x86_64",
  "target-endian": "little",
  "target-pointer-width": "64",
  "target-c-int-width": "32",
  "os": "none",
  "executables": true,
  "linker-flavor": "ld.lld",
  "linker": "rust-lld",
  "panic-strategy": "abort",
  "disable-redzone": true,
  "features": "-mmx,-sse,+soft-float"
}

src/main.rs

#![no_std]                // don't link the Rust standard library
#![no_main]               // disable all Rust-level entry points
#![allow(non_snake_case)] // disable non snake case name warning

use core::panic::PanicInfo;

#[no_mangle]
pub extern "C" fn _start() -> ! {
    loop {}
}

#[panic_handler]
pub fn MyPacnicHandler(_panicInfo: &PanicInfo) -> ! {
    loop {}
}

compile

cargo xbuild --target x86_64-unknown-none

rustc --version

rustc 1.44.0-nightly (1edd389cc 2020-03-23)
2 Answers
Related