From ea95627dce897a7ffa249190dc0206cbdb43eebb Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Sat, 27 Jul 2024 20:55:21 +0000 Subject: [PATCH] hoist rustc flag string array to global const Signed-off-by: Jason Volk --- src/macros/rustc.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/macros/rustc.rs b/src/macros/rustc.rs index a3bab26f..d286ed33 100644 --- a/src/macros/rustc.rs +++ b/src/macros/rustc.rs @@ -9,11 +9,13 @@ pub(super) fn flags_capture(args: TokenStream) -> TokenStream { }; let flag = std::env::args().collect::>(); + let flag_len = flag.len(); let ret = quote! { + pub static RUSTC_FLAGS: [&str; #flag_len] = [#( #flag ),*]; + #[conduit_core::ctor] fn _set_rustc_flags() { - let flags = &[#( #flag ),*]; - conduit_core::info::rustc::FLAGS.lock().expect("locked").insert(#crate_name, flags); + conduit_core::info::rustc::FLAGS.lock().expect("locked").insert(#crate_name, &RUSTC_FLAGS); } // static strings have to be yanked on module unload