diff --git a/crates/tokio-macros/.android-checksum.json b/crates/tokio-macros/.android-checksum.json
index 5eaa7ff..7722686 100644
--- a/crates/tokio-macros/.android-checksum.json
+++ b/crates/tokio-macros/.android-checksum.json
@@ -1 +1 @@
-{"package":null,"files":{".cargo-checksum.json":"fafc23809d37c73ec55bbdb86b700e99a331542a184a513e660ad7a32fb6e31c","Android.bp":"029635376bf54196c43f76b38104b5e8edb3de48ece1e1778d54bad6ba8fa17b","CHANGELOG.md":"92d0642557a975637a70f80250cbbf3c426fe9274e95ec4bc41548568d8a657a","Cargo.toml":"01943f768c32760f73cb1a13cd82af1f6cf5591452dd0735770d75f7bcabcdef","LICENSE":"a17ab14c797e7b65c15985982ee00d3dcee1fefb8aac87dbae76a710ba2913a2","METADATA":"4f6c316626a64e642eca02df0b04697bff463499039382f8bc03734b72204477","MODULE_LICENSE_MIT":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","README.md":"2ce5d67bfab53489bb3351d5e5dbdf05f7b073c45e765ca77381bc12ee5a26f4","TEST_MAPPING":"c024977f1d74e9c72b87573f1c7cfe9a7f8d1daadb084005fb7edf55d17c0d6c","cargo_embargo.json":"e37f85d7910d24b95d6031db6603828d484aadca5822522d571d9c334ef6f3aa","src/entry.rs":"7ca7bd35b1bdaa13e955bf865317b875c4dcdb955f337ba0cf648b2d2e340e30","src/lib.rs":"2170b0828f20e4b3c59d529b0df9d4fffb80015d1c293966c96520eef98422bf","src/select.rs":"c01fc21a478c7b859926771c97697faf8d40ff4d0b8cb44e0be9a3aa35ecf38e"}}
\ No newline at end of file
+{"package":null,"files":{".cargo-checksum.json":"02cc2d46c1e5b2a0a98ee9ff0347f16eee74c93db5f923d328fbcd42f517449a","Android.bp":"661f146f5e57fcfd053942222994398a496216f339dc9d5cd388fb2020c722f8","CHANGELOG.md":"09121d23efd7af8690cd56e999954ded88ae7d5788462ef47cd73ea6ce6e0a48","Cargo.toml":"bbf4c19cd5f40b6f6dcd633d14f0e29c6e129cee48482106c0cabe2f382996e8","LICENSE":"a17ab14c797e7b65c15985982ee00d3dcee1fefb8aac87dbae76a710ba2913a2","METADATA":"9fdf318b8593e25d70164562c0dd4afc5a7b352cdc83788d7f4822be1f93dccd","MODULE_LICENSE_MIT":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","README.md":"2ce5d67bfab53489bb3351d5e5dbdf05f7b073c45e765ca77381bc12ee5a26f4","TEST_MAPPING":"c024977f1d74e9c72b87573f1c7cfe9a7f8d1daadb084005fb7edf55d17c0d6c","cargo_embargo.json":"e37f85d7910d24b95d6031db6603828d484aadca5822522d571d9c334ef6f3aa","src/entry.rs":"99011f43ee7a6aced620edff7f48d075aca12eede42a0d1d2d247959f84e2fd2","src/lib.rs":"ecf3c91e8649b688e48c3d968947b1b1dc4b84a099ff953cb2a8b35f6f19c20f","src/select.rs":"ec926a6b0b4e7dabffc8e49da4ab21549d623131373a735bc3312c29c7d2eeeb"}}
\ No newline at end of file
diff --git a/crates/tokio-macros/.cargo-checksum.json b/crates/tokio-macros/.cargo-checksum.json
index 65d2000..c101d98 100644
--- a/crates/tokio-macros/.cargo-checksum.json
+++ b/crates/tokio-macros/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{"CHANGELOG.md":"bc308e94c0a0c9a8c595fdb708dec60d08dca5f4fc67b64287676b619675f91b","Cargo.toml":"b86acb2f048fd43ade67bc01187f9eea2df4855a0261102cca651453a23d5cba","LICENSE":"0b83dc40cba89b9922bb84b0a9c7d2768ce37c1d7e138b7424fd4549915778c9","README.md":"6094ea500349ce239a12b07d7dfd4ea965a7f14c993da2abc4b3c39a0479683a","src/entry.rs":"4b7e392119553a795508aaf021eac5311da50702ac47f536753f8c8e7141593a","src/lib.rs":"b146a3bcf92aaf042e0ff7fd5387b69bc9882d2b5e0ab70298df83ee54ad6d7c","src/select.rs":"8fdef69056b4c24d109439e68535b51c0781505c4b6fc49cacf10d32097c54f1"},"package":"693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752"}
\ No newline at end of file
+{"files":{"CHANGELOG.md":"556610ed3cd61018dae1a3062267246682e0dd605212e075be8109945e234f28","Cargo.toml":"7b971193559c96cd4a27accd0ef6cb06be1934469ae3b689f18b8ce3950ebae8","LICENSE":"0b83dc40cba89b9922bb84b0a9c7d2768ce37c1d7e138b7424fd4549915778c9","README.md":"6094ea500349ce239a12b07d7dfd4ea965a7f14c993da2abc4b3c39a0479683a","src/entry.rs":"7855d3c594f1611d16ee7c9354af479c7e8451a405e8cb1d751de3ed9db8336d","src/lib.rs":"aa212b0b82497eed55f0fac4a210e74ca7c1d49e5d717932e8f3b8ce48105460","src/select.rs":"a8af3f0dbc3ac3102081abc09ab1a1a8bfaab5fde1331b20ab397384be730fef"},"package":"6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8"}
\ No newline at end of file
diff --git a/crates/tokio-macros/Android.bp b/crates/tokio-macros/Android.bp
index 0d62301..e812963 100644
--- a/crates/tokio-macros/Android.bp
+++ b/crates/tokio-macros/Android.bp
@@ -17,7 +17,7 @@
     name: "libtokio_macros",
     crate_name: "tokio_macros",
     cargo_env_compat: true,
-    cargo_pkg_version: "2.4.0",
+    cargo_pkg_version: "2.5.0",
     crate_root: "src/lib.rs",
     edition: "2021",
     rustlibs: [
diff --git a/crates/tokio-macros/CHANGELOG.md b/crates/tokio-macros/CHANGELOG.md
index 9b30d34..5dac1ff 100644
--- a/crates/tokio-macros/CHANGELOG.md
+++ b/crates/tokio-macros/CHANGELOG.md
@@ -1,3 +1,9 @@
+# 2.5.0 (Jan 8th, 2025)
+
+- macros: suppress `clippy::needless_return` in `#[tokio::main]` ([#6874])
+
+[#6874]: https://github.com/tokio-rs/tokio/pull/6874
+
 # 2.4.0 (July 22nd, 2024)
 
 - msrv: increase MSRV to 1.70 ([#6645])
diff --git a/crates/tokio-macros/Cargo.toml b/crates/tokio-macros/Cargo.toml
index f789a1c..f2310a6 100644
--- a/crates/tokio-macros/Cargo.toml
+++ b/crates/tokio-macros/Cargo.toml
@@ -13,8 +13,13 @@
 edition = "2021"
 rust-version = "1.70"
 name = "tokio-macros"
-version = "2.4.0"
+version = "2.5.0"
 authors = ["Tokio Contributors <team@tokio.rs>"]
+build = false
+autobins = false
+autoexamples = false
+autotests = false
+autobenches = false
 description = """
 Tokio's proc macros.
 """
@@ -28,6 +33,8 @@
 all-features = true
 
 [lib]
+name = "tokio_macros"
+path = "src/lib.rs"
 proc-macro = true
 
 [dependencies.proc-macro2]
diff --git a/crates/tokio-macros/METADATA b/crates/tokio-macros/METADATA
index 7a22f81..4d863de 100644
--- a/crates/tokio-macros/METADATA
+++ b/crates/tokio-macros/METADATA
@@ -1,17 +1,17 @@
 name: "tokio-macros"
 description: "Tokio\'s proc macros."
 third_party {
-  version: "2.4.0"
+  version: "2.5.0"
   license_type: NOTICE
   last_upgrade_date {
-    year: 2024
-    month: 12
-    day: 4
+    year: 2025
+    month: 1
+    day: 13
   }
   homepage: "https://crates.io/crates/tokio-macros"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/tokio-macros/tokio-macros-2.4.0.crate"
-    version: "2.4.0"
+    value: "https://static.crates.io/crates/tokio-macros/tokio-macros-2.5.0.crate"
+    version: "2.5.0"
   }
 }
diff --git a/crates/tokio-macros/src/entry.rs b/crates/tokio-macros/src/entry.rs
index acdc261..07554cf 100644
--- a/crates/tokio-macros/src/entry.rs
+++ b/crates/tokio-macros/src/entry.rs
@@ -20,7 +20,7 @@
             "single_thread" => Err("The single threaded runtime flavor is called `current_thread`.".to_string()),
             "basic_scheduler" => Err("The `basic_scheduler` runtime flavor has been renamed to `current_thread`.".to_string()),
             "threaded_scheduler" => Err("The `threaded_scheduler` runtime flavor has been renamed to `multi_thread`.".to_string()),
-            _ => Err(format!("No such runtime flavor `{}`. The runtime flavors are `current_thread` and `multi_thread`.", s)),
+            _ => Err(format!("No such runtime flavor `{s}`. The runtime flavors are `current_thread` and `multi_thread`.")),
         }
     }
 }
@@ -36,7 +36,7 @@
         match s {
             "ignore" => Ok(UnhandledPanic::Ignore),
             "shutdown_runtime" => Ok(UnhandledPanic::ShutdownRuntime),
-            _ => Err(format!("No such unhandled panic behavior `{}`. The unhandled panic behaviors are `ignore` and `shutdown_runtime`.", s)),
+            _ => Err(format!("No such unhandled panic behavior `{s}`. The unhandled panic behaviors are `ignore` and `shutdown_runtime`.")),
         }
     }
 
@@ -239,12 +239,12 @@
             Ok(value) => Ok(value),
             Err(e) => Err(syn::Error::new(
                 span,
-                format!("Failed to parse value of `{}` as integer: {}", field, e),
+                format!("Failed to parse value of `{field}` as integer: {e}"),
             )),
         },
         _ => Err(syn::Error::new(
             span,
-            format!("Failed to parse value of `{}` as integer.", field),
+            format!("Failed to parse value of `{field}` as integer."),
         )),
     }
 }
@@ -255,7 +255,7 @@
         syn::Lit::Verbatim(s) => Ok(s.to_string()),
         _ => Err(syn::Error::new(
             span,
-            format!("Failed to parse value of `{}` as string.", field),
+            format!("Failed to parse value of `{field}` as string."),
         )),
     }
 }
