Mon Apr 22 19:00:31 2024 UTC (55d)
lang/rust: revision bump for llvm update


(pin)
diff -r1.306 -r1.307 pkgsrc/lang/rust/Makefile

cvs diff -r1.306 -r1.307 pkgsrc/lang/rust/Makefile (switch to unified diff)

--- pkgsrc/lang/rust/Makefile 2024/04/18 12:00:45 1.306
+++ pkgsrc/lang/rust/Makefile 2024/04/22 19:00:31 1.307
@@ -1,703 +1,704 @@ @@ -1,703 +1,704 @@
1# $NetBSD: Makefile,v 1.306 2024/04/18 12:00:45 jperkin Exp $ 1# $NetBSD: Makefile,v 1.307 2024/04/22 19:00:31 pin Exp $
2 2
3DISTNAME= rustc-1.76.0-src 3DISTNAME= rustc-1.76.0-src
4PKGNAME= ${DISTNAME:S/rustc/rust/:S/-src//} 4PKGNAME= ${DISTNAME:S/rustc/rust/:S/-src//}
 5PKGREVISION= 1
5CATEGORIES= lang 6CATEGORIES= lang
6MASTER_SITES= https://static.rust-lang.org/dist/ 7MASTER_SITES= https://static.rust-lang.org/dist/
7 8
8MAINTAINER= pkgsrc-users@NetBSD.org 9MAINTAINER= pkgsrc-users@NetBSD.org
9HOMEPAGE= https://www.rust-lang.org/ 10HOMEPAGE= https://www.rust-lang.org/
10COMMENT= Safe, concurrent, practical language 11COMMENT= Safe, concurrent, practical language
11LICENSE= mit OR apache-2.0 12LICENSE= mit OR apache-2.0
12 13
13CONFLICTS+= rust-bin-[0-9]* 14CONFLICTS+= rust-bin-[0-9]*
14 15
15# LLVM uses -std=c++17 16# LLVM uses -std=c++17
16USE_CXX_FEATURES+= c++17 17USE_CXX_FEATURES+= c++17
17USE_GCC_RUNTIME= yes 18USE_GCC_RUNTIME= yes
18USE_LANGUAGES= c c++ 19USE_LANGUAGES= c c++
19USE_LIBTOOL= yes 20USE_LIBTOOL= yes
20USE_TOOLS+= bash grep gmake perl:build pkg-config 21USE_TOOLS+= bash grep gmake perl:build pkg-config
21 22
22# The NetBSD bootstraps are built for NetBSD 8 (because rust doesn't 23# The NetBSD bootstraps are built for NetBSD 8 (because rust doesn't
23# build on 7). Mark earlier versions as broken. 24# build on 7). Mark earlier versions as broken.
24BROKEN_ON_PLATFORM+= NetBSD-[1-7].*-* 25BROKEN_ON_PLATFORM+= NetBSD-[1-7].*-*
25# Bootstrap is built for NetBSD 9.x on these platforms: 26# Bootstrap is built for NetBSD 9.x on these platforms:
26BROKEN_ON_PLATFORM+= NetBSD-8.*-*arm* 27BROKEN_ON_PLATFORM+= NetBSD-8.*-*arm*
27BROKEN_ON_PLATFORM+= NetBSD-8.*-aarch64 28BROKEN_ON_PLATFORM+= NetBSD-8.*-aarch64
28BROKEN_ON_PLATFORM+= NetBSD-8.*-sparc64 29BROKEN_ON_PLATFORM+= NetBSD-8.*-sparc64
29BROKEN_ON_PLATFORM+= NetBSD-8.*-powerpc 30BROKEN_ON_PLATFORM+= NetBSD-8.*-powerpc
30BROKEN_ON_PLATFORM+= NetBSD-8.*-i386 31BROKEN_ON_PLATFORM+= NetBSD-8.*-i386
31 32
32HAS_CONFIGURE= yes 33HAS_CONFIGURE= yes
33PYTHON_FOR_BUILD_ONLY= yes 34PYTHON_FOR_BUILD_ONLY= yes
34CONFIG_SHELL= ${PYTHONBIN} 35CONFIG_SHELL= ${PYTHONBIN}
35CONFIGURE_SCRIPT= src/bootstrap/configure.py 36CONFIGURE_SCRIPT= src/bootstrap/configure.py
36CONFIGURE_ARGS+= --prefix=${PREFIX} 37CONFIGURE_ARGS+= --prefix=${PREFIX}
37CONFIGURE_ARGS+= --mandir=${PREFIX}/${PKGMANDIR} 38CONFIGURE_ARGS+= --mandir=${PREFIX}/${PKGMANDIR}
38CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR} 39CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR}
39CONFIGURE_ARGS+= --python=${PYTHONBIN} 40CONFIGURE_ARGS+= --python=${PYTHONBIN}
40CONFIGURE_ARGS+= --release-channel=stable 41CONFIGURE_ARGS+= --release-channel=stable
41CONFIGURE_ARGS+= --local-rust-root=${RUST_BOOTSTRAP_PATH} 42CONFIGURE_ARGS+= --local-rust-root=${RUST_BOOTSTRAP_PATH}
42CONFIGURE_ARGS+= --enable-extended # Build and install cargo too. 43CONFIGURE_ARGS+= --enable-extended # Build and install cargo too.
43CONFIGURE_ARGS+= --enable-rpath 44CONFIGURE_ARGS+= --enable-rpath
44CONFIGURE_ARGS+= --disable-codegen-tests 45CONFIGURE_ARGS+= --disable-codegen-tests
45CONFIGURE_ARGS+= --disable-compiler-docs 46CONFIGURE_ARGS+= --disable-compiler-docs
46CONFIGURE_ARGS+= --disable-llvm-static-stdcpp 47CONFIGURE_ARGS+= --disable-llvm-static-stdcpp
47CONFIGURE_ARGS+= --disable-ninja 48CONFIGURE_ARGS+= --disable-ninja
48CONFIGURE_ARGS+= --dist-compression-formats=xz 49CONFIGURE_ARGS+= --dist-compression-formats=xz
49 50
50# Include (optional) settings to cross-build rust 51# Include (optional) settings to cross-build rust
51.include "cross.mk" 52.include "cross.mk"
52 53
53# optional from do-cross.mk 54# optional from do-cross.mk
54CONFIGURE_ARGS+= ${ADD_CONFIGURE_ARGS} 55CONFIGURE_ARGS+= ${ADD_CONFIGURE_ARGS}
55 56
56# Getting RPATH with $ORIGIN into bootstrap may be troublesome, so 57# Getting RPATH with $ORIGIN into bootstrap may be troublesome, so
57# uncommenting the LD_LIBRARY_PATH setting may be required to run 58# uncommenting the LD_LIBRARY_PATH setting may be required to run
58# the bootstrap 59# the bootstrap
59PKGSRC_MAKE_ENV+= LD_LIBRARY_PATH=${RUST_BOOTSTRAP_PATH:Q}/lib 60PKGSRC_MAKE_ENV+= LD_LIBRARY_PATH=${RUST_BOOTSTRAP_PATH:Q}/lib
60 61
61# This should allow us to perform "offline" builds (so cargo doesn't fetch 62# This should allow us to perform "offline" builds (so cargo doesn't fetch
62# dependencies during the build stage) but this isn't hooked up yet. 63# dependencies during the build stage) but this isn't hooked up yet.
63CONFIGURE_ARGS+= --enable-vendor 64CONFIGURE_ARGS+= --enable-vendor
64 65
65# cargo defaults to using the number of available CPUs 66# cargo defaults to using the number of available CPUs
66MAKE_ENV+= CARGO_BUILD_JOBS=${_MAKE_JOBS_N} 67MAKE_ENV+= CARGO_BUILD_JOBS=${_MAKE_JOBS_N}
67 68
68# Rust builds some bundled components with strict version requirements, ensure 69# Rust builds some bundled components with strict version requirements, ensure
69# that any conflicting packages pulled in via dependencies are not buildlinked. 70# that any conflicting packages pulled in via dependencies are not buildlinked.
70BUILDLINK_FILES_CMD.libssh2= ${TRUE} 71BUILDLINK_FILES_CMD.libssh2= ${TRUE}
71BUILDLINK_FILES_CMD.xz= ${TRUE} 72BUILDLINK_FILES_CMD.xz= ${TRUE}
72MAKE_ENV+= LZMA_API_STATIC=1 73MAKE_ENV+= LZMA_API_STATIC=1
73 74
74# MacOS X 10.7 is the oldest supported version. See 75# MacOS X 10.7 is the oldest supported version. See
75# ${WRKSRC}/src/bootstrap/lib.rs 76# ${WRKSRC}/src/bootstrap/lib.rs
76MAKE_ENV.Darwin+= MACOSX_DEPLOYMENT_TARGET="10.7" 77MAKE_ENV.Darwin+= MACOSX_DEPLOYMENT_TARGET="10.7"
77 78
78CFLAGS.SunOS+= -D_POSIX_PTHREAD_SEMANTICS 79CFLAGS.SunOS+= -D_POSIX_PTHREAD_SEMANTICS
79MAKE_ENV.SunOS+= AR=gar 80MAKE_ENV.SunOS+= AR=gar
80 81
81# Debugging of crate resolution 82# Debugging of crate resolution
82# Annoyingly, this makes the powerpc build succeed... 83# Annoyingly, this makes the powerpc build succeed...
83#MAKE_ENV+= RUSTC_LOG=rustc_metadata 84#MAKE_ENV+= RUSTC_LOG=rustc_metadata
84 85
85UNLIMIT_RESOURCES+= cputime stacksize datasize virtualsize 86UNLIMIT_RESOURCES+= cputime stacksize datasize virtualsize
86 87
87TEST_TARGET= check 88TEST_TARGET= check
88 89
89# bin/* lib/*, but names vary 90# bin/* lib/*, but names vary
90CHECK_RELRO_SUPPORTED= no 91CHECK_RELRO_SUPPORTED= no
91CHECK_SSP_SUPPORTED= no 92CHECK_SSP_SUPPORTED= no
92 93
93.include "../../mk/bsd.prefs.mk" 94.include "../../mk/bsd.prefs.mk"
94 95
95# Allow overriding MAKE_JOBS_SAFE 96# Allow overriding MAKE_JOBS_SAFE
96# some may chose to mostly build faster, 97# some may chose to mostly build faster,
97# and deal with any failures due to deadlocks 98# and deal with any failures due to deadlocks
98.if !empty(rust.MAKE_JOBS_SAFE) 99.if !empty(rust.MAKE_JOBS_SAFE)
99. if ${rust.MAKE_JOBS_SAFE:tl} == "yes" 100. if ${rust.MAKE_JOBS_SAFE:tl} == "yes"
100MAKE_JOBS_SAFE= yes 101MAKE_JOBS_SAFE= yes
101. endif 102. endif
102.endif 103.endif
103 104
104.if !empty(rust.BUILD_TARGET) 105.if !empty(rust.BUILD_TARGET)
105BUILD_TARGET= ${rust.BUILD_TARGET} 106BUILD_TARGET= ${rust.BUILD_TARGET}
106.endif 107.endif
107 108
108.if !empty(TARGET) 109.if !empty(TARGET)
109# Use "dist" build target for cross compile of bootstrap 110# Use "dist" build target for cross compile of bootstrap
110BUILD_TARGET?= dist 111BUILD_TARGET?= dist
111.else 112.else
112BUILD_TARGET?= build 113BUILD_TARGET?= build
113.endif 114.endif
114 115
115.if ${MACHINE_PLATFORM:MNetBSD-*-powerpc} || \ 116.if ${MACHINE_PLATFORM:MNetBSD-*-powerpc} || \
116 ${MACHINE_PLATFORM:MNetBSD-*-earmv[67]hf} || \ 117 ${MACHINE_PLATFORM:MNetBSD-*-earmv[67]hf} || \
117 ${MACHINE_PLATFORM:MNetBSD-*-mipsel} || \ 118 ${MACHINE_PLATFORM:MNetBSD-*-mipsel} || \
118 !empty(TARGET:Marmv[67]-unknown-netbsd-eabihf) || \ 119 !empty(TARGET:Marmv[67]-unknown-netbsd-eabihf) || \
119 !empty(TARGET:Mmipsel-unknown-netbsd) 120 !empty(TARGET:Mmipsel-unknown-netbsd)
120# Bootstrapping on NetBSD/powerpc requires no debug-info from rustc 121# Bootstrapping on NetBSD/powerpc requires no debug-info from rustc
121# (both for amd64->powerpc built and powerpc->powerpc built bootstrap bits) 122# (both for amd64->powerpc built and powerpc->powerpc built bootstrap bits)
122# Also try to downsize the armv[67] build. 123# Also try to downsize the armv[67] build.
123CONFIGURE_ARGS+= --disable-debug 124CONFIGURE_ARGS+= --disable-debug
124CONFIGURE_ARGS+= --disable-debug-assertions 125CONFIGURE_ARGS+= --disable-debug-assertions
125CONFIGURE_ARGS+= --disable-llvm-release-debuginfo 126CONFIGURE_ARGS+= --disable-llvm-release-debuginfo
126CONFIGURE_ARGS+= --debuginfo-level=0 127CONFIGURE_ARGS+= --debuginfo-level=0
127CONFIGURE_ARGS+= --debuginfo-level-rustc=0 128CONFIGURE_ARGS+= --debuginfo-level-rustc=0
128CONFIGURE_ARGS+= --debuginfo-level-std=0 129CONFIGURE_ARGS+= --debuginfo-level-std=0
129CONFIGURE_ARGS+= --debuginfo-level-tools=0 130CONFIGURE_ARGS+= --debuginfo-level-tools=0
130CONFIGURE_ARGS+= --debuginfo-level-tests=0 131CONFIGURE_ARGS+= --debuginfo-level-tests=0
131.endif 132.endif
132 133
133# Only build the ARM target on/for this host, due to resource constraints 134# Only build the ARM target on/for this host, due to resource constraints
134.if ${MACHINE_PLATFORM:MNetBSD-*-earmv[67]hf} 135.if ${MACHINE_PLATFORM:MNetBSD-*-earmv[67]hf}
135CONFIGURE_ARGS+= --set llvm.targets="ARM" 136CONFIGURE_ARGS+= --set llvm.targets="ARM"
136.endif 137.endif
137# When cross-building for ARM on X86, X86 needs to go along due 138# When cross-building for ARM on X86, X86 needs to go along due
138# to 2-stage build process 139# to 2-stage build process
139.if !empty(TARGET:Marmv[67]-unknown-netbsd-eabihf) 140.if !empty(TARGET:Marmv[67]-unknown-netbsd-eabihf)
140CONFIGURE_ARGS+= --set llvm.targets="ARM;X86" 141CONFIGURE_ARGS+= --set llvm.targets="ARM;X86"
141.endif 142.endif
142# Same for mips: 143# Same for mips:
143.if ${MACHINE_PLATFORM:MNetBSD-*-mipsel} 144.if ${MACHINE_PLATFORM:MNetBSD-*-mipsel}
144CONFIGURE_ARGS+= --set llvm.targets="Mips" 145CONFIGURE_ARGS+= --set llvm.targets="Mips"
145.endif 146.endif
146.if !empty(TARGET:Mmipsel-unknown-netbsd) 147.if !empty(TARGET:Mmipsel-unknown-netbsd)
147CONFIGURE_ARGS+= --set llvm.targets="Mips;X86" 148CONFIGURE_ARGS+= --set llvm.targets="Mips;X86"
148.endif 149.endif
149 150
150CHECK_INTERPRETER_SKIP+= lib/rustlib/src/rust/library/backtrace/ci/android-sdk.sh 151CHECK_INTERPRETER_SKIP+= lib/rustlib/src/rust/library/backtrace/ci/android-sdk.sh
151CHECK_INTERPRETER_SKIP+= lib/rustlib/src/rust/library/backtrace/ci/debuglink.sh 152CHECK_INTERPRETER_SKIP+= lib/rustlib/src/rust/library/backtrace/ci/debuglink.sh
152CHECK_INTERPRETER_SKIP+= lib/rustlib/src/rust/library/backtrace/ci/run.sh 153CHECK_INTERPRETER_SKIP+= lib/rustlib/src/rust/library/backtrace/ci/run.sh
153CHECK_INTERPRETER_SKIP+= lib/rustlib/src/rust/library/backtrace/ci/run-docker.sh 154CHECK_INTERPRETER_SKIP+= lib/rustlib/src/rust/library/backtrace/ci/run-docker.sh
154CHECK_INTERPRETER_SKIP+= lib/rustlib/src/rust/library/core/src/unicode/printable.py 155CHECK_INTERPRETER_SKIP+= lib/rustlib/src/rust/library/core/src/unicode/printable.py
155CHECK_INTERPRETER_SKIP+= lib/rustlib/src/rust/library/stdarch/ci/build-std-detect.sh 156CHECK_INTERPRETER_SKIP+= lib/rustlib/src/rust/library/stdarch/ci/build-std-detect.sh
156CHECK_INTERPRETER_SKIP+= lib/rustlib/src/rust/library/stdarch/ci/dox.sh 157CHECK_INTERPRETER_SKIP+= lib/rustlib/src/rust/library/stdarch/ci/dox.sh
157CHECK_INTERPRETER_SKIP+= lib/rustlib/src/rust/library/stdarch/ci/run-docker.sh 158CHECK_INTERPRETER_SKIP+= lib/rustlib/src/rust/library/stdarch/ci/run-docker.sh
158CHECK_INTERPRETER_SKIP+= lib/rustlib/src/rust/library/stdarch/ci/run.sh 159CHECK_INTERPRETER_SKIP+= lib/rustlib/src/rust/library/stdarch/ci/run.sh
159CHECK_INTERPRETER_SKIP+= lib/rustlib/src/rust/library/stdarch/ci/style.sh 160CHECK_INTERPRETER_SKIP+= lib/rustlib/src/rust/library/stdarch/ci/style.sh
160 161
161CHECK_PORTABILITY_SKIP+= tests/run-make/dump-ice-to-disk/check.sh 162CHECK_PORTABILITY_SKIP+= tests/run-make/dump-ice-to-disk/check.sh
162 163
163.if ${OPSYS} == "NetBSD" 164.if ${OPSYS} == "NetBSD"
164# This block contains information about known trouble on NetBSD and workarounds. 165# This block contains information about known trouble on NetBSD and workarounds.
165 166
166# Parallel builds failed on NetBSD due to dynamic linker locking bugs. 167# Parallel builds failed on NetBSD due to dynamic linker locking bugs.
167# \todo Explain if the build is believed to be sound if not parallel, 168# \todo Explain if the build is believed to be sound if not parallel,
168# or if a non-parallel build is merely more likely to work. 169# or if a non-parallel build is merely more likely to work.
169# 170#
170# See toolchain/54192 at 171# See toolchain/54192 at
171# http://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=54192 172# http://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=54192
172# which was fixed in -current on 2020-04-19: 173# which was fixed in -current on 2020-04-19:
173# http://mail-index.netbsd.org/source-changes/2020/04/16/msg116256.html 174# http://mail-index.netbsd.org/source-changes/2020/04/16/msg116256.html
174# http://mail-index.netbsd.org/source-changes/2020/04/19/msg116337.html 175# http://mail-index.netbsd.org/source-changes/2020/04/19/msg116337.html
175# These were pulled up to netbsd-9 on 2020-05-13: 176# These were pulled up to netbsd-9 on 2020-05-13:
176# http://releng.netbsd.org/cgi-bin/req-9.cgi?show=907 177# http://releng.netbsd.org/cgi-bin/req-9.cgi?show=907
177# This has not been pulled up to netbsd-8 178# This has not been pulled up to netbsd-8
178# \todo Explain if it's not applicable, shouldn't be pulled up, should be 179# \todo Explain if it's not applicable, shouldn't be pulled up, should be
179# but hasn't, is too hard, etc. 180# but hasn't, is too hard, etc.
180# 181#
181# On pkgbuild for 2020Q1 9.0_RELEASE amd64, rust did not build despite 182# On pkgbuild for 2020Q1 9.0_RELEASE amd64, rust did not build despite
182# MAKE_JOBS_SAFE=no, but setting MAKE_JOBS=1 resulted in success. (No 183# MAKE_JOBS_SAFE=no, but setting MAKE_JOBS=1 resulted in success. (No
183# PR is open for this.) \todo Understand and fix. 184# PR is open for this.) \todo Understand and fix.
184# 185#
185# If we aren't on 9-current, and are on 8.x or 9.x, avoid parallel. 186# If we aren't on 9-current, and are on 8.x or 9.x, avoid parallel.
186# Release 9.x and 9.1 or later is OK. 187# Release 9.x and 9.1 or later is OK.
187. if ${OPSYS} == "NetBSD" && 090999 < ${OPSYS_VERSION} && ${OPSYS_VERSION} < 090900 188. if ${OPSYS} == "NetBSD" && 090999 < ${OPSYS_VERSION} && ${OPSYS_VERSION} < 090900
188MAKE_JOBS_SAFE?= no 189MAKE_JOBS_SAFE?= no
189. endif 190. endif
190 191
191# Open PRs 192# Open PRs
192# 193#
193# Broken package with PREFIX not /usr/pkg: 194# Broken package with PREFIX not /usr/pkg:
194# http://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=54453 195# http://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=54453
195# 196#
196 197
197.endif 198.endif
198 199
199# 200#
200# Under NetBSD, do not use DT_RUNPATH 201# Under NetBSD, do not use DT_RUNPATH
201# 202#
202BUILDLINK_TRANSFORM.NetBSD+= rm:-Wl,--enable-new-dtags 203BUILDLINK_TRANSFORM.NetBSD+= rm:-Wl,--enable-new-dtags
203 204
204# 205#
205# Somewhere in the LLVM build "-arch x86_64" is passed on macOS/arm64 which 206# Somewhere in the LLVM build "-arch x86_64" is passed on macOS/arm64 which
206# breaks linking, see https://github.com/rust-lang/rust/issues/81790. Until 207# breaks linking, see https://github.com/rust-lang/rust/issues/81790. Until
207# this can be located (proving difficult!) we just force it. 208# this can be located (proving difficult!) we just force it.
208# 209#
209.if ${MACHINE_PLATFORM:MDarwin-*-aarch64} 210.if ${MACHINE_PLATFORM:MDarwin-*-aarch64}
210BUILDLINK_TRANSFORM+= opt:x86_64:arm64 211BUILDLINK_TRANSFORM+= opt:x86_64:arm64
211.endif 212.endif
212 213
213# 214#
214# Rust unfortunately requires itself to build. On platforms which aren't 215# Rust unfortunately requires itself to build. On platforms which aren't
215# supported by upstream (where they offer binary bootstraps), or where we do 216# supported by upstream (where they offer binary bootstraps), or where we do
216# not trust random binaries from the Internet, we need to build and provide our 217# not trust random binaries from the Internet, we need to build and provide our
217# own bootstrap. See the stage0-bootstrap below for more details. 218# own bootstrap. See the stage0-bootstrap below for more details.
218# 219#
219DISTFILES:= ${DEFAULT_DISTFILES} 220DISTFILES:= ${DEFAULT_DISTFILES}
220 221
221.if ${MACHINE_PLATFORM:MDarwin-*-aarch64} || make(distinfo) || make (makesum) || make(mdi) 222.if ${MACHINE_PLATFORM:MDarwin-*-aarch64} || make(distinfo) || make (makesum) || make(mdi)
222RUST_STAGE0_VER= 1.75.0 223RUST_STAGE0_VER= 1.75.0
223RUST_ARCH:= aarch64-apple-darwin 224RUST_ARCH:= aarch64-apple-darwin
224RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz 225RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
225RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz 226RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
226DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} 227DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
227.endif 228.endif
228.if ${MACHINE_PLATFORM:MDarwin-*-x86_64} || make(distinfo) || make (makesum) || make(mdi) 229.if ${MACHINE_PLATFORM:MDarwin-*-x86_64} || make(distinfo) || make (makesum) || make(mdi)
229RUST_STAGE0_VER= 1.75.0 230RUST_STAGE0_VER= 1.75.0
230RUST_ARCH:= x86_64-apple-darwin 231RUST_ARCH:= x86_64-apple-darwin
231RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz 232RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
232RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz 233RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
233DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} 234DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
234.endif 235.endif
235.if ${MACHINE_PLATFORM:MLinux-*-aarch64} || make(distinfo) || make (makesum) || make(mdi) 236.if ${MACHINE_PLATFORM:MLinux-*-aarch64} || make(distinfo) || make (makesum) || make(mdi)
236RUST_STAGE0_VER= 1.75.0 237RUST_STAGE0_VER= 1.75.0
237RUST_ARCH:= aarch64-unknown-linux-gnu 238RUST_ARCH:= aarch64-unknown-linux-gnu
238RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz 239RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
239RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz 240RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
240DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} 241DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
241.endif 242.endif
242.if ${MACHINE_PLATFORM:MLinux-*-earmv6hf} || make(distinfo) || make (makesum) || make(mdi) 243.if ${MACHINE_PLATFORM:MLinux-*-earmv6hf} || make(distinfo) || make (makesum) || make(mdi)
243RUST_STAGE0_VER= 1.75.0 244RUST_STAGE0_VER= 1.75.0
244RUST_ARCH:= arm-unknown-linux-gnueabihf 245RUST_ARCH:= arm-unknown-linux-gnueabihf
245RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz 246RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
246RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz 247RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
247DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} 248DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
248.endif 249.endif
249.if ${MACHINE_PLATFORM:MLinux-*-earmv7hf} || make(distinfo) || make (makesum) || make(mdi) 250.if ${MACHINE_PLATFORM:MLinux-*-earmv7hf} || make(distinfo) || make (makesum) || make(mdi)
250RUST_STAGE0_VER= 1.75.0 251RUST_STAGE0_VER= 1.75.0
251RUST_ARCH:= armv7-unknown-linux-gnueabihf 252RUST_ARCH:= armv7-unknown-linux-gnueabihf
252RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz 253RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
253RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz 254RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
254DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} 255DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
255.endif 256.endif
256.if ${MACHINE_PLATFORM:MLinux-*-i386} || make(distinfo) || make (makesum) || make(mdi) 257.if ${MACHINE_PLATFORM:MLinux-*-i386} || make(distinfo) || make (makesum) || make(mdi)
257RUST_STAGE0_VER= 1.75.0 258RUST_STAGE0_VER= 1.75.0
258RUST_ARCH:= i686-unknown-linux-gnu 259RUST_ARCH:= i686-unknown-linux-gnu
259RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz 260RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
260RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz 261RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
261DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} 262DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
262.endif 263.endif
263.if ${MACHINE_PLATFORM:MLinux-*-x86_64} || make(distinfo) || make (makesum) || make(mdi) 264.if ${MACHINE_PLATFORM:MLinux-*-x86_64} || make(distinfo) || make (makesum) || make(mdi)
264RUST_STAGE0_VER= 1.75.0 265RUST_STAGE0_VER= 1.75.0
265RUST_ARCH:= x86_64-unknown-linux-gnu 266RUST_ARCH:= x86_64-unknown-linux-gnu
266RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz 267RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
267RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz 268RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
268DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} 269DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
269.endif 270.endif
270# 271#
271# The SunOS target defaults to illumos as that's what the current bootstraps 272# The SunOS target defaults to illumos as that's what the current bootstraps
272# are built on. If you wish to target Oracle Solaris you'll need to create an 273# are built on. If you wish to target Oracle Solaris you'll need to create an
273# x86_64-sun-solaris bootstrap and comment out the overrides. 274# x86_64-sun-solaris bootstrap and comment out the overrides.
274# 275#
275.if ${MACHINE_PLATFORM:MSunOS-*-x86_64} || make(distinfo) || make (makesum) || make(mdi) 276.if ${MACHINE_PLATFORM:MSunOS-*-x86_64} || make(distinfo) || make (makesum) || make(mdi)
276RUST_STAGE0_VER= 1.74.1 277RUST_STAGE0_VER= 1.74.1
277RUST_ARCH:= x86_64-unknown-illumos 278RUST_ARCH:= x86_64-unknown-illumos
278RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz 279RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
279SITES.${RUST_STAGE0}= https://us-central.manta.mnx.io/pkgsrc/public/pkg-bootstraps/ 280SITES.${RUST_STAGE0}= https://us-central.manta.mnx.io/pkgsrc/public/pkg-bootstraps/
280DISTFILES:= ${DISTFILES} ${RUST_STAGE0} 281DISTFILES:= ${DISTFILES} ${RUST_STAGE0}
281RUST_BOOTSTRAP_PATH?= ${WRKDIR}/rust-${RUST_STAGE0_VER}-${RUST_ARCH} 282RUST_BOOTSTRAP_PATH?= ${WRKDIR}/rust-${RUST_STAGE0_VER}-${RUST_ARCH}
282# Override default "x86_64-sun-solaris" selection 283# Override default "x86_64-sun-solaris" selection
283CONFIGURE_ARGS+= --set=target.${RUST_ARCH}.llvm-config=${LLVM_CONFIG_PATH} 284CONFIGURE_ARGS+= --set=target.${RUST_ARCH}.llvm-config=${LLVM_CONFIG_PATH}
284CONFIGURE_ARGS+= --build=${RUST_ARCH} 285CONFIGURE_ARGS+= --build=${RUST_ARCH}
285CONFIGURE_ARGS+= --host=${RUST_ARCH} 286CONFIGURE_ARGS+= --host=${RUST_ARCH}
286CONFIGURE_ARGS+= --target=${RUST_ARCH} 287CONFIGURE_ARGS+= --target=${RUST_ARCH}
287.endif 288.endif
288.if ${MACHINE_PLATFORM:MFreeBSD-*-x86_64} || make(distinfo) || make (makesum) || make(mdi) 289.if ${MACHINE_PLATFORM:MFreeBSD-*-x86_64} || make(distinfo) || make (makesum) || make(mdi)
289RUST_STAGE0_VER= 1.75.0 290RUST_STAGE0_VER= 1.75.0
290RUST_ARCH:= x86_64-unknown-freebsd 291RUST_ARCH:= x86_64-unknown-freebsd
291RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz 292RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
292RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz 293RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
293DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} 294DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
294.endif 295.endif
295.if ${MACHINE_PLATFORM:MNetBSD-*-i386} || make(distinfo) || make (makesum) || make(mdi) 296.if ${MACHINE_PLATFORM:MNetBSD-*-i386} || make(distinfo) || make (makesum) || make(mdi)
296RUST_STAGE0_VER= 1.75.0 297RUST_STAGE0_VER= 1.75.0
297RUST_ARCH= i586-unknown-netbsd 298RUST_ARCH= i586-unknown-netbsd
298RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz 299RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
299RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz 300RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
300SITES.${RUST_STAGE0}= ${MASTER_SITE_LOCAL:=rust/} 301SITES.${RUST_STAGE0}= ${MASTER_SITE_LOCAL:=rust/}
301SITES.${RUST_STD_STAGE0}= ${MASTER_SITE_LOCAL:=rust/} 302SITES.${RUST_STD_STAGE0}= ${MASTER_SITE_LOCAL:=rust/}
302DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} 303DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
303# Setting this changes it for every distfile, which doesn't match what is 304# Setting this changes it for every distfile, which doesn't match what is
304# currently in distinfo. 305# currently in distinfo.
305#DIST_SUBDIR= ${PKGNAME} 306#DIST_SUBDIR= ${PKGNAME}
306# For atomic ops 307# For atomic ops
307CFLAGS+= -march=i586 308CFLAGS+= -march=i586
308CONFIGURE_ARGS+= --build=${RUST_ARCH} 309CONFIGURE_ARGS+= --build=${RUST_ARCH}
309pre-build: pre-build-fix-paxctl 310pre-build: pre-build-fix-paxctl
310.PHONY: pre-build-fix-paxctl 311.PHONY: pre-build-fix-paxctl
311pre-build-fix-paxctl: 312pre-build-fix-paxctl:
312 ${TOOLS_PLATFORM.paxctl} +am ${WRKDIR}/rust-bootstrap/bin/cargo 313 ${TOOLS_PLATFORM.paxctl} +am ${WRKDIR}/rust-bootstrap/bin/cargo
313 ${TOOLS_PLATFORM.paxctl} +am ${WRKDIR}/rust-bootstrap/bin/rustc 314 ${TOOLS_PLATFORM.paxctl} +am ${WRKDIR}/rust-bootstrap/bin/rustc
314.endif 315.endif
315.if ${MACHINE_PLATFORM:MNetBSD-*-x86_64} || make(distinfo) || make (makesum) || make(mdi) 316.if ${MACHINE_PLATFORM:MNetBSD-*-x86_64} || make(distinfo) || make (makesum) || make(mdi)
316RUST_STAGE0_VER= 1.75.0 317RUST_STAGE0_VER= 1.75.0
317RUST_ARCH= x86_64-unknown-netbsd 318RUST_ARCH= x86_64-unknown-netbsd
318RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz 319RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
319RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz 320RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
320DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} 321DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
321.endif 322.endif
322.if ${MACHINE_PLATFORM:MNetBSD-*-powerpc} || make(distinfo) || make (makesum) || make(mdi) 323.if ${MACHINE_PLATFORM:MNetBSD-*-powerpc} || make(distinfo) || make (makesum) || make(mdi)
323RUST_STAGE0_VER= 1.75.0 324RUST_STAGE0_VER= 1.75.0
324RUST_ARCH= powerpc-unknown-netbsd 325RUST_ARCH= powerpc-unknown-netbsd
325 326
326# Cross-built against NetBSD 9.0 327# Cross-built against NetBSD 9.0
327RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz 328RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
328RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz 329RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
329DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} 330DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
330SITES.${RUST_STAGE0}= ${MASTER_SITE_LOCAL:=rust/} 331SITES.${RUST_STAGE0}= ${MASTER_SITE_LOCAL:=rust/}
331SITES.${RUST_STD_STAGE0}= ${MASTER_SITE_LOCAL:=rust/} 332SITES.${RUST_STD_STAGE0}= ${MASTER_SITE_LOCAL:=rust/}
332 333
333.endif 334.endif
334.if ${MACHINE_PLATFORM:MNetBSD-*-aarch64} || make(distinfo) || make (makesum) || make(mdi) 335.if ${MACHINE_PLATFORM:MNetBSD-*-aarch64} || make(distinfo) || make (makesum) || make(mdi)
335RUST_STAGE0_VER= 1.75.0 336RUST_STAGE0_VER= 1.75.0
336RUST_ARCH= aarch64-unknown-netbsd 337RUST_ARCH= aarch64-unknown-netbsd
337RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz 338RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
338RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz 339RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
339DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} 340DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
340SITES.${RUST_STAGE0}= ${MASTER_SITE_LOCAL:=rust/} 341SITES.${RUST_STAGE0}= ${MASTER_SITE_LOCAL:=rust/}
341SITES.${RUST_STD_STAGE0}= ${MASTER_SITE_LOCAL:=rust/} 342SITES.${RUST_STD_STAGE0}= ${MASTER_SITE_LOCAL:=rust/}
342.endif 343.endif
343.if ${MACHINE_PLATFORM:MNetBSD-*-aarch64eb} || make(distinfo) || make (makesum) || make(mdi) 344.if ${MACHINE_PLATFORM:MNetBSD-*-aarch64eb} || make(distinfo) || make (makesum) || make(mdi)
344RUST_STAGE0_VER= 1.75.0 345RUST_STAGE0_VER= 1.75.0
345RUST_ARCH= aarch64_be-unknown-netbsd 346RUST_ARCH= aarch64_be-unknown-netbsd
346RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz 347RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
347RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz 348RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
348DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} 349DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
349SITES.${RUST_STAGE0}= ${MASTER_SITE_LOCAL:=rust/} 350SITES.${RUST_STAGE0}= ${MASTER_SITE_LOCAL:=rust/}
350SITES.${RUST_STD_STAGE0}= ${MASTER_SITE_LOCAL:=rust/} 351SITES.${RUST_STD_STAGE0}= ${MASTER_SITE_LOCAL:=rust/}
351.endif 352.endif
352.if ${MACHINE_PLATFORM:MNetBSD-*-sparc64} || make(distinfo) || make (makesum) || make(mdi) 353.if ${MACHINE_PLATFORM:MNetBSD-*-sparc64} || make(distinfo) || make (makesum) || make(mdi)
353RUST_STAGE0_VER= 1.75.0 354RUST_STAGE0_VER= 1.75.0
354RUST_ARCH= sparc64-unknown-netbsd 355RUST_ARCH= sparc64-unknown-netbsd
355RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz 356RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
356RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz 357RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
357DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} 358DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
358SITES.${RUST_STAGE0}= ${MASTER_SITE_LOCAL:=rust/} 359SITES.${RUST_STAGE0}= ${MASTER_SITE_LOCAL:=rust/}
359SITES.${RUST_STD_STAGE0}= ${MASTER_SITE_LOCAL:=rust/} 360SITES.${RUST_STD_STAGE0}= ${MASTER_SITE_LOCAL:=rust/}
360.endif 361.endif
361.if ${MACHINE_PLATFORM:MNetBSD-*-earmv7hf} || make(distinfo) || make (makesum) || make(mdi) 362.if ${MACHINE_PLATFORM:MNetBSD-*-earmv7hf} || make(distinfo) || make (makesum) || make(mdi)
362RUST_ARCH= armv7-unknown-netbsd-eabihf 363RUST_ARCH= armv7-unknown-netbsd-eabihf
363RUST_STAGE0_VER= 1.75.0 364RUST_STAGE0_VER= 1.75.0
364RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz 365RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
365RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz 366RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
366DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} 367DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
367SITES.${RUST_STAGE0}= ${MASTER_SITE_LOCAL:=rust/} 368SITES.${RUST_STAGE0}= ${MASTER_SITE_LOCAL:=rust/}
368SITES.${RUST_STD_STAGE0}= ${MASTER_SITE_LOCAL:=rust/} 369SITES.${RUST_STD_STAGE0}= ${MASTER_SITE_LOCAL:=rust/}
369.endif 370.endif
370.if ${MACHINE_PLATFORM:MNetBSD-*-earmv6hf} || make(distinfo) || make (makesum) || make(mdi) 371.if ${MACHINE_PLATFORM:MNetBSD-*-earmv6hf} || make(distinfo) || make (makesum) || make(mdi)
371RUST_ARCH= armv6-unknown-netbsd-eabihf 372RUST_ARCH= armv6-unknown-netbsd-eabihf
372RUST_STAGE0_VER= 1.75.0 373RUST_STAGE0_VER= 1.75.0
373RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz 374RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
374RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz 375RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
375DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} 376DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
376SITES.${RUST_STAGE0}= ${MASTER_SITE_LOCAL:=rust/} 377SITES.${RUST_STAGE0}= ${MASTER_SITE_LOCAL:=rust/}
377SITES.${RUST_STD_STAGE0}= ${MASTER_SITE_LOCAL:=rust/} 378SITES.${RUST_STD_STAGE0}= ${MASTER_SITE_LOCAL:=rust/}
378.endif 379.endif
379.if ${MACHINE_PLATFORM:MNetBSD-*-mipsel} || make(distinfo) || make (makesum) || make(mdi) 380.if ${MACHINE_PLATFORM:MNetBSD-*-mipsel} || make(distinfo) || make (makesum) || make(mdi)
380RUST_ARCH= mipsel-unknown-netbsd 381RUST_ARCH= mipsel-unknown-netbsd
381RUST_STAGE0_VER= 1.75.0 382RUST_STAGE0_VER= 1.75.0
382RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz 383RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
383RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz 384RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
384DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} 385DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
385SITES.${RUST_STAGE0}= ${MASTER_SITE_LOCAL:=rust/} 386SITES.${RUST_STAGE0}= ${MASTER_SITE_LOCAL:=rust/}
386SITES.${RUST_STD_STAGE0}= ${MASTER_SITE_LOCAL:=rust/} 387SITES.${RUST_STD_STAGE0}= ${MASTER_SITE_LOCAL:=rust/}
387.endif 388.endif
388.if ${MACHINE_PLATFORM:MNetBSD-*-riscv64} || make(distinfo) || make (makesum) || make(mdi) 389.if ${MACHINE_PLATFORM:MNetBSD-*-riscv64} || make(distinfo) || make (makesum) || make(mdi)
389RUST_ARCH= riscv64gc-unknown-netbsd 390RUST_ARCH= riscv64gc-unknown-netbsd
390RUST_STAGE0_VER= 1.75.0 391RUST_STAGE0_VER= 1.75.0
391RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz 392RUST_STAGE0:= rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
392RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz 393RUST_STD_STAGE0:= rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
393DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0} 394DISTFILES:= ${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
394SITES.${RUST_STAGE0}= ${MASTER_SITE_LOCAL:=rust/} 395SITES.${RUST_STAGE0}= ${MASTER_SITE_LOCAL:=rust/}
395SITES.${RUST_STD_STAGE0}= ${MASTER_SITE_LOCAL:=rust/} 396SITES.${RUST_STD_STAGE0}= ${MASTER_SITE_LOCAL:=rust/}
396.endif 397.endif
397 398
398# You may override RUST_BOOTSTRAP_PATH and RUST_ARCH in mk.conf 399# You may override RUST_BOOTSTRAP_PATH and RUST_ARCH in mk.conf
399# if you have a local bootstrap compiler. 400# if you have a local bootstrap compiler.
400.if !defined(RUST_ARCH) && !defined(RUST_BOOTSTRAP_PATH) 401.if !defined(RUST_ARCH) && !defined(RUST_BOOTSTRAP_PATH)
401NOT_FOR_PLATFORM+= ${MACHINE_PLATFORM} 402NOT_FOR_PLATFORM+= ${MACHINE_PLATFORM}
402.else 403.else
403RUST_BOOTSTRAP_PATH?= ${WRKDIR}/rust-bootstrap 404RUST_BOOTSTRAP_PATH?= ${WRKDIR}/rust-bootstrap
404.endif 405.endif
405 406
406.if ${OPSYS} == "SunOS" 407.if ${OPSYS} == "SunOS"
407TOOL_DEPENDS+= coreutils>=0:../../sysutils/coreutils 408TOOL_DEPENDS+= coreutils>=0:../../sysutils/coreutils
408TOOL_DEPENDS+= gzip>=0:../../archivers/gzip 409TOOL_DEPENDS+= gzip>=0:../../archivers/gzip
409TOOLS_CREATE+= md5sum 410TOOLS_CREATE+= md5sum
410TOOLS_PATH.md5sum= ${PREFIX}/bin/gmd5sum 411TOOLS_PATH.md5sum= ${PREFIX}/bin/gmd5sum
411TOOLS_PLATFORM.gzcat= ${PREFIX}/bin/gzip -cd 412TOOLS_PLATFORM.gzcat= ${PREFIX}/bin/gzip -cd
412.endif 413.endif
413 414
414SUBST_CLASSES+= prefix 415SUBST_CLASSES+= prefix
415SUBST_STAGE.prefix= pre-configure 416SUBST_STAGE.prefix= pre-configure
416SUBST_FILES.prefix+= compiler/rustc_codegen_ssa/src/back/linker.rs 417SUBST_FILES.prefix+= compiler/rustc_codegen_ssa/src/back/linker.rs
417SUBST_FILES.prefix+= compiler/rustc_target/src/spec/base/netbsd.rs 418SUBST_FILES.prefix+= compiler/rustc_target/src/spec/base/netbsd.rs
418SUBST_FILES.prefix+= src/bootstrap/src/core/build_steps/compile.rs 419SUBST_FILES.prefix+= src/bootstrap/src/core/build_steps/compile.rs
419SUBST_FILES.prefix+= src/bootstrap/src/core/builder.rs 420SUBST_FILES.prefix+= src/bootstrap/src/core/builder.rs
420SUBST_FILES.prefix+= src/bootstrap/bootstrap.py 421SUBST_FILES.prefix+= src/bootstrap/bootstrap.py
421SUBST_VARS.prefix= PREFIX 422SUBST_VARS.prefix= PREFIX
422 423
423# 424#
424# Generate list of subst entries for various .cargo-checksum.json files. These 425# Generate list of subst entries for various .cargo-checksum.json files. These
425# are all handled together in one big substitution to simplify things rather 426# are all handled together in one big substitution to simplify things rather
426# than one substitution entry per file, but are kept separate below to ease 427# than one substitution entry per file, but are kept separate below to ease
427# updating and verification. 428# updating and verification.
428# 429#
429 430
430CKSUM_CRATES+= vendor/libc 431CKSUM_CRATES+= vendor/libc
431CKSUMS+= b1660c631a599a3355116e7485b88ab2f8f2929c2e37851a763431387b902f14 432CKSUMS+= b1660c631a599a3355116e7485b88ab2f8f2929c2e37851a763431387b902f14
432CKSUMS+= 990d1c6c01db31b9e5541128e4987b114f39c6808d94a5f8f048f492cfb96d78 433CKSUMS+= 990d1c6c01db31b9e5541128e4987b114f39c6808d94a5f8f048f492cfb96d78
433 434
434CKSUM_CRATES+= vendor/cc-1.0.73 435CKSUM_CRATES+= vendor/cc-1.0.73
435CKSUMS+= 38970d678de0efb4b5e2978265daa8a613a1db35fc42e669621b03fc56d5b138 436CKSUMS+= 38970d678de0efb4b5e2978265daa8a613a1db35fc42e669621b03fc56d5b138
436CKSUMS+= 65de0d6593a4256e5fcaf898f9468d71bab672c70a2dfab3dcb8514e9b72819c 437CKSUMS+= 65de0d6593a4256e5fcaf898f9468d71bab672c70a2dfab3dcb8514e9b72819c
437 438
438CKSUM_CRATES+= vendor/cc 439CKSUM_CRATES+= vendor/cc
439CKSUMS+= cdf0c6dc4e12ad313fb93ab42f994e26c7e5aaeb07ca61620032d8f4014dacd0 440CKSUMS+= cdf0c6dc4e12ad313fb93ab42f994e26c7e5aaeb07ca61620032d8f4014dacd0
440CKSUMS+= 2344d4cf113fe2fb8925ca5621c60daabcf967186b24f0551c777fb284755493 441CKSUMS+= 2344d4cf113fe2fb8925ca5621c60daabcf967186b24f0551c777fb284755493
441 442
442CKSUM_CRATES+= vendor/lzma-sys 443CKSUM_CRATES+= vendor/lzma-sys
443CKSUMS+= 6fd5e9245db34c6f557b8bfcaf03db82fc88c3b06dbfbb5f03b2bcd138983ef9 444CKSUMS+= 6fd5e9245db34c6f557b8bfcaf03db82fc88c3b06dbfbb5f03b2bcd138983ef9
444CKSUMS+= 5e252578b5d266f6a4c8dc9f71ca7a91536ccb8c5c7d7753b82f12ec886459ef 445CKSUMS+= 5e252578b5d266f6a4c8dc9f71ca7a91536ccb8c5c7d7753b82f12ec886459ef
445 446
446CKSUM_CRATES+= vendor/stacker 447CKSUM_CRATES+= vendor/stacker
447CKSUMS+= 59ca847887cf19387119d18c57f08d5a8520d714876ca0142b8f1c001ecde06b 448CKSUMS+= 59ca847887cf19387119d18c57f08d5a8520d714876ca0142b8f1c001ecde06b
448CKSUMS+= 03be8ae293b713fe6e9703e4809dd68caaec992bae6777914ffddae8da2a9bc7 449CKSUMS+= 03be8ae293b713fe6e9703e4809dd68caaec992bae6777914ffddae8da2a9bc7
449 450
450CKSUM_CRATES+= vendor/crossbeam-utils 451CKSUM_CRATES+= vendor/crossbeam-utils
451CKSUMS+= 5f75132808d9e8d6e266fe77f9e20bbc35855a1c37a5dbc0940b3e989bca1a94 452CKSUMS+= 5f75132808d9e8d6e266fe77f9e20bbc35855a1c37a5dbc0940b3e989bca1a94
452CKSUMS+= 3d7c747108434546837b1c5664111c9146fcbfb2e084c95f8ce0be970d652421 453CKSUMS+= 3d7c747108434546837b1c5664111c9146fcbfb2e084c95f8ce0be970d652421
453 454
454CKSUM_CRATES+= vendor/crossbeam-utils-0.8.14 455CKSUM_CRATES+= vendor/crossbeam-utils-0.8.14
455CKSUMS+= 3314524d2afa0360c947455a6e6566fb54ebf909c99479ca3b7435741fd3293e 456CKSUMS+= 3314524d2afa0360c947455a6e6566fb54ebf909c99479ca3b7435741fd3293e
456CKSUMS+= eaef167dea04efa811cf0d53de98feac6063ec2196eccd315d345ef86c551aaa 457CKSUMS+= eaef167dea04efa811cf0d53de98feac6063ec2196eccd315d345ef86c551aaa
457 458
458CKSUM_CRATES+= vendor/crossbeam-epoch 459CKSUM_CRATES+= vendor/crossbeam-epoch
459CKSUMS+= 5f75132808d9e8d6e266fe77f9e20bbc35855a1c37a5dbc0940b3e989bca1a94 460CKSUMS+= 5f75132808d9e8d6e266fe77f9e20bbc35855a1c37a5dbc0940b3e989bca1a94
460CKSUMS+= 3d7c747108434546837b1c5664111c9146fcbfb2e084c95f8ce0be970d652421 461CKSUMS+= 3d7c747108434546837b1c5664111c9146fcbfb2e084c95f8ce0be970d652421
461 462
462CKSUM_CRATES+= vendor/openssl-sys 463CKSUM_CRATES+= vendor/openssl-sys
463CKSUMS+= b2cbaa5bfac5e7d5550aa0eb8e5c65a9f7e86a3692b759fb13330ef6e3b26b30 464CKSUMS+= b2cbaa5bfac5e7d5550aa0eb8e5c65a9f7e86a3692b759fb13330ef6e3b26b30
464CKSUMS+= b303bf9ceae9fcffa4a0420ea858675d827fc2d75c358f8236e44274d58be1a0 465CKSUMS+= b303bf9ceae9fcffa4a0420ea858675d827fc2d75c358f8236e44274d58be1a0
465CKSUMS+= 33f814dba4ac9942266157cbe3dc8eadf5e477090370a92c36c53f916fa45d48 466CKSUMS+= 33f814dba4ac9942266157cbe3dc8eadf5e477090370a92c36c53f916fa45d48
466CKSUMS+= 4f14cac64c027b3bea07908bae58184b31f6da6326f8ba5a6935d726ab2e1d20 467CKSUMS+= 4f14cac64c027b3bea07908bae58184b31f6da6326f8ba5a6935d726ab2e1d20
467 468
468CKSUM_CRATES+= vendor/openssl-src 469CKSUM_CRATES+= vendor/openssl-src
469CKSUMS+= c87f041ff9ada85cddcb2a787788e05b2ab5ffc0a85f502fe7e3f7cbda59d49c 470CKSUMS+= c87f041ff9ada85cddcb2a787788e05b2ab5ffc0a85f502fe7e3f7cbda59d49c
470CKSUMS+= 67b877964bc0e40c84669c423818a3cb39501eaedfc3f5caf9c33d4779c3d03f 471CKSUMS+= 67b877964bc0e40c84669c423818a3cb39501eaedfc3f5caf9c33d4779c3d03f
471CKSUMS+= 090744f85cf99a9b8412c23fca1eabb61eb45d830f0f9f0e7309be2572c1e827 472CKSUMS+= 090744f85cf99a9b8412c23fca1eabb61eb45d830f0f9f0e7309be2572c1e827
472CKSUMS+= ead7bdeee121f1357b99741b175a564c8b7026f694cbc388aae2a86b3bae913f 473CKSUMS+= ead7bdeee121f1357b99741b175a564c8b7026f694cbc388aae2a86b3bae913f
473 474
474CKSUM_CRATES+= vendor/nix-0.26.2 475CKSUM_CRATES+= vendor/nix-0.26.2
475CKSUMS+= c3e13a2edea54d190a4b051f62efc97953c00b5051a9fda0e39e3bc732a31939 476CKSUMS+= c3e13a2edea54d190a4b051f62efc97953c00b5051a9fda0e39e3bc732a31939
476CKSUMS+= 263bd7ace66a4cfee3de18532f61c187327fcbd564666b4f97c4b01ae6885d98 477CKSUMS+= 263bd7ace66a4cfee3de18532f61c187327fcbd564666b4f97c4b01ae6885d98
477 478
478CKSUM_CRATES+= vendor/aho-corasick 479CKSUM_CRATES+= vendor/aho-corasick
479CKSUMS+= 840065521cbd4701fa5b8b506d1537843d858c903f7cadf3c68749ea1780874b 480CKSUMS+= 840065521cbd4701fa5b8b506d1537843d858c903f7cadf3c68749ea1780874b
480CKSUMS+= 626ce9b45dfded3d2eaf795a1d86be765a7d63eb4bcaf9d7b89add6f686f7ede 481CKSUMS+= 626ce9b45dfded3d2eaf795a1d86be765a7d63eb4bcaf9d7b89add6f686f7ede
481CKSUMS+= 720735ea6c7ff92b081426513e6e82feed24a922849297bb538d28f7b8129f81 482CKSUMS+= 720735ea6c7ff92b081426513e6e82feed24a922849297bb538d28f7b8129f81
482CKSUMS+= 3a5d88cf1ce02dc1bc06aa7d7aad0fa6d63ca45246a47ebeae43b48544065dcc 483CKSUMS+= 3a5d88cf1ce02dc1bc06aa7d7aad0fa6d63ca45246a47ebeae43b48544065dcc
483 484
484SUBST_CLASSES+= cksum 485SUBST_CLASSES+= cksum
485SUBST_STAGE.cksum= pre-configure 486SUBST_STAGE.cksum= pre-configure
486.for crate in ${CKSUM_CRATES} 487.for crate in ${CKSUM_CRATES}
487SUBST_FILES.cksum+= ${crate}/.cargo-checksum.json 488SUBST_FILES.cksum+= ${crate}/.cargo-checksum.json
488.endfor 489.endfor
489.for from to in ${CKSUMS} 490.for from to in ${CKSUMS}
490SUBST_SED.cksum+= -e 's,${from},${to},g' 491SUBST_SED.cksum+= -e 's,${from},${to},g'
491.endfor 492.endfor
492 493
493post-extract: 494post-extract:
494 set -e; \ 495 set -e; \
495 if ${TEST} -e ${WRKDIR}/rust-${RUST_STAGE0_VER}-${RUST_ARCH}/install.sh \ 496 if ${TEST} -e ${WRKDIR}/rust-${RUST_STAGE0_VER}-${RUST_ARCH}/install.sh \
496 -a ! -e ${RUST_BOOTSTRAP_PATH}/bin/rustc; then \ 497 -a ! -e ${RUST_BOOTSTRAP_PATH}/bin/rustc; then \
497 cd ${WRKDIR}/rust-${RUST_STAGE0_VER}-${RUST_ARCH}; \ 498 cd ${WRKDIR}/rust-${RUST_STAGE0_VER}-${RUST_ARCH}; \
498 env ${MAKE_ENV} ${TOOLS_BASH} \ 499 env ${MAKE_ENV} ${TOOLS_BASH} \
499 ./install.sh --prefix=${RUST_BOOTSTRAP_PATH}; \ 500 ./install.sh --prefix=${RUST_BOOTSTRAP_PATH}; \
500 cd ${WRKDIR}/rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}; \ 501 cd ${WRKDIR}/rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}; \
501 env ${MAKE_ENV} ${TOOLS_BASH} \ 502 env ${MAKE_ENV} ${TOOLS_BASH} \
502 ./install.sh --prefix=${RUST_BOOTSTRAP_PATH}; \ 503 ./install.sh --prefix=${RUST_BOOTSTRAP_PATH}; \
503 fi 504 fi
504.if ${OPSYS} == "NetBSD" 505.if ${OPSYS} == "NetBSD"
505 SDIR=${WRKDIR}/scripts; \ 506 SDIR=${WRKDIR}/scripts; \
506 ${MKDIR} $${SDIR}; \ 507 ${MKDIR} $${SDIR}; \
507 cd $${SDIR}; \ 508 cd $${SDIR}; \
508 ${RM} -f c++-wrap; \ 509 ${RM} -f c++-wrap; \
509 ${RM} -f clang++-wrap; \ 510 ${RM} -f clang++-wrap; \
510 ${RM} -f clang-wrap; \ 511 ${RM} -f clang-wrap; \
511 ${RM} -f ar-wrap; \ 512 ${RM} -f ar-wrap; \
512 ${CP} ${.CURDIR}/files/gcc-wrap .; \ 513 ${CP} ${.CURDIR}/files/gcc-wrap .; \
513 ${CHMOD} +x gcc-wrap; \ 514 ${CHMOD} +x gcc-wrap; \
514 ${LN} -s gcc-wrap c++-wrap; \ 515 ${LN} -s gcc-wrap c++-wrap; \
515 ${LN} -s gcc-wrap clang++-wrap; \ 516 ${LN} -s gcc-wrap clang++-wrap; \
516 ${LN} -s gcc-wrap clang-wrap; \ 517 ${LN} -s gcc-wrap clang-wrap; \
517 ${LN} -s gcc-wrap ar-wrap 518 ${LN} -s gcc-wrap ar-wrap
518.endif 519.endif
519 520
520.if ${OPSYS} == "FreeBSD" 521.if ${OPSYS} == "FreeBSD"
521MAKE_ENV+= OPENSSL_DIR=${SSLBASE} 522MAKE_ENV+= OPENSSL_DIR=${SSLBASE}
522.endif 523.endif
523 524
524.if ${OPSYS} == "NetBSD" && !empty(PKGSRC_COMPILER:Mclang) && !exists(/lib/libgcc_s.so) 525.if ${OPSYS} == "NetBSD" && !empty(PKGSRC_COMPILER:Mclang) && !exists(/lib/libgcc_s.so)
525BUILDLINK_TRANSFORM+= rm:-lgcc_s 526BUILDLINK_TRANSFORM+= rm:-lgcc_s
526MAKE_ENV+= PKGSRC_HAVE_LIBCPP=yes 527MAKE_ENV+= PKGSRC_HAVE_LIBCPP=yes
527 528
528pre-build: provide-libgcc-for-bootstrap 529pre-build: provide-libgcc-for-bootstrap
529.PHONY: provide-libgcc-for-bootstrap 530.PHONY: provide-libgcc-for-bootstrap
530provide-libgcc-for-bootstrap: 531provide-libgcc-for-bootstrap:
531. if exists(${FILESDIR}/libgcc_s.so.1) 532. if exists(${FILESDIR}/libgcc_s.so.1)
532 cp ${FILESDIR}/libgcc_s.so.1 ${RUST_BOOTSTRAP_PATH}/lib/. 533 cp ${FILESDIR}/libgcc_s.so.1 ${RUST_BOOTSTRAP_PATH}/lib/.
533. endif 534. endif
534.endif 535.endif
535 536
536# 537#
537# These are essentially copies of the "all", "test", and "install" Makefile 538# These are essentially copies of the "all", "test", and "install" Makefile
538# targets, but are duplicated here so that we can specify -j. 539# targets, but are duplicated here so that we can specify -j.
539# 540#
540do-build: 541do-build:
541 ${RUN}${_ULIMIT_CMD} \ 542 ${RUN}${_ULIMIT_CMD} \
542 cd ${WRKSRC} && \ 543 cd ${WRKSRC} && \
543 ${SETENV} ${MAKE_ENV} \ 544 ${SETENV} ${MAKE_ENV} \
544 sh -c "if [ \"${BUILD_TARGET}\" = \"dist\" ]; then \ 545 sh -c "if [ \"${BUILD_TARGET}\" = \"dist\" ]; then \
545 unset DESTDIR; \ 546 unset DESTDIR; \
546 ${PYTHONBIN} ./x.py -v \ 547 ${PYTHONBIN} ./x.py -v \
547 ${BUILD_TARGET} -j ${_MAKE_JOBS_N}; \ 548 ${BUILD_TARGET} -j ${_MAKE_JOBS_N}; \
548 else \ 549 else \
549 ${PYTHONBIN} ./x.py -v \ 550 ${PYTHONBIN} ./x.py -v \
550 ${BUILD_TARGET} --stage 2 -j ${_MAKE_JOBS_N} && \ 551 ${BUILD_TARGET} --stage 2 -j ${_MAKE_JOBS_N} && \
551 ${PYTHONBIN} ./x.py -v \ 552 ${PYTHONBIN} ./x.py -v \
552 doc --stage 2 -j ${_MAKE_JOBS_N}; \ 553 doc --stage 2 -j ${_MAKE_JOBS_N}; \
553 fi" 554 fi"
554 555
555do-test: 556do-test:
556 ${RUN}${_ULIMIT_CMD} \ 557 ${RUN}${_ULIMIT_CMD} \
557 cd ${WRKSRC} && \ 558 cd ${WRKSRC} && \
558 ${SETENV} ${MAKE_ENV} \ 559 ${SETENV} ${MAKE_ENV} \
559 ${PYTHONBIN} ./x.py -v test -j ${_MAKE_JOBS_N} 560 ${PYTHONBIN} ./x.py -v test -j ${_MAKE_JOBS_N}
560 561
561do-install: 562do-install:
562 ${RUN}${_ULIMIT_CMD} \ 563 ${RUN}${_ULIMIT_CMD} \
563 cd ${WRKSRC} && \ 564 cd ${WRKSRC} && \
564 ${SETENV} ${MAKE_ENV} ${INSTALL_ENV} \ 565 ${SETENV} ${MAKE_ENV} ${INSTALL_ENV} \
565 ${PYTHONBIN} ./x.py -v install -j ${_MAKE_JOBS_N} 566 ${PYTHONBIN} ./x.py -v install -j ${_MAKE_JOBS_N}
566 567
567SUBST_CLASSES+= destdir 568SUBST_CLASSES+= destdir
568SUBST_STAGE.destdir= post-install 569SUBST_STAGE.destdir= post-install
569SUBST_FILES.destdir= ${DESTDIR}${PREFIX}/lib/rustlib/manifest-* 570SUBST_FILES.destdir= ${DESTDIR}${PREFIX}/lib/rustlib/manifest-*
570SUBST_SED.destdir= -e 's|file:${DESTDIR}${PREFIX}|file:${PREFIX}|' 571SUBST_SED.destdir= -e 's|file:${DESTDIR}${PREFIX}|file:${PREFIX}|'
571 572
572GENERATE_PLIST+= ${FIND} ${DESTDIR}${PREFIX} \( -type f -o -type l \) -print | \ 573GENERATE_PLIST+= ${FIND} ${DESTDIR}${PREFIX} \( -type f -o -type l \) -print | \
573 ${SED} -e 's,${DESTDIR}${PREFIX}/,,' | ${SORT} ; 574 ${SED} -e 's,${DESTDIR}${PREFIX}/,,' | ${SORT} ;
574 575
575# Create a relocatable stage2 bootstrap from the bits we just built that can be 576# Create a relocatable stage2 bootstrap from the bits we just built that can be
576# used to build the next version of rust. Currently only tested on SmartOS. 577# used to build the next version of rust. Currently only tested on SmartOS.
577# 578#
578# Use the alternate BOOTSTRAP_NAME when creating a nightly release. 579# Use the alternate BOOTSTRAP_NAME when creating a nightly release.
579# 580#
580#BOOTSTRAP_NAME= ${PKGNAME_NOREV:C/rust/rust-nightly/}-${RUST_ARCH} 581#BOOTSTRAP_NAME= ${PKGNAME_NOREV:C/rust/rust-nightly/}-${RUST_ARCH}
581BOOTSTRAP_NAME= ${PKGNAME_NOREV}-${RUST_ARCH} 582BOOTSTRAP_NAME= ${PKGNAME_NOREV}-${RUST_ARCH}
582BOOTSTRAP_TMPDIR= ${WRKDIR}/${BOOTSTRAP_NAME} 583BOOTSTRAP_TMPDIR= ${WRKDIR}/${BOOTSTRAP_NAME}
583USE_TOOLS+= gtar 584USE_TOOLS+= gtar
584 585
585# The NetBSD part is so far untested, because I could not convince 586# The NetBSD part is so far untested, because I could not convince
586# the rust build to use the gcc wrapper when building natively, 587# the rust build to use the gcc wrapper when building natively,
587# so that I could get a placeholder in the RPATH, because chrpath 588# so that I could get a placeholder in the RPATH, because chrpath
588# cannot extend the length of the RPATH... 589# cannot extend the length of the RPATH...
589ELFEDIT?= /usr/bin/elfedit 590ELFEDIT?= /usr/bin/elfedit
590 591
591.PHONY: stage0-bootstrap 592.PHONY: stage0-bootstrap
592stage0-bootstrap: install 593stage0-bootstrap: install
593 ${RM} -rf ${BOOTSTRAP_TMPDIR} 594 ${RM} -rf ${BOOTSTRAP_TMPDIR}
594 ${MKDIR} ${BOOTSTRAP_TMPDIR} 595 ${MKDIR} ${BOOTSTRAP_TMPDIR}
595.if ${OPSYS} == "NetBSD" 596.if ${OPSYS} == "NetBSD"
596 (cd ${BOOTSTRAP_TMPDIR}; \ 597 (cd ${BOOTSTRAP_TMPDIR}; \
597 DISTDIR=${WRKSRC}/bild/dist; \ 598 DISTDIR=${WRKSRC}/bild/dist; \
598 VER_ARCH=${PKGVERSION}-${RUST_ARCH}; \ 599 VER_ARCH=${PKGVERSION}-${RUST_ARCH}; \
599 RUSTC=rustc-$${VER_ARCH}; \ 600 RUSTC=rustc-$${VER_ARCH}; \
600 RUSTC_FILE=$${RUSTC}.tar.gz; \ 601 RUSTC_FILE=$${RUSTC}.tar.gz; \
601 RUST_STD=rust-std-$${VER_ARCH}; \ 602 RUST_STD=rust-std-$${VER_ARCH}; \
602 RUST_STD_FILE=$${RUST_STD}.tar.gz; \ 603 RUST_STD_FILE=$${RUST_STD}.tar.gz; \
603 ${GTAR} -xzf $${DISTDIR}/$${RUSTC_FILE}; \ 604 ${GTAR} -xzf $${DISTDIR}/$${RUSTC_FILE}; \
604 (cd ${RUSTC}; \ 605 (cd ${RUSTC}; \
605 RPATH='/usr/pkg/lib:/lib:/usr/lib:$$ORIGIN/../lib'; \ 606 RPATH='/usr/pkg/lib:/lib:/usr/lib:$$ORIGIN/../lib'; \
606 for f in rls-preview/bin/rls rustc/bin/rustc rustc/bin/rustdoc; do \ 607 for f in rls-preview/bin/rls rustc/bin/rustc rustc/bin/rustdoc; do \
607 chrpath -r $$RPATH $$f; \ 608 chrpath -r $$RPATH $$f; \
608 done; \ 609 done; \
609 RPATH='/usr/pkg/lib:/lib:/usr/lib:$$ORIGIN'; \ 610 RPATH='/usr/pkg/lib:/lib:/usr/lib:$$ORIGIN'; \
610 for f in rustc/lib/*.so*; do \ 611 for f in rustc/lib/*.so*; do \
611 chrpath -r $$RPATH $$f; \ 612 chrpath -r $$RPATH $$f; \
612 done; \ 613 done; \
613 RPATH='/usr/pkg/lib:/lib:/usr/lib:$$ORIGIN:$$ORIGIN/../../..'; \ 614 RPATH='/usr/pkg/lib:/lib:/usr/lib:$$ORIGIN:$$ORIGIN/../../..'; \
614 for f in rustc/lib/rustlib/*/*/*.so*; do \ 615 for f in rustc/lib/rustlib/*/*/*.so*; do \
615 chrpath -r $$RPATH $$f; \ 616 chrpath -r $$RPATH $$f; \
616 done;); \ 617 done;); \
617 ${GTAR} -czf $${RUSTC_FILE} $${RUSTC}; \ 618 ${GTAR} -czf $${RUSTC_FILE} $${RUSTC}; \
618 ${CP} $${DISTDIR}/$${RUST_STD_FILE} .; \ 619 ${CP} $${DISTDIR}/$${RUST_STD_FILE} .; \
619 ${ECHO} "Fixed stage0 bootstrap in ${BOOTSTRAP_TMPDIR}:"; \ 620 ${ECHO} "Fixed stage0 bootstrap in ${BOOTSTRAP_TMPDIR}:"; \
620 ${ECHO} "$${RUSTC_FILE}"; \ 621 ${ECHO} "$${RUSTC_FILE}"; \
621 ${ECHO} "$${RUST_STD_FILE}"; \ 622 ${ECHO} "$${RUST_STD_FILE}"; \
622 ) 623 )
623.endif 624.endif
624.if ${OS_VARIANT} == "SmartOS" 625.if ${OS_VARIANT} == "SmartOS"
625 ${CP} -R ${DESTDIR}/${PREFIX}/bin ${BOOTSTRAP_TMPDIR}/ 626 ${CP} -R ${DESTDIR}/${PREFIX}/bin ${BOOTSTRAP_TMPDIR}/
626 ${CP} -R ${DESTDIR}/${PREFIX}/lib ${BOOTSTRAP_TMPDIR}/ 627 ${CP} -R ${DESTDIR}/${PREFIX}/lib ${BOOTSTRAP_TMPDIR}/
627 ${MKDIR} ${BOOTSTRAP_TMPDIR}/lib/pkgsrc 628 ${MKDIR} ${BOOTSTRAP_TMPDIR}/lib/pkgsrc
628 set -e; \ 629 set -e; \
629 for lib in libgcc_s.so.1 libstdc++.so.6; do \ 630 for lib in libgcc_s.so.1 libstdc++.so.6; do \
630 ${CP} `${PKG_CC} -print-file-name=$${lib}` \ 631 ${CP} `${PKG_CC} -print-file-name=$${lib}` \
631 ${BOOTSTRAP_TMPDIR}/lib/pkgsrc/; \ 632 ${BOOTSTRAP_TMPDIR}/lib/pkgsrc/; \
632 done; \ 633 done; \
633 for lib in libLLVM-16.so libcrypto.so.3 libcurl.so.4 \ 634 for lib in libLLVM-16.so libcrypto.so.3 libcurl.so.4 \
634 libssl.so.3 libz.so.1 libzstd.so.1; do \ 635 libssl.so.3 libz.so.1 libzstd.so.1; do \
635 ${CP} ${PREFIX}/lib/$${lib} ${BOOTSTRAP_TMPDIR}/lib/pkgsrc/; \ 636 ${CP} ${PREFIX}/lib/$${lib} ${BOOTSTRAP_TMPDIR}/lib/pkgsrc/; \
636 done; \ 637 done; \
637 for lib in libiconv.so.2 libidn2.so.0 libintl.so.8 liblber.so.2 \ 638 for lib in libiconv.so.2 libidn2.so.0 libintl.so.8 liblber.so.2 \
638 libldap.so.2 libnghttp2.so.14 libsasl2.so.3 \ 639 libldap.so.2 libnghttp2.so.14 libsasl2.so.3 \
639 libssh2.so.1 libunistring.so.5; do \ 640 libssh2.so.1 libunistring.so.5; do \
640 ${CP} ${PREFIX}/lib/$${lib} ${BOOTSTRAP_TMPDIR}/lib/pkgsrc/; \ 641 ${CP} ${PREFIX}/lib/$${lib} ${BOOTSTRAP_TMPDIR}/lib/pkgsrc/; \
641 done; \ 642 done; \
642 for f in ${BOOTSTRAP_TMPDIR}/bin/*; do \ 643 for f in ${BOOTSTRAP_TMPDIR}/bin/*; do \
643 /bin/file -b "$$f" | grep ^ELF >/dev/null || continue; \ 644 /bin/file -b "$$f" | grep ^ELF >/dev/null || continue; \
644 ${ELFEDIT} -e 'dyn:runpath $$ORIGIN/../lib:$$ORIGIN/../lib/pkgsrc' $$f; \ 645 ${ELFEDIT} -e 'dyn:runpath $$ORIGIN/../lib:$$ORIGIN/../lib/pkgsrc' $$f; \
645 done; \ 646 done; \
646 for f in ${BOOTSTRAP_TMPDIR}/lib/pkgsrc/*.so*; do \ 647 for f in ${BOOTSTRAP_TMPDIR}/lib/pkgsrc/*.so*; do \
647 ${ELFEDIT} -e 'dyn:runpath $$ORIGIN' $$f; \ 648 ${ELFEDIT} -e 'dyn:runpath $$ORIGIN' $$f; \
648 done; \ 649 done; \
649 for f in ${BOOTSTRAP_TMPDIR}/lib/*.so*; do \ 650 for f in ${BOOTSTRAP_TMPDIR}/lib/*.so*; do \
650 ${ELFEDIT} -e 'dyn:runpath $$ORIGIN:$$ORIGIN/pkgsrc' $$f; \ 651 ${ELFEDIT} -e 'dyn:runpath $$ORIGIN:$$ORIGIN/pkgsrc' $$f; \
651 done; \ 652 done; \
652 for f in ${BOOTSTRAP_TMPDIR}/lib/rustlib/*/*/*.so*; do \ 653 for f in ${BOOTSTRAP_TMPDIR}/lib/rustlib/*/*/*.so*; do \
653 ${ELFEDIT} -e 'dyn:runpath $$ORIGIN:$$ORIGIN/../../..:$$ORIGIN/../../../pkgsrc' $$f; \ 654 ${ELFEDIT} -e 'dyn:runpath $$ORIGIN:$$ORIGIN/../../..:$$ORIGIN/../../../pkgsrc' $$f; \
654 done; \ 655 done; \
655 cd ${WRKDIR}; ${GTAR} -zcf ${BOOTSTRAP_NAME}.tar.gz ${BOOTSTRAP_NAME} 656 cd ${WRKDIR}; ${GTAR} -zcf ${BOOTSTRAP_NAME}.tar.gz ${BOOTSTRAP_NAME}
656 @${ECHO} "" 657 @${ECHO} ""
657 @${ECHO} "Verify correct library paths using the following:" 658 @${ECHO} "Verify correct library paths using the following:"
658 @${ECHO} "" 659 @${ECHO} ""
659 @${ECHO} " cd ${BOOTSTRAP_TMPDIR}" 660 @${ECHO} " cd ${BOOTSTRAP_TMPDIR}"
660 @${ECHO} " find . -type f | xargs ldd 2>/dev/null | egrep 'not.found|${PREFIX}'" 661 @${ECHO} " find . -type f | xargs ldd 2>/dev/null | egrep 'not.found|${PREFIX}'"
661 @${ECHO} "" 662 @${ECHO} ""
662 @${ECHO} "If there is no output then this bootstrap kit is ready to go:" 663 @${ECHO} "If there is no output then this bootstrap kit is ready to go:"
663 @${ECHO} "" 664 @${ECHO} ""
664 @${ECHO} " ${WRKDIR}/${BOOTSTRAP_NAME}.tar.gz" 665 @${ECHO} " ${WRKDIR}/${BOOTSTRAP_NAME}.tar.gz"
665 @${ECHO} "" 666 @${ECHO} ""
666.endif 667.endif
667 668
668.include "options.mk" 669.include "options.mk"
669 670
670# These dependencies currently use the bundled sources as they require 671# These dependencies currently use the bundled sources as they require
671# development features not yet available in released versions. 672# development features not yet available in released versions.
672# 673#
673#.include "../../devel/libgit2/buildlink3.mk" 674#.include "../../devel/libgit2/buildlink3.mk"
674#.include "../../security/libssh2/buildlink3.mk" 675#.include "../../security/libssh2/buildlink3.mk"
675#.include "../../www/http-parser/buildlink3.mk" 676#.include "../../www/http-parser/buildlink3.mk"
676#.include "../../devel/jemalloc/buildlink3.mk" 677#.include "../../devel/jemalloc/buildlink3.mk"
677 678
678## Issues specific to: bootstrap AND NetBSD follow 679## Issues specific to: bootstrap AND NetBSD follow
679 680
680# rust i386 and sparc64 bootstraps are built for 8.0 681# rust i386 and sparc64 bootstraps are built for 8.0
681# and still depend on libstdc++.so.8. 682# and still depend on libstdc++.so.8.
682# Pull in compat80 on 9.x and newer. 683# Pull in compat80 on 9.x and newer.
683.if (${MACHINE_PLATFORM:MNetBSD-*-i386} || \ 684.if (${MACHINE_PLATFORM:MNetBSD-*-i386} || \
684 ${MACHINE_PLATFORM:MNetBSD-*-sparc64}) \ 685 ${MACHINE_PLATFORM:MNetBSD-*-sparc64}) \
685 && empty(OS_VERSION:M8.*) 686 && empty(OS_VERSION:M8.*)
686TOOL_DEPENDS+= compat80>=0:../../emulators/compat80 687TOOL_DEPENDS+= compat80>=0:../../emulators/compat80
687.endif 688.endif
688 689
689.include "../../mk/atomic64.mk" 690.include "../../mk/atomic64.mk"
690# This is for when we build natively: 691# This is for when we build natively:
691.if ${MACHINE_PLATFORM:MNetBSD-*-powerpc} || \ 692.if ${MACHINE_PLATFORM:MNetBSD-*-powerpc} || \
692 ${MACHINE_PLATFORM:MNetBSD-*-i386} || \ 693 ${MACHINE_PLATFORM:MNetBSD-*-i386} || \
693 ${MACHINE_PLATFORM:MNetBSD-*-mipsel} || \ 694 ${MACHINE_PLATFORM:MNetBSD-*-mipsel} || \
694 ${MACHINE_PLATFORM:MNetBSD-*-riscv64} 695 ${MACHINE_PLATFORM:MNetBSD-*-riscv64}
695# Make libatomic library available via a unique directory: 696# Make libatomic library available via a unique directory:
696DEPENDS+= libatomic-links>=0:../../devel/libatomic-links 697DEPENDS+= libatomic-links>=0:../../devel/libatomic-links
697.endif 698.endif
698 699
699TOOL_DEPENDS+= cmake-[0-9]*:../../devel/cmake 700TOOL_DEPENDS+= cmake-[0-9]*:../../devel/cmake
700 701
701.include "../../devel/zlib/buildlink3.mk" 702.include "../../devel/zlib/buildlink3.mk"
702.include "../../lang/python/tool.mk" 703.include "../../lang/python/tool.mk"
703.include "../../mk/bsd.pkg.mk" 704.include "../../mk/bsd.pkg.mk"