public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Georgy Yakovlev" <gyakovlev@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-devel/rust-std/
Date: Fri, 25 Sep 2020 07:38:29 +0000 (UTC)	[thread overview]
Message-ID: <1601019478.e2701fa0f4b3b3a3d971c2274c36b4ea4bce7181.gyakovlev@gentoo> (raw)

commit:     e2701fa0f4b3b3a3d971c2274c36b4ea4bce7181
Author:     Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
AuthorDate: Fri Sep 25 07:26:47 2020 +0000
Commit:     Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org>
CommitDate: Fri Sep 25 07:37:58 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e2701fa0

sys-devel/rust-std: new package, for crossdev #679878

EXPERIMENTAL!

Bug: https://bugs.gentoo.org/680652
Bug: https://bugs.gentoo.org/679878
Bug: https://bugs.gentoo.org/689336
Package-Manager: Portage-3.0.8, Repoman-3.0.1
Signed-off-by: Georgy Yakovlev <gyakovlev <AT> gentoo.org>

 sys-devel/rust-std/Manifest               |   1 +
 sys-devel/rust-std/metadata.xml           |  21 +++++
 sys-devel/rust-std/rust-std-1.46.0.ebuild | 146 ++++++++++++++++++++++++++++++
 3 files changed, 168 insertions(+)

diff --git a/sys-devel/rust-std/Manifest b/sys-devel/rust-std/Manifest
new file mode 100644
index 00000000000..4a83cef970c
--- /dev/null
+++ b/sys-devel/rust-std/Manifest
@@ -0,0 +1 @@
+DIST rustc-1.46.0-src.tar.xz 101868452 BLAKE2B da9798596b124a10d79c236a871228f05e5f571d22c2259328e7026c91e088c85f5de9c0536a16531e0cb10477bfcd16d3ac11467979f5561cb6199442b877ef SHA512 099857f1d295043587a4e2a65ef3e6a90e12c8b6958e98535a1656c113c553f9a9b621aba8a19cf21bd8d2c79d27cbfa4b8e6fabbcb3cbfee23b545be7b450b4

diff --git a/sys-devel/rust-std/metadata.xml b/sys-devel/rust-std/metadata.xml
new file mode 100644
index 00000000000..c736f846eb1
--- /dev/null
+++ b/sys-devel/rust-std/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+	<maintainer type="person">
+		<email>gyakovlev@gentoo.org</email>
+		<name>Georgy Yakovlev</name>
+	</maintainer>
+	<maintainer type="project">
+		<email>rust@gentoo.org</email>
+		<name>Rust Project</name>
+	</maintainer>
+	<longdescription>
+		The Rust Standard Library is the foundation of portable Rust software,
+		a set of minimal and battle-tested shared abstractions for the broader Rust ecosystem.
+		It offers core types, like Vec&lt;T&gt; and Option&lt;T&gt;, library-defined operations on language primitives,
+		standard macros, I/O and multithreading, among many other things.
+	</longdescription>
+	<upstream>
+		<remote-id type="github">rust-lang/rust</remote-id>
+	</upstream>
+</pkgmetadata>