@@ -275,7 +275,7 @@
         }
         _ => Err(syn::Error::new(
             span,
-            format!("Failed to parse value of `{}` as path.", field),
+            format!("Failed to parse value of `{field}` as path."),
         )),
     }
 }
@@ -285,7 +285,7 @@
         syn::Lit::Bool(b) => Ok(b.value),
         _ => Err(syn::Error::new(
             span,
-            format!("Failed to parse value of `{}` as bool.", field),
+            format!("Failed to parse value of `{field}` as bool."),
         )),
     }
 }
@@ -342,8 +342,7 @@
                     }
                     name => {
                         let msg = format!(
-                            "Unknown attribute {} is specified; expected one of: `flavor`, `worker_threads`, `start_paused`, `crate`, `unhandled_panic`",
-                            name,
+                            "Unknown attribute {name} is specified; expected one of: `flavor`, `worker_threads`, `start_paused`, `crate`, `unhandled_panic`",
                         );
                         return Err(syn::Error::new_spanned(namevalue, msg));
                     }
@@ -358,21 +357,19 @@
                 let msg = match name.as_str() {
                     "threaded_scheduler" | "multi_thread" => {
                         format!(
-                            "Set the runtime flavor with #[{}(flavor = \"multi_thread\")].",
-                            macro_name
+                            "Set the runtime flavor with #[{macro_name}(flavor = \"multi_thread\")]."
                         )
                     }
                     "basic_scheduler" | "current_thread" | "single_threaded" => {
                         format!(
-                            "Set the runtime flavor with #[{}(flavor = \"current_thread\")].",
-                            macro_name
+                            "Set the runtime flavor with #[{macro_name}(flavor = \"current_thread\")]."
                         )
                     }
                     "flavor" | "worker_threads" | "start_paused" | "crate" | "unhandled_panic" => {
-                        format!("The `{}` attribute requires an argument.", name)
+                        format!("The `{name}` attribute requires an argument.")
                     }
                     name => {
-                        format!("Unknown attribute {} is specified; expected one of: `flavor`, `worker_threads`, `start_paused`, `crate`, `unhandled_panic`.", name)
+                        format!("Unknown attribute {name} is specified; expected one of: `flavor`, `worker_threads`, `start_paused`, `crate`, `unhandled_panic`.")
                     }
                 };
                 return Err(syn::Error::new_spanned(path, msg));
