Mon Jul 12 12:56:13 2021 UTC ()
Pullup ticket #6486 - requested by he
lang/rust: build fix

Revisions pulled up:
- lang/rust/Makefile                                            1.242
- lang/rust/options.mk                                          1.15

---
   Module Name:	pkgsrc
   Committed By:	he
   Date:		Sun Jul 11 22:13:38 UTC 2021

   Modified Files:
   	pkgsrc/lang/rust: Makefile options.mk

   Log Message:
   Evidently, cmake is needed in all cases.

   Move cmake dependency out of condition on PKG_OPTIONS.rust-llvm.


(bsiegert)
diff -r1.241 -r1.241.2.1 pkgsrc/lang/rust/Makefile
diff -r1.14 -r1.14.2.1 pkgsrc/lang/rust/options.mk

cvs diff -r1.241 -r1.241.2.1 pkgsrc/lang/rust/Makefile (switch to unified diff)

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

cvs diff -r1.14 -r1.14.2.1 pkgsrc/lang/rust/options.mk (switch to unified diff)

--- pkgsrc/lang/rust/options.mk 2021/04/04 08:51:20 1.14
+++ pkgsrc/lang/rust/options.mk 2021/07/12 12:56:13 1.14.2.1
@@ -1,51 +1,48 @@ @@ -1,51 +1,48 @@
1# $NetBSD: options.mk,v 1.14 2021/04/04 08:51:20 he Exp $ 1# $NetBSD: options.mk,v 1.14.2.1 2021/07/12 12:56:13 bsiegert Exp $
2 2
3PKG_OPTIONS_VAR= PKG_OPTIONS.rust 3PKG_OPTIONS_VAR= PKG_OPTIONS.rust
4PKG_SUPPORTED_OPTIONS+= rust-cargo-static 4PKG_SUPPORTED_OPTIONS+= rust-cargo-static
5 5
6.include "../../mk/bsd.fast.prefs.mk" 6.include "../../mk/bsd.fast.prefs.mk"
7 7
8# The bundled LLVM current has issues building on SunOS. 8# The bundled LLVM current has issues building on SunOS.
9.if ${OPSYS} != "SunOS" && ${OPSYS} != "Darwin" 9.if ${OPSYS} != "SunOS" && ${OPSYS} != "Darwin"
10PKG_SUPPORTED_OPTIONS+= rust-llvm 10PKG_SUPPORTED_OPTIONS+= rust-llvm
11# There may be compatibility issues with base LLVM. 11# There may be compatibility issues with base LLVM.
12. if !empty(HAVE_LLVM) 12. if !empty(HAVE_LLVM)
13PKG_SUGGESTED_OPTIONS+= rust-llvm 13PKG_SUGGESTED_OPTIONS+= rust-llvm
14. endif 14. endif
15.endif 15.endif
16 16
17# Bundle OpenSSL and curl into the cargo binary when producing 17# Bundle OpenSSL and curl into the cargo binary when producing
18# bootstraps on NetBSD. 18# bootstraps on NetBSD.
19.if ${OPSYS} == "NetBSD" && ${BUILD_TARGET} == "dist" 19.if ${OPSYS} == "NetBSD" && ${BUILD_TARGET} == "dist"
20PKG_SUGGESTED_OPTIONS+= rust-cargo-static 20PKG_SUGGESTED_OPTIONS+= rust-cargo-static
21.endif 21.endif
22 22
23.include "../../mk/bsd.options.mk" 23.include "../../mk/bsd.options.mk"
24 24
25# 25#
26# Use the internal copy of LLVM. 26# Use the internal copy of LLVM.
27# This contains some extra optimizations. 27# This contains some extra optimizations.
28# 28#
29.if !empty(PKG_OPTIONS:Mrust-llvm) 29.if empty(PKG_OPTIONS:Mrust-llvm)
30BUILD_DEPENDS+= cmake-[0-9]*:../../devel/cmake 
31.include "../../devel/cmake/buildlink3.mk" 
32.else 
33.include "../../lang/llvm/buildlink3.mk" 30.include "../../lang/llvm/buildlink3.mk"
34CONFIGURE_ARGS+= --enable-llvm-link-shared 31CONFIGURE_ARGS+= --enable-llvm-link-shared
35CONFIGURE_ARGS+= --llvm-root=${BUILDLINK_PREFIX.llvm} 32CONFIGURE_ARGS+= --llvm-root=${BUILDLINK_PREFIX.llvm}
36# XXX: fix for Rust 1.41.0 https://github.com/rust-lang/rust/issues/68714 33# XXX: fix for Rust 1.41.0 https://github.com/rust-lang/rust/issues/68714
37MAKE_ENV+= LIBRARY_PATH=${BUILDLINK_PREFIX.llvm}/lib 34MAKE_ENV+= LIBRARY_PATH=${BUILDLINK_PREFIX.llvm}/lib
38.endif 35.endif
39 36
40# 37#
41# Link cargo statically against "native" libraries. 38# Link cargo statically against "native" libraries.
42# (openssl and curl specifically). 39# (openssl and curl specifically).
43# 40#
44.if !empty(PKG_OPTIONS:Mrust-cargo-static) 41.if !empty(PKG_OPTIONS:Mrust-cargo-static)
45CONFIGURE_ARGS+= --enable-cargo-native-static 42CONFIGURE_ARGS+= --enable-cargo-native-static
46.else 43.else
47BUILDLINK_API_DEPENDS.nghttp2+= nghttp2>=1.41.0 44BUILDLINK_API_DEPENDS.nghttp2+= nghttp2>=1.41.0
48BUILDLINK_API_DEPENDS.curl+= curl>=7.67.0 45BUILDLINK_API_DEPENDS.curl+= curl>=7.67.0
49.include "../../www/curl/buildlink3.mk" 46.include "../../www/curl/buildlink3.mk"
50.include "../../security/openssl/buildlink3.mk" 47.include "../../security/openssl/buildlink3.mk"
51.endif 48.endif