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