@@ -438,8 +435,9 @@
     };
 
     let body_ident = quote! { body };
+    // This explicit `return` is intentional. See tokio-rs/tokio#4636
     let last_block = quote_spanned! {last_stmt_end_span=>
-        #[allow(clippy::expect_used, clippy::diverging_sub_expression)]
+        #[allow(clippy::expect_used, clippy::diverging_sub_expression, clippy::needless_return)]
         {
             return #rt
                 .enable_all()
diff --git a/crates/tokio-macros/src/lib.rs b/crates/tokio-macros/src/lib.rs
index b5d31c7..29ea286 100644
--- a/crates/tokio-macros/src/lib.rs
+++ b/crates/tokio-macros/src/lib.rs
@@ -211,6 +211,7 @@
 /// This option is only compatible with the `current_thread` runtime.
 ///
 /// ```no_run
+/// # #![allow(unknown_lints, unexpected_cfgs)]
 /// #[cfg(tokio_unstable)]
 /// #[tokio::main(flavor = "current_thread", unhandled_panic = "shutdown_runtime")]
 /// async fn main() {
@@ -225,6 +226,7 @@
 /// Equivalent code not using `#[tokio::main]`
 ///
 /// ```no_run
+/// # #![allow(unknown_lints, unexpected_cfgs)]
 /// #[cfg(tokio_unstable)]
 /// fn main() {
 ///     tokio::runtime::Builder::new_current_thread()
@@ -478,6 +480,7 @@
 /// This option is only compatible with the `current_thread` runtime.
 ///
 /// ```no_run
+/// # #![allow(unknown_lints, unexpected_cfgs)]
 /// #[cfg(tokio_unstable)]
 /// #[tokio::test(flavor = "current_thread", unhandled_panic = "shutdown_runtime")]
 /// async fn my_test() {
@@ -492,6 +495,7 @@
 /// Equivalent code not using `#[tokio::test]`
 ///
 /// ```no_run
+/// # #![allow(unknown_lints, unexpected_cfgs)]
 /// #[cfg(tokio_unstable)]
 /// #[test]
 /// fn my_test() {
diff --git a/crates/tokio-macros/src/select.rs b/crates/tokio-macros/src/select.rs
index 324b8f9..0ef6cfb 100644
--- a/crates/tokio-macros/src/select.rs
+++ b/crates/tokio-macros/src/select.rs
@@ -11,7 +11,7 @@
     };
 
     let variants = (0..branches)
-        .map(|num| Ident::new(&format!("_{}", num), Span::call_site()))
+        .map(|num| Ident::new(&format!("_{num}"), Span::call_site()))
         .collect::<Vec<_>>();
 
     // Use a bitfield to track which futures completed
diff --git a/pseudo_crate/Cargo.lock b/pseudo_crate/Cargo.lock
index 39eaecd..efb3a42 100644
--- a/pseudo_crate/Cargo.lock
+++ b/pseudo_crate/Cargo.lock
@@ -5255,9 +5255,9 @@
 
 [[package]]
 name = "tokio-macros"
-version = "2.4.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752"
+checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8"
 dependencies = [
  "proc-macro2 1.0.92",
  "quote 1.0.37",
diff --git a/pseudo_crate/Cargo.toml b/pseudo_crate/Cargo.toml
index 419e9da..a624a09 100644
--- a/pseudo_crate/Cargo.toml
+++ b/pseudo_crate/Cargo.toml
@@ -330,7 +330,7 @@
 tinyvec_macros = "=0.1.1"
 tokio = "=1.42.0"
 tokio-io-timeout = "=1.2.0"
-tokio-macros = "=2.4.0"
+tokio-macros = "=2.5.0"
 tokio-openssl = "=0.6.5"
 tokio-stream = "=0.1.17"
 tokio-test = "=0.4.2"
