Skip to content

Commit c61dde3

Browse files
committed
lang/rust: fork 1.88 into a pinned port
A temporary workaround for devel/git-branchless and games/veloren-weekly. PR: 288923, 289015, 289016
1 parent 60a95f1 commit c61dde3

19 files changed

+1396
-2
lines changed

‎lang/Makefile‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,7 @@
334334
SUBDIR += rust
335335
SUBDIR += rust-bootstrap
336336
SUBDIR += rust-nightly
337+
SUBDIR += rust188
337338
SUBDIR += rustpython
338339
SUBDIR += s7
339340
SUBDIR += s7-nrepl

‎lang/rust-nightly/Makefile‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ DISTNAME= rustc-nightly-src
88
ONLY_FOR_ARCHS= amd64
99
ONLY_FOR_ARCHS_REASON= upstream does not provide bootstraps for other architectures
1010

11-
CONFLICTS_INSTALL= rust
11+
CONFLICTS_INSTALL= rust rust188
1212

1313
MASTERDIR= ${.CURDIR}/../rust
1414
PATCHDIR= ${.CURDIR}/files

‎lang/rust/Makefile‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ MAKE_ENV= DESTDIR=${STAGEDIR} \
3838
TEST_ENV= ${MAKE_ENV} \
3939
ALLOW_NONZERO_RLIMIT_CORE=1
4040

41-
CONFLICTS_INSTALL?= rust-nightly
41+
CONFLICTS_INSTALL?= rust-nightly rust188
4242

4343
# rustc stashes intermediary files in TMPDIR (default /tmp) which
4444
# might cause issues for users that for some reason space limit

‎lang/rust188/Makefile‎

