diff --git a/sgx_tstd/src/thread/local.rs b/sgx_tstd/src/thread/local.rs
index 6319514..430360d 100644
--- a/sgx_tstd/src/thread/local.rs
+++ b/sgx_tstd/src/thread/local.rs
@@ -143,13 +143,13 @@
     );
 }
 
+#[cfg(not(feature = "thread"))]
 #[macro_export]
 #[allow_internal_unstable(thread_local_internals, cfg_target_thread_local, thread_local)]
 #[allow_internal_unsafe]
 macro_rules! __thread_local_inner {
     // used to generate the `LocalKey` value for const-initialized thread locals
     (@key $t:ty, const $init:expr) => {{
-        #[cfg(not(feature = "thread"))]
         #[inline] // see comments below
         unsafe fn __getit() -> $crate::result::Result<&'static $t, $crate::thread::AccessError> {
             const INIT_EXPR: $t = $init;
@@ -165,7 +165,49 @@
             }
         }
 
-        #[cfg(feature = "thread")]
+        unsafe {
+            $crate::thread::LocalKey::new(__getit)
+        }
+    }};
+
+    // used to generate the `LocalKey` value for `thread_local!`
+    (@key $t:ty, $init:expr) => {
+        {
+            #[inline]
+            fn __init() -> $t { $init }
+
+            #[inline]
+            unsafe fn __getit() -> $crate::result::Result<&'static $t, $crate::thread::AccessError> {
+                #[thread_local]
+                static __KEY: $crate::thread::__StaticLocalKeyInner<$t> =
+                    $crate::thread::__StaticLocalKeyInner::new();
+
+                // FIXME: remove the #[allow(...)] marker when macros don't
+                // raise warning for missing/extraneous unsafe blocks anymore.
+                // See https://github.com/rust-lang/rust/issues/74838.
+                #[allow(unused_unsafe)]
+                unsafe { __KEY.get(__init) }
+            }
+
+            unsafe {
+                $crate::thread::LocalKey::new(__getit)
+            }
+        }
+    };
+    ($(#[$attr:meta])* $vis:vis $name:ident, $t:ty, $($init:tt)*) => {
+        $(#[$attr])* $vis const $name: $crate::thread::LocalKey<$t> =
+            $crate::__thread_local_inner!(@key $t, $($init)*);
+    }
+}
+
+#[cfg(feature = "thread")]
+#[macro_export]
+#[allow_internal_unstable(thread_local_internals, cfg_target_thread_local, thread_local)]
+#[allow_internal_unsafe]
+macro_rules! __thread_local_inner {
+    // used to generate the `LocalKey` value for const-initialized thread locals
+    (@key $t:ty, const $init:expr) => {{
+        #[inline]
         unsafe fn __getit() -> $crate::result::Result<&'static $t, $crate::thread::AccessError> {
             const INIT_EXPR: $t = $init;
 
@@ -233,13 +275,8 @@
             #[inline]
             fn __init() -> $t { $init }
 
+            #[inline]
             unsafe fn __getit() -> $crate::result::Result<&'static $t, $crate::thread::AccessError> {
-                #[cfg(not(feature = "thread"))]
-                #[thread_local]
-                static __KEY: $crate::thread::__StaticLocalKeyInner<$t> =
-                    $crate::thread::__StaticLocalKeyInner::new();
-
-                #[cfg(feature = "thread")]
                 #[thread_local]
                 static __KEY: $crate::thread::__FastLocalKeyInner<$t> =
                     $crate::thread::__FastLocalKeyInner::new();
diff --git a/sgx_types/src/function.rs b/sgx_types/src/function.rs
index 025c4a0..3f8600c 100644
--- a/sgx_types/src/function.rs
+++ b/sgx_types/src/function.rs
@@ -1013,7 +1013,7 @@
     /* intel DCAP 1.13 */
     pub fn sgx_ql_get_quote_verification_collateral_with_params(
         fmspc: *const uint8_t,
-        fmspc_size: u16,
+        fmspc_size: uint16_t,
         pck_ra: *const c_char,
         custom_param: *const c_void,
         custom_param_length: uint16_t,
@@ -1025,7 +1025,7 @@
     /* intel DCAP 1.14 */
     pub fn tdx_ql_get_quote_verification_collateral(
         fmspc: *const uint8_t,
-        fmspc_size: u16,
+        fmspc_size: uint16_t,
         pck_ra: *const c_char,
         pp_quote_collateral: *mut *mut tdx_ql_qve_collateral_t,
     ) -> sgx_quote3_error_t;
