-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
4 changed files
with
41 additions
and
112 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
/130034.patch |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,8 +8,8 @@ if [[ $MINGW_PACKAGE_PREFIX == *-clang-* ]]; then | |
_bootstrapping=no | ||
fi | ||
|
||
rust_dist_server=https://static.rust-lang.org/dist | ||
#rust_dist_server=https://dev-static.rust-lang.org/dist/2024-09-03 | ||
#rust_dist_server=https://static.rust-lang.org/dist | ||
rust_dist_server=https://dev-static.rust-lang.org/dist/2024-10-14 | ||
|
||
embed_manifest_version=1.3.1 | ||
embed_manifest_url=https://gitlab.com/careyevans/embed-manifest/-/archive/v${embed_manifest_version}/embed-manifest-v${embed_manifest_version}.tar.gz | ||
|
@@ -19,8 +19,8 @@ pkgbase=mingw-w64-${_realname} | |
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" | ||
$([[ ${CARCH} == i686 ]] || echo "${MINGW_PACKAGE_PREFIX}-rust-wasm") | ||
"${MINGW_PACKAGE_PREFIX}-rust-src") | ||
pkgver=1.81.0 | ||
pkgrel=5 | ||
pkgver=1.82.0 | ||
pkgrel=1 | ||
pkgdesc="Systems programming language focused on safety, speed and concurrency (mingw-w64)" | ||
arch=('any') | ||
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clangarm64' 'clang32') | ||
|
@@ -55,21 +55,20 @@ source=("${rust_dist_server}/${_realname}c-${pkgver}-src.tar.gz"{,.asc} | |
"0012-vendor-embed-manifest.patch" | ||
# remove after 1.83.0 release | ||
"0013-generate-import-libraries-on-gnullvm.patch" | ||
# remove after 1.82.0 release | ||
"fix-bootstrap-on-windows.patch") | ||
"https://github.com/rust-lang/rust/pull/130034.patch") | ||
noextract=(${_realname}c-${pkgver}-src.tar.gz) | ||
sha256sums=('872448febdff32e50c3c90a7e15f9bb2db131d13c588fe9071b0ed88837ccfa7' | ||
sha256sums=('371abae5672a31a467c31fa7cfbb6202c89f2351bfb3ec847e96a698f33c6bf2' | ||
'SKIP' | ||
'24ef6d949c0b5b1940c1d6a7aad78d86012152fb8845a1644bc939350d7b75e2' | ||
'3529c569217d5c18dd7b675e0ff1477b4f0386c73b6d8314fe709341bb561d74' | ||
'94f97e1db6abd76930cb99d7b0e27967f28f3734b213c89494c266cd7f6e8eee' | ||
'7cb1773c288ffb1c1e751edc49b1890c84bf9c362742bc5225d19d474edb73a0' | ||
'56882f1a0f1404c10c7726d6cc37444f2b343e72b969badfcb43760f80db0f32' | ||
'7d1c4e49524b835a8eadc961b39f5594b12a522a1e24368999be2c7e85399e4e' | ||
'98bc3f2bd7371a5b8d14fd7b03bf05574e206d1d9e52bcfbe66d71398504da3c' | ||
'761d73328d9695a7a2bd2a10be8225f4a56801fee54cbb51c0841b7f16e2bde6' | ||
'23fc45f4e718770375be1c5196f035075de16d25e8f895100a3d1d2492995f86' | ||
'7ebec5945f9fd38729da513fba8679efbad19bdde8a5d0d8ea097e5b9a7a99db' | ||
'0a9800a4f5e833fc435e86457a1b7a41f32d4bd2c1185d1eada90b28bdf6230c') | ||
'6558ca2ef70f2dafce3fc2ffcfe0db0ad6a7728f31a13ddddd63a9eee9e57b72') | ||
validpgpkeys=('108F66205EAEB0AAA8DD5E1C85AB96E6FA1BE5FE' # Rust Language (Tag and Release Signing Key) <[email protected]> | ||
'474E22316ABF4785A88C6E8EA2C794A986419D8A' # Tom Stellard <[email protected]> | ||
'B6C8F98282B944E3B0D5C2530FC3042E345AD05D') # Hans Wennborg <[email protected]> | ||
|
@@ -99,14 +98,13 @@ apply_patch_with_msg() { | |
|
||
prepare() { | ||
plain "Extracting ${_realname}c-${pkgver}-src.tar.gz" | ||
[[ -d ${srcdir}/${_realname}c-${pkgver}-src ]] && rm -rf ${srcdir}/${_realname}c-${pkgver}-src | ||
tar -xzf ${srcdir}/${_realname}c-${pkgver}-src.tar.gz -C ${srcdir} || true | ||
tar -xzf ${_realname}c-${pkgver}-src.tar.gz || true | ||
|
||
# move embed-manifest crate into rust source vendor directory | ||
mv ${srcdir}/embed-manifest-v${embed_manifest_version} ${srcdir}/${_realname}c-${pkgver}-src/vendor/embed-manifest | ||
mv embed-manifest-v${embed_manifest_version} ${_realname}c-${pkgver}-src/vendor/embed-manifest | ||
|
||
# 0008-disable-self-contained-for-gnu-targets.patch allows self-contained for non-windows-gnu targets | ||
cd ${srcdir}/${_realname}c-${pkgver}-src | ||
cd ${_realname}c-${pkgver}-src | ||
apply_patch_with_msg \ | ||
0001-rustc-llvm-fix-libs.patch \ | ||
0005-win32-config.patch \ | ||
|
@@ -125,19 +123,13 @@ prepare() { | |
0004-compiler-Use-wasm-ld-for-wasm-targets.patch | ||
fi | ||
|
||
# https://github.com/rust-lang/rust/pull/128977 | ||
# fix `wasm-component-ld` being built even when it's not enabled. remove after 1.83.0 release | ||
apply_patch_with_msg \ | ||
fix-bootstrap-on-windows.patch | ||
|
||
# update windows-targets to support i686-pc-windows-gnullvm. remove after 1.82.0 release | ||
if [[ ${MSYSTEM} == CLANG32 ]]; then | ||
cd src/bootstrap | ||
cargo update -p [email protected] --precise 0.52.6 | ||
fi | ||
130034.patch | ||
} | ||
|
||
build() { | ||
mkdir -p "${srcdir}/${MSYSTEM}" && cd "${srcdir}/${MSYSTEM}" | ||
mkdir -p "${MSYSTEM}" && cd "${MSYSTEM}" | ||
|
||
# hack to inject the bootstrap compiler | ||
if [[ $_bootstrapping != "no" && $MINGW_PACKAGE_PREFIX == *-clang-aarch64 ]]; then | ||
|
@@ -157,15 +149,9 @@ build() { | |
else | ||
# We have to do the following because rust doesn't count x86_64-w64-mingw32 as a target triple | ||
export OSTYPE="$CARCH-pc-windows-gnu" | ||
|
||
# Otherwise it uses gcc during bootstrap, even when we build for clang | ||
export CARGO_TARGET_${CARCH^^}_PC_WINDOWS_GNU_LINKER="${CC}" | ||
fi | ||
|
||
# avoid OOMing in some cases | ||
if [[ ${CARCH} == i686 ]]; then | ||
LDFLAGS+=" -Wl,--large-address-aware" | ||
elif [[ $MINGW_PACKAGE_PREFIX != *-clang-aarch64 ]]; then | ||
if [[ $MINGW_PACKAGE_PREFIX != *-clang-aarch64 ]]; then | ||
local _unsupported_options="-march=nocona -msahf" | ||
# Remove unsupported options for target wasm32-* | ||
export CFLAGS="${CFLAGS#$_unsupported_options}" | ||
|
@@ -190,19 +176,19 @@ build() { | |
export MSYS2_ENV_CONV_EXCL='INSTALL_PREFIX' | ||
export INSTALL_PREFIX="${MINGW_PREFIX}" | ||
export PKGREL="${pkgrel}" | ||
envsubst < "${srcdir}/config.toml" > "${srcdir}/${_realname}c-${pkgver}-src/config.toml" | ||
envsubst < ../config.toml > "../${_realname}c-${pkgver}-src/config.toml" | ||
|
||
if [ "${_bootstrapping}" = "no" ]; then | ||
sed -i '/^\[build\]/,/^$/ s|^#||g' "${srcdir}/${_realname}c-${pkgver}-src/config.toml" | ||
sed -i '/^\[build\]/,/^$/ s|^#||g' "../${_realname}c-${pkgver}-src/config.toml" | ||
fi | ||
# generate debuginfo only for non-i686 targets | ||
if check_option "debug" "y" && [ "${CARCH}" != i686 ]; then | ||
sed -i 's/^#debug/debug/g' "${srcdir}/${_realname}c-${pkgver}-src/config.toml" | ||
sed -i 's/^#debug/debug/g' "../${_realname}c-${pkgver}-src/config.toml" | ||
fi | ||
|
||
# Add target wasm32-* | ||
if [[ ${CARCH} != i686 ]]; then | ||
sed -i '/target = \[/a\ "wasm32-unknown-unknown", "wasm32-wasip1", "wasm32-wasip1-threads", "wasm32-wasip2",' "${srcdir}/${_realname}c-${pkgver}-src/config.toml" | ||
sed -i '/target = \[/a\ "wasm32-unknown-unknown", "wasm32-wasip1", "wasm32-wasip1-threads", "wasm32-wasip2",' "../${_realname}c-${pkgver}-src/config.toml" | ||
fi | ||
|
||
# Building out of tree is not officially supported so we have to workaround some things like vendored deps | ||
|
@@ -217,26 +203,26 @@ build() { | |
DEP_NGHTTP_ROOT=${MINGW_PREFIX} \ | ||
DEP_OPENSSL_ROOT=${MINGW_PREFIX} \ | ||
DEP_Z_ROOT=${MINGW_PREFIX} \ | ||
DESTDIR="$PWD"/dest-rust ${MINGW_PREFIX}/bin/python ../${_realname}c-${pkgver}-src/x.py install "${_rust_build[@]}" | ||
DESTDIR="$PWD"/dest-rust python ../${_realname}c-${pkgver}-src/x.py install "${_rust_build[@]}" | ||
|
||
if [[ ${CARCH} != i686 ]]; then | ||
# move wasm32-* targets out of the way for splitting | ||
mkdir -p dest-wasm/${MINGW_PREFIX}/lib/rustlib | ||
mv dest-rust/${MINGW_PREFIX}/lib/rustlib/wasm32-* dest-wasm/${MINGW_PREFIX}/lib/rustlib | ||
mkdir -p dest-wasm${MINGW_PREFIX}/lib/rustlib | ||
mv dest-rust${MINGW_PREFIX}/lib/rustlib/wasm32-* dest-wasm/${MINGW_PREFIX}/lib/rustlib | ||
fi | ||
|
||
# move src out of the way for splitting | ||
mv dest-rust/${MINGW_PREFIX}/lib/rustlib/src dest-src | ||
mv dest-rust${MINGW_PREFIX}/lib/rustlib/src dest-src | ||
|
||
rm -f dest-rust/${MINGW_PREFIX}/lib/rustlib/$OSTYPE/lib/self-contained/* | ||
rm -f dest-rust${MINGW_PREFIX}/lib/rustlib/$OSTYPE/lib/self-contained/* | ||
} | ||
|
||
check() { | ||
cd "${srcdir}/${MSYSTEM}" | ||
cd "${MSYSTEM}" | ||
DEP_NGHTTP_ROOT=${MINGW_PREFIX} \ | ||
DEP_OPENSSL_ROOT=${MINGW_PREFIX} \ | ||
DEP_Z_ROOT=${MINGW_PREFIX} \ | ||
${MINGW_PREFIX}/bin/python ../${_realname}c-${pkgver}-src/x.py test --stage 2 --exclude src/test/debuginfo | ||
python ../${_realname}c-${pkgver}-src/x.py test --stage 2 --exclude src/test/debuginfo | ||
} | ||
|
||
package_rust() { | ||
|
@@ -247,41 +233,42 @@ package_rust() { | |
conflicts=("${MINGW_PACKAGE_PREFIX}-rust-docs") | ||
replaces=("${MINGW_PACKAGE_PREFIX}-rust-docs") | ||
|
||
cd "${srcdir}/${MSYSTEM}" | ||
cd "${MSYSTEM}" | ||
|
||
cp -a dest-rust/* "$pkgdir" | ||
cp -a dest-rust/* "${pkgdir}" | ||
|
||
# delete unnecessary files, e.g. components and manifest files only used for the uninstall script | ||
cd "$pkgdir"/${MINGW_PREFIX}/lib/rustlib | ||
cd "${pkgdir}${MINGW_PREFIX}/lib/rustlib" | ||
rm components install.log manifest-* rust-installer-version uninstall.sh | ||
|
||
install -d "$pkgdir/${MINGW_PREFIX}/share/bash-completion/completions" | ||
install -d "${pkgdir}${MINGW_PREFIX}/share/bash-completion/completions" | ||
mv "${pkgdir}${MINGW_PREFIX}/etc/bash_completion.d/cargo" \ | ||
"${pkgdir}${MINGW_PREFIX}/share/bash-completion/completions/cargo" | ||
} | ||
|
||
package_rust-wasm() { | ||
pkgdesc="WebAssembly targets for Rust" | ||
pkgdesc="WebAssembly targets for Rust (mingw-w64)" | ||
depends=("${MINGW_PACKAGE_PREFIX}-lld" | ||
"${MINGW_PACKAGE_PREFIX}-rust" | ||
"${MINGW_PACKAGE_PREFIX}-wasm-component-ld") | ||
# object files provided for wasm32-* targets can't be stripped with MSYS2 toolchain | ||
options=('!strip') | ||
|
||
cd "${srcdir}/${MSYSTEM}" | ||
cd "${MSYSTEM}" | ||
|
||
cp -a dest-wasm/* "$pkgdir" | ||
install -Dm644 "${srcdir}"/${_realname}c-${pkgver}-src/LICENSE-APACHE "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}-wasm/LICENSE-APACHE" | ||
install -Dm644 "${srcdir}"/${_realname}c-${pkgver}-src/LICENSE-MIT "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}-wasm/LICENSE-MIT" | ||
cp -a dest-wasm/* "${pkgdir}" | ||
install -Dm644 ../${_realname}c-${pkgver}-src/LICENSE-{APACHE,MIT} -t \ | ||
"${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}-wasm/" | ||
} | ||
|
||
package_rust-src() { | ||
pkgdesc='Source code for the Rust standard library (mingw-w64)' | ||
depends=("${MINGW_PACKAGE_PREFIX}-rust") | ||
|
||
cd "${srcdir}/${MSYSTEM}" | ||
install -Dm644 "${srcdir}"/${_realname}c-${pkgver}-src/LICENSE-APACHE "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}-src/LICENSE-APACHE" | ||
install -Dm644 "${srcdir}"/${_realname}c-${pkgver}-src/LICENSE-MIT "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}-src/LICENSE-MIT" | ||
cd "${MSYSTEM}" | ||
|
||
install -Dm644 ../${_realname}c-${pkgver}-src/LICENSE-{APACHE,MIT} -t \ | ||
"${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}-src/" | ||
|
||
install -d "${pkgdir}${MINGW_PREFIX}/lib/rustlib/" | ||
cp -a dest-src "${pkgdir}${MINGW_PREFIX}/lib/rustlib/src" | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.