summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorgy Yakovlev <gyakovlev@gentoo.org>2020-01-28 23:25:19 -0800
committerGeorgy Yakovlev <gyakovlev@gentoo.org>2020-01-28 23:51:05 -0800
commit31b318d1277ef7091710e21c88b7bb9b1ed8c396 (patch)
tree6458f6269e60a1427549b5eb8c842ee47a858938 /dev-lang
parentdev-lang/rust-bin: add basic musl support on amd64 (diff)
downloadgentoo-31b318d1277ef7091710e21c88b7bb9b1ed8c396.tar.gz
gentoo-31b318d1277ef7091710e21c88b7bb9b1ed8c396.tar.bz2
gentoo-31b318d1277ef7091710e21c88b7bb9b1ed8c396.zip
dev-lang/rust: add basic musl support to all versions
Package-Manager: Portage-2.3.84, Repoman-2.3.20 Signed-off-by: Georgy Yakovlev <gyakovlev@gentoo.org>
Diffstat (limited to 'dev-lang')
-rw-r--r--dev-lang/rust/Manifest4
-rw-r--r--dev-lang/rust/rust-1.37.0.ebuild16
-rw-r--r--dev-lang/rust/rust-1.38.0.ebuild16
-rw-r--r--dev-lang/rust/rust-1.39.0.ebuild16
-rw-r--r--dev-lang/rust/rust-1.40.0-r1.ebuild16
-rw-r--r--dev-lang/rust/rust-1.40.0.ebuild16
6 files changed, 84 insertions, 0 deletions
diff --git a/dev-lang/rust/Manifest b/dev-lang/rust/Manifest
index 01fe5dee7c81..bd0bf119a336 100644
--- a/dev-lang/rust/Manifest
+++ b/dev-lang/rust/Manifest
@@ -11,6 +11,7 @@ DIST rust-1.36.0-powerpc64-unknown-linux-gnu.tar.xz 145880928 BLAKE2B 4922df3a7d
DIST rust-1.36.0-powerpc64le-unknown-linux-gnu.tar.xz 149721676 BLAKE2B e00bcc60a89354f6d4b5c89feffe5fe6dd7bf25d8dd2db2878e7c12ffc484e9258f37d80bda2b12f3965d96c73f1a03b6adbd8c20176c383e04f1a229d47d000 SHA512 02f32b544b0a55ba6f6fc4852f18766107bc0ce2c50488db11605e8a10e5965dd44e8332905c00080b08576370f2f0297ecbe12ba9fe01b4c24cdb9fd03ad64f
DIST rust-1.36.0-s390x-unknown-linux-gnu.tar.xz 159518028 BLAKE2B c5876ea15c9fa56a92b4c0bf2aab472b83381a7a31fbb207e4165fdc49fea2150dddd53cc771dbcb81b01fe43a3175df146d8645d04c556af3556822fc59bf25 SHA512 c637b8f50cbce3333280f43ce4b97d3f75ddae429ee34461837c3c3869e20aed8c5e76f7a58998f617dc0ffc2e6afd00908e5de05f4c7ed9a8c34d5dbc7ce916
DIST rust-1.36.0-x86_64-unknown-linux-gnu.tar.xz 169600936 BLAKE2B 8bf075f2b5624e4716e3058512b85b70e72ec6f0c8ce8fc38857612b02aa5702a1bb447f13f882a1b96b1f32330d0a8f7f1f1db81827b51cb7429195e070a5a3 SHA512 3f14dda1e09ef8c8168600f4d70ba60cb2a1086ad9edb5eed708d0ffc16fdb9c582ce350a93afcd64b78f87737e37d4f099703835a1ec9837a5721c2335e17c7
+DIST rust-1.36.0-x86_64-unknown-linux-musl.tar.xz 147240872 BLAKE2B dafdd82f972daeace268286a1466eb3e6ad213eca7efc402e349a0f1306406832f7ff4b3dd4ca5663b985cea56977847ecd21e38c4de93829f8ee59016cbfff0 SHA512 3708ab3bf5f00766cea6382acd84d655b3a3864082192a37322172a22528219191a94e1d36d124d78c2723229bea927fcc2d87da1b6512bbcdd2ec5b7cc045ba
DIST rust-1.37.0-aarch64-unknown-linux-gnu.tar.xz 124322996 BLAKE2B 732dc36933682a18bcd5694b1715af5c442452df8232e2affda8185b9aaf0daf297cf7c4a64fc7d35898e1b3829ba9e8fbe33e8c8f7bc6183b3149f983208ba8 SHA512 c70054f589aa2aecfbd6a89f567306e0cf5d3eb56e5a544ced0a5d212f14033dab10559d22dd6b07945e45a25d8de14fc7897c9d24c0d8149548a06b404ca9d2
DIST rust-1.37.0-arm-unknown-linux-gnueabi.tar.xz 124741032 BLAKE2B 88e38ea9152546c8a04bd6f93fa8d97d3e58255568a522d2774a2656a4c6dd7bad74633a10b424f6c5f6ca07ea07e473e620ab24dfdbe5c27bb5141ab0f5bba8 SHA512 bd28b8bb60b8e4373693ad9d41bfe62eb12a7272a5d7978691b0c7e1892a2df8d6ff8cf5c25dab805fab1d03dd17c76c1014d395b042118cb24603739c6dbb32
DIST rust-1.37.0-arm-unknown-linux-gnueabihf.tar.xz 124971492 BLAKE2B 07614242bc500c9ca81a87ed81cc0bada9b467049b7bc2afbe6245b742ac2bec9030feb08f0ef8a2402bf2c2a19722b8b06dacd0ef56edb0522bf41e29080a01 SHA512 e380e2bf862a157cb5e06d27fa8e306474e708ce7e0ffd087531a4fa5729bef104131c256625c05515f6e7dfd43f639ce1fd5e05a2da42ad7f437d578b4acd8a
@@ -24,6 +25,7 @@ DIST rust-1.37.0-powerpc64-unknown-linux-gnu.tar.xz 128662180 BLAKE2B 0df1def64d
DIST rust-1.37.0-powerpc64le-unknown-linux-gnu.tar.xz 131763436 BLAKE2B 76b9120e98da09344ce5af39a9b333c6ca8917516ae7108d6cc129fdda4d4d6c21e2ca4c41533e202f63b992bcede5390ec986a262ea216c1340a82c5ba798e8 SHA512 366c8920448000bfb4baa3a47588a1c7bc81e18afb8d40f0efc824e429e9e6900efbdb4c9003fb45b9d8595328bd612bd63f390a7d3dedbb30b7dc57fc12abf3
DIST rust-1.37.0-s390x-unknown-linux-gnu.tar.xz 141808296 BLAKE2B 73825a004be81cca4dfff1301ea0ef45c9f55ab8d9a9a0343585377d83c4bdc03d3c027622f18e144c9355afe6f5236a6273f84b43b01a221066d3c395f71017 SHA512 14f403d3ce9df2a2baba1db13c9f039d7118d7e0c8285ca19ea0284c32e80c3f786660dedef4d1758b2227f91732b8e7deccbf3f38c2b3491738c1408d6bfd0e
DIST rust-1.37.0-x86_64-unknown-linux-gnu.tar.xz 165034364 BLAKE2B 3047fff28da00e01179d3a648cb4e5636fa15ac7f4cb9ddc14e1df86d045b69ff3e41691b4a6ef4227c4cb58137524c5e029ba21a2c3a3a171fdb6f46b44f4ff SHA512 c4d48aa12cb929d6600f9cce81bb612c504aa1b3b3f8e76352af3a76b737dcbe0d31e8d139c17884b11aef9f12a55c4908fb8f3ff63dfa92533e4bd0a729914f
+DIST rust-1.37.0-x86_64-unknown-linux-musl.tar.xz 143179480 BLAKE2B 3362af42508b79757b4560adeb60c6f95ec603d5168581ea21c5b9bf36ddb26c6d8690c0a842be50de79f16cba553f16361df229ae3fb5dd3c6cfd79f657d8cf SHA512 dde7c8d827131866eff433d1102101558d40eba982a1b26872d7b03f60613041b0536c1d14f2dd8970e736d849094cfa4b869165371a45cd6295d8026f9333c9
DIST rust-1.38.0-aarch64-unknown-linux-gnu.tar.xz 235231988 BLAKE2B 03ee6ab2c928134f8dd7e5812b60185b934c2f792b64d6271bff4fb714a9acd0f52a6aee291cc22e7f263cb52173568f5ccfb36edd0eb0dbcd567240beeb1372 SHA512 c9dea8907d05af938c1936139c1fb8673d0db90503552f53645d71637bb7248263fd20b1c16db140694b2d467a12c474015a2077d9b26c782b44e965a01544c6
DIST rust-1.38.0-arm-unknown-linux-gnueabi.tar.xz 241780224 BLAKE2B ec362bc67d7b4f3e3d4ba2e19b46af61322b3f8284bf7fd66ac1eb006975c6d6aaa12be8b827147ac8ab42cc11d6c540161fc15c8233a2943a078ce89a300c17 SHA512 4ea00aa2b8bccae4fb595c687058af0c82905cbeef93b3d90f5224657bec0f269d0e75af2be6b97b2043442190dbe2df4aeacfafd6cc8916b0fe2ef28908e987
DIST rust-1.38.0-arm-unknown-linux-gnueabihf.tar.xz 242107656 BLAKE2B 9c43dbe34d99925f34cec339adcedbf71d72515f08ac456293a17dc602ea027b90c552ef891908661f20c2ef07cd7915b9d8936206c65be9e8ae493c699e4265 SHA512 99726beb670af6411ed8dcfbd0eddbce3b964703492686226815f7c0a5c57fd3d0593925345d4f311cd9f5cb2eb9089e80cbb6c62ba767a901e5c5f099e6ebad
@@ -37,6 +39,7 @@ DIST rust-1.38.0-powerpc64-unknown-linux-gnu.tar.xz 240082008 BLAKE2B d15d508397
DIST rust-1.38.0-powerpc64le-unknown-linux-gnu.tar.xz 244407488 BLAKE2B 79ca67230dc4d16518421f08554bbc0093f2423469426d1f6f0a925a7bd01b059875ce1a1af29a516dd1cff745524702a8f37e8cb9b43398a32eb78a55e0c3ca SHA512 5f3e1dd233ef17d8a296dcb55738fa119e40c32b154a7575f149bf1475b64e34f7e805f206b9862dc6499be470f179290d8abb7ad8d2b5cb355cef03d95ae374
DIST rust-1.38.0-s390x-unknown-linux-gnu.tar.xz 291685528 BLAKE2B 1d7678b68c5296fed276eb10a07ffd906cfe569b93b6872872c8aae10fa6f30f0ef4023e55256ee8d2e9f6935fc3391421f0f7758aaad60a0dac15b34074fcbc SHA512 7af64849236e0173d2aea723f3462682fde7d2e1e04d61c28d215163415e1b15cfb8cac57010ce55bdd928ea74076506ef50376d7550999e0fb00f9d20c4f5ff
DIST rust-1.38.0-x86_64-unknown-linux-gnu.tar.xz 279859784 BLAKE2B 40dab0ac1e800d7c095052800505220019154d40741d7c8872932948d5df62863fe9d1e43596a43411e959c2ddc4fb8d9b4e74525aa1a35352efec781054fc37 SHA512 0b25c3049a7a213e9151c898979ec9b5b45e46a9072f9853d8f048cf401ef7ac343526d6919e68607a490e3e7bd0375b12ed9fb253caed26bb60f46473d3699b
+DIST rust-1.38.0-x86_64-unknown-linux-musl.tar.xz 260574940 BLAKE2B e2ed6d6a9718a571a4592ee770e5ff4cb19ccd4909a32ac5d80fbe24b64ffd59ca5ce5e2d6c76d2fb9ae653a170b94ffe199ff4a23c10bec7ca489f16f23bc78 SHA512 f6670cab1d5bb6e39aec84c831146db673b06f773934058476fde237503211e04c633a1c4be8783c0b4f5bc4e5b67a873963d7a0c7d19b4531621678a73d3c00
DIST rust-1.39.0-aarch64-unknown-linux-gnu.tar.xz 238165960 BLAKE2B c3e14a7b57d904d0882cb224e2390087cca5a3b4a6246e52e6d064c554721efe7b5542e694a3b6d2115f9914214a94200e0ff31008a5c8df1448b667b0fdb34e SHA512 ad37a8454acb8985a5c2b42d7f8bc4212651a16fb5af6b4314dd97faa47de79893f2f74b516af89cd7e77ef3db64247c4764585eb0a17ac328c9cba5e5b9c407
DIST rust-1.39.0-arm-unknown-linux-gnueabi.tar.xz 244091604 BLAKE2B 9d09dbd18cfdad062705ee3c1726cee7d4c25dd9a739be451e1bcbd7e6d36316a113f93c0f8309bec3a825435d6245d195fd5da7b35fb51f2cf61f6f638c415d SHA512 1d51d47650cf11bf16b21df0b759de9ae23d96d4b14b5107f062bd240d02d5793542efbf0feaa09403cd35ca38af3e85f1abbd5083b645d40cdb1189d02a8099
DIST rust-1.39.0-arm-unknown-linux-gnueabihf.tar.xz 244501036 BLAKE2B a6ea74a0249e9c7509e21d20b9c04e59af93f78dde92557b6d449fb51776fb6e31d5baa19419547d9baf10768423642a0489c828c5919c055981876ef2282603 SHA512 291d9963f67708b5b14f1f27bb9e7d374fcd7a5d24d932db02203aaf89d06db8178305eb18e4dcd56cce81dc5eb80d2fb019ca94a99c06b548f0588ae560b7ac
@@ -50,6 +53,7 @@ DIST rust-1.39.0-powerpc64-unknown-linux-gnu.tar.xz 242170220 BLAKE2B 3a5ec3b57c
DIST rust-1.39.0-powerpc64le-unknown-linux-gnu.tar.xz 247026740 BLAKE2B 90269aa78eded26c7d54c2e38a08af5f2a5cc3bfb86c268a12050315ba48f232f324b1fcc8e4abae49489cfd9df83edf6d04424ba14fb77f15daea1f6b5c242e SHA512 e15585150370514e580e171faa749218aeef04ce0493f5ad3928a0cb6cd0bddbf7c75ba8ed0783a2c954bbd7166e0445b4c33be4ab48479b0104f032b3d4b0af
DIST rust-1.39.0-s390x-unknown-linux-gnu.tar.xz 298119784 BLAKE2B 82f64163929c129e2aaee8909401c4f302496f63f8d9d366d6f7460b4546d7657ea38bcd864ecd0f58a5995e47f7f5890e4523dcbcbc51e3bf4085536b07de5f SHA512 d2b588f802d4fbe153dbd88cb745d34d1f5434cb3134cc9e091ebfb336a48b4c886cd80311cf92b5e1c6a16374302853a67e8a0576b02a89dbcf61d27919a045
DIST rust-1.39.0-x86_64-unknown-linux-gnu.tar.xz 284967620 BLAKE2B c5d2c2a11c4f66105ece51e7ca45ca6a9e0d70215f94ce52f6e61b20995ceb611e45bad1e5e9f33fd444bb0a58a2edb691f1a65a1caf36ad892c034e00104383 SHA512 02ca6c821877379d8bd0bcc38281a87e6f86bdbae1270da19e41336cc3a812d9c11c1e976655c192c39153f92cda90ddbd7b4b0bcb4f6787d6d354d2be827a8a
+DIST rust-1.39.0-x86_64-unknown-linux-musl.tar.xz 262751216 BLAKE2B f719f4168f3d463f5184b9f72990f2e43b99f75902f762f5736e819f47ad451a325cbc7b7140cb322b46b5dc51253ebb8aa2a16b0f792343dbfcab5a91ac95a4 SHA512 155458717aaaaa82b202fae180c094e5a40f45071c3a0f6d27423a612ffe926058642fc82aaa7ea091963108b7a819d6156294149648e5b0a5d5b6196028f4fb
DIST rustc-1.37.0-src.tar.xz 98654252 BLAKE2B ddee92c7959a0e1ee11ffe5ded6017703cfac7bbf2a00dc46c37ed28f1cd1d31e1d5b62cc1a5ae2d55d64f8705d0cb282f4968deddf36c3152e5e0cfdfbea67d SHA512 bfee43f578e6d44ead950b870b9fd31087e1bd3f917611f5dce7ad56504b83185edf43e297e8d1304e9e97b9a580d1e6adf6608ab8ed6dee0dc8c5153cdbc5d4
DIST rustc-1.38.0-src.tar.xz 96163304 BLAKE2B 1e900b44db64727477ccf8e58e0ebb9ec209bbeb349816b5f7937e58c165db8befae33c5667732e5aaaa677c5a6c1e0229d9969ab8967fda9b8d7a593e6c5eb6 SHA512 b756d29a7a222bc7b5c7f42ff397346ab840f78e559f93e6e36b65e76eea525cf429899fe4de9fb8966623a2225b552feef9fa831bee50f9e25c976fa2af8c0a
DIST rustc-1.39.0-src.tar.xz 96495140 BLAKE2B 6df6bf0c3b38c28753713acdc477ea6929740c32893171dd9b8620992439e45730ef6f9489a6fc411ff5884c661ac4c07b7b93f5a4174207ed53351d2dea09bf SHA512 8610b2ec77722087c572bd84ac562a5b7c5f1a644aea58c5d5daa07a9aed242703b7816e73e2eaa049f773d5907859e259744a0de700622df005584fd798dab0
diff --git a/dev-lang/rust/rust-1.37.0.ebuild b/dev-lang/rust/rust-1.37.0.ebuild
index 31a203e3dd3b..035be4593a3d 100644
--- a/dev-lang/rust/rust-1.37.0.ebuild
+++ b/dev-lang/rust/rust-1.37.0.ebuild
@@ -62,6 +62,7 @@ COMMON_DEPEND="
net-libs/libssh2
net-libs/http-parser:=
net-misc/curl[ssl]
+ elibc_musl? ( sys-libs/libunwind )
system-llvm? (
${LLVM_DEPEND}
)
@@ -209,6 +210,12 @@ src_configure() {
linker = "$(tc-getCC)"
ar = "$(tc-getAR)"
EOF
+ # librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
+ if use elibc_musl; then
+ cat <<- EOF >> "${S}"/config.toml
+ crt-static = false
+ EOF
+ fi
if use system-llvm; then
cat <<- EOF >> "${S}"/config.toml
llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
@@ -319,6 +326,15 @@ pkg_postinst() {
if has_version app-editors/gvim || has_version app-editors/vim; then
elog "install app-vim/rust-vim to get vim support for rust."
fi
+
+ if use elibc_musl; then
+ ewarn "${PN} on *-musl targets is configured with crt-static"
+ ewarn ""
+ ewarn "you will need to set RUSTFLAGS=\"-C target-feature=-crt-static\" in make.conf"
+ ewarn "to use it with portage, otherwise you may see failures like"
+ ewarn "error: cannot produce proc-macro for serde_derive v1.0.98 as the target "
+ ewarn "x86_64-unknown-linux-musl does not support these crate types"
+ fi
}
pkg_postrm() {
diff --git a/dev-lang/rust/rust-1.38.0.ebuild b/dev-lang/rust/rust-1.38.0.ebuild
index a2cbb5dcb9cd..d8392ae3612e 100644
--- a/dev-lang/rust/rust-1.38.0.ebuild
+++ b/dev-lang/rust/rust-1.38.0.ebuild
@@ -62,6 +62,7 @@ COMMON_DEPEND="
net-libs/libssh2
net-libs/http-parser:=
net-misc/curl[ssl]
+ elibc_musl? ( sys-libs/libunwind )
system-llvm? (
${LLVM_DEPEND}
)
@@ -209,6 +210,12 @@ src_configure() {
linker = "$(tc-getCC)"
ar = "$(tc-getAR)"
EOF
+ # librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
+ if use elibc_musl; then
+ cat <<- EOF >> "${S}"/config.toml
+ crt-static = false
+ EOF
+ fi
if use system-llvm; then
cat <<- EOF >> "${S}"/config.toml
llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
@@ -319,6 +326,15 @@ pkg_postinst() {
if has_version app-editors/gvim || has_version app-editors/vim; then
elog "install app-vim/rust-vim to get vim support for rust."
fi
+
+ if use elibc_musl; then
+ ewarn "${PN} on *-musl targets is configured with crt-static"
+ ewarn ""
+ ewarn "you will need to set RUSTFLAGS=\"-C target-feature=-crt-static\" in make.conf"
+ ewarn "to use it with portage, otherwise you may see failures like"
+ ewarn "error: cannot produce proc-macro for serde_derive v1.0.98 as the target "
+ ewarn "x86_64-unknown-linux-musl does not support these crate types"
+ fi
}
pkg_postrm() {
diff --git a/dev-lang/rust/rust-1.39.0.ebuild b/dev-lang/rust/rust-1.39.0.ebuild
index b221916b0b34..ee86f20c09f7 100644
--- a/dev-lang/rust/rust-1.39.0.ebuild
+++ b/dev-lang/rust/rust-1.39.0.ebuild
@@ -62,6 +62,7 @@ COMMON_DEPEND="
net-libs/libssh2
net-libs/http-parser:=
net-misc/curl[ssl]
+ elibc_musl? ( sys-libs/libunwind )
system-llvm? (
${LLVM_DEPEND}
)
@@ -207,6 +208,12 @@ src_configure() {
linker = "$(tc-getCC)"
ar = "$(tc-getAR)"
EOF
+ # librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
+ if use elibc_musl; then
+ cat <<- EOF >> "${S}"/config.toml
+ crt-static = false
+ EOF
+ fi
if use system-llvm; then
cat <<- EOF >> "${S}"/config.toml
llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
@@ -324,6 +331,15 @@ pkg_postinst() {
if has_version app-editors/gvim || has_version app-editors/vim; then
elog "install app-vim/rust-vim to get vim support for rust."
fi
+
+ if use elibc_musl; then
+ ewarn "${PN} on *-musl targets is configured with crt-static"
+ ewarn ""
+ ewarn "you will need to set RUSTFLAGS=\"-C target-feature=-crt-static\" in make.conf"
+ ewarn "to use it with portage, otherwise you may see failures like"
+ ewarn "error: cannot produce proc-macro for serde_derive v1.0.98 as the target "
+ ewarn "x86_64-unknown-linux-musl does not support these crate types"
+ fi
}
pkg_postrm() {
diff --git a/dev-lang/rust/rust-1.40.0-r1.ebuild b/dev-lang/rust/rust-1.40.0-r1.ebuild
index e204b4c08023..9cc55df24b32 100644
--- a/dev-lang/rust/rust-1.40.0-r1.ebuild
+++ b/dev-lang/rust/rust-1.40.0-r1.ebuild
@@ -69,6 +69,7 @@ COMMON_DEPEND="
net-libs/libssh2
net-libs/http-parser:=
net-misc/curl[ssl]
+ elibc_musl? ( sys-libs/libunwind )
system-llvm? (
${LLVM_DEPEND}
)
@@ -237,6 +238,12 @@ src_configure() {
linker = "$(tc-getCC)"
ar = "$(tc-getAR)"
EOF
+ # librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
+ if use elibc_musl; then
+ cat <<- EOF >> "${S}"/config.toml
+ crt-static = false
+ EOF
+ fi
if use system-llvm; then
cat <<- EOF >> "${S}"/config.toml
llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
@@ -335,6 +342,15 @@ pkg_postinst() {
if has_version app-editors/gvim || has_version app-editors/vim; then
elog "install app-vim/rust-vim to get vim support for rust."
fi
+
+ if use elibc_musl; then
+ ewarn "${PN} on *-musl targets is configured with crt-static"
+ ewarn ""
+ ewarn "you will need to set RUSTFLAGS=\"-C target-feature=-crt-static\" in make.conf"
+ ewarn "to use it with portage, otherwise you may see failures like"
+ ewarn "error: cannot produce proc-macro for serde_derive v1.0.98 as the target "
+ ewarn "x86_64-unknown-linux-musl does not support these crate types"
+ fi
}
pkg_postrm() {
diff --git a/dev-lang/rust/rust-1.40.0.ebuild b/dev-lang/rust/rust-1.40.0.ebuild
index 9f1b9c45eddb..5fbd8bd14100 100644
--- a/dev-lang/rust/rust-1.40.0.ebuild
+++ b/dev-lang/rust/rust-1.40.0.ebuild
@@ -62,6 +62,7 @@ COMMON_DEPEND="
net-libs/libssh2
net-libs/http-parser:=
net-misc/curl[ssl]
+ elibc_musl? ( sys-libs/libunwind )
system-llvm? (
${LLVM_DEPEND}
)
@@ -207,6 +208,12 @@ src_configure() {
linker = "$(tc-getCC)"
ar = "$(tc-getAR)"
EOF
+ # librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
+ if use elibc_musl; then
+ cat <<- EOF >> "${S}"/config.toml
+ crt-static = false
+ EOF
+ fi
if use system-llvm; then
cat <<- EOF >> "${S}"/config.toml
llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
@@ -322,6 +329,15 @@ pkg_postinst() {
if has_version app-editors/gvim || has_version app-editors/vim; then
elog "install app-vim/rust-vim to get vim support for rust."
fi
+
+ if use elibc_musl; then
+ ewarn "${PN} on *-musl targets is configured with crt-static"
+ ewarn ""
+ ewarn "you will need to set RUSTFLAGS=\"-C target-feature=-crt-static\" in make.conf"
+ ewarn "to use it with portage, otherwise you may see failures like"
+ ewarn "error: cannot produce proc-macro for serde_derive v1.0.98 as the target "
+ ewarn "x86_64-unknown-linux-musl does not support these crate types"
+ fi
}
pkg_postrm() {