pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/lang/rust rust: Restore SunOS support. Switch back to...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/7aeb69a652f6
branches:  trunk
changeset: 371669:7aeb69a652f6
user:      jperkin <jperkin%pkgsrc.org@localhost>
date:      Thu Nov 16 19:48:24 2017 +0000

description:
rust: Restore SunOS support.  Switch back to configure script.

No changes intended on other platforms, the configure script arguments
should be identical to those previously found in config.toml.  Doing it
this way makes it a lot easier to have per-OS configuration.

diffstat:

 lang/rust/Makefile                                                   |  84 +++++----
 lang/rust/distinfo                                                   |   9 +-
 lang/rust/files/config.toml                                          |  22 --
 lang/rust/patches/patch-src_libbacktrace_configure                   |  15 +
 lang/rust/patches/patch-src_libstd_build.rs                          |  18 ++
 lang/rust/patches/patch-src_tools_rust-installer_install-template.sh |  17 ++
 6 files changed, 103 insertions(+), 62 deletions(-)

diffs (281 lines):

diff -r e6a187f058c6 -r 7aeb69a652f6 lang/rust/Makefile
--- a/lang/rust/Makefile        Thu Nov 16 18:51:32 2017 +0000
+++ b/lang/rust/Makefile        Thu Nov 16 19:48:24 2017 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.17 2017/11/04 15:51:43 tnn Exp $
+# $NetBSD: Makefile,v 1.18 2017/11/16 19:48:24 jperkin Exp $
 
 DISTNAME=      rustc-1.21.0-src
 PKGNAME=       ${DISTNAME:S/rustc/rust/:S/-src//}
@@ -12,14 +12,35 @@
 
 USE_GCC_RUNTIME=       yes
 USE_LANGUAGES=         c c++11
+USE_LIBTOOL=           yes
 USE_TOOLS+=            bash gmake perl:build pkg-config
 
+HAS_CONFIGURE=         yes
+CONFIGURE_ARGS+=       --prefix=${PREFIX}
+CONFIGURE_ARGS+=       --mandir=${PREFIX}/${PKGMANDIR}
+CONFIGURE_ARGS+=       --sysconfdir=${PKG_SYSCONFDIR}
+CONFIGURE_ARGS+=       --python=${PYTHONBIN}
+CONFIGURE_ARGS+=       --release-channel=stable
+CONFIGURE_ARGS+=       --enable-local-rust
+CONFIGURE_ARGS+=       --local-rust-root=${RUST_BOOTSTRAP_PATH}
+CONFIGURE_ARGS+=       --enable-extended       # Build and install cargo too.
+CONFIGURE_ARGS+=       --enable-rpath
+CONFIGURE_ARGS+=       --disable-codegen-tests
+CONFIGURE_ARGS+=       --disable-dist-src
+CONFIGURE_ARGS+=       --disable-llvm-static-stdcpp
+CONFIGURE_ARGS+=       --disable-ninja
+
+# This should allow us to perform "offline" builds (so cargo doesn't fetch
+# dependencies during the build stage) but this isn't hooked up yet.
+CONFIGURE_ARGS+=       --enable-vendor
+
 UNLIMIT_RESOURCES+=    cputime
 
 TEST_TARGET=   check
 
 # bin/* lib/*, but names vary
 CHECK_RELRO_SUPPORTED= no
+CHECK_SSP_SUPPORTED=   no
 
 # Required for LLVM (-std=c++11)
 GCC_REQD+=     4.8
@@ -32,6 +53,17 @@
 BUILDLINK_TRANSFORM.NetBSD+=   rm:-Wl,--enable-new-dtags
 
 #
+# Use bundled LLVM and libumem on SunOS.
+#
+.if ${OPSYS} == "SunOS"
+CONFIGURE_ARGS+=       --disable-jemalloc
+.else
+CONFIGURE_ARGS+=       --llvm-root=${BUILDLINK_PREFIX.llvm}
+BUILDLINK_API_DEPENDS.llvm+=  llvm>=4.0.1nb1
+.include "../../lang/llvm/buildlink3.mk"
+.endif
+
+#
 # Rust unfortunately requires itself to build.  On platforms which aren't
 # supported by upstream (where they offer binary bootstraps), or where we do
 # not trust random binaries from the Internet, we need to build and provide our
@@ -64,12 +96,13 @@
 RUST_STD_STAGE0:=      rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
 DISTFILES:=            ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
 .endif
-#.if !empty(MACHINE_PLATFORM:MSunOS-*-x86_64) || make(distinfo) || make (makesum) || make(mdi)
-#RUST_ARCH:=           x86_64-sun-solaris
-#RUST_STAGE0:=         rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
-#SITES.${RUST_STAGE0}= https://us-east.manta.joyent.com/pkgsrc/public/pkg-bootstraps/
-#DISTFILES:=           ${DISTFILES} ${RUST_STAGE0}
-#.endif
+.if !empty(MACHINE_PLATFORM:MSunOS-*-x86_64) || make(distinfo) || make (makesum) || make(mdi)
+RUST_ARCH:=            x86_64-sun-solaris
+RUST_STAGE0:=          rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
+SITES.${RUST_STAGE0}=  https://us-east.manta.joyent.com/pkgsrc/public/pkg-bootstraps/
+DISTFILES:=            ${DISTFILES} ${RUST_STAGE0}
+RUST_BOOTSTRAP_PATH?=  ${WRKDIR}/rust-${RUST_STAGE0_VER}-${RUST_ARCH}
+.endif
 .if !empty(MACHINE_PLATFORM:MNetBSD-*-i386) || make(distinfo) || make (makesum) || make(mdi)
 RUST_ARCH=             i686-unknown-netbsd
 RUST_STAGE0:=          rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
@@ -95,29 +128,12 @@
 RUST_BOOTSTRAP_PATH?=  ${WRKDIR}/rust-bootstrap
 .endif
 
-OPSYSVARS+=            SOEXT
-SOEXT.Darwin=          dylib
-SOEXT.*=               so
-
-RUST_VERHASH=          63283ac5
-PLIST_SUBST+=          RUST_ARCH=${RUST_ARCH:Q}
-PLIST_SUBST+=          RUST_VERHASH=${RUST_VERHASH:Q}
-PLIST_SUBST+=          SOEXT=${SOEXT:Q}
-PRINT_PLIST_AWK+=      { gsub(/${RUST_ARCH}/, "$${RUST_ARCH}") }
-PRINT_PLIST_AWK+=      { gsub(/${RUST_VERHASH}/, "$${RUST_VERHASH}") }
-PRINT_PLIST_AWK+=      { gsub(/\.${SOEXT}/, ".$${SOEXT}") }
-
 .if ${OPSYS} == "SunOS"
 BUILD_DEPENDS+=                grep>=0:../../textproc/grep
 BUILD_DEPENDS+=                coreutils>=0:../../sysutils/coreutils
 TOOLS_PATH.grep=       ${PREFIX}/bin/ggrep
 TOOLS_CREATE+=         md5sum
 TOOLS_PATH.md5sum=     ${PREFIX}/bin/gmd5sum
-
-SUBST_CLASSES+=                ranlib
-SUBST_STAGE.ranlib=    post-patch
-SUBST_FILES.ranlib=    mk/rt.mk
-SUBST_SED.ranlib=      -e 's,RANLIB=.* \\,RANLIB="true" \\,g'
 .endif
 
 SUBST_CLASSES+=                rpath
@@ -135,28 +151,20 @@
                ${TOOLS_BASH} ./install.sh --prefix=${RUST_BOOTSTRAP_PATH};     \
        fi
 
-RUSTC=                 ${RUST_BOOTSTRAP_PATH}/bin/rustc
-CARGO=                 ${RUST_BOOTSTRAP_PATH}/bin/cargo
+.if ${OPSYS} != "SunOS"
 LD_LIBRARY_PATH=       ${RUST_BOOTSTRAP_PATH}/lib
 PKGSRC_MAKE_ENV+=      LD_LIBRARY_PATH=${LD_LIBRARY_PATH:Q}
-
-SUBST_CLASSES+=                config
-SUBST_STAGE.config=    post-configure
-SUBST_FILES.config+=   config.toml
-SUBST_VARS.config+=    RUSTC CARGO PREFIX PYTHONBIN RUST_ARCH
-
-do-configure:
-       ${CP} ${FILESDIR}/config.toml ${WRKSRC}/config.toml
+.endif
 
 do-build:
        cd ${WRKSRC} \
        && env ${MAKE_ENV} \
-               ${PYTHONBIN} ./x.py dist
+               ${PYTHONBIN} ./x.py -v dist
 
 do-install:
        cd ${WRKSRC} \
        && env ${MAKE_ENV} ${INSTALL_ENV} \
-               ${PYTHONBIN} ./x.py install
+               ${PYTHONBIN} ./x.py -v install
 
 post-install:
        ${RM} -f ${DESTDIR}${PREFIX}/lib/rustlib/install.log
@@ -194,7 +202,7 @@
 # Create a relocatable stage2 bootstrap from the bits we just built that can be
 # used to build the next version of rust.  Currently only tested on SmartOS.
 #
-BOOTSTRAP_TMPDIR=      ${WRKDIR}/${PKGNAME}-${RUST_ARCH}/rustc
+BOOTSTRAP_TMPDIR=      ${WRKDIR}/${PKGNAME}-${RUST_ARCH}
 USE_TOOLS+=            gtar
 
 stage0-bootstrap: install
@@ -222,8 +230,6 @@
 .include "../../devel/cmake/buildlink3.mk"
 .include "../../devel/libgit2/buildlink3.mk"
 .include "../../devel/zlib/buildlink3.mk"
-BUILDLINK_API_DEPENDS.llvm+=  llvm>=4.0.1nb1
-.include "../../lang/llvm/buildlink3.mk"
 .include "../../lang/python/tool.mk"
 .include "../../security/libssh2/buildlink3.mk"
 .include "../../security/openssl/buildlink3.mk"
diff -r e6a187f058c6 -r 7aeb69a652f6 lang/rust/distinfo
--- a/lang/rust/distinfo        Thu Nov 16 18:51:32 2017 +0000
+++ b/lang/rust/distinfo        Thu Nov 16 19:48:24 2017 +0000
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.9 2017/11/03 22:04:10 ryoon Exp $
+$NetBSD: distinfo,v 1.10 2017/11/16 19:48:24 jperkin Exp $
 
 SHA1 (rust-1.20.0-i686-apple-darwin.tar.gz) = a6dfd1c13abe89f285979a7264a1a8b0987ccaf9
 RMD160 (rust-1.20.0-i686-apple-darwin.tar.gz) = da59f39d68ae4b4b1a11e371962fba6d7cf0ef2d
@@ -16,6 +16,10 @@
 RMD160 (rust-1.20.0-x86_64-apple-darwin.tar.gz) = 458b8cc20775c7db7d691632e4ba70ebac2426f8
 SHA512 (rust-1.20.0-x86_64-apple-darwin.tar.gz) = 276f75b785076045512035a98c6ec78057497340db5077bf0a1e491fe571ef63bebce6e50884a1f636f04d601c5c9e85018588c3e2bf2f4b15653fbc54b279de
 Size (rust-1.20.0-x86_64-apple-darwin.tar.gz) = 129228477 bytes
+SHA1 (rust-1.20.0-x86_64-sun-solaris.tar.gz) = 11a2577ec593273909e8d847e64996976c07c52e
+RMD160 (rust-1.20.0-x86_64-sun-solaris.tar.gz) = 32b87d37f327d2dcbcc7b489491e9df04a7e9c34
+SHA512 (rust-1.20.0-x86_64-sun-solaris.tar.gz) = f74936810faa8919ab86e2eabc83408b920bfa49ebfe0f1c033ae27abe157bec4a2350b75c2ce8a934490b58f1730b7d8dc58db48b74bd251f968b32b71d74db
+Size (rust-1.20.0-x86_64-sun-solaris.tar.gz) = 148849221 bytes
 SHA1 (rust-1.20.0-x86_64-unknown-linux-gnu.tar.gz) = cb015e25b4666624b7984e2d9154f1bf273c2ae7
 RMD160 (rust-1.20.0-x86_64-unknown-linux-gnu.tar.gz) = 0215150d516b0b313b64d48606743e4c51061f2e
 SHA512 (rust-1.20.0-x86_64-unknown-linux-gnu.tar.gz) = 709a3df5733443bd53e18f78998fbd0ff0cba38d6ef5526570f3d388414576f38019d5fbece7408ab28b5d6fbd9ceb4b830ce31352da1ff5ccfc4e2757d68d17
@@ -53,5 +57,8 @@
 SHA512 (rustc-1.21.0-src.tar.gz) = 47f29a5c9c926c1b209516a8546c67a24c1c6ee15c6302c8c6d340047b3e1f713cc6d09e568b67ae4b47b08cbb0befd95fc0d7a72f2ce21a5224d4e5da03b4f5
 Size (rustc-1.21.0-src.tar.gz) = 52555346 bytes
 SHA1 (patch-src_bootstrap_bin_rustc.rs) = 617cc7ae52d92fdf80af0aff169c17a9cec4d67c
+SHA1 (patch-src_libbacktrace_configure) = b2c1e9b93a99408aad42ab9f1af27704cc81bdd8
+SHA1 (patch-src_libstd_build.rs) = 32dad8a474300f9f37bce8b92acca762cf8cc4ab
 SHA1 (patch-src_llvm_cmake_modules_AddLLVM.cmake) = 282d97cce8d01cfefe565185d4999c2db9ccc13f
 SHA1 (patch-src_llvm_lib_CodeGen_MachineDominanceFrontier.cpp) = 2899771b1a23be840b9305eff7e5e5f957239ccb
+SHA1 (patch-src_tools_rust-installer_install-template.sh) = 88fe49a449e219ba1e3a11766615082120fc9680
diff -r e6a187f058c6 -r 7aeb69a652f6 lang/rust/files/config.toml
--- a/lang/rust/files/config.toml       Thu Nov 16 18:51:32 2017 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-[build]
-rustc = "@RUSTC@"
-cargo = "@CARGO@"
-python = "@PYTHONBIN@"
-vendor = true
-extended = true
-verbose = 2
-[install]
-prefix = "@PREFIX@"
-sysconfdir = ""
-mandir = "man"
-[rust]
-channel = "stable"
-rpath = true
-codegen-tests = false
-[dist]
-src-tarball = false
-[llvm]
-static-libstdcpp = false
-ninja = false
-[target.@RUST_ARCH@]
-llvm-config = "@PREFIX@/bin/llvm-config"
diff -r e6a187f058c6 -r 7aeb69a652f6 lang/rust/patches/patch-src_libbacktrace_configure
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/rust/patches/patch-src_libbacktrace_configure        Thu Nov 16 19:48:24 2017 +0000
@@ -0,0 +1,15 @@
+$NetBSD: patch-src_libbacktrace_configure,v 1.1 2017/11/16 19:48:24 jperkin Exp $
+
+Use pkgsrc libtool.
+
+--- src/libbacktrace/configure.orig    2017-10-09 20:04:51.000000000 +0000
++++ src/libbacktrace/configure
+@@ -7783,7 +7783,7 @@ fi
+ LIBTOOL_DEPS="$ltmain"
+ 
+ # Always use our own libtool.
+-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
++LIBTOOL='libtool'
+ 
+ 
+ 
diff -r e6a187f058c6 -r 7aeb69a652f6 lang/rust/patches/patch-src_libstd_build.rs
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/rust/patches/patch-src_libstd_build.rs       Thu Nov 16 19:48:24 2017 +0000
@@ -0,0 +1,18 @@
+$NetBSD: patch-src_libstd_build.rs,v 1.1 2017/11/16 19:48:24 jperkin Exp $
+
+SunOS support:
+ - Support PKGSRC_USE_SSP (ugly for now).
+ - Add libumem support.
+
+--- src/libstd/build.rs.orig   2017-10-09 20:04:51.000000000 +0000
++++ src/libstd/build.rs
+@@ -46,6 +46,9 @@ fn main() {
+         println!("cargo:rustc-link-lib=posix4");
+         println!("cargo:rustc-link-lib=pthread");
+         println!("cargo:rustc-link-lib=resolv");
++        // pkgsrc hack until I can figure out how to pass it through properly
++        println!("cargo:rustc-link-lib=ssp");
++        println!("cargo:rustc-link-lib=umem");
+     } else if target.contains("apple-darwin") {
+         println!("cargo:rustc-link-lib=System");
+ 
diff -r e6a187f058c6 -r 7aeb69a652f6 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      Thu Nov 16 19:48:24 2017 +0000
@@ -0,0 +1,17 @@
+$NetBSD: patch-src_tools_rust-installer_install-template.sh,v 1.1 2017/11/16 19:48:24 jperkin Exp $
+
+Support SunOS.
+
+--- src/tools/rust-installer/install-template.sh.orig  2017-10-09 20:07:27.000000000 +0000
++++ src/tools/rust-installer/install-template.sh
+@@ -348,6 +348,10 @@ get_host_triple() {
+             _ostype=unknown-openbsd
+             ;;
+ 
++      SunOS)
++            _ostype=sun-solaris
++            ;;
++
+       Darwin)
+             _ostype=apple-darwin
+             ;;



Home | Main Index | Thread Index | Old Index