pkgsrc-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[pkgsrc/trunk]: pkgsrc/lang/rust rust: speed-up building; clean-ups
details: https://anonhg.NetBSD.org/pkgsrc/rev/891d107f9819
branches: trunk
changeset: 387865:891d107f9819
user: adam <adam%pkgsrc.org@localhost>
date: Tue Nov 27 15:45:23 2018 +0000
description:
rust: speed-up building; clean-ups
- use 'build' target for building, not 'dist'
- set jobs also for install target
- do not generate tarballs; we don't need them, but they take a lot of disk-space
- do not install 'src'
- do not generate 'install.log' nor 'uninstall.sh'
- on Darwin, use headerpad_max_install_names to be able to fix all dylibs
- make optimized bootstrap
- pkglint fixes
- get ready to depend on lang/llvm and devel/jemalloc
diffstat:
lang/rust/Makefile | 51 +++++----
lang/rust/cargo.mk | 4 +-
lang/rust/distinfo | 11 +-
lang/rust/patches/patch-src_bootstrap_bootstrap.py | 20 ++-
lang/rust/patches/patch-src_bootstrap_builder.rs | 14 ++
lang/rust/patches/patch-src_tools_cargo_src_cargo_core_profiles.rs | 6 +-
lang/rust/patches/patch-src_tools_cargo_tests_testsuite_build.rs | 6 +-
lang/rust/patches/patch-src_tools_rust-installer_install-template.sh | 36 +++++++
lang/rust/patches/patch-src_tools_rust-installer_src_generator.rs | 26 +++++
9 files changed, 132 insertions(+), 42 deletions(-)
diffs (truncated from 332 to 300 lines):
diff -r 74b94328791a -r 891d107f9819 lang/rust/Makefile
--- a/lang/rust/Makefile Tue Nov 27 15:37:45 2018 +0000
+++ b/lang/rust/Makefile Tue Nov 27 15:45:23 2018 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.65 2018/11/18 07:03:01 ryoon Exp $
+# $NetBSD: Makefile,v 1.66 2018/11/27 15:45:23 adam Exp $
DISTNAME= rustc-1.30.1-src
PKGNAME= ${DISTNAME:S/rustc/rust/:S/-src//}
@@ -18,6 +18,8 @@
BUILD_DEPENDS+= cmake-[0-9]*:../../devel/cmake
HAS_CONFIGURE= yes
+CONFIG_SHELL= ${PYTHONBIN}
+CONFIGURE_SCRIPT= src/bootstrap/configure.py
CONFIGURE_ARGS+= --prefix=${PREFIX}
CONFIGURE_ARGS+= --mandir=${PREFIX}/${PKGMANDIR}
CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR}
@@ -31,6 +33,10 @@
CONFIGURE_ARGS+= --disable-dist-src
CONFIGURE_ARGS+= --disable-llvm-static-stdcpp
CONFIGURE_ARGS+= --disable-ninja
+# XXX: to be enabled in the future
+#CONFIGURE_ARGS+= --jemalloc-root=${BUILDLINK_PREFIX.jemalloc}/lib
+#CONFIGURE_ARGS+= --enable-llvm-link-shared
+#CONFIGURE_ARGS+= --llvm-root=${BUILDLINK_PREFIX.llvm}
CONFIGURE_ARGS.SunOS+= --disable-jemalloc
# The gcc-wrap / c++-wrap script takes CROSS_ROOT environment variable
@@ -51,9 +57,9 @@
# the ultimate target to built for, as well as the
# host the compiler is supposed to run on.
# Rust's target designation
-#TARGET= armv7-unknown-netbsd-eabihf
-#TARGET= sparc64-unknown-netbsd
-#TARGET= powerpc-unknown-netbsd
+#TARGET= armv7-unknown-netbsd-eabihf
+#TARGET= sparc64-unknown-netbsd
+#TARGET= powerpc-unknown-netbsd
#SCRIPTS= ${WRKDIR}/scripts
#CONFIGURE_ARGS+= --host=${TARGET}
#CONFIGURE_ARGS+= --target=${TARGET}
@@ -65,7 +71,7 @@
# May be required when cross-building on NetBSD
#MAKE_ENV+= OPENSSL_DIR=/usr
-# Getting RPATH with $ORIGIN into bootstrap may be troublesome, so
+# Getting RPATH with $ORIGIN into bootstrap may be troublesome, so
# uncommenting the LD_LIBRARY_PATH setting may be required to run
# the bootstrap
MAKE_ENV+= LD_LIBRARY_PATH=${WRKDIR}/rust-bootstrap/lib
@@ -250,6 +256,9 @@
BUILD_DEPENDS+= coreutils>=0:../../sysutils/coreutils
TOOLS_CREATE+= md5sum
TOOLS_PATH.md5sum= ${PREFIX}/bin/gmd5sum
+.else
+LD_LIBRARY_PATH= ${RUST_BOOTSTRAP_PATH}/lib
+PKGSRC_MAKE_ENV+= LD_LIBRARY_PATH=${LD_LIBRARY_PATH:Q}
.endif
SUBST_CLASSES+= rpath
@@ -291,11 +300,6 @@
${LN} -s gcc-wrap clang-wrap
.endif
-.if ${OPSYS} != "SunOS"
-LD_LIBRARY_PATH= ${RUST_BOOTSTRAP_PATH}/lib
-PKGSRC_MAKE_ENV+= LD_LIBRARY_PATH=${LD_LIBRARY_PATH:Q}
-.endif
-
.if ${OPSYS} == "FreeBSD"
MAKE_ENV+= OPENSSL_DIR=${SSLBASE}
.endif
@@ -307,23 +311,20 @@
do-build:
cd ${WRKSRC} \
- && env ${MAKE_ENV} \
- ${PYTHONBIN} ./x.py -v dist -j ${MAKE_JOBS:U1}
+ && ${SETENV} ${MAKE_ENV} \
+ ${PYTHONBIN} ./x.py -v build -j ${MAKE_JOBS:U1}
do-install:
cd ${WRKSRC} \
- && env ${MAKE_ENV} ${INSTALL_ENV} \
- ${PYTHONBIN} ./x.py -v install
+ && ${SETENV} ${MAKE_ENV} ${INSTALL_ENV} \
+ ${PYTHONBIN} ./x.py -v install -j ${MAKE_JOBS:U1}
-post-install:
- ${RM} -f ${DESTDIR}${PREFIX}/lib/rustlib/install.log
- ${RM} -f ${DESTDIR}${PREFIX}/lib/rustlib/uninstall.sh
- ${RM} -rf ${DESTDIR}${PREFIX}/lib/rustlib/src
-
-GENERATE_PLIST+= find ${DESTDIR}${PREFIX} \( -type f -o -type l \) -print | \
- sed 's,${DESTDIR}${PREFIX}/,,' | ${SORT} ;
+GENERATE_PLIST+=find ${DESTDIR}${PREFIX} \( -type f -o -type l \) -print | \
+ sed 's,${DESTDIR}${PREFIX}/,,' | ${SORT} ;
.if ${OPSYS} == "Darwin"
+LDFLAGS+= -headerpad_max_install_names
+
.PHONY: fix-darwin-install-name
post-install: fix-darwin-install-name
fix-darwin-install-name:
@@ -387,9 +388,9 @@
done;); \
${GTAR} -czf $${RUSTC_FILE} $${RUSTC}; \
${CP} $${DISTDIR}/$${RUST_STD_FILE} .; \
- echo "Fixed stage0 bootstrap in ${BOOTSTRAP_TMPDIR}:"; \
- echo "$${RUSTC_FILE}"; \
- echo "$${RUST_STD_FILE}"; \
+ ${ECHO} "Fixed stage0 bootstrap in ${BOOTSTRAP_TMPDIR}:"; \
+ ${ECHO} "$${RUSTC_FILE}"; \
+ ${ECHO} "$${RUST_STD_FILE}"; \
)
.endif
.if ${OS_VARIANT} == "SmartOS"
@@ -423,8 +424,10 @@
.endif
.include "../../devel/cmake/buildlink3.mk"
+#.include "../../devel/jemalloc/buildlink3.mk"
#.include "../../devel/libgit2/buildlink3.mk"
.include "../../devel/zlib/buildlink3.mk"
+#.include "../../lang/llvm/buildlink3.mk"
.include "../../lang/python/tool.mk"
#.include "../../security/libssh2/buildlink3.mk"
.include "../../security/openssl/buildlink3.mk"
diff -r 74b94328791a -r 891d107f9819 lang/rust/cargo.mk
--- a/lang/rust/cargo.mk Tue Nov 27 15:37:45 2018 +0000
+++ b/lang/rust/cargo.mk Tue Nov 27 15:45:23 2018 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: cargo.mk,v 1.5 2018/11/27 14:02:11 maya Exp $
+# $NetBSD: cargo.mk,v 1.6 2018/11/27 15:45:23 adam Exp $
#
# Common logic that can be used by packages that depend on cargo crates
# from crates.io. This lets existing pkgsrc infrastructure fetch and verify
@@ -28,7 +28,7 @@
DISTFILES?= ${DEFAULT_DISTFILES}
.for _crate in ${CARGO_CRATE_DEPENDS}
DISTFILES+= ${_crate}.crate
-SITES.${_crate}.crate+= -${MASTER_SITE_CRATESIO}${_crate:C/-[0-9.]+$//}/${_crate:C/^.*-([0-9.]+)$/\1/}/download
+SITES.${_crate}.crate+= -${MASTER_SITE_CRATESIO}${_crate:C/-[0-9.]+$//}/${_crate:C/^.*-([0-9.]+)$/\1/}/download
EXTRACT_DIR.${_crate}.crate?= ${CARGO_VENDOR_DIR}
.endfor
diff -r 74b94328791a -r 891d107f9819 lang/rust/distinfo
--- a/lang/rust/distinfo Tue Nov 27 15:37:45 2018 +0000
+++ b/lang/rust/distinfo Tue Nov 27 15:45:23 2018 +0000
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.46 2018/11/18 07:03:01 ryoon Exp $
+$NetBSD: distinfo,v 1.47 2018/11/27 15:45:23 adam Exp $
SHA1 (rust-1.29.1-i686-unknown-netbsd.tar.gz) = f4f8cbd0a2581546680328765bf5d7d351cf0643
RMD160 (rust-1.29.1-i686-unknown-netbsd.tar.gz) = a590d8dfed10220e8013796cd66c5c9eed51bf37
@@ -97,7 +97,8 @@
SHA512 (rustc-1.30.1-src.tar.gz) = 8eb09bec937f705acd31d05aaa4ef03cabc43b8d9104462436c3155581d7efc753928fd1076f8831eab2cd718284f2ee928bdde06ab47c2ac37de254cea0f099
Size (rustc-1.30.1-src.tar.gz) = 149474922 bytes
SHA1 (patch-src_bootstrap_bin_rustc.rs) = 0abf893090a6053e01fd658096d9a2b5b8c144da
-SHA1 (patch-src_bootstrap_bootstrap.py) = 96ef9368eaa5e10e607ff031d50ed05f3a915775
+SHA1 (patch-src_bootstrap_bootstrap.py) = 5b886b95857bf019c2e37cb380e6905cb444b756
+SHA1 (patch-src_bootstrap_builder.rs) = e02356401417f8e8296a5fe27c68072f698f0190
SHA1 (patch-src_bootstrap_lib.rs) = d86e173b931099730a4f18d044d7977c89f87b91
SHA1 (patch-src_libbacktrace_configure) = b2c1e9b93a99408aad42ab9f1af27704cc81bdd8
SHA1 (patch-src_liblibc_src_unix_bsd_netbsdlike_netbsd_mod.rs) = e5b564bb247094cc8e4e6935a02262b3385cb7e6
@@ -109,6 +110,8 @@
SHA1 (patch-src_llvm_cmake_modules_AddLLVM.cmake) = f0620ac62ecfb1d62d2dfa61b4c063d21c29b8f5
SHA1 (patch-src_llvm_include_llvm-c_DataTypes.h) = 432693204912e79059ee31e815ad1e24f3236374
SHA1 (patch-src_llvm_include_llvm_Analysis_ConstantFolding.h) = 861089ea7ec8985b9b9fce53ffadfa3e9eed4a72
-SHA1 (patch-src_tools_cargo_src_cargo_core_profiles.rs) = 17e19ccaf29e5d2e6a42c5e59837169ebbc7c58e
-SHA1 (patch-src_tools_cargo_tests_testsuite_build.rs) = 10c0f9cc2f2c4fdc651fc123ef5d84cadf93feb5
+SHA1 (patch-src_tools_cargo_src_cargo_core_profiles.rs) = 379f60b809d5af3569541828c7e485da805ad9cc
+SHA1 (patch-src_tools_cargo_tests_testsuite_build.rs) = 76e77c2c49baf8c951ed8d2293e98e3ede0f8538
+SHA1 (patch-src_tools_rust-installer_install-template.sh) = f2ec6dced2be1fa23773d5827503ad07d0913dc2
+SHA1 (patch-src_tools_rust-installer_src_generator.rs) = 45fb4762ef7ddaa7b7071897921d26522277cfc1
SHA1 (patch-src_vendor_rand_src_rngs_os.rs) = 318c9e0ed77f83bb34f5512638545ff16844e8fd
diff -r 74b94328791a -r 891d107f9819 lang/rust/patches/patch-src_bootstrap_bootstrap.py
--- a/lang/rust/patches/patch-src_bootstrap_bootstrap.py Tue Nov 27 15:37:45 2018 +0000
+++ b/lang/rust/patches/patch-src_bootstrap_bootstrap.py Tue Nov 27 15:45:23 2018 +0000
@@ -1,11 +1,10 @@
-$NetBSD: patch-src_bootstrap_bootstrap.py,v 1.2 2018/10/29 22:24:11 he Exp $
+$NetBSD: patch-src_bootstrap_bootstrap.py,v 1.3 2018/11/27 15:45:23 adam Exp $
-Use `uname -p` on NetBSD, as that's reliable & sensible there.
-Also force debuginfo to 0, otherwise the build doesn't work on
-NetBSD/macppc (powerpc).
-Also, handle earmv7hf for NetBSD.
+Use `uname -p` on NetBSD, as that is reliable and sensible there.
+Do not use debuginfo; optimize 'bootstrap' instead.
+Handle earmv7hf for NetBSD.
---- src/bootstrap/bootstrap.py.orig 2018-09-20 17:28:03.000000000 +0000
+--- src/bootstrap/bootstrap.py.orig 2018-11-07 03:22:38.000000000 +0000
+++ src/bootstrap/bootstrap.py
@@ -196,6 +196,11 @@ def default_build_triple():
'OpenBSD': 'unknown-openbsd'
@@ -33,3 +32,12 @@
else:
ostype += 'eabihf'
elif cputype == 'mips':
+@@ -622,7 +629,7 @@ class RustBuild(object):
+ env["LIBRARY_PATH"] = os.path.join(self.bin_root(), "lib") + \
+ (os.pathsep + env["LIBRARY_PATH"]) \
+ if "LIBRARY_PATH" in env else ""
+- env["RUSTFLAGS"] = "-Cdebuginfo=2 "
++ env["RUSTFLAGS"] = "-Copt-level=2 "
+
+ build_section = "target.{}".format(self.build_triple())
+ target_features = []
diff -r 74b94328791a -r 891d107f9819 lang/rust/patches/patch-src_bootstrap_builder.rs
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/rust/patches/patch-src_bootstrap_builder.rs Tue Nov 27 15:45:23 2018 +0000
@@ -0,0 +1,14 @@
+$NetBSD: patch-src_bootstrap_builder.rs,v 1.1 2018/11/27 15:45:23 adam Exp $
+
+Do not install 'src'.
+
+--- src/bootstrap/builder.rs.orig 2018-11-25 15:56:35.000000000 +0000
++++ src/bootstrap/builder.rs
+@@ -473,7 +473,6 @@ impl<'a> Builder<'a> {
+ install::Rustfmt,
+ install::Clippy,
+ install::Analysis,
+- install::Src,
+ install::Rustc
+ ),
+ }
diff -r 74b94328791a -r 891d107f9819 lang/rust/patches/patch-src_tools_cargo_src_cargo_core_profiles.rs
--- a/lang/rust/patches/patch-src_tools_cargo_src_cargo_core_profiles.rs Tue Nov 27 15:37:45 2018 +0000
+++ b/lang/rust/patches/patch-src_tools_cargo_src_cargo_core_profiles.rs Tue Nov 27 15:45:23 2018 +0000
@@ -1,10 +1,10 @@
-$NetBSD: patch-src_tools_cargo_src_cargo_core_profiles.rs,v 1.1 2018/10/29 22:24:11 he Exp $
+$NetBSD: patch-src_tools_cargo_src_cargo_core_profiles.rs,v 1.2 2018/11/27 15:45:23 adam Exp $
Turn off incremental builds for sparc64, ref.
https://sources.debian.org/patches/cargo/0.29.0-1/2007_sparc64_disable_incremental_build.patch/
---- ./src/tools/cargo/src/cargo/core/profiles.rs.orig 2018-10-24 20:01:28.000000000 +0000
-+++ ./src/tools/cargo/src/cargo/core/profiles.rs
+--- src/tools/cargo/src/cargo/core/profiles.rs.orig 2018-10-24 20:01:28.000000000 +0000
++++ src/tools/cargo/src/cargo/core/profiles.rs
@@ -458,6 +458,9 @@ impl Profile {
debuginfo: Some(2),
debug_assertions: true,
diff -r 74b94328791a -r 891d107f9819 lang/rust/patches/patch-src_tools_cargo_tests_testsuite_build.rs
--- a/lang/rust/patches/patch-src_tools_cargo_tests_testsuite_build.rs Tue Nov 27 15:37:45 2018 +0000
+++ b/lang/rust/patches/patch-src_tools_cargo_tests_testsuite_build.rs Tue Nov 27 15:45:23 2018 +0000
@@ -1,10 +1,10 @@
-$NetBSD: patch-src_tools_cargo_tests_testsuite_build.rs,v 1.1 2018/10/29 22:24:11 he Exp $
+$NetBSD: patch-src_tools_cargo_tests_testsuite_build.rs,v 1.2 2018/11/27 15:45:23 adam Exp $
Don't attempt incremental operations on sparc64, ref.
https://sources.debian.org/patches/cargo/0.29.0-1/2007_sparc64_disable_incremental_build.patch/
---- ./src/tools/cargo/tests/testsuite/build.rs.orig 2018-10-24 20:01:28.000000000 +0000
-+++ ./src/tools/cargo/tests/testsuite/build.rs
+--- src/tools/cargo/tests/testsuite/build.rs.orig 2018-10-24 20:01:28.000000000 +0000
++++ src/tools/cargo/tests/testsuite/build.rs
@@ -38,6 +38,7 @@ fn cargo_fail_with_no_stderr() {
/// Check that the `CARGO_INCREMENTAL` environment variable results in
diff -r 74b94328791a -r 891d107f9819 lang/rust/patches/patch-src_tools_rust-installer_install-template.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/rust/patches/patch-src_tools_rust-installer_install-template.sh Tue Nov 27 15:45:23 2018 +0000
@@ -0,0 +1,36 @@
+$NetBSD: patch-src_tools_rust-installer_install-template.sh,v 1.3 2018/11/27 15:45:23 adam Exp $
+
+No logging to 'install.log'.
+Do not create 'uninstall.sh'.
+
+--- src/tools/rust-installer/install-template.sh.orig 2018-11-07 03:23:50.000000000 +0000
++++ src/tools/rust-installer/install-template.sh
+@@ -15,20 +15,12 @@ set -u
+ init_logging() {
+ local _abs_libdir="$1"
+ local _logfile="$_abs_libdir/$TEMPLATE_REL_MANIFEST_DIR/install.log"
+- rm -f "$_logfile"
+- need_ok "failed to remove old installation log"
+- touch "$_logfile"
+- need_ok "failed to create installation log"
+ LOGFILE="$_logfile"
+ }
+
+ log_line() {
+ local _line="$1"
+
+- if [ -n "${LOGFILE-}" -a -e "${LOGFILE-}" ]; then
+- echo "$_line" >> "$LOGFILE"
+- # Ignore errors, which may happen e.g. after the manifest dir is deleted
+- fi
+ }
+
+ msg() {
+@@ -972,7 +964,6 @@ write_to_file "$TEMPLATE_RUST_INSTALLER_
+ critical_need_ok "failed to write installer version"
+
+ # Install the uninstaller
+-install_uninstaller "$src_dir" "$src_basename" "$abs_libdir"
+
Home |
Main Index |
Thread Index |
Old Index