Closed
Description
I'm trying to build a pure no_std
cdylib
with no external library dependencies. For an initial proof of concept, I tried to create such a library using the following code:
Cargo.toml
:
[package]
name = "cdylib-no-std"
version = "0.1.0"
edition = "2018"
[lib]
crate-type = ["cdylib"]
[dependencies]
src/lib.rs
#![no_std]
#![no_main]
#![feature(lang_items)]
use core::panic::PanicInfo;
pub fn foo(a: i32, b: i32) -> i32 {
a + b
}
#[lang = "eh_personality"]
extern "C" fn eh_personality() {}
#[panic_handler]
fn panic(_info: &PanicInfo) -> ! {
loop {}
}
Built using the following command:
cargo +nightly build --lib
Results in the following output:
/usr/bin/ld:/tmp/rustcE1gs9P/list:4: syntax error in VERSION script
collect2: error: ld returned 1 exit status
However, if crate-type
is changed to ["dylib"]
, it builds properly.
Tested using the following tool versions:
cargo 1.39.0-nightly (3f700ec43 2019-08-19)
active toolchain
----------------
nightly-x86_64-unknown-linux-gnu (default)
rustc 1.39.0-nightly (521d78407 2019-08-25)