Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
    • Help
    • Submit feedback
    • Contribute to GitLab
  • Sign in
M
mu-impl-fast
  • Project
    • Project
    • Details
    • Activity
    • Releases
    • Cycle Analytics
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Charts
  • Issues 40
    • Issues 40
    • List
    • Board
    • Labels
    • Milestones
  • Merge Requests 1
    • Merge Requests 1
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Commits
  • Issue Boards
  • mu
  • mu-impl-fast
  • Issues
  • #91

Closed
Open
Opened Oct 20, 2017 by Yi Lin@u4776528
  • Report abuse
  • New issue
Report abuse New issue

Support for sel4-rumprun

!20 (merged) and !21 (merged) added some code to support Zebu running on sel4-rumprun. However, it does not run on sel4-rumprun yet, due to rodal does not support sel4-rumprun.

The changes mainly address these issues:

  • removed usage of dynamic libraries (dlopen, dlsym, etc) as sel4-rumprun does not support dynamic linking.
  • rewrote some testcases to avoid using dynamic libraries.
  • added feature guard sel4-rumprun for OS dependent code. Feature guard is used instead of OS guard as Rust does not correctly recognise sel4-rumprun.
  • added feature guard sel4-rumprun-target-side for two-stage cross compilation.

Problems with the changes:

  • it doesn't actually run on rumprun (rodal uses dlsym).
  • the changes currently have massive code duplication instead of reusing OS/Target dependent code for Linux/x86_64. And duplicated code is not maintained when the original code changes.
  • there is some hard-coded path for running Zebu on sel4-rumprun.
  • using feature guard [#cfg(feature = "sel4-rumprun")] instead of a proper OS guard [#cfg(target_os = "sel4-rumprun")] makes OS dependent code quite unreadable. For example, for linux code, we have to do
[#cfg(not(feature = "sel4-rumprun))]
[#cfg(target_os = "linux")]
... // linux dependent code
  • there is no document on how to setup environment and run Zebu on sel4-rumprun.

These should be addressed if we want to properly support Zebu on sel4-rumprun.

Edited Oct 20, 2017 by Yi Lin
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
1
Labels
enhancement
Assign labels
  • View project labels
Reference: mu/mu-impl-fast#91