- Dec 26, 2021
-
-
Doug Goldstein authored
-
Doug Goldstein authored
-
Doug Goldstein authored
Its usage was removed in e2849500 but it wasn't removed as being enabled.
-
Doug Goldstein authored
asm!() and global_asm!() are now stabilized so they need to be used instead of invoked via a feature flag.
-
- Nov 22, 2021
-
-
mathieupoirier authored
Enhance README.md file with building instructions. That way it is easier for people new to the project to build the sample stand alone oxerun binary. Signed-off-by:Mathieu Poirier <mathieu.poirier@linaro.org>
-
mathieupoirier authored
Signed-off-by:Mathieu Poirier <mathieu.poirier@linaro.org>
-
mathieupoirier authored
Usage of llvm_asm!() has been superseded by a new asm!() macro. This patch removes the [naked] descriptor before function __impl_start(). Nowadays cargo demands that an asm!() block have a noreturn option, which prevents anything after the asm!() block from being executed. Removing the [naked] descriptor introduced a new "push rax" before setting up the stack, which doesn't matter since we are never returning from the sample application. This is also in line with what is done in the sample application of the bootloader crate. Before: _start: #APP mov rbp, offset STACK_TOP mov rsp, rbp #NO_APP call hello_world call poweroff ud2 After: _start: push rax mov eax, offset STACK_TOP #APP mov rbp, rax mov rsp, rbp #NO_APP call hello_world call poweroff ud2 Signed-off-by:Mathieu Poirier <mathieu.poirier@linaro.org>
-
mathieupoirier authored
Usage of llvm_asm!() has been superseded by a new asm!() macro. No change in functionality. Before: hypercall_2: mov eax, edi shl rax, 5 lea rax, [rax + HYPERCALL_PAGE] mov rdi, rsi mov rsi, rdx #APP call rax #NO_APP ret After: hypercall_2: mov rcx, rsi mov eax, edi shl rax, 5 lea rax, [rax + HYPERCALL_PAGE] mov rsi, rdx mov rdi, rcx #APP call rax #NO_APP ret Signed-off-by:Mathieu Poirier <mathieu.poirier@linaro.org>
-
mathieupoirier authored
It is much easier to look at generated assembler code when rustc hasn't mangled function names. As such add the no_mangle directive. Signed-off-by:Mathieu Poirier <mathieu.poirier@linaro.org>
-
mathieupoirier authored
Remove property "stack-probes" as it generates the following compilation error: $ rustc --version rustc 1.57.0-nightly (5ecc8ad84 2021-09-19) $ $ cargo build --target x86_64-xen-pv.json error: failed to run `rustc` to learn about target-specific information Caused by: process didn't exit successfully: `rustc - --crate-name ___ --print=file-names --target /home/mpoirier/work/stratos/xen/xen-sys/x86_64-xen-pv.json --crate-type bin --crate-type rlib --crate-type dylib --crate-type cdylib --crate-type staticlib --crate-type proc-macro --print=sysroot --print=cfg` (exit status: 1) --- stderr error: Error loading target specification: `Boolean(false)` is not a valid value for `stack-probes`: expected a JSON object. Run `rustc --print target-list` for a list of built-in targets This issue has also been reported for another crate here[1]. [1]. https://github.com/o8vm/rust_dos/pull/5 Signed-off-by:
Mathieu Poirier <mathieu.poirier@linaro.org>
-
- Aug 03, 2020
-
-
Doug Goldstein authored
Based on the recommendation of https://github.com/rust-osdev/cargo-xbuild/commit/07d65812e7cc1c2e5b14a11f781b23be8333252e, switch to using https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#build-std to compile the core for our custom Xen target.
-
- May 30, 2020
-
-
Doug Goldstein authored
-
Doug Goldstein authored
Per RFC 2843, the asm!() macro was renamed to llvm_asm!(). https://rust-lang.github.io/rfcs/2843-llvm-asm.html
-
- Jul 11, 2019
-
-
Doug Goldstein authored
All assembly is now contained within the Rust code and the external assembler is not necessary so these files aren't necessary.
-
Doug Goldstein authored
The existing model of building a binary as a library and then linking that with assembly to make the actual binary is not conducive going forward. This moves the assembly code into a Rust macro and allows the user to use a macro to declare an entry point which is then wrapped appropriately to build a functioning Xen binary. This change allows code to be compiled on any platform that has a functioning Rust compiler.
-
- Jul 10, 2019
-
-
Doug Goldstein authored
Include <public/elfnote.h> to be processed by bindgen.
-
- Jun 30, 2019
-
-
Doug Goldstein authored
eh_personality only needs to be defined when building a bare metal target so only include it for the x86_64-xen-pv target.
-
Doug Goldstein authored
This defines all the possible values to the shutdown hypercall and moves the existing call sites into the xen crate.
-
- Jun 22, 2019
-
-
Doug Goldstein authored
Switch from hand-rolled defines for the hypercall code into code that is using the bindgen bits for supporting hypercalls. Side effects of changing the directory structure to make it clear what is platform generic code and what is x86_64 specific code.
-
- Jun 20, 2019
-
-
Doug Goldstein authored
Use Xen 4.11.1 public headers on x86_64 to generate the necessary data types.
-
Doug Goldstein authored
Added makefile rule which will allow the ability to generate Rust from the Xen headers so that all types are defined.
-
- Jun 19, 2019
-
-
Doug Goldstein authored
The target config was not being found for dependencies of xen and xen-sys without being explicitly called. Change the display of xbuild so that the user sees the target we are building for.
-
- Jun 14, 2019
-
-
Doug Goldstein authored
-
Doug Goldstein authored
Switched from using the linker frok binutils to the Rust native lld linker.
-
- Jun 09, 2019
-
-
Doug Goldstein authored
-
Doug Goldstein authored
Switched to Rust Edition 2018
-
Doug Goldstein authored
There is no target OS "pv" or "oxerun" in the Rust code base and this should be reported as "none" for correctness.
-
Doug Goldstein authored
The current target is really a 64-bit PV target so rename the target to be more appropriate.
-
Doug Goldstein authored
The clean rule wasn't updated after the build change to cargo-xbuild.
-
- Jun 02, 2019
-
-
Doug Goldstein authored
rustup respects the rust-toolchain file to set the default toolchain so use that rather than asking people to set their toolchain to nightly.
-
- May 27, 2019
-
-
Doug Goldstein authored
-
Doug Goldstein authored
-
Doug Goldstein authored
This project aims to provide the ability to write bare metal unikernel systems in Rust for Xen.
-
Doug Goldstein authored
-
Doug Goldstein authored
cargo-xbuild is a simpler fork of xargo which has entered maintenance mode. With this change we do not need to specify rlibc which has been retired in favor of compiler_intrinsics which cargo-xbuild supports out of the box.
-
Doug Goldstein authored
We aren't targetting x86_64-unknown-linux-gnu but instead bare metal so target that appropriately.
-
Doug Goldstein authored
The target spec for Rust changed to have the pre-link-args be per linker.
-
- May 26, 2019
-
-
Doug Goldstein authored
RFC 2070 called out panic_implementation, which was renamed to panic_handler which was stabilized. https://doc.rust-lang.org/nightly/reference/runtime.html#the-panic_handler-attribute
-
- Nov 04, 2017
-
-
Doug Goldstein authored
-
Doug Goldstein authored
-