Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F143583967
D10857.id29000.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
7 KB
Referenced Files
None
Subscribers
None
D10857.id29000.diff
View Options
Index: lang/rust/Makefile
===================================================================
--- lang/rust/Makefile
+++ lang/rust/Makefile
@@ -6,7 +6,9 @@
CATEGORIES= lang
MASTER_SITES= http://static.rust-lang.org/dist/:src \
https://static.rust-lang.org/dist/:rust_bootstrap \
+ LOCAL/dumbbell/rust:rust_bootstrap \
https://s3.amazonaws.com/rust-lang-ci/cargo-builds/:cargo_bootstrap \
+ LOCAL/dumbbell/rust:cargo_bootstrap \
LOCAL/marino:bootstrap
DISTNAME?= ${PORTNAME}c-${PORTVERSION}-src
BOOTSTRAP_FILES=${RUSTC_BOOTSTRAP}:rust_bootstrap \
@@ -33,7 +35,7 @@
BUILD_DEPENDS= cmake:devel/cmake
-ONLY_FOR_ARCHS?= amd64 i386
+ONLY_FOR_ARCHS?= aarch64 amd64 i386
ONLY_FOR_ARCHS_REASON= requires prebuilt bootstrap compiler
# FIXME: The bootstrapped rustc adds -L/usr/local/lib in front of
@@ -44,25 +46,30 @@
CONFLICTS_INSTALL?= rust-nightly
RUST_BOOTSTRAP_DIR?= 2017-03-11
+RUST_BOOTSTRAP_DIR_aarch64?= 2017-04-24
RUST_BOOTSTRAP_VERSION?= 1.16.0
-RUSTC_BOOTSTRAP= ${RUST_BOOTSTRAP_DIR}/rustc-${RUST_BOOTSTRAP_VERSION}-${RUST_TARGET}.tar.gz
-RUST_STD_BOOTSTRAP= ${RUST_BOOTSTRAP_DIR}/rust-std-${RUST_BOOTSTRAP_VERSION}-${RUST_TARGET}.tar.gz
+RUST_BOOTSTRAP_VERSION_aarch64?=1.17.0
+RUSTC_BOOTSTRAP= ${RUST_BOOTSTRAP_DIR_${ARCH}:U${RUST_BOOTSTRAP_DIR}}/rustc-${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}}-${RUST_TARGET}.tar.gz
+RUST_STD_BOOTSTRAP= ${RUST_BOOTSTRAP_DIR_${ARCH}:U${RUST_BOOTSTRAP_DIR}}/rust-std-${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}}-${RUST_TARGET}.tar.gz
CARGO_BOOTSTRAP_DIR?= 6b05583d71f982bcad049b9fa094c637c062e751
+CARGO_BOOTSTRAP_DIR_aarch64?= 2017-04-24
CARGO_BOOTSTRAP_VERSION?= nightly
-CARGO_BOOTSTRAP= ${CARGO_BOOTSTRAP_DIR}/cargo-${CARGO_BOOTSTRAP_VERSION}-${RUST_TARGET}.tar.gz
+CARGO_BOOTSTRAP_VERSION_aarch64?=0.18.0
+CARGO_BOOTSTRAP= ${CARGO_BOOTSTRAP_DIR_${ARCH}:U${CARGO_BOOTSTRAP_DIR}}/cargo-${CARGO_BOOTSTRAP_VERSION_${ARCH}:U${CARGO_BOOTSTRAP_VERSION}}-${RUST_TARGET}${EXTRACT_SUFX}
CARGO_REGISTRY= ${PORTNAME}-registry-${DISTVERSIONFULL}.tar.xz
RUST_CHANNEL= ${PKGNAMESUFFIX:Ustable:S/^-//}
# Rust's target arch string is different from *BSD arch strings
-RUST_ARCH_x86_64= x86_64 # dragonfly
+RUST_ARCH_aarch64= aarch64
RUST_ARCH_amd64= x86_64
RUST_ARCH_i386= i686
+RUST_ARCH_x86_64= x86_64 # dragonfly
RUST_TARGET= ${RUST_ARCH_${ARCH}}-unknown-${OPSYS:tl}
PLIST_SUB+= RUST_TARGET=${RUST_TARGET}
-USES= compiler gmake libedit python:2,build
+USES= compiler gmake libedit python:2.7,build
HAS_CONFIGURE= yes
CONFIGURE_ARGS= --disable-valgrind \
${CHOSEN_COMPILER_TYPE:Mclang:C/.+/--enable-&/} \
@@ -70,7 +77,8 @@
--musl-root=${PREFIX} \
--local-rust-root=${PREFIX} \
--mandir=${MANPREFIX}/man \
- --release-channel=${RUST_CHANNEL}
+ --release-channel=${RUST_CHANNEL} \
+ --python="${PYTHON_CMD}"
MAKE_ARGS+= VERBOSE=1
@@ -134,29 +142,32 @@
exit 1;\
fi
-LIBSTD= rust-std-1.16.0-${RUST_ARCH_${ARCH}}-unknown-freebsd/rust-std-${RUST_ARCH_${ARCH}}-unknown-freebsd/lib/rustlib/${RUST_ARCH_${ARCH}}-unknown-freebsd/lib/libstd-aef6cb139bd07bdc.rlib
-STDF= std-aef6cb139bd07bdc.0.o
+RUST_STD_DIR= ${RUST_STD_BOOTSTRAP:T:R:R}
+LIBSTD_SUFFIX= aef6cb139bd07bdc
+LIBSTD_SUFFIX_aarch64= b41e0ffe8c1bd541
+LIBSTD= ${RUST_STD_DIR}/rust-std-${RUST_TARGET}/lib/rustlib/${RUST_TARGET}/lib/libstd-${LIBSTD_SUFFIX_${ARCH}:U${LIBSTD_SUFFIX}}.rlib
+STDF= ${LIBSTD:T:R:S/lib//}.0.o
post-extract:
@${MKDIR} \
- ${WRKSRC}/build/cache/${RUST_BOOTSTRAP_DIR} \
- ${WRKSRC}/build/cache/${CARGO_BOOTSTRAP_DIR}
+ ${WRKSRC}/build/cache/${RUST_BOOTSTRAP_DIR_${ARCH}:U${RUST_BOOTSTRAP_DIR}} \
+ ${WRKSRC}/build/cache/${CARGO_BOOTSTRAP_DIR_${ARCH}:U${CARGO_BOOTSTRAP_DIR}}
${LN} -sf ${DISTDIR}/${DIST_SUBDIR}/${RUSTC_BOOTSTRAP} \
- ${WRKSRC}/build/cache/${RUST_BOOTSTRAP_DIR}
+ ${WRKSRC}/build/cache/${RUST_BOOTSTRAP_DIR_${ARCH}:U${RUST_BOOTSTRAP_DIR}}
.if ${OPSYS} != FreeBSD || ${OSVERSION} < 1200031
${LN} -sf ${DISTDIR}/${DIST_SUBDIR}/${RUST_STD_BOOTSTRAP} \
- ${WRKSRC}/build/cache/${RUST_BOOTSTRAP_DIR}
+ ${WRKSRC}/build/cache/${RUST_BOOTSTRAP_DIR_${ARCH}:U${RUST_BOOTSTRAP_DIR}}
.endif
${LN} -sf ${DISTDIR}/${DIST_SUBDIR}/${CARGO_BOOTSTRAP} \
- ${WRKSRC}/build/cache/${CARGO_BOOTSTRAP_DIR}
- ${TAR} -x -C ${WRKSRC} -f ${DISTDIR}/${DIST_SUBDIR}/${RUST_STD_BOOTSTRAP}
+ ${WRKSRC}/build/cache/${CARGO_BOOTSTRAP_DIR_${ARCH}:U${CARGO_BOOTSTRAP_DIR}}
.if ${OPSYS} == FreeBSD && ${OSVERSION} >= 1200031
+ ${TAR} -x -C ${WRKSRC} -f ${DISTDIR}/${DIST_SUBDIR}/${RUST_STD_BOOTSTRAP}
${CC} ${CFLAGS} -fPIC -c -o ${WRKSRC}/old_fstat.o ${FILESDIR}/old_fstat.c
(cd ${WRKSRC} && ${AR} x ${WRKSRC}/${LIBSTD} ${STDF})
${LD} -r -o ${WRKSRC}/std.xx.o ${WRKSRC}/${STDF} ${WRKSRC}/old_fstat.o
${MV} ${WRKSRC}/std.xx.o ${WRKSRC}/${STDF}
(cd ${WRKSRC} && ${AR} r ${WRKSRC}/${LIBSTD} ${STDF})
- ${TAR} -cy -C ${WRKSRC} -f ${WRKSRC}/rustc.tbz rust-std-1.16.0-${RUST_ARCH_${ARCH}}-unknown-freebsd
+ ${TAR} -cy -C ${WRKSRC} -f ${WRKSRC}/rustc.tbz ${RUST_STD_DIR}
${MV} ${WRKSRC}/rustc.tbz ${WRKSRC}/build/cache/${RUST_STD_BOOTSTRAP}
.endif
@@ -166,6 +177,21 @@
${WRKSRC}/mk/main.mk
@${REINPLACE_CMD} -e 's|gdb|${LOCALBASE}/bin/gdb|' \
${WRKSRC}/src/etc/rust-gdb
+ @if test "${RUST_BOOTSTRAP_DIR_${ARCH}}" -o "${RUST_BOOTSTRAP_VERSION_${ARCH}}"; then \
+ ${REINPLACE_CMD} -e \
+ 's|^rustc:.*|rustc: ${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}}-${RUST_BOOTSTRAP_DIR_${ARCH}:U${RUST_BOOTSTRAP_DIR}}|' \
+ ${WRKSRC}/src/stage0.txt; \
+ fi
+ @if test "${CARGO_BOOTSTRAP_DIR_${ARCH}}"; then \
+ ${REINPLACE_CMD} -e \
+ 's|^cargo:.*|cargo: ${RUST_BOOTSTRAP_DIR_${ARCH}:U${RUST_BOOTSTRAP_DIR}}|' \
+ ${WRKSRC}/src/stage0.txt; \
+ fi
+ @if test "${CARGO_BOOTSTRAP_VERSION_${ARCH}}"; then \
+ ${REINPLACE_CMD} -e \
+ 's|cargo-nightly-|cargo-${CARGO_BOOTSTRAP_VERSION_${ARCH}:U${CARGO_BOOTSTRAP_VERSION}}-|' \
+ ${WRKSRC}/src/bootstrap/bootstrap.py; \
+ fi
# In case the previous "make stage" failed, this ensures rust's
# install.sh won't backup previously staged files before reinstalling
Index: lang/rust/distinfo
===================================================================
--- lang/rust/distinfo
+++ lang/rust/distinfo
@@ -7,6 +7,12 @@
SIZE (rust/2017-03-11/rust-std-1.16.0-x86_64-unknown-freebsd.tar.gz) = 54920061
SHA256 (rust/6b05583d71f982bcad049b9fa094c637c062e751/cargo-nightly-x86_64-unknown-freebsd.tar.gz) = 924b172afe6a990ae19b346ef5ca2a6203f68a22af8d7229039fdc28068ff125
SIZE (rust/6b05583d71f982bcad049b9fa094c637c062e751/cargo-nightly-x86_64-unknown-freebsd.tar.gz) = 4970379
+SHA256 (rust/2017-04-24/rustc-1.17.0-aarch64-unknown-freebsd.tar.gz) = 85c234018cfc7548051d6f726a379ba2c37b80c393a74a96e7212a0c4e15e92e
+SIZE (rust/2017-04-24/rustc-1.17.0-aarch64-unknown-freebsd.tar.gz) = 33612511
+SHA256 (rust/2017-04-24/rust-std-1.17.0-aarch64-unknown-freebsd.tar.gz) = a86d963998cce1f357cbb748c0cd45307255eac964181f3879348e44faf6772c
+SIZE (rust/2017-04-24/rust-std-1.17.0-aarch64-unknown-freebsd.tar.gz) = 43207694
+SHA256 (rust/2017-04-24/cargo-0.18.0-aarch64-unknown-freebsd.tar.gz) = 8cdbf046bfc98e1cb92b89c306e4389b92a8df9db44b8f7c784aaac25ad52877
+SIZE (rust/2017-04-24/cargo-0.18.0-aarch64-unknown-freebsd.tar.gz) = 2935624
SHA256 (rust/2017-03-11/rustc-1.16.0-i686-unknown-freebsd.tar.gz) = 6d32e211c0e9d33adc65f96f06d3996d8e167a29df85ddc6d877d424f82c7443
SIZE (rust/2017-03-11/rustc-1.16.0-i686-unknown-freebsd.tar.gz) = 42809380
SHA256 (rust/2017-03-11/rust-std-1.16.0-i686-unknown-freebsd.tar.gz) = 62c2f030cefe475b7c9e349543f134d3a9ad22830b0422db8230f47e7619fc5f
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Jan 31, 11:50 PM (3 h, 25 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28221442
Default Alt Text
D10857.id29000.diff (7 KB)
Attached To
Mode
D10857: lang/rust: Enable on FreeBSD/aarch64 + various fixes
Attached
Detach File
Event Timeline
Log In to Comment