diff --git a/sys-devel/rust-std/rust-std-1.46.0.ebuild b/sys-devel/rust-std/rust-std-1.46.0.ebuild
new file mode 100644
index 00000000000..a90e4641c1f
--- /dev/null
+++ b/sys-devel/rust-std/rust-std-1.46.0.ebuild
@@ -0,0 +1,146 @@
+# Copyright 2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7,8} )
+
+inherit flag-o-matic multiprocessing python-any-r1 rust-toolchain toolchain-funcs
+
+DESCRIPTION="Rust standard library, standalone (for crossdev)"
+HOMEPAGE="https://www.rust-lang.org"
+SRC_URI="https://static.rust-lang.org/dist/rustc-${PV}-src.tar.xz"
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA"
+SLOT="stable/$(ver_cut 1-2)"
+# please do not keyword yet
+#KEYWORDS="" #nowarn
+IUSE="debug"
+
+BDEPEND="
+	${PYTHON_DEPS}
+	~dev-lang/rust-${PV}:=
+"
+
+DEPEND="||
+	(
+		>="${CATEGORY}"/gcc-4.7:*
+		>="${CATEGORY}"/clang-3.5:*
+	)
+"
+
+RDEPEND="${DEPEND}"
+
+# need full compiler to run tests
+RESTRICT="test"
+
+QA_FLAGS_IGNORED="usr/lib.*/rust-.*/rustlib/.*/lib/lib.*.so"
+
+S="${WORKDIR}/${P/-std/c}-src"
+
+#
+# The cross magic
+#
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CTARGET} == ${CHOST} ]] ; then
+	if [[ ${CATEGORY} == cross-* ]] ; then
+		export CTARGET=${CATEGORY#cross-}
+	fi
+fi
+
+is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
+
+toml_usex() {
+	usex "$1" true false
+}
+
+pkg_pretend() {
+	is_cross || die "${PN} should only be used for cross"
+}
+
+pkg_setup() {
+	python-any-r1_pkg_setup
+}
+
+src_prepare() {
+	default
+}
+
+src_configure() {
+	# do the great cleanup
+	strip-flags
+	filter-flags '-mcpu=*' '-march=*' '-mtune=*' '-m32' '-m64'
+	strip-unsupported-flags
+
+	local rust_root x
+	rust_root="$(rustc --print sysroot)"
+	rtarget="$(rust_abi ${CTARGET})"
+	rtarget="${ERUST_STD_RTARGET:-${rtarget}}" # some targets need to be custom.
+	rbuild="$(rust_abi ${CBUILD})"
+	rhost="$(rust_abi ${CHOST})"
+
+	echo
+	for x in CATEGORY rust_root rbuild rhost rtarget RUSTFLAGS CFLAGS CXXFLAGS LDFLAGS; do
+		einfo "$(printf '%10s' ${x^^}:) ${!x}"
+	done
+
+	cat <<- EOF > "${S}"/config.toml
+		[build]
+		build = "${rbuild}"
+		host = ["${rhost}"]
+		target = ["${rtarget}"]
+		cargo = "${rust_root}/bin/cargo"
+		rustc = "${rust_root}/bin/rustc"
+		submodules = false
+		python = "${EPYTHON}"
+		locked-deps = true
+		vendor = true
+		extended = true
+		verbose = 2
+		cargo-native-static = false
+		[install]
+		prefix = "${EPREFIX}/usr"
+		libdir = "$(get_libdir)/${P/-std/}"
+		[rust]
+		optimize = true
+		debug = $(toml_usex debug)
+		debug-assertions = $(toml_usex debug)
+		debuginfo-level-rustc = 0
+		backtrace = true
+		incremental = false
+		default-linker = "$(tc-getCC)"
+		rpath = false
+		dist-src = false
+		remap-debuginfo = true
+		jemalloc = false
+		[dist]
+		src-tarball = false
+		[target.${rtarget}]
+		cc = "$(tc-getCC ${CTARGET})"
+		cxx = "$(tc-getCXX ${CTARGET})"
+		linker = "$(tc-getCC ${CTARGET})"
+		ar = "$(tc-getAR ${CTARGET})"
+		$(usex elibc_musl 'crt-static = false' '')
+	EOF
+
+	einfo "${PN^} configured with the following settings:"
+	cat "${S}"/config.toml || die
+}
+
+src_compile() {
+	env RUST_BACKTRACE=1 \
+		"${EPYTHON}" ./x.py build -vv --config="${S}"/config.toml -j$(makeopts_jobs) \
+		src/libstd --stage 0 || die
+}
+
+src_test() {
+	ewarn "${PN} can't run tests"
+}
+
+src_install() {
+	local rustlib="$(get_libdir)/${P/-std/}/rustlib"
+	dodir "/usr/${rustlib}"
+	pushd "build/${rhost}/stage0-sysroot/${rustlib}" > /dev/null || die
+	cp -pPRv "${rtarget}" "${ED}/usr/${rustlib}" || die
+	popd > /dev/null || die
+}


             reply	other threads:[~2020-09-25  7:38 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-25  7:38 Georgy Yakovlev [this message]
  -- strict thread matches above, loose matches on Subject: below --
2020-10-11  5:24 [gentoo-commits] repo/gentoo:master commit in: sys-devel/rust-std/ Georgy Yakovlev
2020-10-11 15:34 Georgy Yakovlev
2020-10-11 16:39 Georgy Yakovlev
2020-10-11 17:14 Georgy Yakovlev
2020-11-30 17:11 Georgy Yakovlev
2021-02-03  1:07 Georgy Yakovlev
2021-02-12  1:27 Georgy Yakovlev
2021-04-27 12:18 Georgy Yakovlev
2021-04-27 12:18 Georgy Yakovlev
2021-05-10 23:02 Georgy Yakovlev
2021-06-19  7:47 Georgy Yakovlev
2021-08-05  5:37 Georgy Yakovlev
2021-09-13 15:27 Georgy Yakovlev
2021-11-21  1:13 Georgy Yakovlev
2022-01-13 21:37 Georgy Yakovlev
2022-01-13 21:37 Georgy Yakovlev
2022-01-20 22:26 Georgy Yakovlev
2022-01-29 17:07 Georgy Yakovlev
2022-07-01 19:32 Georgy Yakovlev
2022-07-01 19:32 Georgy Yakovlev
2023-03-24 21:28 Georgy Yakovlev
2023-03-24 21:28 Georgy Yakovlev
2023-04-05 23:31 Georgy Yakovlev
2023-08-04 12:30 WANG Xuerui
2023-08-28  6:54 WANG Xuerui
2023-10-07  8:46 WANG Xuerui
2023-10-07  8:46 WANG Xuerui
2023-12-08 11:36 Sam James
2023-12-08 11:36 Sam James
2024-02-10  4:49 Sam James
2024-02-10  4:49 Sam James
2024-02-10  4:49 Sam James
2024-03-09  2:56 WANG Xuerui
2024-04-04  1:07 Sam James
2024-05-16 14:50 Arthur Zamarin
2024-05-31 21:03 Sam James
2024-06-25  2:47 Sam James
2024-08-14 12:40 Joonas Niilola
2024-09-02 19:20 Arthur Zamarin
2024-09-10 16:50 Arthur Zamarin
2024-09-14  6:57 Arthur Zamarin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1601019478.e2701fa0f4b3b3a3d971c2274c36b4ea4bce7181.gyakovlev@gentoo \
    --to=gyakovlev@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox