From 174e38a8515af69a0782687f67d572410ee9bb6d Mon Sep 17 00:00:00 2001
From: bjorn3 <17426603+bjorn3@users.noreply.github.com>
Date: Tue, 4 Jul 2023 18:13:02 +0200
Subject: [PATCH] Remove all uses of concat_idents!()

---
 src/arch/aarch64/rmm.rs | 16 ++++++----------
 src/arch/x86/rmm.rs     | 16 ++++++----------
 src/lib.rs              |  1 -
 3 files changed, 12 insertions(+), 21 deletions(-)

diff --git a/src/arch/aarch64/rmm.rs b/src/arch/aarch64/rmm.rs
index 059cc1fe..5af88af9 100644
--- a/src/arch/aarch64/rmm.rs
+++ b/src/arch/aarch64/rmm.rs
@@ -57,18 +57,14 @@ pub struct BootloaderMemoryEntry {
 unsafe fn page_flags<A: Arch>(virt: VirtualAddress) -> PageFlags<A> {
     let virt_addr = virt.data();
 
-    // Test for being inside a region
-    macro_rules! in_section {
-        ($n: ident) => {
-            virt_addr >= &concat_idents!(__, $n, _start) as *const u8 as usize
-                && virt_addr < &concat_idents!(__, $n, _end) as *const u8 as usize
-        };
-    }
-
-    if in_section!(text) {
+    if virt_addr >= &__text_start as *const u8 as usize
+        && virt_addr < &__text_end as *const u8 as usize
+    {
         // Remap text read-only, execute
         PageFlags::new().execute(true)
-    } else if in_section!(rodata) {
+    } else if virt_addr >= &__rodata_start as *const u8 as usize
+        && virt_addr < &__rodata_end as *const u8 as usize
+    {
         // Remap rodata read-only, no execute
         PageFlags::new()
     } else {
diff --git a/src/arch/x86/rmm.rs b/src/arch/x86/rmm.rs
index 4593c159..4c635aae 100644
--- a/src/arch/x86/rmm.rs
+++ b/src/arch/x86/rmm.rs
@@ -58,18 +58,14 @@ pub struct BootloaderMemoryEntry {
 unsafe fn page_flags<A: Arch>(virt: VirtualAddress) -> PageFlags<A> {
     let virt_addr = virt.data();
 
-    // Test for being inside a region
-    macro_rules! in_section {
-        ($n: ident) => {
-            virt_addr >= &concat_idents!(__, $n, _start) as *const u8 as usize
-                && virt_addr < &concat_idents!(__, $n, _end) as *const u8 as usize
-        };
-    }
-
-    if in_section!(text) {
+    if virt_addr >= &__text_start as *const u8 as usize
+        && virt_addr < &__text_end as *const u8 as usize
+    {
         // Remap text read-only, execute
         PageFlags::new().execute(true)
-    } else if in_section!(rodata) {
+    } else if virt_addr >= &__rodata_start as *const u8 as usize
+        && virt_addr < &__rodata_end as *const u8 as usize
+    {
         // Remap rodata read-only, no execute
         PageFlags::new()
     } else {
diff --git a/src/lib.rs b/src/lib.rs
index d5d9e9ca..55c27329 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -48,7 +48,6 @@
 #![feature(array_chunks)]
 #![feature(iter_array_chunks)]
 #![feature(asm_const)] // TODO: Relax requirements of most asm invocations
-#![feature(concat_idents)]
 #![feature(core_intrinsics)]
 #![feature(int_roundings)]
 #![feature(naked_functions)]
-- 
GitLab