Lines changed: 283 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,283 @@
1+
PORTNAME= rust
2+
PORTVERSION?= 1.88.0
3+
PORTREVISION?= 0
4+
CATEGORIES= lang
5+
MASTER_SITES= https://static.rust-lang.org/dist/:src \
6+
https://dev-static.rust-lang.org/dist/:src \
7+
LOCAL/rust:bootstrap \
8+
https://static.rust-lang.org/dist/:bootstrap
9+
DISTNAME?= ${PORTNAME}c-${PORTVERSION}-src
10+
DISTFILES?= ${NIGHTLY_DATE:D${NIGHTLY_DATE}/}${DISTNAME}${EXTRACT_SUFX}:src \
11+
${_RUSTC_BOOTSTRAP}${EXTRACT_SUFX}:bootstrap \
12+
${_RUST_STD_BOOTSTRAP}${EXTRACT_SUFX}:bootstrap \
13+
${_CARGO_BOOTSTRAP}${EXTRACT_SUFX}:bootstrap
14+
DIST_SUBDIR?= rust
15+
PKGNAMESUFFIX= 182
16+
17+
MAINTAINER= rust@FreeBSD.org
18+
COMMENT= Language with a focus on memory safety and concurrency (deprecated 1.88.* series)
19+
WWW= https://www.rust-lang.org/
20+
21+
LICENSE= APACHE20 MIT
22+
LICENSE_COMB= dual
23+
LICENSE_FILE_APACHE20= ${WRKSRC}/LICENSE-APACHE
24+
LICENSE_FILE_MIT= ${WRKSRC}/LICENSE-MIT
25+
26+
ONLY_FOR_ARCHS= aarch64 amd64
27+
ONLY_FOR_ARCHS_REASON= unused by games/veloren-weekly
28+
29+
LIB_DEPENDS= libcurl.so:ftp/curl
30+
31+
USES= cmake:indirect cpe ninja:build pkgconfig python:build ssl tar:xz
32+
33+
CPE_VENDOR= rust-lang
34+
35+
MAKE_ENV= DESTDIR=${STAGEDIR} \
36+
LIBGIT2_NO_PKG_CONFIG=1 \
37+
OPENSSL_DIR="${OPENSSLBASE}"
38+
TEST_ENV= ${MAKE_ENV} \
39+
ALLOW_NONZERO_RLIMIT_CORE=1
40+
41+
PORTSCOUT= limit:^1\.88\.
42+
CONFLICTS_INSTALL?= rust rust-nightly
43+
44+
# rustc stashes intermediary files in TMPDIR (default /tmp) which
45+
# might cause issues for users that for some reason space limit
46+
# their /tmp. WRKDIR should have plenty of space.
47+
# ?= to allow users to still overwrite it in make.conf.
48+
TMPDIR?= ${WRKDIR}
49+
50+
OPTIONS_DEFINE= DOCS GDB LTO PORT_LLVM SOURCES WASM
51+
OPTIONS_DEFAULT= SOURCES WASM
52+
OPTIONS_DEFINE_i386= SSE2
53+
OPTIONS_DEFAULT_i386= SSE2
54+
55+
GDB_DESC= Install ports gdb (necessary for debugging rust programs)
56+
PORT_LLVM_DESC= Build against devel/llvm instead of bundled copy (experimental)
57+
SSE2_DESC= Enable SSE2 instructions
58+
SOURCES_DESC= Install source files
59+
WASM_DESC= Build the WebAssembly target (wasm32-unknown-unknown)
60+
61+
SSE2_EXTRA_PATCHES_OFF+= ${FILESDIR}/extra-patch-compiler_rustc__target_src_spec_targets_i686__unknown__freebsd.rs
62+
63+
DOCS_VARS= _RUST_BUILD_DOCS=true \
64+
_COMPONENTS+="rust-docs-${_PACKAGE_VERS}-${_RUST_TARGET} rust-docs-json-${_PACKAGE_VERS}-${_RUST_TARGET}"
65+
DOCS_VARS_OFF= _RUST_BUILD_DOCS=false
66+
GDB_RUN_DEPENDS= ${LOCALBASE}/bin/gdb:devel/gdb
67+
PORT_LLVM_USES= llvm:min=19,lib,noexport
68+
PORT_LLVM_MAKE_ENV= RUSTFLAGS="-Lnative=${LOCALBASE}/lib"
69+
SOURCES_VARS= _COMPONENTS+=rust-src-${_PACKAGE_VERS} \
70+
_RUST_TOOLS+=src
71+
WASM_VARS= _COMPONENTS+="rust-analysis-${_PACKAGE_VERS}-wasm32-unknown-unknown rust-std-${_PACKAGE_VERS}-wasm32-unknown-unknown" \
72+
_RUST_TARGETS+=wasm32-unknown-unknown
73+
74+
# See WRKSRC/src/stage0 for the date and version values
75+
BOOTSTRAPS_DATE?= 2025-05-15
76+
RUST_BOOTSTRAP_VERSION?= 1.87.0
77+
78+
CARGO_VENDOR_DIR?= ${WRKSRC}/vendor
79+
80+
# Rust's target arch string might be different from *BSD arch strings
81+
_RUST_ARCH_amd64= x86_64
82+
_RUST_ARCH_i386= i686
83+
_RUST_ARCH_riscv64= riscv64gc
84+
_RUST_TARGET= ${_RUST_ARCH_${ARCH}:U${ARCH}}-unknown-${OPSYS:tl}
85+
_RUST_TARGETS= ${_RUST_TARGET}
86+
_RUST_TOOLS= analysis cargo clippy rust-analyzer rustdoc rustfmt
87+
88+
_RUSTC_BOOTSTRAP= ${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}}/rustc-${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}}-${_RUST_TARGET}
89+
_RUST_STD_BOOTSTRAP= ${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}}/rust-std-${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}}-${_RUST_TARGET}
90+
_CARGO_BOOTSTRAP= ${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}}/cargo-${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}}-${_RUST_TARGET}
91+
92+
_PACKAGE_VERS= ${NIGHTLY_DATE:?nightly:${PORTVERSION}}
93+
_COMPONENTS+= cargo-${_PACKAGE_VERS}-${_RUST_TARGET} \
94+
clippy-${_PACKAGE_VERS}-${_RUST_TARGET} \
95+
rustc-${_PACKAGE_VERS}-${_RUST_TARGET} \
96+
rustfmt-${_PACKAGE_VERS}-${_RUST_TARGET} \
97+
rust-analysis-${_PACKAGE_VERS}-${_RUST_TARGET} \
98+
rust-std-${_PACKAGE_VERS}-${_RUST_TARGET}
99+
100+
.include <bsd.port.pre.mk>
101+
102+
.if ${OPSYS} != FreeBSD
103+
IGNORE= is only for FreeBSD
104+
.endif
105+
106+
.if ${ARCH} == powerpc
107+
LIB_DEPENDS+= libatomic.so:lang/gcc${GCC_DEFAULT}
108+
MAKE_ENV+= RUSTFLAGS="-L/usr/local/lib/gcc${GCC_DEFAULT}"
109+
.endif
110+
111+
.if ${ARCH} != powerpc64le
112+
MAKE_ENV+= RUST_BACKTRACE=1
113+
.endif
114+
115+
# per https://rust-lang.github.io/rustup/concepts/components.html
116+
# rustc-dev is only usefull on nightly
117+
.if defined(NIGHTLY_DATE)
118+
_COMPONENTS+= rustc-dev-${_PACKAGE_VERS}-${_RUST_TARGET}
119+
.endif
120+
121+
.if ${PORT_OPTIONS:MWASM} && ${PORT_OPTIONS:MDOCS}
122+
_COMPONENTS+= rust-docs-${_PACKAGE_VERS}-wasm32-unknown-unknown rust-docs-json-${_PACKAGE_VERS}-wasm32-unknown-unknown
123+
.endif
124+
125+
.if exists(${PATCHDIR}/${ARCH}${BOOTSTRAPS_SUFFIX})
126+
EXTRA_PATCHES+= ${PATCHDIR}/${ARCH}${BOOTSTRAPS_SUFFIX}
127+
.endif
128+
129+
.ifdef QEMU_EMULATING
130+
IGNORE= fails to build with qemu-user-static
131+
.endif
132+
133+
.if make(makesum)
134+
DISTFILES:= ${DISTFILES:M*\:src} \
135+
${ONLY_FOR_ARCHS:O:@_arch@${:!${MAKE} ARCH=${_arch} -V'DISTFILES:N*\:src'!}@}
136+
.endif
137+
138+
post-patch:
139+
@${REINPLACE_CMD} 's,gdb,${LOCALBASE}/bin/gdb,' ${WRKSRC}/src/etc/rust-gdb
140+
.if defined(NIGHTLY_DATE)
141+
@${REINPLACE_CMD} '/rustfmt/d' ${WRKSRC}/src/stage0
142+
.endif
143+
# Disable vendor checksums
144+
@${REINPLACE_CMD} 's,"files":{[^}]*},"files":{},' \
145+
${CARGO_VENDOR_DIR}/*/.cargo-checksum.json
146+
147+
post-patch-PORT_LLVM-on:
148+
# WASM target hardcodes bundled lld
149+
@${REINPLACE_CMD} 's|"rust-lld"|"wasm-ld${LLVM_VERSION}"|' \
150+
${WRKSRC}/compiler/rustc_target/src/spec/base/wasm.rs
151+
152+
do-configure:
153+
# Check that the running kernel has COMPAT_FREEBSD11 required by lang/rust post-ino64
154+
@${SETENV} CC="${CC}" OPSYS="${OPSYS}" OSVERSION="${OSVERSION}" WRKDIR="${WRKDIR}" \
155+
${SH} ${SCRIPTSDIR}/rust-compat11-canary.sh
156+
.for _component in cargo rust-std rustc
157+
@cd ${WRKDIR}/${_component}-*-${OPSYS:tl} && \
158+
${SH} install.sh --prefix=${WRKDIR}/bootstrap --verbose
159+
.endfor
160+
@${ECHO_CMD} '[build]' >> ${WRKSRC}/config.toml
161+
@${ECHO_CMD} 'build-dir="${WRKDIR}/_build"' >> ${WRKSRC}/config.toml
162+
@${ECHO_CMD} 'build-stage=2' >> ${WRKSRC}/config.toml
163+
@${ECHO_CMD} 'doc-stage=2' >> ${WRKSRC}/config.toml
164+
@${ECHO_CMD} 'test-stage=2' >> ${WRKSRC}/config.toml
165+
@${ECHO_CMD} 'vendor=true' >> ${WRKSRC}/config.toml
166+
@${ECHO_CMD} 'extended=true' >> ${WRKSRC}/config.toml
167+
@${ECHO_CMD} 'python="${PYTHON_CMD}"' >> ${WRKSRC}/config.toml
168+
@${ECHO_CMD} 'docs=${_RUST_BUILD_DOCS}' >> ${WRKSRC}/config.toml
169+
@${ECHO_CMD} 'verbose=2' >> ${WRKSRC}/config.toml
170+
.if defined(NIGHTLY_DATE)
171+
@${ECHO_CMD} 'profiler=true' >> ${WRKSRC}/config.toml
172+
.endif
173+
@${ECHO_CMD} 'target=[${_RUST_TARGETS:@.target.@"${.target.}"@:ts,}]' >> ${WRKSRC}/config.toml
174+
@${ECHO_CMD} 'cargo="${WRKDIR}/bootstrap/bin/cargo"' >> ${WRKSRC}/config.toml
175+
@${ECHO_CMD} 'rustc="${WRKDIR}/bootstrap/bin/rustc"' >> ${WRKSRC}/config.toml
176+
@${ECHO_CMD} 'tools=[${_RUST_TOOLS:@.tool.@"${.tool.}"@:ts,}]' >> ${WRKSRC}/config.toml
177+
@${ECHO_CMD} '[install]' >> ${WRKSRC}/config.toml
178+
@${ECHO_CMD} 'prefix="${PREFIX}"' >> ${WRKSRC}/config.toml
179+
@${ECHO_CMD} 'sysconfdir="${PREFIX}/etc"' >> ${WRKSRC}/config.toml
180+
@${ECHO_CMD} '[rust]' >> ${WRKSRC}/config.toml
181+
@${ECHO_CMD} 'channel="stable"' >> ${WRKSRC}/config.toml
182+
@${ECHO_CMD} 'default-linker="${CC}"' >> ${WRKSRC}/config.toml
183+
@${ECHO_CMD} 'deny-warnings=false' >> ${WRKSRC}/config.toml
184+
@${ECHO_CMD} 'verbose-tests=true' >> ${WRKSRC}/config.toml
185+
@${ECHO_CMD} 'download-rustc=false' >> ${WRKSRC}/config.toml
186+
.if ${PORT_OPTIONS:MWASM} && !${PORT_OPTIONS:MPORT_LLVM}
187+
@${ECHO_CMD} 'lld=true' >> ${WRKSRC}/config.toml
188+
.else
189+
@${ECHO_CMD} 'lld=false' >> ${WRKSRC}/config.toml
190+
.endif
191+
.if ${PORT_OPTIONS:MLTO}
192+
@${ECHO_CMD} 'lto="thin"' >> ${WRKSRC}/config.toml
193+
.endif
194+
@${ECHO_CMD} 'remap-debuginfo=true' >> ${WRKSRC}/config.toml
195+
@${ECHO_CMD} '[llvm]' >> ${WRKSRC}/config.toml
196+
@${ECHO_CMD} 'download-ci-llvm=false' >> ${WRKSRC}/config.toml
197+
.if ${PORT_OPTIONS:MLTO}
198+
@${ECHO_CMD} 'thin-lto=true' >> ${WRKSRC}/config.toml
199+
.endif
200+
.if defined(WITH_CCACHE_BUILD) && !defined(NO_CCACHE)
201+
@${ECHO_CMD} 'ccache="${CCACHE_BIN}"' >> ${WRKSRC}/config.toml
202+
.else
203+
@${ECHO_CMD} 'ccache=false' >> ${WRKSRC}/config.toml
204+
.endif
205+
@${ECHO_CMD} 'ninja=true' >> ${WRKSRC}/config.toml
206+
.if ${ARCH} == powerpc
207+
# Rust doesn't call the system compiler with the full version of the target.
208+
# This makes powerpc miscompile due to the secure-plt ABI change.
209+
# Additionally, force using ld.bfd to work around a linking problem in rustc_mir
210+
@${PRINTF} '#!/bin/sh\nexec ${CC} "$$@" --target=powerpc-unknown-freebsd13.2' > ${WRKDIR}/cc-wrapper
211+
@${CHMOD} +x ${WRKDIR}/cc-wrapper
212+
@${PRINTF} '#!/bin/sh\nexec ${CXX} "$$@" --target=powerpc-unknown-freebsd13.2' > ${WRKDIR}/cxx-wrapper
213+
@${CHMOD} +x ${WRKDIR}/cxx-wrapper
214+
.endif
215+
.for _target in ${_RUST_TARGETS}
216+
@${ECHO_CMD} '[target.${_target}]' >> ${WRKSRC}/config.toml
217+
@${ECHO_CMD} 'ar="${AR}"' >> ${WRKSRC}/config.toml
218+
.if ${ARCH} == powerpc
219+
@${ECHO_CMD} 'cc="${WRKDIR}/cc-wrapper"' >> ${WRKSRC}/config.toml
220+
@${ECHO_CMD} 'cxx="${WRKDIR}/cxx-wrapper"' >> ${WRKSRC}/config.toml
221+
.else
222+
@${ECHO_CMD} 'cc="${CC}"' >> ${WRKSRC}/config.toml
223+
@${ECHO_CMD} 'cxx="${CXX}"' >> ${WRKSRC}/config.toml
224+
.endif
225+
@${ECHO_CMD} 'linker="${CC}"' >> ${WRKSRC}/config.toml
226+
.if ${PORT_OPTIONS:MPORT_LLVM}
227+
@${ECHO_CMD} 'llvm-config="${LOCALBASE}/bin/${LLVM_CONFIG}"' >> ${WRKSRC}/config.toml
228+
.endif
229+
.endfor
230+
@${ECHO_CMD} '[dist]' >> ${WRKSRC}/config.toml
231+
@${ECHO_CMD} 'src-tarball=false' >> ${WRKSRC}/config.toml
232+
233+
do-build:
234+
@cd ${WRKSRC} && \
235+
${SETENV} ${MAKE_ENV} ${PYTHON_CMD} x.py dist --jobs=${MAKE_JOBS_NUMBER}
236+
237+
do-install:
238+
${RM} -r ${WRKDIR}/_extractdist
239+
.for _c in ${_COMPONENTS}
240+
${MKDIR} ${WRKDIR}/_extractdist
241+
${TAR} xf ${WRKDIR}/_build/dist/${_c}.tar.xz -C ${WRKDIR}/_extractdist
242+
cd ${WRKDIR}/_extractdist/${_c} && \
243+
${SH} install.sh \
244+
--docdir="${STAGEDIR}${DOCSDIR}" \
245+
--mandir="${STAGEDIR}${PREFIX}/share/man" \
246+
--prefix="${STAGEDIR}${PREFIX}"
247+
${RM} -r ${WRKDIR}/_extractdist
248+
.endfor
249+
250+
# We autogenerate the plist file. We do that, instead of the
251+
# regular pkg-plist, because several libraries have a computed
252+
# filename based on the absolute path of the source files. As it
253+
# is user-specific, we cannot know their filename in advance.
254+
@${RM} ${STAGEDIR}${DOCSDIR}/*.old \
255+
${STAGEDIR}${PREFIX}/lib/rustlib/components \
256+
${STAGEDIR}${PREFIX}/lib/rustlib/install.log \
257+
${STAGEDIR}${PREFIX}/lib/rustlib/manifest-* \
258+
${STAGEDIR}${PREFIX}/lib/rustlib/rust-installer-version \
259+
${STAGEDIR}${PREFIX}/lib/rustlib/uninstall.sh
260+
@${FIND} ${STAGEDIR}${PREFIX}/bin ${STAGEDIR}${PREFIX}/lib \
261+
${STAGEDIR}${PREFIX}/libexec -exec ${FILE} -i {} + | \
262+
${AWK} -F: '/executable|sharedlib/ { print $$1 }' | ${XARGS} ${STRIP_CMD}
263+
@${FIND} ${STAGEDIR}${PREFIX} -not -type d | \
264+
${SED} -E -e 's,^${STAGEDIR}${PREFIX}/,,' \
265+
-e 's,(share/man/man[1-9]/.*\.[0-9]),\1.gz,' >> ${TMPPLIST}
266+
267+
post-install-DOCS-on:
268+
# Ignore any left behind empty directories in case some docs fail
269+
# to build (failures are ignored due to deny-warnings=false).
270+
@${FIND} ${STAGEDIR}${DOCSDIR}/html -empty -type d | \
271+
${SED} 's,^${STAGEDIR},@comment @dir ,' >> ${TMPPLIST}
272+
273+
post-install-SOURCES-on:
274+
# Silence stage-qa warnings by sanitizing permissions on sources
275+
@${FIND} ${STAGEDIR}${PREFIX}/lib/rustlib/src -type f -exec ${CHMOD} \
276+
${SHAREMODE} {} +
277+
278+
# Note that make test does not work when rust is already installed.
279+
do-test:
280+
@cd ${WRKSRC} && \
281+
${SETENV} ${TEST_ENV} ${PYTHON_CMD} x.py test --jobs=${MAKE_JOBS_NUMBER}
282+
283+
.include <bsd.port.post.mk>

‎lang/rust188/distinfo‎

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
TIMESTAMP = 1751532290
2+
SHA256 (rust/rustc-1.88.0-src.tar.xz) = 0c1dcbb4f762513d021e1a282c0ac58c0a423642b3a6bf581cafb5414df4193e
3+
SIZE (rust/rustc-1.88.0-src.tar.xz) = 283294344
4+
SHA256 (rust/2025-05-15/rustc-1.87.0-aarch64-unknown-freebsd.tar.xz) = 6d7a7fe409d84019a6681a7c5bbe804c2a71444dffa482c277f7303afbbac1bb
5+
SIZE (rust/2025-05-15/rustc-1.87.0-aarch64-unknown-freebsd.tar.xz) = 68494832
6+
SHA256 (rust/2025-05-15/rust-std-1.87.0-aarch64-unknown-freebsd.tar.xz) = 85fbfeab2bee94cddc8f237324de6ac0b65511b61427611bb600f589cd83269f
7+
SIZE (rust/2025-05-15/rust-std-1.87.0-aarch64-unknown-freebsd.tar.xz) = 25085332
8+
SHA256 (rust/2025-05-15/cargo-1.87.0-aarch64-unknown-freebsd.tar.xz) = f6fad164c4b3107c531036c9f4aea79f1d5b3138a9212839082068ec14e8069a
9+
SIZE (rust/2025-05-15/cargo-1.87.0-aarch64-unknown-freebsd.tar.xz) = 8864360
10+
SHA256 (rust/2025-05-15/rustc-1.87.0-x86_64-unknown-freebsd.tar.xz) = 37f413c5af70d678598844e206329f24c3047d38cc43f162a0c6db14b6a5de0c
11+
SIZE (rust/2025-05-15/rustc-1.87.0-x86_64-unknown-freebsd.tar.xz) = 63790236
12+
SHA256 (rust/2025-05-15/rust-std-1.87.0-x86_64-unknown-freebsd.tar.xz) = 037b982e3cdf2af304647a8dbaf83c310605cbd131b2fd2c436f0a4284581325
13+
SIZE (rust/2025-05-15/rust-std-1.87.0-x86_64-unknown-freebsd.tar.xz) = 26183840
14+
SHA256 (rust/2025-05-15/cargo-1.87.0-x86_64-unknown-freebsd.tar.xz) = 9cdffc039d2b449619b81dcd494c399180507faee2b7b5a18ff8fd59aa6215d3
15+
SIZE (rust/2025-05-15/cargo-1.87.0-x86_64-unknown-freebsd.tar.xz) = 10021928
16+
SHA256 (rust/2025-05-15/rustc-1.87.0-armv7-unknown-freebsd.tar.xz) = 0115525ad2c7df25ef25338a986e42a0c028ae53cf0c6dbf31a9313197c96832
17+
SIZE (rust/2025-05-15/rustc-1.87.0-armv7-unknown-freebsd.tar.xz) = 68671404
18+
SHA256 (rust/2025-05-15/rust-std-1.87.0-armv7-unknown-freebsd.tar.xz) = d37a4ede26f8334b96982321dfa94dbefe50da2cc39fae4ddbeae077e8aded1a
19+
SIZE (rust/2025-05-15/rust-std-1.87.0-armv7-unknown-freebsd.tar.xz) = 24274380
20+
SHA256 (rust/2025-05-15/cargo-1.87.0-armv7-unknown-freebsd.tar.xz) = 86a86b4661fbbd70ff9c052c4729c01132767785597599f818d6607dc6544b1c
21+
SIZE (rust/2025-05-15/cargo-1.87.0-armv7-unknown-freebsd.tar.xz) = 9116332
22+
SHA256 (rust/2025-05-15/rustc-1.87.0-i686-unknown-freebsd.tar.xz) = eda4511359f500204726fdca40bd88292c83144d2a4f566c083ac41f8121358a
23+
SIZE (rust/2025-05-15/rustc-1.87.0-i686-unknown-freebsd.tar.xz) = 76629816
24+
SHA256 (rust/2025-05-15/rust-std-1.87.0-i686-unknown-freebsd.tar.xz) = dfe0645c3913a1852561ab141f01dd90ec678080400d112361c5ade6b324fba2
25+
SIZE (rust/2025-05-15/rust-std-1.87.0-i686-unknown-freebsd.tar.xz) = 25965172
26+
SHA256 (rust/2025-05-15/cargo-1.87.0-i686-unknown-freebsd.tar.xz) = a536712e4fd1919b397a2427b5d2080f06d4e9d3f9ef96a4e0ffae8497a3cd6c
27+
SIZE (rust/2025-05-15/cargo-1.87.0-i686-unknown-freebsd.tar.xz) = 10599524
28+
SHA256 (rust/2025-05-15/rustc-1.87.0-powerpc-unknown-freebsd.tar.xz) = 55eb2f9e15ae7ef4ef8df383f578048e13d81f587ea3689bd708908bf9d4af97
29+
SIZE (rust/2025-05-15/rustc-1.87.0-powerpc-unknown-freebsd.tar.xz) = 69260664
30+
SHA256 (rust/2025-05-15/rust-std-1.87.0-powerpc-unknown-freebsd.tar.xz) = bdcaab8444e42a645815b92fe0ea9eb3718c63a42e15eba4f481a13996bb79d0
31+
SIZE (rust/2025-05-15/rust-std-1.87.0-powerpc-unknown-freebsd.tar.xz) = 23412632
32+
SHA256 (rust/2025-05-15/cargo-1.87.0-powerpc-unknown-freebsd.tar.xz) = c605ad5c7e73b38c575989796a4dca24bac92f3034703bbed5f4b5d954aa9739
33+
SIZE (rust/2025-05-15/cargo-1.87.0-powerpc-unknown-freebsd.tar.xz) = 9219908
34+
SHA256 (rust/2025-05-15/rustc-1.87.0-powerpc64-unknown-freebsd.tar.xz) = 04b22a1eacb30dc7d16d9751baca92a2cec72010c85fc4927267e3b42c0094d3
35+
SIZE (rust/2025-05-15/rustc-1.87.0-powerpc64-unknown-freebsd.tar.xz) = 67746940
36+
SHA256 (rust/2025-05-15/rust-std-1.87.0-powerpc64-unknown-freebsd.tar.xz) = a21922d860f19e0b4c642207274c588df1341c6ff622050a0653bb82be40bda6
37+
SIZE (rust/2025-05-15/rust-std-1.87.0-powerpc64-unknown-freebsd.tar.xz) = 23282608
38+
SHA256 (rust/2025-05-15/cargo-1.87.0-powerpc64-unknown-freebsd.tar.xz) = 07aca5c0e8dcc8aaea3b7b16751d6191373105d445f73e46139eb16066a146ca
39+
SIZE (rust/2025-05-15/cargo-1.87.0-powerpc64-unknown-freebsd.tar.xz) = 9295388
40+
SHA256 (rust/2025-05-15/rustc-1.87.0-powerpc64le-unknown-freebsd.tar.xz) = a99e6b9e9713c530337633a5e36d214ae687ba638b7f04c07a9cf659c245c781
41+
SIZE (rust/2025-05-15/rustc-1.87.0-powerpc64le-unknown-freebsd.tar.xz) = 71448916
42+
SHA256 (rust/2025-05-15/rust-std-1.87.0-powerpc64le-unknown-freebsd.tar.xz) = 8bd9ba04fe0cf194a1004abca0bc9420a47d0491131c4f6c0b0d8a89ad5b96ea
43+
SIZE (rust/2025-05-15/rust-std-1.87.0-powerpc64le-unknown-freebsd.tar.xz) = 23330908
44+
SHA256 (rust/2025-05-15/cargo-1.87.0-powerpc64le-unknown-freebsd.tar.xz) = 9a67120c2776d181c1f32e68f8e55a0d05543f439feeb08c1d8ce6d96a1771da
45+
SIZE (rust/2025-05-15/cargo-1.87.0-powerpc64le-unknown-freebsd.tar.xz) = 9794732
46+
SHA256 (rust/2025-05-15/rustc-1.87.0-riscv64gc-unknown-freebsd.tar.xz) = b4b5c71211e2873461b4fd3108668dfd108e220d7012ed9e2b962912d91a9f19
47+
SIZE (rust/2025-05-15/rustc-1.87.0-riscv64gc-unknown-freebsd.tar.xz) = 78845668
48+
SHA256 (rust/2025-05-15/rust-std-1.87.0-riscv64gc-unknown-freebsd.tar.xz) = e79ac7a4449f934b0b6d5699e3080aef3d2d665a128f701a786e847634dd8abf
49+
SIZE (rust/2025-05-15/rust-std-1.87.0-riscv64gc-unknown-freebsd.tar.xz) = 23480648
50+
SHA256 (rust/2025-05-15/cargo-1.87.0-riscv64gc-unknown-freebsd.tar.xz) = 316fac9c44a37d85ae18a40290f5ce3b064e5326fff3574119322ba191109205
51+
SIZE (rust/2025-05-15/cargo-1.87.0-riscv64gc-unknown-freebsd.tar.xz) = 11690508
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
error[E0308]: mismatched types
2+
--> compiler/rustc_driver_impl/src/signal_handler.rs:43:63
3+
|
4+
43 | let depth = libc::backtrace(STACK_TRACE.as_mut_ptr(), MAX_FRAMES as i32);
5+
| --------------- ^^^^^^^^^^^^^^^^^ expected `usize`, found `i32`
6+
| |
7+
| arguments to this function are incorrect
8+
|
9+
note: function defined here
10+
--> /wrkdirs/usr/ports/lang/rust-bootstrap/work-armv7/rustc-1.78.0-src/vendor/libc/src/unix/bsd/freebsdlike/mod.rs:1861:12
11+
|
12+
1861 | pub fn backtrace(addrlist: *mut *mut ::c_void, len: ::size_t) -> ::size_t;
13+
| ^^^^^^^^^
14+
help: you can convert an `i32` to a `usize` and panic if the converted value doesn't fit
15+
|
16+
43 | let depth = libc::backtrace(STACK_TRACE.as_mut_ptr(), (MAX_FRAMES as i32).try_into().unwrap());
17+
18+
--- compiler/rustc_driver_impl/src/signal_handler.rs.orig 2024-05-06 16:00:17 UTC
19+
+++ compiler/rustc_driver_impl/src/signal_handler.rs
20+
@@ -46,7 +46,7 @@ unsafe extern "C" fn print_stack_trace(_: libc::c_int)
21+
// in incredibly undesirable and unexpected ways due to e.g. the allocator deadlocking
22+
static mut STACK_TRACE: [*mut libc::c_void; MAX_FRAMES] = [ptr::null_mut(); MAX_FRAMES];
23+
// Collect return addresses
24+
- let depth = libc::backtrace(&raw mut STACK_TRACE as _, MAX_FRAMES as i32);
25+
+ let depth = libc::backtrace(&raw mut STACK_TRACE as _, (MAX_FRAMES as i32).try_into().unwrap());
26+
if depth == 0 {
27+
return;
28+
}

0 commit comments

Comments
 (0)