xref: /OK3568_Linux_fs/yocto/poky/meta/recipes-devtools/rust/libstd-rs.inc (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunSUMMARY = "Rust standard libaries"
2*4882a593SmuzhiyunHOMEPAGE = "http://www.rust-lang.org"
3*4882a593SmuzhiyunSECTION = "devel"
4*4882a593SmuzhiyunLICENSE = "MIT | Apache-2.0"
5*4882a593SmuzhiyunLIC_FILES_CHKSUM = "file://../../COPYRIGHT;md5=93a95682d51b4cb0a633a97046940ef0"
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunRUSTLIB_DEP = ""
8*4882a593Smuzhiyuninherit cargo
9*4882a593Smuzhiyun
10*4882a593SmuzhiyunDEPENDS:append:libc-musl = " libunwind"
11*4882a593Smuzhiyun# rv32 does not have libunwind ported yet
12*4882a593SmuzhiyunDEPENDS:remove:riscv32 = "libunwind"
13*4882a593SmuzhiyunDEPENDS:remove:riscv64 = "libunwind"
14*4882a593Smuzhiyun
15*4882a593Smuzhiyun# Embed bitcode in order to allow compiling both with and without LTO
16*4882a593SmuzhiyunRUSTFLAGS += "-Cembed-bitcode=yes"
17*4882a593Smuzhiyun# Needed so cargo can find libbacktrace
18*4882a593SmuzhiyunRUSTFLAGS += "-L ${STAGING_LIBDIR} -C link-arg=-Wl,-soname,libstd.so"
19*4882a593Smuzhiyun
20*4882a593SmuzhiyunS = "${RUSTSRC}/src/libstd"
21*4882a593Smuzhiyun
22*4882a593SmuzhiyunCARGO_FEATURES ?= "panic-unwind backtrace"
23*4882a593SmuzhiyunCARGO_BUILD_FLAGS += "--features '${CARGO_FEATURES}'"
24*4882a593SmuzhiyunCARGO_VENDORING_DIRECTORY = "${RUSTSRC}/vendor"
25*4882a593Smuzhiyun
26*4882a593Smuzhiyundo_compile:prepend () {
27*4882a593Smuzhiyun    export CARGO_TARGET_DIR="${B}"
28*4882a593Smuzhiyun    # For Rust 1.13.0 and newer
29*4882a593Smuzhiyun    export RUSTC_BOOTSTRAP="1"
30*4882a593Smuzhiyun}
31*4882a593Smuzhiyun
32*4882a593Smuzhiyundo_install () {
33*4882a593Smuzhiyun    mkdir -p ${D}${rustlibdir}
34*4882a593Smuzhiyun
35*4882a593Smuzhiyun    # With the incremental build support added in 1.24, the libstd deps directory also includes dependency
36*4882a593Smuzhiyun    # files that get installed. Those are really only needed to incrementally rebuild the libstd library
37*4882a593Smuzhiyun    # itself and don't need to be installed.
38*4882a593Smuzhiyun    rm -f ${B}/${TARGET_SYS}/${BUILD_DIR}/deps/*.d
39*4882a593Smuzhiyun    cp ${B}/${TARGET_SYS}/${BUILD_DIR}/deps/* ${D}${rustlibdir}
40*4882a593Smuzhiyun}
41