Skip to content

Add basic AArch64 support#830

Draft
sangho2 wants to merge 4 commits into
uliteboxfrom
sanghle/arm64-porting-0
Draft

Add basic AArch64 support#830
sangho2 wants to merge 4 commits into
uliteboxfrom
sanghle/arm64-porting-0

Conversation

@sangho2
Copy link
Copy Markdown
Contributor

@sangho2 sangho2 commented May 5, 2026

This PR adds basic AArch64 support to the LiteBox core. AArch64 and x86_64 have differences including assembly code, exception info, address space size, c_char (i8 on x86_64 whereas u8 on AArch64), and bitflags. Subsequent PRs (for Linux common, shim, platform, runner, and rewriter) are needed to run AArch64 Linux guests.

@sangho2 sangho2 changed the title Add basic AArch64 support (litebox core) Add basic AArch64 support (LiteBox core) May 5, 2026
@sangho2 sangho2 added the discussion Open questions label May 5, 2026
@sangho2 sangho2 closed this May 5, 2026
@sangho2
Copy link
Copy Markdown
Contributor Author

sangho2 commented May 5, 2026

Will bring this up later.

@sangho2 sangho2 reopened this May 20, 2026
@sangho2 sangho2 changed the base branch from main to ulitebox May 22, 2026 02:50
@sangho2 sangho2 changed the title Add basic AArch64 support (LiteBox core) Add basic AArch64 support May 22, 2026
@sangho2 sangho2 removed the discussion Open questions label May 22, 2026
@sangho2 sangho2 force-pushed the sanghle/arm64-porting-0 branch from 932726b to 920711d Compare May 22, 2026 03:44
@sangho2 sangho2 marked this pull request as ready for review May 22, 2026 03:44
@github-actions
Copy link
Copy Markdown

ℹ️ Note: This semver check was run against the ulitebox branch, not main.

🤖 SemverChecks 🤖 ⚠️ Potential breaking API changes detected ⚠️

Click for details
--- failure enum_no_repr_variant_discriminant_changed: enum variant had its discriminant change value ---

Description:
The enum's variant had its discriminant value change. This breaks downstream code that used its value via a numeric cast like `as isize`.
        ref: https://doc.rust-lang.org/reference/items/enumerations.html#assigning-discriminant-values
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/enum_no_repr_variant_discriminant_changed.ron

