vmbase: Move linker to aarch64
This commit move aarch64 linker definition to arch specific module.
Bug: 362733888
Test: m libvmbase
Change-Id: Ib00cbaa981c948e626d58a0f0d818d4ec1f4ceb3
diff --git a/guest/vmbase_example/src/main.rs b/guest/vmbase_example/src/main.rs
index b7d2f95..8723a55 100644
--- a/guest/vmbase_example/src/main.rs
+++ b/guest/vmbase_example/src/main.rs
@@ -30,11 +30,12 @@
use log::{debug, error, info, trace, warn, LevelFilter};
use spin::mutex::SpinMutex;
use vmbase::{
+ arch::linker,
bionic, configure_heap,
fdt::pci::PciInfo,
generate_image_header,
layout::crosvm::FDT_MAX_SIZE,
- linker, logger, main,
+ logger, main,
memory::{deactivate_dynamic_page_tables, map_data, SIZE_64KB},
};
diff --git a/libs/libvmbase/src/arch.rs b/libs/libvmbase/src/arch.rs
index d6095e5..10e5e37 100644
--- a/libs/libvmbase/src/arch.rs
+++ b/libs/libvmbase/src/arch.rs
@@ -23,6 +23,9 @@
#[cfg(target_arch = "aarch64")]
pub use aarch64::layout;
+#[cfg(target_arch = "aarch64")]
+pub use aarch64::linker;
+
/// Write with well-defined compiled behavior.
///
/// See https://github.com/rust-lang/rust/issues/131894
diff --git a/libs/libvmbase/src/arch/aarch64.rs b/libs/libvmbase/src/arch/aarch64.rs
index 905c518..2933386 100644
--- a/libs/libvmbase/src/arch/aarch64.rs
+++ b/libs/libvmbase/src/arch/aarch64.rs
@@ -15,6 +15,7 @@
//! Wrappers of assembly calls.
pub mod layout;
+pub mod linker;
pub mod page_table;
pub mod platform;
diff --git a/libs/libvmbase/src/linker.rs b/libs/libvmbase/src/arch/aarch64/linker.rs
similarity index 100%
rename from libs/libvmbase/src/linker.rs
rename to libs/libvmbase/src/arch/aarch64/linker.rs
diff --git a/libs/libvmbase/src/layout.rs b/libs/libvmbase/src/layout.rs
index 56d689d..9e1f483 100644
--- a/libs/libvmbase/src/layout.rs
+++ b/libs/libvmbase/src/layout.rs
@@ -17,7 +17,7 @@
#![allow(unused_unsafe)]
#[cfg(target_arch = "aarch64")]
-use crate::linker::__stack_chk_guard;
+use crate::arch::aarch64::linker::__stack_chk_guard;
use crate::memory::{max_stack_size, PAGE_SIZE};
#[cfg(target_arch = "aarch64")]
use aarch64_paging::paging::VirtualAddress;
@@ -34,7 +34,7 @@
macro_rules! linker_addr {
($symbol:ident) => {{
#[cfg(target_arch = "aarch64")]
- let addr = (&raw const $crate::linker::$symbol) as usize;
+ let addr = (&raw const $crate::arch::aarch64::linker::$symbol) as usize;
VirtualAddress(addr)
}};
}
diff --git a/libs/libvmbase/src/lib.rs b/libs/libvmbase/src/lib.rs
index 431e899..57b7f56 100644
--- a/libs/libvmbase/src/lib.rs
+++ b/libs/libvmbase/src/lib.rs
@@ -27,7 +27,6 @@
pub mod heap;
mod hvc;
pub mod layout;
-pub mod linker;
pub mod logger;
pub mod memory;
pub mod power;