Skip to content

Commit

Permalink
Merge pull request #123 from rust-mobile/rib/pr/msrv-1.68-v2
Browse files Browse the repository at this point in the history
Bump MSRV to 1.68
  • Loading branch information
rib authored Sep 25, 2023
2 parents 865cc6a + 942053d commit 83cdb56
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 20 deletions.
10 changes: 3 additions & 7 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,8 @@ jobs:
strategy:
fail-fast: false
matrix:
# XXX: We are currently constrained by Winit's MSRV policy + CI system
# See Cargo.toml for details
rust_version: [1.64.0, stable]
# See top README for MSRV policy
rust_version: [1.68.0, stable]
steps:
- uses: actions/checkout@v3

Expand All @@ -35,10 +34,7 @@ jobs:
i686-linux-android
- name: Install cargo-ndk
# XXX: We have to use an old version of cargo-ndk that supports the
# libgcc linker workaround for rust < 1.68 because Winit's CI system
# currently requires this crate to be buildable with 1.64
run: cargo install cargo-ndk --version "^2"
run: cargo install cargo-ndk

- name: Build game-activity
working-directory: android-activity
Expand Down
16 changes: 5 additions & 11 deletions android-activity/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,12 @@ documentation = "https://docs.rs/android-activity"
description = "Glue for building Rust applications on Android with NativeActivity or GameActivity"
license = "MIT OR Apache-2.0"

# XXX: Even though we have our own MSRV policy that says we only promise to
# support stable releases over the last three months we actually end up
# constrained by the MSRV policy of Winit, which is currently based on
# supporting Alacritty on Debian Sid, and requires a > 10 month old Rust version
# 1.68 was when Rust last updated the Android NDK version used to build the
# standard library which avoids needing the -lunwind workaround in build tools.
#
# This Winit policiy is unfortunately in conflict with what makes sense for
# Android because versions below 1.68 for Android requires awkward toolchain
# linker workarounds, and can't even be compiled with newer versions of
# `cargo ndk` that removed these linker workarounds.
#
# TODO: Open a PR for Winit's CI to test Android builds using a newer toolchain.
rust-version = "1.64"
# We depend on cargo-ndk for building which has dropped support for the above
# linker workaround.
rust-version = "1.68.0"

[features]
# Note: we don't enable any backend by default since features
Expand Down
1 change: 0 additions & 1 deletion android-activity/src/game_activity/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -909,7 +909,6 @@ extern "Rust" {
// `app_main` function. This is run on a dedicated thread spawned
// by android_native_app_glue.
#[no_mangle]
#[allow(unused_unsafe)] // Otherwise rust 1.64 moans about using unsafe{} in unsafe functions
pub unsafe extern "C" fn _rust_glue_entry(native_app: *mut ffi::android_app) {
abort_on_panic(|| {
// Maybe make this stdout/stderr redirection an optional / opt-in feature?...
Expand Down
1 change: 0 additions & 1 deletion android-activity/src/native_activity/glue.rs
Original file line number Diff line number Diff line change
Expand Up @@ -828,7 +828,6 @@ unsafe extern "C" fn on_content_rect_changed(

/// This is the native entrypoint for our cdylib library that `ANativeActivity` will look for via `dlsym`
#[no_mangle]
#[allow(unused_unsafe)] // Otherwise rust 1.64 moans about using unsafe{} in unsafe functions
extern "C" fn ANativeActivity_onCreate(
activity: *mut ndk_sys::ANativeActivity,
saved_state: *const libc::c_void,
Expand Down

0 comments on commit 83cdb56

Please sign in to comment.