Failed in:
  variant SyscallRequest::Chdir 10 -> 11 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1815
  variant SyscallRequest::Mmap 11 -> 12 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1818
  variant SyscallRequest::Mprotect 12 -> 13 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1826
  variant SyscallRequest::Munmap 13 -> 14 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1831
  variant SyscallRequest::Mremap 14 -> 15 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1835
  variant SyscallRequest::Brk 15 -> 16 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1842
  variant SyscallRequest::RtSigprocmask 16 -> 17 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1845
  variant SyscallRequest::RtSigaction 17 -> 18 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1851
  variant SyscallRequest::RtSigreturn 18 -> 19 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1857
  variant SyscallRequest::Kill 19 -> 20 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1858
  variant SyscallRequest::Tkill 20 -> 21 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1862
  variant SyscallRequest::Tgkill 21 -> 22 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1866
  variant SyscallRequest::Sigaltstack 22 -> 23 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1871
  variant SyscallRequest::Ioctl 23 -> 24 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1875
  variant SyscallRequest::Pread64 24 -> 25 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1879
  variant SyscallRequest::Pwrite64 25 -> 26 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1885
  variant SyscallRequest::Readv 26 -> 27 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1891
  variant SyscallRequest::Writev 27 -> 28 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1896
  variant SyscallRequest::Access 28 -> 29 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1901
  variant SyscallRequest::Madvise 29 -> 30 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1905
  variant SyscallRequest::Dup 30 -> 31 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1910
  variant SyscallRequest::Socket 31 -> 32 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1915
  variant SyscallRequest::Socketpair 32 -> 33 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1920
  variant SyscallRequest::Connect 33 -> 34 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1926
  variant SyscallRequest::Accept 34 -> 35 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1931
  variant SyscallRequest::Sendto 35 -> 36 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1937
  variant SyscallRequest::Sendmsg 36 -> 37 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1945
  variant SyscallRequest::Recvfrom 37 -> 38 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1950
  variant SyscallRequest::Bind 38 -> 39 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1958
  variant SyscallRequest::Listen 39 -> 40 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1963
  variant SyscallRequest::Setsockopt 40 -> 41 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1967
  variant SyscallRequest::Getsockopt 41 -> 42 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1974
  variant SyscallRequest::Getsockname 42 -> 43 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1981
  variant SyscallRequest::Getpeername 43 -> 44 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1986
  variant SyscallRequest::Uname 44 -> 45 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1991
  variant SyscallRequest::Fcntl 45 -> 46 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1994
  variant SyscallRequest::Getcwd 46 -> 47 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:1998
  variant SyscallRequest::EpollCtl 47 -> 48 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2002
  variant SyscallRequest::EpollPwait 48 -> 49 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2008
  variant SyscallRequest::EpollCreate 49 -> 50 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2016
  variant SyscallRequest::Ppoll 50 -> 51 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2020
  variant SyscallRequest::Pselect 51 -> 52 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2027
  variant SyscallRequest::ArchPrctl 52 -> 53 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2035
  variant SyscallRequest::Readlink 53 -> 54 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2038
  variant SyscallRequest::Readlinkat 54 -> 55 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2043
  variant SyscallRequest::Openat 55 -> 56 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2049
  variant SyscallRequest::Ftruncate 56 -> 57 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2055
  variant SyscallRequest::Unlinkat 57 -> 58 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2059
  variant SyscallRequest::Newfstatat 58 -> 59 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2065
  variant SyscallRequest::Eventfd2 59 -> 60 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2071
  variant SyscallRequest::Pipe2 60 -> 61 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2075
  variant SyscallRequest::Clone 61 -> 62 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2079
  variant SyscallRequest::Clone3 62 -> 63 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2082
  variant SyscallRequest::SetThreadArea 63 -> 64 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2087
  variant SyscallRequest::ClockGettime 64 -> 65 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2090
  variant SyscallRequest::ClockGetres 65 -> 66 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2094
  variant SyscallRequest::ClockNanosleep 66 -> 67 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2098
  variant SyscallRequest::Gettimeofday 67 -> 68 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2104
  variant SyscallRequest::Time 68 -> 69 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2108
  variant SyscallRequest::Getrlimit 69 -> 70 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2111
  variant SyscallRequest::Setrlimit 70 -> 71 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2115
  variant SyscallRequest::Prlimit 71 -> 72 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2119
  variant SyscallRequest::SetTidAddress 72 -> 73 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2130
  variant SyscallRequest::Gettid 73 -> 74 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2133
  variant SyscallRequest::SetRobustList 74 -> 75 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2134
  variant SyscallRequest::GetRobustList 75 -> 76 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2137
  variant SyscallRequest::GetRandom 76 -> 77 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2142
  variant SyscallRequest::Getpid 77 -> 78 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2147
  variant SyscallRequest::Getppid 78 -> 79 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2148
  variant SyscallRequest::Getuid 79 -> 80 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2149
  variant SyscallRequest::Geteuid 80 -> 81 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2150
  variant SyscallRequest::Getgid 81 -> 82 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2151
  variant SyscallRequest::Getegid 82 -> 83 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2152
  variant SyscallRequest::Sysinfo 83 -> 84 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2153
  variant SyscallRequest::CapGet 84 -> 85 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2156
  variant SyscallRequest::GetDirent64 85 -> 86 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2160
  variant SyscallRequest::SchedGetAffinity 86 -> 87 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2165
  variant SyscallRequest::SchedYield 87 -> 88 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2170
  variant SyscallRequest::Futex 88 -> 89 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2171
  variant SyscallRequest::Execve 89 -> 90 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2174
  variant SyscallRequest::Umask 90 -> 91 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2179
  variant SyscallRequest::Prctl 91 -> 92 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2182
  variant SyscallRequest::Alarm 92 -> 93 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2185
  variant SyscallRequest::SetITimer 93 -> 94 in /home/runner/work/litebox/litebox/litebox_common_linux/src/lib.rs:2188

@sangho2 sangho2 added the expmt:ulitebox uLiteBox experiment label May 22, 2026
@sangho2 sangho2 marked this pull request as draft May 22, 2026 18:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

expmt:ulitebox uLiteBox experiment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant