1From 1b0c4fc87447429dba781e7424fd08e5cb9ec1f8 Mon Sep 17 00:00:00 2001 2From: Marcin Radomski <marcin@mradomski.pl> 3Date: Fri, 15 Mar 2024 23:08:48 +0100 4Subject: [PATCH 2/3] Make `mm` feature compile without linux-raw-sys 5 6See b/331344966 for status of the efforts to upstream this. 7 8This makes a handful of features unavailable: 9 10- MprotectFlags::{SEM,BTI,MTE,SAO,ADI} 11- MapFlags::hugetlb_with_size_log2 12 13Tested with: 14 15 cargo build --no-default-features --features \ 16 use-libc,use-libc-auxv,std,event,mount,time,pipe,rand,stdio,mm 17--- 18 src/backend/libc/mm/types.rs | 10 +++++----- 19 src/mm/mmap.rs | 2 +- 20 2 files changed, 6 insertions(+), 6 deletions(-) 21 22diff --git a/src/backend/libc/mm/types.rs b/src/backend/libc/mm/types.rs 23index a4aa3e23..afd9ec0c 100644 24--- a/src/backend/libc/mm/types.rs 25+++ b/src/backend/libc/mm/types.rs 26@@ -44,19 +44,19 @@ bitflags! { 27 #[cfg(linux_kernel)] 28 const GROWSDOWN = bitcast!(c::PROT_GROWSDOWN); 29 /// `PROT_SEM` 30- #[cfg(linux_kernel)] 31+ #[cfg(feature = "linux-raw-sys")] 32 const SEM = linux_raw_sys::general::PROT_SEM; 33 /// `PROT_BTI` 34- #[cfg(all(linux_kernel, target_arch = "aarch64"))] 35+ #[cfg(all(feature = "linux-raw-sys", target_arch = "aarch64"))] 36 const BTI = linux_raw_sys::general::PROT_BTI; 37 /// `PROT_MTE` 38- #[cfg(all(linux_kernel, target_arch = "aarch64"))] 39+ #[cfg(all(feature = "linux-raw-sys", target_arch = "aarch64"))] 40 const MTE = linux_raw_sys::general::PROT_MTE; 41 /// `PROT_SAO` 42- #[cfg(all(linux_kernel, any(target_arch = "powerpc", target_arch = "powerpc64")))] 43+ #[cfg(all(feature = "linux-raw-sys", any(target_arch = "powerpc", target_arch = "powerpc64")))] 44 const SAO = linux_raw_sys::general::PROT_SAO; 45 /// `PROT_ADI` 46- #[cfg(all(linux_kernel, any(target_arch = "sparc", target_arch = "sparc64")))] 47+ #[cfg(all(feature = "linux-raw-sys", any(target_arch = "sparc", target_arch = "sparc64")))] 48 const ADI = linux_raw_sys::general::PROT_ADI; 49 50 /// <https://docs.rs/bitflags/*/bitflags/#externally-defined-flags> 51diff --git a/src/mm/mmap.rs b/src/mm/mmap.rs 52index 3f6523fd..9413340a 100644 53--- a/src/mm/mmap.rs 54+++ b/src/mm/mmap.rs 55@@ -32,7 +32,7 @@ impl MapFlags { 56 /// let f = MapFlags::hugetlb_with_size_log2(30).unwrap(); 57 /// assert_eq!(f, MapFlags::HUGETLB | MapFlags::HUGE_1GB); 58 /// ``` 59- #[cfg(linux_kernel)] 60+ #[cfg(feature = "linux-raw-sys")] 61 pub const fn hugetlb_with_size_log2(huge_page_size_log2: u32) -> Option<Self> { 62 use linux_raw_sys::general::{MAP_HUGETLB, MAP_HUGE_SHIFT}; 63 if 16 <= huge_page_size_log2 && huge_page_size_log2 <= 63 { 64-- 652.44.0.291.gc1ea87d7ee-goog 66 67