Giter VIP home page Giter VIP logo

andy-python-programmer / aero Goto Github PK

View Code? Open in Web Editor NEW
1.1K 1.1K 48.0 148.96 MB

Aero is a new modern, experimental, UNIX-like operating system following the monolithic kernel design. Supporting modern PC features such as long mode, 5-level paging, and SMP (multicore), to name a few.

Home Page: https://aero.andypy.dev

License: GNU General Public License v3.0

Rust 87.92% Assembly 0.37% HTML 0.01% Shell 9.06% Python 0.50% C 0.26% CMake 0.04% C++ 1.57% Makefile 0.28%
aero hacktoberfest operating-system rust uefi unix

aero's Introduction

Header

Hello I'm Anhad!

Age location

fn main() {
  let this = About {
    name: "Anhad Singh",
    age: 16,
    pronouns: "he/him",
    code: vec![
      "Rust",
      "Assembly", 
      "C", 
      "C++", 
      "Python", 
      "GIT", 
      "Bash/Shell Scripting",
      "..."
    ]
  };
}

"G'day cobber! As a bloody programmer, I'm a real wiz when it comes to sorting out those pesky memory corruption issues. Recently, I cracked open ASAN to sus out what was going on, and then I used me bloody top-notch skills with GDB to track down the exact spot in the program's memory where the drama was happening. Quick as flash, I sorted out the issue and now the program's running like a dream with no more memory bugs. I'm chuffed with me skills" - Anhad Singh

aero's People

Contributors

48cf avatar andy-python-programmer avatar dependabot[bot] avatar jwpjrdev avatar kianmeng avatar kyota-exe avatar lynndox avatar molasseslover avatar no92 avatar pitust avatar xvanc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aero's Issues

mlibc: abi-break merge

The mlibc abi-breaks have been merged and upstream. This requires some changes in the kernel since some of the ABI-headers are switched from mlibc to linux ones for stability (checkout managarm/mlibc#648 for more information). This also requires to update all our local mlibc patches to be updated and upstreamed.

Switch to slab allocator

Currently the aero_kernel uses the linked_list_allocator crate for the kernel allocator. We might want to switch the allocator from a linked list allocator to an object-caching slab allocator which is more efficient.

The basic idea behind the slab allocator is to have caches of commonly used objects kept in an initialised state available for use by the kernel. Without an object based allocator, the kernel will spend much of its time allocating, initialising and freeing the same object. The slab allocator aims to to cache the freed object so that the basic structure is preserved between uses.

cc https://www.kernel.org/doc/gorman/html/understand/understand011.html
cc https://people.eecs.berkeley.edu/~kubitron/courses/cs194-24-S13/hand-outs/bonwick_slab.pdf

you rickrolled me

i forgot who rick astley was and clicked on the link to see who he was. to my dismay, it was a rickroll, i was so shocked that I couldnt click out, please fix the bug!
We're no strangers to love
You know the rules and so do I
A full commitment's what I'm thinking of
You wouldn't get this from any other guy
I just wanna tell you how I'm feeling
Gotta make you understand
Never gonna give you up
Never gonna let you down
Never gonna run around and desert you
Never gonna make you cry
Never gonna say goodbye
Never gonna tell a lie and hurt you
We've known each other for so long
Your heart's been aching but you're too shy to say it
Inside we both know what's been going on
We know the game and we're gonna play it
And if you ask me how I'm feeling
Don't tell me you're too blind to see
Never gonna give you up
Never gonna let you down
Never gonna run around and desert you
Never gonna make you cry
Never gonna say goodbye
Never gonna tell a lie and hurt you
Never gonna give you up
Never gonna let you down
Never gonna run around and desert you
Never gonna make you cry
Never gonna say goodbye
Never gonna tell a lie and hurt you
Never gonna give, never gonna give
(Give you up)
We've known each other for so long
Your heart's been aching but you're too shy to say it
Inside we both know what's been going on
We know the game and we're gonna play it
I just wanna tell you how I'm feeling
Gotta make you understand
Never gonna give you up
Never gonna let you down
Never gonna run around and desert you
Never gonna make you cry
Never gonna say goodbye
Never gonna tell a lie and hurt you
Never gonna give you up
Never gonna let you down
Never gonna run around and desert you
Never gonna make you cry
Never gonna say goodbye
Never gonna tell a lie and hurt you
Never gonna give you up
Never gonna let you down
Never gonna run around and desert you
Never gonna make you cry
Never gonna say goodbye

just reporting aero kernel and shell build success on popos 21.10

It took roughly a couple of minutes to clone and build your rust kernel and shell. Impressive.

You mentioned "Its already able to run programs such as the GNU coreutils, GNU binutils, Nyancat, TinyCC, GCC."

I didn't see any of these present however. How did you arrive at getting GNU coreutils, GNU binutils, Nyancat, TinyCC, GCC running on Aero kernel and shell?

Thank you and cheers.

Compilation output
$ git clone https://github.com/Andy-Python-Programmer/aero
Cloning into 'aero'...
remote: Enumerating objects: 111709, done.
remote: Counting objects: 100% (12312/12312), done.
remote: Compressing objects: 100% (3533/3533), done.
remote: Total 111709 (delta 10780), reused 9986 (delta 8659), pack-reused 99397
Receiving objects: 100% (111709/111709), 49.28 MiB | 19.68 MiB/s, done.
Resolving deltas: 100% (98879/98879), done.
davidm@pop-os 2022-01-06_12:12:24_EST : ~/tryredox
$ cd aero
davidm@pop-os 2022-01-06_12:12:40_EST : ~/tryredox/aero
$ time ./aero.py 
Cloning into 'bundled/limine'...
remote: Enumerating objects: 17, done.
remote: Counting objects: 100% (17/17), done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 17 (delta 5), reused 9 (delta 5), pack-reused 0
Receiving objects: 100% (17/17), 1.01 MiB | 8.00 MiB/s, done.
Resolving deltas: 100% (5/5), done.
   Compiling compiler_builtins v0.1.66
   Compiling core v0.0.0 (/home/davidm/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core)
   Compiling bitflags v1.2.1
   Compiling rustc-std-workspace-core v1.99.0 (/home/davidm/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/rustc-std-workspace-core)
   Compiling alloc v0.0.0 (/home/davidm/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc)
   Compiling scopeguard v1.1.0
   Compiling aero_syscall v0.1.0 (/home/davidm/tryredox/aero/src/aero_syscall)
   Compiling lock_api v0.4.5
   Compiling spinning_top v0.2.4
   Compiling spin v0.9.2
   Compiling aero_rt v0.1.0 (/home/davidm/tryredox/aero/userland/aero_rt)
   Compiling linked_list_allocator v0.9.1
   Compiling std v0.1.0 (/home/davidm/tryredox/aero/userland/aero_std)
   Compiling init v0.1.0 (/home/davidm/tryredox/aero/userland/init)
   Compiling aero_shell v0.1.0 (/home/davidm/tryredox/aero/userland/aero_shell)
    Finished release [optimized] target(s) in 19.50s
   Compiling compiler_builtins v0.1.66
   Compiling core v0.0.0 (/home/davidm/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core)
   Compiling autocfg v1.0.1
   Compiling crossbeam-utils v0.8.5
   Compiling spin v0.5.2
   Compiling cfg-if v1.0.0
   Compiling crossbeam-epoch v0.9.5
   Compiling libc v0.2.107
   Compiling rayon-core v1.9.1
   Compiling scopeguard v1.1.0
   Compiling version_check v0.9.3
   Compiling proc-macro2 v1.0.32
   Compiling either v1.6.1
   Compiling unicode-xid v0.2.2
   Compiling log v0.4.14
   Compiling paste v1.0.6
   Compiling lazy_static v1.4.0
   Compiling memoffset v0.6.4
   Compiling rayon v1.5.1
   Compiling memoffset v0.5.6
   Compiling ahash v0.7.6
   Compiling crossbeam-channel v0.5.1
   Compiling num_cpus v1.13.0
   Compiling quote v1.0.10
   Compiling crossbeam-deque v0.8.1
   Compiling vte_generate_state_changes v0.1.1 (https://github.com/Andy-Python-Programmer/vte#a9d8bf89)
   Compiling nasm-rs v0.2.1
   Compiling aero_kernel v0.1.0 (/home/davidm/tryredox/aero/src/aero_kernel)
   Compiling rustc-std-workspace-core v1.99.0 (/home/davidm/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/rustc-std-workspace-core)
   Compiling alloc v0.0.0 (/home/davidm/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc)
   Compiling bitflags v1.3.2
   Compiling once_cell v1.8.0
   Compiling bit_field v0.10.1
   Compiling utf8parse v0.2.0 (https://github.com/Andy-Python-Programmer/vte#a9d8bf89)
   Compiling arrayvec v0.7.2
   Compiling zero v0.1.2
   Compiling byteorder v1.4.3
   Compiling rustc-demangle v0.1.21
   Compiling linked_list_allocator v0.9.1
   Compiling raw-cpuid v10.2.0
   Compiling aero_syscall v0.1.0 (/home/davidm/tryredox/aero/src/aero_syscall)
   Compiling cpio_reader v0.1.0 (https://github.com/czapek1337/cpio_reader#9e3a58b2)
   Compiling stivale-boot v0.2.6
   Compiling lock_api v0.4.5
   Compiling intrusive-collections v0.9.2
   Compiling xmas-elf v0.8.0
   Compiling vte v0.10.1 (https://github.com/Andy-Python-Programmer/vte#a9d8bf89)
   Compiling aml v0.15.0
   Compiling spin v0.9.2
   Compiling hashbrown v0.11.2
   Compiling lru v0.6.6
warning: unused variable: `sys`
   --> aero_kernel/src/syscall/mod.rs:158:31
    |
158 | extern "C" fn __inner_syscall(sys: &mut SyscallFrame, stack: &mut RegistersFrame) {
    |                               ^^^ help: if this is intentional, prefix it with an underscore: `_sys`
    |
    = note: `#[warn(unused_variables)]` on by default

warning: associated function is never used: `send_ipi`
   --> aero_kernel/src/apic.rs:151:19
    |
151 |     pub unsafe fn send_ipi(&mut self, cpu: usize, vec: u8) {
    |                   ^^^^^^^^
    |
    = note: `#[warn(dead_code)]` on by default

warning: field is never read: `request`
   --> aero_kernel/src/drivers/block/ahci.rs:738:5
    |
738 |     request: Arc<DmaRequest>,
    |     ^^^^^^^^^^^^^^^^^^^^^^^^

warning: field is never read: `interrupt_nr`
  --> aero_kernel/src/drivers/block/ide/channel.rs:97:5
   |
97 |     interrupt_nr: usize,
   |     ^^^^^^^^^^^^^^^^^^^

warning: function is never used: `init_pci_router`
   --> aero_kernel/src/drivers/pci.rs:651:8
    |
651 | pub fn init_pci_router(pci_router: PciRoutingTable) {
    |        ^^^^^^^^^^^^^^^

warning: field is never read: `filesystem`
  --> aero_kernel/src/fs/mod.rs:57:5
   |
57 |     filesystem: Arc<dyn FileSystem>,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: field is never read: `origin_entry`
  --> aero_kernel/src/fs/mod.rs:60:5
   |
60 |     origin_entry: DirCacheItem,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: variant is never constructed: `Size2MiB`
   --> aero_kernel/src/mem/paging/frame.rs:146:5
    |
146 |     Size2MiB = 2,
    |     ^^^^^^^^^^^^

warning: `aero_kernel` (bin "aero_kernel") generated 8 warnings
    Finished release [optimized + debuginfo] target(s) in 37.92s
  INFO         loaded bootstrap GDT
  INFO         loaded paging
  INFO         loaded heap
  INFO         loaded IDT
  DEBUG        Found apic at: 0xfee00000
  DEBUG        Disabled PIC
  INFO         Loaded local apic (x2apic=false)
  DEBUG        Found RSDT at 0xffff80007ffe210d
  DEBUG        Storing AP trampoline at 0x1000
  WARN         Unknown MADT entry with id: 4
  INFO         Loaded ACPI
  INFO         loaded TLS
  INFO         loaded GDT
  INFO         loaded PS/2 driver
  INFO         registered redirect (vec=32, gsi=2)
  INFO         loaded PIT
  INFO         Installed initramfs
  DEBUG        installed device `null`
  DEBUG        installed device `kmsg`
  DEBUG        installed device `fb`
  INFO         Installed devfs
  INFO         loaded filesystem
  INFO         loaded userland
  INFO         initialized kernel
  INFO         registered redirect (vec=33, gsi=1)
  DEBUG        installed device `tty`
  INFO         loaded kernel modules
  DEBUG        PCI device (device=HostBridge, vendor=Intel)
  DEBUG        PCI device (device=VgaCompatibleController, vendor=Qemu)
  DEBUG        PCI device (device=EthernetController, vendor=Intel)
  DEBUG        PCI device (device=IsaBridge, vendor=Intel)
  DEBUG        PCI device (device=SataController, vendor=Intel)
  INFO         ahci: starting driver...
  INFO         ahci: controller version 1.0
  DEBUG        PCI device (device=SmBusController, vendor=Intel)
  INFO         loaded PCI driver

real	1m14.150s
user	3m3.705s
sys	0m11.155s
davidm@pop-os 2022-01-06_12:14:00_EST : ~/tryredox/aero

Switch to the Limine boot protocol

The upcoming versions of Limine will not support the stivale and stivale2 protocols to avoid fragmenting users into 3 different, separate protocols, by incentivising the move to the Limine protocol; reducing Limine's code size and cleaning up clutter by removing essentially redundant protocols.

Even though the stivale2 protocol will be supported on Limine 3.x; it is a good idea to move to the newer version of the protocol.

Contribution for /etc/passwd and /etc/shadow

We must develop absolutely secure hash algorithm system like using secure hash algorithm SHA-1 for security of Aero, it will also use shifting which is another secure algorithm for keeping passwords safe. And add a guide of password manager for Aero that does describe how this works and improve new hashing techniques similar to ROT13. Also new future changes will make development of "I'm a teapot" HTTP code status algorithm easier to understand if this server is a teapot, we prefer coffee instead of tea.

Fast IPC

Inter Process Communication should be fast and effective. The performance of IPC is vital for modern operating systems. Here is an overview of how we can accomplish this in Aero:

  1. Each task will have its own message queue that contains pending messages.
  2. The message will contain the sender's PID and TID with data (&[u8]). It will aswell contain a message ID (usize) used to identify the message without needing to parse the message itself.
  3. Using the sys_ipc_send and sys_ipc_get system calls the tasks can communicate with each other efficiently.

Drawbacks

This would require the kernel to clone the message 2 times (when you send the message the kernel keeps a copy of the message and for the task that we are sending to has to clone it again)

error when compiling

  --> aero_kernel/src/main.rs:40:5
   |
40 |     box_syntax,
   |     ^^^^^^^^^^ feature has been removed
   |
   = note: replaced with `#[rustc_box]`

compiled with rustc 1.70.0-nightly (0c61c7a97 2023-03-25) on macos

Questions and suggestions

I am very impressed with your project and have a few questions about the project. 😊

  1. The first question is:
    Is the limine bootloader only used as a bootloader for BIOS or also UEFI ( although if limine was used for UEFI it would make no sense to use aero_boot)?
  2. Is it possible to create pixel based framebuffer ?
  3. What encouraged you to create this project ?
    That's all for now. 😊 I look forward to your reply.

Adding C drivers into aero

There are certain (very) large drivers that would be infeasible to port to rust(ie. drm). How would I interact with the kernel interfaces, ioctl stuff, and how does pcie kernel interface work?

How do I create libararies??

How would I go about compiling for this esteemed operating system that you intend on supporting till you die on linux? And how would I create libraries(like a libc) for it? And how would that work when I want to port c code for it? How would I access syscalls in c?

Thanks for any help you give me.

YusufKhan-gamedev@602904b

HERE! I spent an hour finding how to pr in github and here it is! Also, maybe create gitlab mirror? Sorry for my crass language im extremely angry.

patch xf86-input-keyboard:Falling back to patching base and 3-way merge...

My OS is Debian 11, when i run ./aero.py --sysroot, I encountered the error:

xbstrap: fetch xf86-input-keyboard [59/71]
Initialized empty Git repository in /home/szx/Code/os/aero/bundled/xf86-input-keyboard/.git/
remote: Enumerating objects: 28, done.
remote: Counting objects: 100% (28/28), done.
remote: Compressing objects: 100% (28/28), done.
remote: Total 28 (delta 3), reused 9 (delta 0), pack-reused 0
Unpacking objects: 100% (28/28), 51.90 KiB | 208.00 KiB/s, done.
From https://gitlab.freedesktop.org/xorg/driver/xf86-input-keyboard
 * [new tag]         xf86-input-keyboard-1.9.0 -> xf86-input-keyboard-1.9.0
xbstrap: checkout xf86-input-keyboard [60/71]
HEAD is now at 0c7f512 keyboard 1.9.0
xbstrap: patch xf86-input-keyboard [61/71]
Applying: keydev: aero specific changes
Applying: keydev: aero specific changes
Using index info to reconstruct a base tree...
M       .gitignore
M       configure.ac
M       src/Makefile.am
.git/rebase-apply/patch:100: trailing whitespace.
static int KbdOn(InputInfoPtr pInfo, int what) { 
.git/rebase-apply/patch:101: trailing whitespace.
    return Success;  
.git/rebase-apply/patch:105: trailing whitespace.
    printf("aero::kbdOff: is a stub!\n"); 
.git/rebase-apply/patch:167: trailing whitespace.
Bool xf86OSKbdPreInit(InputInfoPtr pInfo) { 
warning: 4 lines add whitespace errors.
Falling back to patching base and 3-way merge...
CONFLICT (add/add): Merge conflict in src/aero_kbd.c
Auto-merging src/aero_kbd.c
error: Failed to merge in the changes.
Patch failed at 0001 keydev: aero specific changes
hint: Use 'git am --show-current-patch=diff' to see the failed patch
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".
xbstrap: Action patch of source xf86-input-keyboard failed

Implement the proc filesystem

Maybe turn the ramfs into a trait instead which would make it easier to make in memory file systems with custom file contents type without needing to bloat the ramfs impl itself.

  • Add /proc/cpuinfo to the proc filesystem (so uwufetch can show the cpuinfo)
  • Make uwufetch read and parse the cpuinfo provided in /proc/cpuinfo using serde-json and print it in the screen fetch.

error msg for doing `./aero.py --sysroot`

# ./aero.py --sysroot
xbstrap: Checking for remote updates of mlibc
xbstrap: Checking for remote updates of quickjs
xbstrap: Checking for remote updates of tcc
xbstrap: Checking for remote updates of limine-term
xbstrap: Checking for remote updates of mesa-demos
xbstrap: Checking for remote updates of drm_test
xbstrap: Running the following plan:
    fetch          libxrandr
    checkout       libxrandr
    patch          libxrandr
    regenerate     libxrandr
    fetch          libxext
    checkout       libxext
    patch          libxext
    regenerate     libxext
    install        linux-headers
    install        mlibc-headers
    compile-tool   host-gcc, stage: compiler
    install-tool   host-gcc, stage: compiler
    compile-tool   bootstrap-host-gcc, stage: compiler
    install-tool   bootstrap-host-gcc, stage: compiler
    compile-tool   bootstrap-host-gcc, stage: libgcc
    install-tool   bootstrap-host-gcc, stage: libgcc
    configure      mlibc
    build          mlibc
    install        mlibc
    compile-tool   host-gcc, stage: libgcc
    install-tool   host-gcc, stage: libgcc
    compile-tool   host-gcc, stage: libstdc++
    install-tool   host-gcc, stage: libstdc++
    fetch          libxcb
    checkout       libxcb
    patch          libxcb
    regenerate     libxcb
    fetch          libxdmcp
    checkout       libxdmcp
    patch          libxdmcp
    regenerate     libxdmcp
    fetch          libxau
    checkout       libxau
    patch          libxau
    regenerate     libxau
    configure      xorg-util-macros
    build          xorg-util-macros
    install        xorg-util-macros
    configure      xorg-proto
    build          xorg-proto
    install        xorg-proto
    configure      libxau
    build          libxau
    install        libxau
    configure      libxdmcp
    build          libxdmcp
    install        libxdmcp
    configure-tool host-python
    compile-tool   host-python
    install-tool   host-python
    fetch          xcb-proto
    checkout       xcb-proto
    patch          xcb-proto
    regenerate     xcb-proto
    configure      xcb-proto
    build          xcb-proto
    install        xcb-proto
    configure      libxcb
    build          libxcb
    install        libxcb
    configure      libxtrans
    build          libxtrans
    install        libxtrans
    configure      libx11
    build          libx11
    install        libx11
    configure      libxext
    build          libxext
    install        libxext
    configure      libxrender
    build          libxrender
    install        libxrender
    configure      libxrandr
    build          libxrandr
    install        libxrandr
    configure      zlib
    build          zlib
    install        zlib
    configure      openssl
    build          openssl
    install        openssl
    fetch          curl
    checkout       curl
    patch          curl
    regenerate     curl
    fetch          libpsl
    checkout       libpsl
    patch          libpsl
    regenerate     libpsl
    fetch          libiconv
    checkout       libiconv
    patch          libiconv
    regenerate     libiconv
    configure      libiconv
    build          libiconv
    install        libiconv
    fetch          libunistring
    checkout       libunistring
    patch          libunistring
    regenerate     libunistring
    configure      libunistring
    build          libunistring
    install        libunistring
    fetch          libidn2
    checkout       libidn2
    patch          libidn2
    regenerate     libidn2
    configure      libidn2
    build          libidn2
    install        libidn2
    configure      libpsl
    build          libpsl
    install        libpsl
    fetch          zstd
    checkout       zstd
    patch          zstd
    regenerate     zstd
    configure      xz-utils
    build          xz-utils
    install        xz-utils
    configure      zstd
    build          zstd
    install        zstd
    configure      curl
    build          curl
    install        curl
    configure      python
    build          python
    install        python
    regenerate     libexpat
    configure      libexpat
    build          libexpat
    install        libexpat
    fetch          pcre
    checkout       pcre
    patch          pcre
    regenerate     pcre
    configure      pcre
    build          pcre
    install        pcre
    configure      git
    build          git
    install        git
    fetch          libxfixes
    checkout       libxfixes
    patch          libxfixes
    regenerate     libxfixes
    configure      libxfixes
    build          libxfixes
    install        libxfixes
    configure      libxcomposite
    build          libxcomposite
    install        libxcomposite
    fetch          xf86-input-keyboard
    checkout       xf86-input-keyboard
    patch          xf86-input-keyboard
    regenerate     xf86-input-keyboard
    fetch          libxfont2
    checkout       libxfont2
    patch          libxfont2
    regenerate     libxfont2
    fetch          libxml
    checkout       libxml
    patch          libxml
    regenerate     libxml
    configure      libxml
    build          libxml
    install        libxml
    fetch          libpng
    checkout       libpng
    patch          libpng
    regenerate     libpng
    configure      libpng
    build          libpng
    install        libpng
    configure      freetype
    build          freetype
    install        freetype
    configure      fontconfig
    build          fontconfig
    install        fontconfig
    fetch          libfontenc
    checkout       libfontenc
    patch          libfontenc
    regenerate     libfontenc
    configure      xorg-font-util
    build          xorg-font-util
    install        xorg-font-util
    configure      libfontenc
    build          libfontenc
    install        libfontenc
    configure      libxfont2
    build          libxfont2
    install        libxfont2
    fetch          libxkbfile
    checkout       libxkbfile
    patch          libxkbfile
    regenerate     libxkbfile
    configure      libxkbfile
    build          libxkbfile
    install        libxkbfile
    fetch          libepoxy
    checkout       libepoxy
    patch          libepoxy
    regenerate     libepoxy
    fetch          mesa
    checkout       mesa
    patch          mesa
    regenerate     mesa
    fetch          libdrm
    checkout       libdrm
    patch          libdrm
    regenerate     libdrm
    configure      libdrm
    build          libdrm
    install        libdrm
    fetch          llvm
    checkout       llvm
    patch          llvm
    regenerate     llvm
    fetch          host-cmake
    checkout       host-cmake
    patch          host-cmake
    regenerate     host-cmake
    configure-tool host-cmake
    compile-tool   host-cmake
    install-tool   host-cmake
    configure      llvm
    build          llvm
    install        llvm
    configure      mesa
    build          mesa
    install        mesa
    configure      libepoxy
    build          libepoxy
    install        libepoxy
    configure      libxcvt
    build          libxcvt
    install        libxcvt
    fetch          pixman
    checkout       pixman
    patch          pixman
    regenerate     pixman
    configure      pixman
    build          pixman
    install        pixman
    configure      xorg-server
    build          xorg-server
    install        xorg-server
    configure      xf86-input-keyboard
    build          xf86-input-keyboard
    install        xf86-input-keyboard
    fetch          glu
    checkout       glu
    patch          glu
    regenerate     glu
    configure      binutils
    build          binutils
    install        binutils
    configure      gcc
    build          gcc
    install        gcc
    configure      glu
    build          glu
    install        glu
    fetch          pango
    checkout       pango
    patch          pango
    regenerate     pango
    fetch          harfbuzz
    checkout       harfbuzz
    patch          harfbuzz
    regenerate     harfbuzz
    fetch          icu
    checkout       icu
    patch          icu
    regenerate     icu
    configure-tool host-icu
    compile-tool   host-icu
    install-tool   host-icu
    configure      icu
    build          icu
    install        icu
    fetch          cairo
    checkout       cairo
    patch          cairo
    regenerate     cairo
    fetch          glib
    checkout       glib
    patch          glib
    regenerate     glib
    fetch          libintl
    checkout       libintl
    patch          libintl
    regenerate     libintl
    configure      libintl
    build          libintl
    install        libintl
    fetch          libffi
    checkout       libffi
    patch          libffi
    regenerate     libffi
    configure      libffi
    build          libffi
    install        libffi
    configure      glib
    build          glib
    install        glib
    configure      cairo
    build          cairo
    install        cairo
    fetch          graphite2
    checkout       graphite2
    patch          graphite2
    regenerate     graphite2
    configure      graphite2
    build          graphite2
    install        graphite2
    configure      harfbuzz
    build          harfbuzz
    install        harfbuzz
    fetch          libxft
    checkout       libxft
    patch          libxft
    regenerate     libxft
    configure      libxft
    build          libxft
    install        libxft
    fetch          fribidi
    checkout       fribidi
    patch          fribidi
    regenerate     fribidi
    configure      fribidi
    build          fribidi
    install        fribidi
    configure-tool host-glib
    compile-tool   host-glib
    install-tool   host-glib
    configure      pango
    build          pango
    install        pango
    fetch          libxmu
    checkout       libxmu
    patch          libxmu
    regenerate     libxmu
    fetch          libxt
    checkout       libxt
    patch          libxt
    regenerate     libxt
    configure      libice
    build          libice
    install        libice
    configure      libsm
    build          libsm
    install        libsm
    configure      libxt
    build          libxt
    install        libxt
    configure      libxmu
    build          libxmu
    install        libxmu
    fetch          xf86-input-mouse
    checkout       xf86-input-mouse
    patch          xf86-input-mouse
    regenerate     xf86-input-mouse
    configure      xf86-input-mouse
    build          xf86-input-mouse
    install        xf86-input-mouse
    fetch          at-spi2-core
    checkout       at-spi2-core
    patch          at-spi2-core
    regenerate     at-spi2-core
    fetch          dbus
    checkout       dbus
    patch          dbus
    regenerate     dbus
    configure      dbus
    build          dbus
    install        dbus
    fetch          libxtst
    checkout       libxtst
    patch          libxtst
    regenerate     libxtst
    fetch          libxi
    checkout       libxi
    patch          libxi
    regenerate     libxi
    configure      libxi
    build          libxi
    install        libxi
    configure      libxtst
    build          libxtst
    install        libxtst
    configure      at-spi2-core
    build          at-spi2-core
    install        at-spi2-core
    fetch          libxv
    checkout       libxv
    patch          libxv
    regenerate     libxv
    configure      libxv
    build          libxv
    install        libxv
    fetch          libgpg-error
    checkout       libgpg-error
    patch          libgpg-error
    regenerate     libgpg-error
    configure      libgpg-error
    build          libgpg-error
    install        libgpg-error
    configure      coreutils
    build          coreutils
    install        coreutils
    fetch          at-spi2-atk
    checkout       at-spi2-atk
    patch          at-spi2-atk
    regenerate     at-spi2-atk
    fetch          atk
    checkout       atk
    patch          atk
    regenerate     atk
    configure      atk
    build          atk
    install        atk
    configure      at-spi2-atk
    build          at-spi2-atk
    install        at-spi2-atk
    fetch          bash
    checkout       bash
    patch          bash
    regenerate     bash
    configure      bash
    build          bash
    install        bash
    fetch          dejavu
    checkout       dejavu
    patch          dejavu
    regenerate     dejavu
    configure      dejavu
    build          dejavu
    install        dejavu
    fetch          glib-networking
    checkout       glib-networking
    patch          glib-networking
    regenerate     glib-networking
    configure      glib-networking
    build          glib-networking
    install        glib-networking
    fetch          xkbutils
    checkout       xkbutils
    patch          xkbutils
    regenerate     xkbutils
    fetch          libxaw
    checkout       libxaw
    patch          libxaw
    regenerate     libxaw
    configure      libxpm
    build          libxpm
    install        libxpm
    configure      libxaw
    build          libxaw
    install        libxaw
    configure      xkbutils
    build          xkbutils
    install        xkbutils
    configure      quickjs
    build          quickjs
    install        quickjs
    fetch          lua
    checkout       lua
    patch          lua
    regenerate     lua
    configure      lua
    build          lua
    install        lua
    fetch          dmenu
    checkout       dmenu
    patch          dmenu
    regenerate     dmenu
    configure      dmenu
    build          dmenu
    install        dmenu
    configure      links
    build          links
    install        links
    fetch          gtk+-3
    checkout       gtk+-3
    patch          gtk+-3
    regenerate     gtk+-3
    fetch          gdk-pixbuf
    checkout       gdk-pixbuf
    patch          gdk-pixbuf
    regenerate     gdk-pixbuf
    fetch          libjpeg-turbo
    checkout       libjpeg-turbo
    patch          libjpeg-turbo
    regenerate     libjpeg-turbo
    configure      libjpeg-turbo
    build          libjpeg-turbo
    install        libjpeg-turbo
    fetch          shared-mime-info
    checkout       shared-mime-info
    patch          shared-mime-info
    regenerate     shared-mime-info
    configure      itstool
    build          itstool
    install        itstool
    configure      shared-mime-info
    build          shared-mime-info
    install        shared-mime-info
    configure      gdk-pixbuf
    build          gdk-pixbuf
    install        gdk-pixbuf
    fetch          libxkbcommon
    checkout       libxkbcommon
    patch          libxkbcommon
    regenerate     libxkbcommon
    fetch          xkeyboard-config
    checkout       xkeyboard-config
    patch          xkeyboard-config
    regenerate     xkeyboard-config
    configure      xkeyboard-config
    build          xkeyboard-config
    install        xkeyboard-config
    configure      libxkbcommon
    build          libxkbcommon
    install        libxkbcommon
    fetch          libxcursor
    checkout       libxcursor
    patch          libxcursor
    regenerate     libxcursor
    configure      libxcursor
    build          libxcursor
    install        libxcursor
    fetch          libxdamage
    checkout       libxdamage
    patch          libxdamage
    regenerate     libxdamage
    configure      libxdamage
    build          libxdamage
    install        libxdamage
    configure      gtk+-3
    build          gtk+-3
    install        gtk+-3
    fetch          vim
    checkout       vim
    patch          vim
    regenerate     vim
    fetch          ncurses
    checkout       ncurses
    patch          ncurses
    regenerate     ncurses
    configure      ncurses
    build          ncurses
    install        ncurses
    configure      vim
    build          vim
    install        vim
    fetch          doomgeneric
    checkout       doomgeneric
    patch          doomgeneric
    regenerate     doomgeneric
    configure      doomgeneric
    build          doomgeneric
    install        doomgeneric
    fetch          libxcb-util
    checkout       libxcb-util
    patch          libxcb-util
    regenerate     libxcb-util
    configure      libxcb-util
    build          libxcb-util
    install        libxcb-util
    fetch          libwebp
    checkout       libwebp
    patch          libwebp
    regenerate     libwebp
    configure      libwebp
    build          libwebp
    install        libwebp
    fetch          xeyes
    checkout       xeyes
    patch          xeyes
    regenerate     xeyes
    configure      xeyes
    build          xeyes
    install        xeyes
    fetch          neofetch
    checkout       neofetch
    patch          neofetch
    regenerate     neofetch
    configure      neofetch
    build          neofetch
    install        neofetch
    fetch          readline
    checkout       readline
    patch          readline
    regenerate     readline
    configure      readline
    build          readline
    install        readline
    fetch          xf86-video-fbdev
    checkout       xf86-video-fbdev
    patch          xf86-video-fbdev
    regenerate     xf86-video-fbdev
    configure      xf86-video-fbdev
    build          xf86-video-fbdev
    install        xf86-video-fbdev
    fetch          nasm
    checkout       nasm
    patch          nasm
    regenerate     nasm
    configure      nasm
    build          nasm
    install        nasm
    configure      sqlite
    build          sqlite
    install        sqlite
    configure      tcc
    build          tcc
    install        tcc
    configure      limine-term
    build          limine-term
    install        limine-term
    fetch          tzdata
    checkout       tzdata
    patch          tzdata
    fetch          tzcode
    checkout       tzcode
    patch          tzcode
    regenerate     tzdata
    configure      tzdata
    build          tzdata
    install        tzdata
    fetch          libsoup
    checkout       libsoup
    patch          libsoup
    regenerate     libsoup
    configure      libsoup
    build          libsoup
    install        libsoup
    fetch          xorg-xinit
    checkout       xorg-xinit
    patch          xorg-xinit
    regenerate     xorg-xinit
    configure      xorg-xinit
    build          xorg-xinit
    install        xorg-xinit
    configure      libtasn
    build          libtasn
    install        libtasn
    fetch          nyancat
    checkout       nyancat
    patch          nyancat
    regenerate     nyancat
    configure      nyancat
    build          nyancat
    install        nyancat
    fetch          dhcpd
    checkout       dhcpd
    patch          dhcpd
    regenerate     dhcpd
    fetch          rust-glutin
    checkout       rust-glutin
    patch          rust-glutin
    fetch          rust-patched-libs
    checkout       rust-patched-libs
    patch          rust-patched-libs
    fetch          rust-mio-0.6
    checkout       rust-mio-0.6
    patch          rust-mio-0.6
    fetch          rust-libc
    checkout       rust-libc
    patch          rust-libc
    fetch          rust-num-cpus
    checkout       rust-num-cpus
    patch          rust-num-cpus
    fetch          rust-libloading
    checkout       rust-libloading
    patch          rust-libloading
    fetch          rust-users
    checkout       rust-users
    patch          rust-users
    fetch          rust
    checkout       rust
    patch          rust
    regenerate     rust
    fetch          rust-winit
    checkout       rust-winit
    patch          rust-winit
    fetch          rust-nix
    checkout       rust-nix
    patch          rust-nix
    fetch          rust-mio-0.8
    checkout       rust-mio-0.8
    patch          rust-mio-0.8
    configure-tool host-llvm
    compile-tool   host-llvm
    install-tool   host-llvm
    fetch          rust-shared-library
    checkout       rust-shared-library
    patch          rust-shared-library
    configure-tool host-rust
    compile-tool   host-rust
    install-tool   host-rust
    configure      dhcpd
    build          dhcpd
    install        dhcpd
    configure      mesa-demos
    build          mesa-demos
    install        mesa-demos
    configure      drm_test
    build          drm_test
    install        drm_test
    fetch          xwallpaper
    checkout       xwallpaper
    patch          xwallpaper
    regenerate     xwallpaper
    fetch          libxcb-image
    checkout       libxcb-image
    patch          libxcb-image
    regenerate     libxcb-image
    configure      libxcb-image
    build          libxcb-image
    install        libxcb-image
    configure      xwallpaper
    build          xwallpaper
    install        xwallpaper
    fetch          alacritty
    checkout       alacritty
    patch          alacritty
    regenerate     alacritty
    configure      alacritty
    build          alacritty
    install        alacritty
    fetch          libxslt
    checkout       libxslt
    patch          libxslt
    regenerate     libxslt
    configure      libxslt
    build          libxslt
    install        libxslt
    fetch          xkbcomp
    checkout       xkbcomp
    patch          xkbcomp
    regenerate     xkbcomp
    configure      xkbcomp
    build          xkbcomp
    install        xkbcomp
    fetch          dwm
    checkout       dwm
    patch          dwm
    regenerate     dwm
    configure      dwm
    build          dwm
    install        dwm
    fetch          libgcrypt
    checkout       libgcrypt
    patch          libgcrypt
    regenerate     libgcrypt
    configure      libgcrypt
    build          libgcrypt
    install        libgcrypt
xbstrap: fetch libxrandr [1/762]
Initialized empty Git repository in /root/Github/aero/bundled/libxrandr/.git/
remote: Enumerating objects: 32, done.
remote: Counting objects: 100% (32/32), done.
remote: Compressing objects: 100% (27/27), done.
remote: Total 32 (delta 4), reused 23 (delta 1), pack-reused 0
Unpacking objects: 100% (32/32), 41.44 KiB | 461.00 KiB/s, done.
From https://gitlab.freedesktop.org/xorg/lib/libxrandr
 * [new tag]         libXrandr-1.5.2 -> libXrandr-1.5.2
xbstrap: checkout libxrandr [2/762]
HEAD is now at 55dcda4 libXrandr 1.5.2
xbstrap: patch libxrandr [3/762]
xbstrap: regenerate libxrandr [4/762]
xbstrap: Running ['./autogen.sh'] (tools: ['host-automake-v1.16', 'host-autoconf-v2.69', 'host-pkg-config', 'host-libtool', 'host-xorg-macros'])
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal 
autoreconf: configure.ac: tracing
autoreconf: running: libtoolize --copy
libtoolize: putting auxiliary files in '.'.
libtoolize: copying file './ltmain.sh'
libtoolize: Consider adding 'AC_CONFIG_MACRO_DIRS([m4])' to configure.ac,
libtoolize: and rerunning libtoolize and aclocal.
libtoolize: Consider adding '-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
autoreconf: running: /root/Github/aero/sysroot/tools/host-autoconf-v2.69/bin/autoconf
autoreconf: running: /root/Github/aero/sysroot/tools/host-autoconf-v2.69/bin/autoheader
autoreconf: running: automake --add-missing --copy --no-force
configure.ac:41: installing './compile'
configure.ac:41: installing './config.guess'
configure.ac:41: installing './config.sub'
configure.ac:38: installing './install-sh'
configure.ac:38: installing './missing'
src/Makefile.am: installing './depcomp'
autoreconf: Leaving directory `.'
xbstrap: fetch libxext [5/762]
Initialized empty Git repository in /root/Github/aero/bundled/libxext/.git/
remote: Enumerating objects: 91, done.
remote: Counting objects: 100% (91/91), done.
remote: Compressing objects: 100% (83/83), done.
remote: Total 91 (delta 23), reused 24 (delta 0), pack-reused 0
Unpacking objects: 100% (91/91), 138.33 KiB | 990.00 KiB/s, done.
From https://gitlab.freedesktop.org/xorg/lib/libxext
 * [new tag]         libXext-1.3.4 -> libXext-1.3.4
xbstrap: checkout libxext [6/762]
HEAD is now at ebb167f libXext 1.3.4
xbstrap: patch libxext [7/762]
xbstrap: regenerate libxext [8/762]
xbstrap: Running ['./autogen.sh'] (tools: ['host-automake-v1.16', 'host-autoconf-v2.69', 'host-pkg-config', 'host-libtool', 'host-xorg-macros'])
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal 
autoreconf: configure.ac: tracing
autoreconf: running: libtoolize --copy
libtoolize: putting auxiliary files in '.'.
libtoolize: copying file './ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: copying file 'm4/libtool.m4'
libtoolize: copying file 'm4/ltoptions.m4'
libtoolize: copying file 'm4/ltsugar.m4'
libtoolize: copying file 'm4/ltversion.m4'
libtoolize: copying file 'm4/lt~obsolete.m4'
libtoolize: Consider adding '-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
autoreconf: running: /root/Github/aero/sysroot/tools/host-autoconf-v2.69/bin/autoconf
autoreconf: running: /root/Github/aero/sysroot/tools/host-autoconf-v2.69/bin/autoheader
autoreconf: running: automake --add-missing --copy --no-force
configure.ac:14: installing './compile'
configure.ac:14: installing './config.guess'
configure.ac:14: installing './config.sub'
configure.ac:11: installing './install-sh'
configure.ac:11: installing './missing'
src/Makefile.am: installing './depcomp'
autoreconf: Leaving directory `.'
xbstrap: install linux-headers [9/762]
xbstrap: install mlibc-headers [10/762]
xbstrap: compile-tool ('host-gcc', 'compiler') [11/762]
xbstrap: Running ['make', '-j@PARALLELISM@', 'all-gcc'] (tools: ['host-binutils'])
make[1]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/intl'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/intl'
make[1]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp'
make[1]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/libiberty'
make  all-recursive
make[2]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp'
make[2]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/libiberty/testsuite'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/libiberty/testsuite'
Making all in tests
make[1]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/libiberty'
make[3]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/tests'
Making all in .
make[4]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/tests'
make[4]: Nothing to be done for 'all-am'.
make[4]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/tests'
Making all in devel
make[4]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/tests/devel'
make[4]: Nothing to be done for 'all'.
make[4]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/tests/devel'
Making all in mpn
make[1]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/build-x86_64-pc-linux-gnu/libiberty'
make[4]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/tests/mpn'
make[4]: Nothing to be done for 'all'.
make[4]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/tests/mpn'
Making all in mpz
make[4]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/tests/mpz'
make[4]: Nothing to be done for 'all'.
make[4]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/tests/mpz'
Making all in mpq
make[4]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/tests/mpq'
make[4]: Nothing to be done for 'all'.
make[4]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/tests/mpq'
Making all in mpf
make[2]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/build-x86_64-pc-linux-gnu/libiberty/testsuite'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/build-x86_64-pc-linux-gnu/libiberty/testsuite'
make[4]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/tests/mpf'
make[4]: Nothing to be done for 'all'.
make[4]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/tests/mpf'
Making all in rand
make[1]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/build-x86_64-pc-linux-gnu/libiberty'
make[4]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/tests/rand'
make[4]: Nothing to be done for 'all'.
make[4]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/tests/rand'
Making all in misc
make[4]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/tests/misc'
make[4]: Nothing to be done for 'all'.
make[4]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/tests/misc'
Making all in cxx
make[4]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/tests/cxx'
make[4]: Nothing to be done for 'all'.
make[4]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/tests/cxx'
make[3]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/tests'
Making all in mpn
make[1]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/zlib'
true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CFLAGS=-O2 -pipe  " "CXXFLAGS=-O2 -pipe  " "CFLAGS_FOR_BUILD=-O2 -pipe" "CFLAGS_FOR_TARGET=-g -O2" "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c" "LDFLAGS=-static-libstdc++ -static-libgcc " "LIBCFLAGS=-O2 -pipe  " "LIBCFLAGS_FOR_TARGET=-g -O2" "MAKE=make" "MAKEINFO=makeinfo --split-size=5000000 " "PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/bash" "EXPECT=expect" "RUNTEST=runtest" "RUNTESTFLAGS=" "exec_prefix=/root/Github/aero/sysroot/tools/host-gcc" "infodir=/root/Github/aero/sysroot/tools/host-gcc/share/info" "libdir=/root/Github/aero/sysroot/tools/host-gcc/lib" "prefix=/root/Github/aero/sysroot/tools/host-gcc" "tooldir=/root/Github/aero/sysroot/tools/host-gcc/x86_64-aero" "AR=ar" "AS=as" "CC=gcc" "CXX=g++" "LD=ld" "LIBCFLAGS=-O2 -pipe  " "NM=nm" "PICFLAG=" "RANLIB=ranlib" "DESTDIR=" DO=all multi-do # make
make[3]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/mpn'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/mpn'
Making all in mpz
make[1]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/zlib'
make[3]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/mpz'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/mpz'
Making all in mpq
make[3]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/mpq'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/mpq'
Making all in mpf
make[3]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/mpf'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/mpf'
Making all in printf
make[3]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/printf'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/printf'
Making all in scanf
make[3]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/scanf'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/scanf'
Making all in rand
make[1]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/libbacktrace'
make[3]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/rand'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/rand'
Making all in cxx
make  all-am
make[3]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/cxx'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/cxx'
Making all in demos
make[3]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/demos'
make[2]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/libbacktrace'
true  DO=all multi-do # make
Making all in calc
make[2]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/libbacktrace'
make[1]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/libbacktrace'
make[4]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/demos/calc'
make  all-am
make[5]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/demos/calc'
make[5]: Nothing to be done for 'all-am'.
make[5]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/demos/calc'
make[4]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/demos/calc'
Making all in expr
make[4]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/demos/expr'
make[4]: Nothing to be done for 'all'.
make[4]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/demos/expr'
make[4]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/demos'
make[4]: Nothing to be done for 'all-am'.
make[4]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/demos'
make[3]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/demos'
Making all in tune
make[3]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/tune'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/tune'
Making all in doc
make[3]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/doc'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp/doc'
make[1]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/libcody'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/libcody'
make[3]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp'
make[3]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp'
make[2]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp'
make[1]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gmp'
make[1]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/libdecnumber'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/libdecnumber'
make[1]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/lto-plugin'
make[1]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/build-x86_64-pc-linux-gnu/fixincludes'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/build-x86_64-pc-linux-gnu/fixincludes'
make  all-am
make[2]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/lto-plugin'
make[2]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/lto-plugin'
make[1]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/lto-plugin'
make[1]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/build-x86_64-pc-linux-gnu/libcpp'
test -f config.h || (rm -f stamp-h1 && make stamp-h1)
make[1]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/build-x86_64-pc-linux-gnu/libcpp'
make[1]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/libcpp'
test -f config.h || (rm -f stamp-h1 && make stamp-h1)
make[1]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/libcpp'
make[1]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/fixincludes'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/fixincludes'
make[1]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/mpfr'
Making all in doc
make[2]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/mpfr/doc'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/mpfr/doc'
Making all in src
make[1]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/isl'
make  all-recursive
make[2]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/mpfr/src'
make  all-am
make[2]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/isl'
Making all in .
make[3]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/isl'
make[3]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/mpfr/src'
make[3]: Nothing to be done for 'all-am'.
make[3]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/mpfr/src'
make[2]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/mpfr/src'
Making all in tests
make[2]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/mpfr/tests'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/mpfr/tests'
Making all in tune
make[2]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/mpfr/tune'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/mpfr/tune'
Making all in tools/bench
make[2]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/mpfr/tools/bench'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/mpfr/tools/bench'
make[2]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/mpfr'
make[2]: Nothing to be done for 'all-am'.
make[2]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/mpfr'
make[1]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/mpfr'
make[3]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/isl'
Making all in doc
make[3]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/isl/doc'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/isl/doc'
make[2]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/isl'
make[1]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/isl'
make[1]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/mpc'
make  all-recursive
make[2]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/mpc'
Making all in src
make[3]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/mpc/src'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/mpc/src'
Making all in tests
make[3]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/mpc/tests'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/mpc/tests'
Making all in doc
make[3]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/mpc/doc'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/mpc/doc'
Making all in tools
make[3]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/mpc/tools'
Making all in bench
make[4]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/mpc/tools/bench'
make[4]: Nothing to be done for 'all'.
make[4]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/mpc/tools/bench'
Making all in mpcheck
make[4]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/mpc/tools/mpcheck'
make[4]: Nothing to be done for 'all'.
make[4]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/mpc/tools/mpcheck'
make[4]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/mpc/tools'
make[4]: Nothing to be done for 'all-am'.
make[4]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/mpc/tools'
make[3]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/mpc/tools'
make[3]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/mpc'
make[3]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/mpc'
make[2]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/mpc'
make[1]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/mpc'
make[1]: Entering directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gcc'
g++ -no-pie   -O2 -pipe   -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE   -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Wconditionally-supported -Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings   -DHAVE_CONFIG_H -static-libstdc++ -static-libgcc  -o cc1 c/c-lang.o c-family/stub-objc.o attribs.o c/c-errors.o c/c-decl.o c/c-typeck.o c/c-convert.o c/c-aux-info.o c/c-objc-common.o c/c-parser.o c/c-fold.o c/gimple-parser.o c-family/c-common.o c-family/c-cppbuiltin.o c-family/c-dump.o c-family/c-format.o c-family/c-gimplify.o c-family/c-indentation.o c-family/c-lex.o c-family/c-omp.o c-family/c-opts.o c-family/c-pch.o c-family/c-ppoutput.o c-family/c-pragma.o c-family/c-pretty-print.o c-family/c-semantics.o c-family/c-ada-spec.o c-family/c-ubsan.o c-family/known-headers.o c-family/c-attribs.o c-family/c-warn.o c-family/c-spellcheck.o i386-c.o default-c.o \
  cc1-checksum.o libbackend.a main.o libcommon-target.a libcommon.a ../libcpp/libcpp.a ../libdecnumber/libdecnumber.a libcommon.a ../libcpp/libcpp.a   ../libbacktrace/.libs/libbacktrace.a ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a  -L/root/Github/aero/sysroot/tool-builds/host-gcc/./isl/.libs  -lisl -L/root/Github/aero/sysroot/tool-builds/host-gcc/./gmp/.libs -L/root/Github/aero/sysroot/tool-builds/host-gcc/./mpfr/src/.libs -L/root/Github/aero/sysroot/tool-builds/host-gcc/./mpc/src/.libs -lmpc -lmpfr -lgmp -rdynamic  -L./../zlib -lz 
g++ -no-pie   -O2 -pipe   -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE   -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Wconditionally-supported -Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings   -DHAVE_CONFIG_H -static-libstdc++ -static-libgcc  -o cc1plus \
      cp/cp-lang.o c-family/stub-objc.o cp/call.o cp/class.o cp/constexpr.o cp/constraint.o cp/coroutines.o cp/cp-gimplify.o cp/cp-objcp-common.o cp/cp-ubsan.o cp/cvt.o cp/contracts.o cp/cxx-pretty-print.o cp/decl.o cp/decl2.o cp/dump.o cp/error.o cp/except.o cp/expr.o cp/friend.o cp/init.o cp/lambda.o cp/lex.o cp/logic.o cp/mangle.o cp/mapper-client.o cp/mapper-resolver.o cp/method.o cp/module.o cp/name-lookup.o cp/optimize.o cp/parser.o cp/pt.o cp/ptree.o cp/rtti.o cp/search.o cp/semantics.o cp/tree.o cp/typeck.o cp/typeck2.o cp/vtable-class-hierarchy.o attribs.o c-family/c-common.o c-family/c-cppbuiltin.o c-family/c-dump.o c-family/c-format.o c-family/c-gimplify.o c-family/c-indentation.o c-family/c-lex.o c-family/c-omp.o c-family/c-opts.o c-family/c-pch.o c-family/c-ppoutput.o c-family/c-pragma.o c-family/c-pretty-print.o c-family/c-semantics.o c-family/c-ada-spec.o c-family/c-ubsan.o c-family/known-headers.o c-family/c-attribs.o c-family/c-warn.o c-family/c-spellcheck.o i386-c.o default-c.o cc1plus-checksum.o libbackend.a main.o libcommon-target.a libcommon.a ../libcpp/libcpp.a ../libdecnumber/libdecnumber.a ../libcody/libcody.a  \
	libcommon.a ../libcpp/libcpp.a   ../libbacktrace/.libs/libbacktrace.a ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a  -L/root/Github/aero/sysroot/tool-builds/host-gcc/./isl/.libs  -lisl -L/root/Github/aero/sysroot/tool-builds/host-gcc/./gmp/.libs -L/root/Github/aero/sysroot/tool-builds/host-gcc/./mpfr/src/.libs -L/root/Github/aero/sysroot/tool-builds/host-gcc/./mpc/src/.libs -lmpc -lmpfr -lgmp -rdynamic  -L./../zlib -lz 
/usr/bin/ld: builtins.o: in function `expand_builtin_longjmp(rtx_def*, rtx_def*)':
builtins.cc:(.text+0x30d4): undefined reference to `gen_blockage()'
/usr/bin/ld: builtins.o: in function `expand_builtin_nonlocal_goto(tree_node*)':
builtins.cc:(.text+0x5ed4): undefined reference to `gen_blockage()'
/usr/bin/ld: builtins.o: in function `expand_builtin_setjmp_receiver(rtx_def*)':
builtins.cc:(.text+0xac65): undefined reference to `gen_blockage()'
/usr/bin/ld: builtins.cc:(.text+0xac91): undefined reference to `gen_blockage()'
/usr/bin/ld: cfgrtl.o: in function `emit_nop_for_unique_locus_between(basic_block_def*, basic_block_def*)':
cfgrtl.cc:(.text+0xe6d): undefined reference to `gen_nop()'
/usr/bin/ld: cfgrtl.o: in function `cfg_layout_finalize()':
cfgrtl.cc:(.text+0x6a85): undefined reference to `gen_nop()'
/usr/bin/ld: except.o: in function `(anonymous namespace)::pass_convert_to_eh_region_ranges::execute(function*)':
except.cc:(.text+0x62ab): undefined reference to `gen_nop()'
/usr/bin/ld: explow.o: in function `probe_stack_range(long, rtx_def*)':
explow.cc:(.text+0x2425): undefined reference to `gen_blockage()'
/usr/bin/ld: explow.o: in function `anti_adjust_stack_and_probe_stack_clash(rtx_def*)':
explow.cc:(.text+0x2d2a): undefined reference to `gen_blockage()'
/usr/bin/ld: explow.cc:(.text+0x2e01): undefined reference to `gen_blockage()'
/usr/bin/ld: explow.cc:(.text+0x303d): undefined reference to `gen_blockage()'
/usr/bin/ld: function.o: in function `expand_function_end()':
function.cc:(.text+0xb291): undefined reference to `gen_blockage()'
/usr/bin/ld: function.o:function.cc:(.text+0xbc92): more undefined references to `gen_blockage()' follow
/usr/bin/ld: gcse.o: in function `can_assign_to_reg_without_clobbers_p(rtx_def*, machine_mode)':
gcse.cc:(.text+0x1a7b): undefined reference to `added_clobbers_hard_reg_p(int)'
/usr/bin/ld: gimple-fold.o: in function `maybe_fold_comparisons_from_match_pd(tree_node*, tree_code, tree_code, tree_node*, tree_node*, tree_code, tree_node*, tree_node*, basic_block_def*)':
gimple-fold.cc:(.text+0x1226): undefined reference to `gimple_match_op::resimplify(gimple**, tree_node* (*)(tree_node*))'
/usr/bin/ld: gimple-fold.o: in function `gimple_build(gimple_stmt_iterator*, bool, gsi_iterator_update, unsigned int, tree_code, tree_node*, tree_node*)':
gimple-fold.cc:(.text+0x72f6): undefined reference to `gimple_simplify(tree_code, tree_node*, tree_node*, gimple**, tree_node* (*)(tree_node*))'
/usr/bin/ld: gimple-fold.o: in function `gimple_build(gimple_stmt_iterator*, bool, gsi_iterator_update, unsigned int, tree_code, tree_node*, tree_node*, tree_node*)':
gimple-fold.cc:(.text+0x77a4): undefined reference to `gimple_simplify(tree_code, tree_node*, tree_node*, tree_node*, gimple**, tree_node* (*)(tree_node*))'
/usr/bin/ld: gimple-fold.o: in function `gimple_build(gimple_stmt_iterator*, bool, gsi_iterator_update, unsigned int, tree_code, tree_node*, tree_node*, tree_node*, tree_node*)':
gimple-fold.cc:(.text+0x7914): undefined reference to `gimple_simplify(tree_code, tree_node*, tree_node*, tree_node*, tree_node*, gimple**, tree_node* (*)(tree_node*))'
/usr/bin/ld: gimple-fold.o: in function `gimple_build(gimple_stmt_iterator*, bool, gsi_iterator_update, unsigned int, combined_fn, tree_node*, tree_node*)':
gimple-fold.cc:(.text+0x7bf8): undefined reference to `gimple_simplify(combined_fn, tree_node*, tree_node*, gimple**, tree_node* (*)(tree_node*))'
/usr/bin/ld: gimple-fold.o: in function `gimple_build(gimple_stmt_iterator*, bool, gsi_iterator_update, unsigned int, combined_fn, tree_node*, tree_node*, tree_node*)':
gimple-fold.cc:(.text+0x7db3): undefined reference to `gimple_simplify(combined_fn, tree_node*, tree_node*, tree_node*, gimple**, tree_node* (*)(tree_node*))'
/usr/bin/ld: gimple-fold.o: in function `gimple_build(gimple_stmt_iterator*, bool, gsi_iterator_update, unsigned int, combined_fn, tree_node*, tree_node*, tree_node*, tree_node*)':
gimple-fold.cc:(.text+0x7f82): undefined reference to `gimple_simplify(combined_fn, tree_node*, tree_node*, tree_node*, tree_node*, gimple**, tree_node* (*)(tree_node*))'
/usr/bin/ld: gimple-fold.o: in function `gimple_fold_stmt_to_constant_1(gimple*, tree_node* (*)(tree_node*), tree_node* (*)(tree_node*))':
gimple-fold.cc:(.text+0xaeb9): undefined reference to `gimple_simplify(gimple*, gimple_match_op*, gimple**, tree_node* (*)(tree_node*), tree_node* (*)(tree_node*))'
/usr/bin/ld: gimple-fold.cc:(.text+0xb09b): undefined reference to `mprts_hook'
/usr/bin/ld: gimple-fold.o: in function `fold_stmt_1(gimple_stmt_iterator*, bool, tree_node* (*)(tree_node*))':
gimple-fold.cc:(.text+0xf49d): undefined reference to `gimple_simplify(gimple*, gimple_match_op*, gimple**, tree_node* (*)(tree_node*), tree_node* (*)(tree_node*))'
/usr/bin/ld: gimple-fold.cc:(.text+0xf637): undefined reference to `maybe_push_res_to_seq(gimple_match_op*, gimple**, tree_node*)'
/usr/bin/ld: gimple-fold.cc:(.text+0x103ed): undefined reference to `maybe_push_res_to_seq(gimple_match_op*, gimple**, tree_node*)'
/usr/bin/ld: gimple-fold.cc:(.text+0x10bee): undefined reference to `maybe_build_generic_op(gimple_match_op*)'
/usr/bin/ld: recog.o: in function `insn_invalid_p(rtx_insn*, bool)':
recog.cc:(.text+0x38bb): undefined reference to `added_clobbers_hard_reg_p(int)'
/usr/bin/ld: recog.cc:(.text+0x3921): undefined reference to `add_clobbers(rtx_def*, int)'
/usr/bin/ld: reg-stack.o: in function `move_for_stack_reg(rtx_insn*, stack_def*, rtx_def*)':
reg-stack.cc:(.text+0x2db2): undefined reference to `gen_movxf(rtx_def*, rtx_def*)'
/usr/bin/ld: targhooks.o: in function `default_print_patchable_function_entry(_IO_FILE*, unsigned long, bool)':
targhooks.cc:(.text+0x1e91): undefined reference to `gen_nop()'
/usr/bin/ld: targhooks.o: in function `default_speculation_safe_value(machine_mode, rtx_def*, rtx_def*, rtx_def*)':
targhooks.cc:(.text+0x2ab5): undefined reference to `gen_speculation_barrier()'
/usr/bin/ld: tree-cfgcleanup.o: in function `cleanup_control_flow_bb(basic_block_def*)':
tree-cfgcleanup.cc:(.text+0xa9e): undefined reference to `gimple_simplify(gimple*, gimple_match_op*, gimple**, tree_node* (*)(tree_node*), tree_node* (*)(tree_node*))'
/usr/bin/ld: tree-if-conv.o: in function `fold_build_cond_expr(tree_node*, tree_node*, tree_node*, tree_node*)':
tree-if-conv.cc:(.text+0x317): undefined reference to `gimple_match_op::resimplify(gimple**, tree_node* (*)(tree_node*))'
/usr/bin/ld: tree-if-conv.o: in function `predicate_bbs(loop*)':
tree-if-conv.cc:(.text+0x1f52): undefined reference to `gimple_match_op::resimplify(gimple**, tree_node* (*)(tree_node*))'
/usr/bin/ld: tree-scalar-evolution.o: in function `final_value_replacement_loop(loop*)':
tree-scalar-evolution.cc:(.text+0x6fbe): undefined reference to `gimple_bitwise_induction_p(tree_node*, tree_node**, tree_node* (*)(tree_node*))'
/usr/bin/ld: tree-ssa-ccp.o: in function `optimize_atomic_bit_test_and(gimple_stmt_iterator*, internal_fn, bool, bool)':
tree-ssa-ccp.cc:(.text+0x574b): undefined reference to `gimple_nop_convert(tree_node*, tree_node**, tree_node* (*)(tree_node*))'
/usr/bin/ld: tree-ssa-ccp.cc:(.text+0x5819): undefined reference to `gimple_nop_convert(tree_node*, tree_node**, tree_node* (*)(tree_node*))'
/usr/bin/ld: tree-ssa-ccp.cc:(.text+0x5fb2): undefined reference to `gimple_nop_atomic_bit_test_and_p(tree_node*, tree_node**, tree_node* (*)(tree_node*))'
/usr/bin/ld: tree-ssa-forwprop.o: in function `simplify_count_trailing_zeroes(gimple_stmt_iterator*)':
tree-ssa-forwprop.cc:(.text+0x5b7): undefined reference to `gimple_ctz_table_index(tree_node*, tree_node**, tree_node* (*)(tree_node*))'
/usr/bin/ld: tree-ssa-phiopt.o: in function `tree_ssa_phiopt_worker(bool, bool, bool)':
tree-ssa-phiopt.cc:(.text+0x8896): undefined reference to `gimple_match_op::resimplify(gimple**, tree_node* (*)(tree_node*))'
/usr/bin/ld: tree-ssa-phiopt.cc:(.text+0x88d2): undefined reference to `maybe_push_res_to_seq(gimple_match_op*, gimple**, tree_node*)'
/usr/bin/ld: tree-ssa-phiopt.cc:(.text+0x8b3c): undefined reference to `gimple_match_op::resimplify(gimple**, tree_node* (*)(tree_node*))'
/usr/bin/ld: tree-ssa-phiopt.cc:(.text+0x8b70): undefined reference to `maybe_push_res_to_seq(gimple_match_op*, gimple**, tree_node*)'
/usr/bin/ld: tree-ssa-sccvn.o: in function `vn_lookup_simplify_result(gimple_match_op*)':
tree-ssa-sccvn.cc:(.text+0x8f6b): undefined reference to `mprts_hook'
/usr/bin/ld: tree-ssa-sccvn.o: in function `vn_nary_build_or_lookup_1(gimple_match_op*, bool, bool)':
tree-ssa-sccvn.cc:(.text+0x92b7): undefined reference to `mprts_hook'
/usr/bin/ld: tree-ssa-sccvn.cc:(.text+0x92c0): undefined reference to `gimple_match_op::resimplify(gimple**, tree_node* (*)(tree_node*))'
/usr/bin/ld: tree-ssa-sccvn.cc:(.text+0x92c7): undefined reference to `mprts_hook'
/usr/bin/ld: tree-ssa-sccvn.cc:(.text+0x93df): undefined reference to `maybe_push_res_to_seq(gimple_match_op*, gimple**, tree_node*)'
/usr/bin/ld: tree-ssa-sccvn.o: in function `visit_stmt(gimple*, bool) [clone .isra.0]':
tree-ssa-sccvn.cc:(.text+0x129fd): undefined reference to `mprts_hook'
/usr/bin/ld: tree-ssa-sccvn.cc:(.text+0x12a10): undefined reference to `mprts_hook'
/usr/bin/ld: tree-ssa-sccvn.o: in function `process_bb(rpo_elim&, basic_block_def*, bool, bool, bool, bool, bool, bitmap_head*, bool)':
tree-ssa-sccvn.cc:(.text+0x13d0f): undefined reference to `gimple_simplify(tree_code, tree_node*, tree_node*, tree_node*, gimple**, tree_node* (*)(tree_node*))'
/usr/bin/ld: tree-vect-generic.o: in function `tree_vec_extract(gimple_stmt_iterator*, tree_node*, tree_node*, tree_node*, tree_node*)':
tree-vect-generic.cc:(.text+0x27f9): undefined reference to `gimple_match_op::resimplify(gimple**, tree_node* (*)(tree_node*))'
/usr/bin/ld: tree-vect-generic.cc:(.text+0x2813): undefined reference to `maybe_push_res_to_seq(gimple_match_op*, gimple**, tree_node*)'
/usr/bin/ld: tree-vect-loop.o: in function `check_reduction_path(dump_user_location_t, loop*, gphi*, tree_node*, code_helper*, vec<std::pair<ssa_op_iter, ssa_use_operand_t*>, va_heap, vl_ptr>&) [clone .constprop.0]':
tree-vect-loop.cc:(.text+0x2d0d): undefined reference to `gimple_extract_op(gimple*, gimple_match_op*)'
/usr/bin/ld: tree-vect-loop.cc:(.text+0x2d74): undefined reference to `canonicalize_code(code_helper, tree_node*)'
/usr/bin/ld: tree-vect-loop.o: in function `vect_analyze_scalar_cycles_1(_loop_vec_info*, loop*, bool)':
tree-vect-loop.cc:(.text+0x4d33): undefined reference to `gimple_extract_op(gimple*, gimple_match_op*)'
/usr/bin/ld: tree-vect-loop.o: in function `vect_find_reusable_accumulator(_loop_vec_info*, _stmt_vec_info*) [clone .isra.0]':
tree-vect-loop.cc:(.text+0x76fe): undefined reference to `directly_supported_p(code_helper, tree_node*, optab_subtype)'
/usr/bin/ld: tree-vect-loop.o: in function `vect_is_emulated_mixed_dot_prod(_loop_vec_info*, _stmt_vec_info*)':
tree-vect-loop.cc:(.text+0x7e08): undefined reference to `directly_supported_p(code_helper, tree_node*, optab_subtype)'
/usr/bin/ld: tree-vect-loop.o: in function `vectorizable_nonlinear_induction(_loop_vec_info*, _stmt_vec_info*, gimple**, _slp_tree*, vec<stmt_info_for_cost, va_heap, vl_ptr>*)':
tree-vect-loop.cc:(.text+0x9a2f): undefined reference to `directly_supported_p(code_helper, tree_node*, optab_subtype)'
/usr/bin/ld: tree-vect-loop.cc:(.text+0xa152): undefined reference to `directly_supported_p(code_helper, tree_node*, optab_subtype)'
/usr/bin/ld: tree-vect-loop.cc:(.text+0xa26a): undefined reference to `directly_supported_p(code_helper, tree_node*, optab_subtype)'
/usr/bin/ld: tree-vect-loop.o:tree-vect-loop.cc:(.text+0xa5e0): more undefined references to `directly_supported_p(code_helper, tree_node*, optab_subtype)' follow
/usr/bin/ld: tree-vect-loop.o: in function `vect_transform_reduction(_loop_vec_info*, _stmt_vec_info*, gimple_stmt_iterator*, gimple**, _slp_tree*)':
tree-vect-loop.cc:(.text+0xe341): undefined reference to `gimple_extract_op(gimple*, gimple_match_op*)'
/usr/bin/ld: tree-vect-loop.cc:(.text+0xe3b1): undefined reference to `canonicalize_code(code_helper, tree_node*)'
/usr/bin/ld: tree-vect-loop.cc:(.text+0xe3c4): undefined reference to `get_conditional_internal_fn(code_helper, tree_node*)'
/usr/bin/ld: tree-vect-loop.cc:(.text+0xefda): undefined reference to `commutative_binary_op_p(code_helper, tree_node*)'
/usr/bin/ld: tree-vect-loop.o: in function `vect_create_epilog_for_reduction(_loop_vec_info*, _stmt_vec_info*, _slp_tree*, _slp_instance*)':
tree-vect-loop.cc:(.text+0x151c8): undefined reference to `directly_supported_p(code_helper, tree_node*, optab_subtype)'
/usr/bin/ld: tree-vect-loop.o: in function `vectorizable_reduction(_loop_vec_info*, _stmt_vec_info*, _slp_tree*, _slp_instance*, vec<stmt_info_for_cost, va_heap, vl_ptr>*)':
tree-vect-loop.cc:(.text+0x17a50): undefined reference to `gimple_extract_op(gimple*, gimple_match_op*)'
/usr/bin/ld: tree-vect-loop.cc:(.text+0x17e08): undefined reference to `gimple_extract_op(gimple*, gimple_match_op*)'
/usr/bin/ld: tree-vect-loop.cc:(.text+0x18715): undefined reference to `directly_supported_p(code_helper, tree_node*, optab_subtype)'
/usr/bin/ld: tree-vect-loop.cc:(.text+0x18a72): undefined reference to `commutative_binary_op_p(code_helper, tree_node*)'
/usr/bin/ld: tree-vect-loop.cc:(.text+0x18a8c): undefined reference to `associative_binary_op_p(code_helper, tree_node*)'
/usr/bin/ld: tree-vect-loop.cc:(.text+0x18cab): undefined reference to `gimple_extract_op(gimple*, gimple_match_op*)'
/usr/bin/ld: tree-vect-loop.cc:(.text+0x19809): undefined reference to `directly_supported_p(code_helper, tree_node*, optab_subtype)'
/usr/bin/ld: tree-vect-loop.cc:(.text+0x19b2b): undefined reference to `get_conditional_internal_fn(code_helper, tree_node*)'
/usr/bin/ld: tree-vect-loop.cc:(.text+0x19be5): undefined reference to `get_conditional_internal_fn(code_helper, tree_node*)'
/usr/bin/ld: tree-vect-loop.cc:(.text+0x19da1): undefined reference to `get_conditional_internal_fn(code_helper, tree_node*)'
/usr/bin/ld: tree-vect-slp.o: in function `vect_build_slp_tree_1(vec_info*, unsigned char*, vec<_stmt_vec_info*, va_heap, vl_ptr>, unsigned int, poly_int<1u, unsigned long>*, bool*, bool*, tree_node**) [clone .constprop.0]':
tree-vect-slp.cc:(.text+0x49a8): undefined reference to `directly_supported_p(code_helper, tree_node*, optab_subtype)'
/usr/bin/ld: tree-vect-slp.cc:(.text+0x5065): undefined reference to `directly_supported_p(code_helper, tree_node*, optab_subtype)'
/usr/bin/ld: i386.o: in function `ix86_init_large_pic_reg(unsigned int)':
i386.cc:(.text+0x1d28): undefined reference to `gen_set_rip_rex64(rtx_def*, rtx_def*)'
/usr/bin/ld: i386.cc:(.text+0x1d3b): undefined reference to `gen_set_got_offset_rex64(rtx_def*, rtx_def*)'
/usr/bin/ld: i386.o: in function `ix86_memtag_set_tag(rtx_def*, rtx_def*, rtx_def*)':
i386.cc:(.text+0x20b6): undefined reference to `gen_andqi3(rtx_def*, rtx_def*, rtx_def*)'
/usr/bin/ld: i386.o: in function `ix86_memtag_extract_tag(rtx_def*, rtx_def*)':
i386.cc:(.text+0x21aa): undefined reference to `gen_andqi3(rtx_def*, rtx_def*, rtx_def*)'
/usr/bin/ld: i386.o: in function `ix86_memtag_add_tag(rtx_def*, poly_int<1u, long>, unsigned char)':
i386.cc:(.text+0x2376): undefined reference to `gen_andqi3(rtx_def*, rtx_def*, rtx_def*)'
/usr/bin/ld: i386.o: in function `ix86_zero_call_used_regs(HARD_REG_SET)':
i386.cc:(.text+0x46ed): undefined reference to `gen_avx_vzeroall()'
/usr/bin/ld: i386.o: in function `target_gen_call_value_pop(rtx_def*, rtx_def*, rtx_def*, rtx_def*, rtx_def*)':
i386.cc:(.text+0x4ca7): undefined reference to `gen_call_value_pop(rtx_def*, rtx_def*, rtx_def*, rtx_def*, rtx_def*)'
...
......
/usr/bin/ld: insn-recog.cc:(.text+0x18f967): undefined reference to `gen_split_30(rtx_insn*, rtx_def**)'
/usr/bin/ld: insn-recog.cc:(.text+0x18f9ae): undefined reference to `gen_split_7(rtx_insn*, rtx_def**)'
/usr/bin/ld: insn-recog.cc:(.text+0x18f9c3): undefined reference to `gen_split_6(rtx_insn*, rtx_def**)'
/usr/bin/ld: insn-recog.cc:(.text+0x18f9e5): undefined reference to `gen_split_4(rtx_insn*, rtx_def**)'
/usr/bin/ld: insn-recog.cc:(.text+0x18f9f2): undefined reference to `gen_split_13(rtx_insn*, rtx_def**)'
/usr/bin/ld: insn-recog.cc:(.text+0x18f9ff): undefined reference to `gen_split_12(rtx_insn*, rtx_def**)'
/usr/bin/ld: insn-recog.cc:(.text+0x18fa14): undefined reference to `gen_split_44(rtx_insn*, rtx_def**)'
/usr/bin/ld: insn-recog.cc:(.text+0x18fa9b): undefined reference to `gen_split_213(rtx_insn*, rtx_def**)'
/usr/bin/ld: insn-recog.cc:(.text+0x18faa8): undefined reference to `gen_split_21(rtx_insn*, rtx_def**)'
/usr/bin/ld: insn-recog.cc:(.text+0x18fab5): undefined reference to `gen_split_11(rtx_insn*, rtx_def**)'
/usr/bin/ld: insn-recog.o: in function `peephole2_insns(rtx_def*, rtx_insn*, int*)':
/usr/bin/ld: insn-recog.cc:(.text+0x1a8016): undefined reference to `gen_split_611(rtx_insn*, rtx_def**)'
/usr/bin/ld: combine.o: in function `recog_for_combine_1(rtx_def**, rtx_insn*, rtx_def**)':
combine.cc:(.text+0x22d1): undefined reference to `add_clobbers(rtx_def*, int)'
/usr/bin/ld: rtl-ssa/changes.o: in function `recog_level2(rtl_ssa::insn_change&, std::function<bool (rtl_ssa::insn_change&, unsigned int)>)':
changes.cc:(.text+0x25f): undefined reference to `add_clobbers(rtx_def*, int)'
/usr/bin/ld: tree-vect-patterns.o: in function `vect_recog_cond_expr_convert_pattern(vec_info*, _stmt_vec_info*, tree_node**)':
tree-vect-patterns.cc:(.text+0x1b0b): undefined reference to `gimple_cond_expr_convert_p(tree_node*, tree_node**, tree_node* (*)(tree_node*))'
/usr/bin/ld: tree-vect-patterns.o: in function `vect_mark_pattern_stmts(vec_info*, _stmt_vec_info*, gimple*, tree_node*)':
tree-vect-patterns.cc:(.text+0xa8b2): undefined reference to `gimple_extract_op(gimple*, gimple_match_op*)'
/usr/bin/ld: tree-vect-patterns.cc:(.text+0xa8ed): undefined reference to `gimple_extract_op(gimple*, gimple_match_op*)'
collect2: error: ld returned 1 exit status
make[1]: *** [/root/Github/aero/bundled/gcc/gcc/c/Make-lang.in:87: cc1] Error 1
make[1]: *** Waiting for unfinished jobs....
collect2: error: ld returned 1 exit status
make[1]: *** [/root/Github/aero/bundled/gcc/gcc/cp/Make-lang.in:145: cc1plus] Error 1
make[1]: Leaving directory '/root/Github/aero/sysroot/tool-builds/host-gcc/gcc'
make: *** [Makefile:4629: all-gcc] Error 2
xbstrap: Action compile-tool of tool stage ('host-gcc', 'compiler') failed
error: `xbstrap install -u --all` exited with a non-zero status code

Possible copyright infringement

Is this a actual doom wad from id?
image
Id like to preface that im not a lawyer, and this is not legal advice, contact your lawyer.

I havent used it on my branch but you might get in trouble if you distribute that...
it may be wise to revert the commit and talk to your lawyer,,,,,

ls returns "error: ENOENT"

image

I don't remember doing anything except rebooting Aero with ls previously working correctly to get the error.

cpu '0' panicked at 'pmm: frame allocator not initialized'

When running lua or tcc with a full sysroot it returns:

  ERROR        cpu '0' panicked at 'pmm: frame allocator not initialized'
  ERROR        aero_kernel/src/mem/paging/frame.rs:159:14
  ERROR        
  TRACE        ---------------------------------- BACKTRACE -----------------------------------
  TRACE         0: 0xffffffff8023e464 - rust_begin_unwind
  TRACE         1: 0xffffffff8025f5af - core::panicking::panic_fmt::h86713eebd88b31bf
  TRACE         2: 0xffffffff8026013b - core::panicking::panic_display::h705ec34ecff6e0dc
  TRACE         3: 0xffffffff802600ec - core::panicking::panic_str::hcce4f9aa570a143f
  TRACE         4: 0xffffffff802600c9 - core::option::expect_failed::h923bd113315aae1c
  TRACE         5: 0xffffffff80224102 - aero_kernel::mem::paging::frame::pmm_alloc::hd1efec97d53fb599
  TRACE         6: 0xffffffff8020ac7b - aero_kernel::userland::vm::Vm::handle_page_fault::habab6a5757c2c843
  TRACE         7: 0xffffffff8022dcb4 - __interrupt_page_fault
  TRACE         8: 0xffffffff80228d12 - page_fault
  TRACE         9: 0x0000750000001f75 - <unknown>
  TRACE        10: 0x0000750000001836 - <unknown>
  TRACE        11: 0x0000750000001250 - <unknown>
  TRACE        12: 0x000075000000ae8d - <unknown>
  TRACE        13: 0x0000750000008c4c - <unknown>
  TRACE        14: 0x00007500000140df - <unknown>
  TRACE        15: 0x0000000000000019 - <unknown>
  TRACE        16: <guard page>

Is there a fix for this issue?

README.md contains contradicting statements about running aero without any arguments

First statement

By default if you run ./aero.py without any arguments it will build the kernel and userland in debug mode and run it in QEMU. You can configure the behavior of the build system though. If you want to, you can use the --help option to read a brief description of what it can do.

Second statement
By default Aero is built in release mode with debug symbols that will produce both smaller and faster binaries.

Please clarify. When building with aero.py without any arguments what kind of binary does it produce?

  • it builds optimized release binaries without debug symbols
  • it builds optimized release binaries with debug symbols
  • it builds unoptimized debug binaries with debug symbols

Also please clarify. When the .iso image is launched what mode does it run in?

  • qemu launches and the iso runs in debug mode displaying the debug tracing, and debug symbols are available
  • qemu launches and the iso runs without any debug tracing, but when the iso crashes debug symbols are printed and available
  • qemu launches and the iso runs without any debug tracing, and when the iso crashes no debug symbols are printed nor available

Please add the above answered clarifications to the README.md.

Thank you in advance.

cpu '0' panicked at 'How's this possible?"

I just cloned the repository, installed the dependencies, realized that I didn't have pip installed so I installed that and then pip installed requests and xbstrap, ran it and realized meson is not installed so i installed that, then it finally compiled and ran. However, it is giving me this error.

Here is the full log:

info: qemu-system-x86_64 -cdrom build/aero.iso -m 9800M -smp 1 -serial stdio -drive file=build/disk.img,if=none,id=NVME1,format=raw -device nvme,drive=NVME1,serial=nvme --boot d -s -enable-kvm -cpu host
[0] arch/x86_64/mod.rs:141 info loaded paging
[0] arch/x86_64/mod.rs:144 info loaded heap
[0] arch/x86_64/mod.rs:161 info loaded bootstrap GDT
[0] arch/x86_64/mod.rs:177 info loaded IDT
[0] arch/x86_64/apic.rs:450 debug apic: detected APIC (addr=PhysAddr(0xfee00000), type=X2apic)
[0] arch/x86_64/interrupts/mod.rs:210 debug Disabled PIC
[0] arch/x86_64/mod.rs:180 info loaded APIC
[0] acpi/mod.rs:67 debug found RSDT at 0xffff8000bffe1550
[0] acpi/madt.rs:124 warn unknown MADT entry with id: 4
[0] arch/x86_64/mod.rs:185 info loaded ACPI
[0] arch/x86_64/mod.rs:188 info loaded TLS
[0] arch/x86_64/mod.rs:193 info loaded GDT
[0] main.rs:119 info loaded filesystem
[0] arch/x86_64/apic.rs:413 info registered redirect (vec=33, gsi=2)
[0] main.rs:122 info loaded timer
[0] main.rs:125 info loaded scheduler
[0] main.rs:130 info initialized kernel
[1] modules.rs:93 (tid=4, pid=4) debug Module { init: 0xffffffff80019320, ty: Block } false
[1] modules.rs:93 (tid=4, pid=4) debug Module { init: 0xffffffff8001b5c0, ty: Block } false
[1] modules.rs:93 (tid=4, pid=4) debug Module { init: 0xffffffff8002c930, ty: Block } false
[1] /home/mins/.cargo/git/checkouts/lai-rs-cfbd9520fedc57ae/b183090/src/host.rs:80 (tid=4, pid=4) debug loaded AML table 'DSDT', total 5060 bytes of AML code.
[1] /home/mins/.cargo/git/checkouts/lai-rs-cfbd9520fedc57ae/b183090/src/host.rs:80 (tid=4, pid=4) debug ACPI namespace created, total of 283 predefined objects.
[1] acpi/aml.rs:36 (tid=4, pid=4) debug aml: subsystem initialized
[1] modules.rs:93 (tid=4, pid=4) debug Module { init: 0xffffffff8005f0a0, ty: Block } false
[1] fs/devfs.rs:90 (tid=4, pid=4) debug installed device `card0`
[1] modules.rs:93 (tid=4, pid=4) debug Module { init: 0xffffffff80070be0, ty: Block } false
[1] modules.rs:93 (tid=4, pid=4) debug Module { init: 0xffffffff80097d30, ty: Block } false
[1] modules.rs:93 (tid=4, pid=4) debug Module { init: 0xffffffff800265a0, ty: Other } false
[1] drivers/pci.rs:863 (tid=4, pid=4) debug PCI device (device=HostBridge, vendor=Intel)
[1] drivers/pci.rs:863 (tid=4, pid=4) debug PCI device (device=IsaBridge, vendor=Intel)
[1] drivers/pci.rs:863 (tid=4, pid=4) debug PCI device (device=IdeController, vendor=Intel)
[1] drivers/block/ide/mod.rs:115 (tid=4, pid=4) trace ide: starting ide
[1] drivers/block/ide/mod.rs:120 (tid=4, pid=4) warn ide: dma not supported
[1] drivers/pci.rs:863 (tid=4, pid=4) debug PCI device (device=OtherBridgeDevice, vendor=Intel)
[1] drivers/pci.rs:863 (tid=4, pid=4) debug PCI device (device=VgaCompatibleController, vendor=Qemu)
[1] drivers/pci.rs:863 (tid=4, pid=4) debug PCI device (device=EthernetController, vendor=Intel)
[1] drivers/e1000.rs:300 (tid=4, pid=4) trace e1000: MAC address 52:54:0:12:34:56
[1] arch/x86_64/apic.rs:413 (tid=4, pid=4) info registered redirect (vec=35, gsi=11)
[1] drivers/e1000.rs:359 (tid=4, pid=4) trace e1000: successfully initialized
[1] drivers/pci.rs:863 (tid=4, pid=4) debug PCI device (device=NvmeController, vendor=Unknown(6966))
[1] drivers/block/nvme/mod.rs:276 (tid=4, pid=4) trace nvme: setting up NVMe controller
[1] drivers/block/nvme/mod.rs:294 (tid=4, pid=4) trace nvme: version (major=1, minor=3, tertiary=0)
[1] drivers/block/nvme/mod.rs:206 (tid=4, pid=4) trace nvme: resetting the controller to enabled=false state
[1] drivers/block/nvme/mod.rs:206 (tid=4, pid=4) trace nvme: resetting the controller to enabled=true state
[1] drivers/block/nvme/mod.rs:350 (tid=4, pid=4) trace nvme: identifed controller (vendor=6966, subsystem_vendor=6900)
[1] drivers/block/nvme/mod.rs:447 (tid=4, pid=4) trace nvme: identified namespace (blocks=1073741824, block_size=512, size=549755813888)
[1] drivers/block/nvme/mod.rs:459 (tid=4, pid=4) trace nvme: successfully initialized NVMe controller
[1] fs/devfs.rs:90 (tid=4, pid=4) debug installed device `nvme0n1`
[1] fs/block/mod.rs:268 (tid=4, pid=4) debug block: installed block device nvme0n1
[1] modules.rs:101 (tid=4, pid=4) info loaded PCI driver
[1] unwind.rs:180 (tid=4, pid=4) error cpu '0' panicked at 'How's this possible?'
[1] unwind.rs:184 (tid=4, pid=4) error aero_kernel/src/fs/mod.rs:306:20
[1] unwind.rs:188 (tid=4, pid=4) error 
[1] unwind.rs:113 (tid=4, pid=4) trace ---------------------------------- BACKTRACE -----------------------------------
[1] unwind.rs:150 (tid=4, pid=4) trace  0: 0xffffffff8001e122 - rust_begin_unwind
[1] unwind.rs:150 (tid=4, pid=4) trace  1: 0xffffffff800ce943 - core::panicking::panic_fmt::h069cad845d58975a
[1] unwind.rs:150 (tid=4, pid=4) trace  2: 0xffffffff800ccaea - core::option::expect_failed::h3131d62826b2db33
[1] unwind.rs:150 (tid=4, pid=4) trace  3: 0xffffffff8009cfad - aero_kernel::fs::lookup_path::hb12bef3f79c9b7f0
[1] unwind.rs:150 (tid=4, pid=4) trace  4: 0xffffffff80060c16 - aero_kernel::fs::block::launch::hcf95d05344e0485a
[1] unwind.rs:150 (tid=4, pid=4) trace  5: 0xffffffff8003df0b - aero_kernel::modules::init::hb44a459acd17bbfd
[1] unwind.rs:150 (tid=4, pid=4) trace  6: 0xffffffff8002eefe - aero_kernel::kernel_main_thread::hb44ea367342a5748
[1] unwind.rs:150 (tid=4, pid=4) trace  7: 0xffffffff8012bf98 - aero_kernel::AERO_SYSTEM_ALLOCATOR::ha4b070cde23b1144
[1] unwind.rs:121 (tid=4, pid=4) trace  8: <guard page>

Not sure if it's related or not, but another issue I am seeing is this

mins@debian:~/Sources/aero$ ./aero.py
error: host-rust not built as a part of the sysroot, skipping compilation of `userland/`
   Compiling compiler_builtins v0.1.91
   Compiling core v0.0.0 (/home/mins/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core)
   Compiling ahash v0.7.6
   Compiling num-traits v0.2.15
   Compiling memoffset v0.5.6
   Compiling log v0.4.17
   Compiling serde v1.0.149
   Compiling serde_json v1.0.89
   Compiling lai v0.1.0 (https://github.com/aero-os/lai-rs#b1830903)
   Compiling aero_kernel v0.1.0 (/home/mins/Sources/aero/src/aero_kernel)
   ....

Inter-process communication support

Currently Aero is lacking any sort of IPC layer, whether it be UNIX domain sockets or a custom IPC solution. Together with @Andy-Python-Programmer we came to a conclusion that for the sake of compatibility with other software (ease of porting to Aero) we will implement UNIX domain socket support for Aero, as well as other IPC primitives like signals. This is a tracking issue for progress of IPC in Aero. The list is going to be updated with more details as we go to provide a better view of the task.

  • Implement socket support in the kernel
  • Implement support for UNIX domain sockets (simplest form of IPC)
  • Write a basic "echo" server to demonstrate the IPC capabilities :^)

creating kernel "modules"

How would I access the kernel interfaces with kernel privileges (i.e. make a kernel module) in aero?

lang_items, prelude_import

rustc 1.73.0-nightly (08d00b40a 2023-08-09)

./aero.py

error: the feature `lang_items` is internal to the compiler or standard library
  --> aero_kernel/src/main.rs:31:5
   |
31 |     lang_items, // No tracking issue
   |     ^^^^^^^^^^
   |
   = note: using it is strongly discouraged
   = note: `#[deny(internal_features)]` on by default

error: the feature `prelude_import` is internal to the compiler or standard library
  --> aero_kernel/src/main.rs:39:5
   |
39 |     prelude_import, // No tracking issue
   |     ^^^^^^^^^^^^^^
   |
   = note: using it is strongly discouraged

Support for aarch64 and machine raspi3

Add support for aarch64 and use the qemu machine type raspi3 to emulate a raspberry pi 3 in qemu.

Checklist:

  • Port the build system to use the provided target triple
  • Create custom bootloader
  • Create support for aarch64 in the build system. Including creating the aarch64-aero_os target file
  • Support for aarch64 paging
  • Add aarch64 support to the bootloader
  • Move arch dependent stuff into traits
  • Create a new arch aarch64 and port every arch item

Purgeable Kernel Memory

We could have the concept of purgeable kernel memory that we can purge at any moment if we get out of memory. This way we could have a PurgeableOnce which will destroy and free its inner storage on OOM and that way we could get by using a lot less memory. Using this mechanism we could update all of the CACHES to use PurgeableOnce rather then just Once to store the inner data. This method can also be applied to userland memory mappings but we will prioritise purgeable kernel memory first since there are a lot of stuff that kernel caches and can be freed on OOM.

:^) big brain 🧠 :^)

ABI emulation

nuff said, we need (easy to create) kernel level ABI emulation early on(maybe even add a linux ABI emulator).

Feature request: modular shell interface

The current shell is pretty basic and could do with an overhaul. A registry of some form along with installation might be in order.
Using something like nushell would remove a lot of the current boilerplate shell code.

I wouldn't mind helping out since this is something I can wrap my mind head around 😅

Create ports tree

Umm, I dont think its exactly wise to put things like doom in the sysroot, you should create a ports tree where you can access these packages using the internet to download the source, then compiling it(and create eth drivers). Just a thought.
(I also dont want to cherry pick what commits I want to add to uwux, im building other projects rn)

Aero stuck with a black screen after boot in QEMU

I've downloaded aero from the actions artifact (link) but I couldn't be able to get the GUI or even the TTY. Running on QEMU, aero is stuck with a black screen with no response at all. Not sure if it's a graphics driver issue, so I jumped into VirtualBox and encountered this #74 issue.

Is there anything I'm missing?

Routing Sockets

Routing sockets are used for the kernel's routing tables to be read and altered (BSD). On the other hand, Netlink is a socket family used for inter-process communication (IPC) between both the kernel and userspace processes, and between different userspace processes. They also provide the functionality to alter the kernel's routing tables; initially designed to be a successor to the ioctl approach.

TL;DR: Routing sockets are specifically made for altering routing tables where as Netlink sockets serves different purposes.

Unresolved Questions

Which one of the API's would be better to implement? Could we improve the existing approach, if so, how?

Sources

Prebuilt sysroot from the CI

We could probably build the sysroot in the CI and fetch it if we dont want to build the sysroot locally. It should not be that expensive as in time since we could cache the build using some github ci extension :)

CI tests silently failing, possibly due to a rustc nightly update

Parts of Aero are failing to build on rustc 1.59.0-nightly (23f69235a 2021-12-20) with a following ICE: https://gist.github.com/czapek1337/7a3d0c7fa3381195604947e9e1c809a0

I've had both kernel and userland fail to build now. The problem is on a clean build cargo doesn't report that ICE, or we just silently ignore it in aero.py, on subsequent runs it's reported correctly. Due to that our CI tests seem to fail silently. A temporary fix to that is to use the --release cargo flag, but we should definitely investigate as to why that happens and possibly report that as a compiler bug.

Page Fault: Accessed Address: 0x0

When trying to run bash(and other programs but I cant reproduce them consistently) it returns:
ERROR EXCEPTION: Page Fault ERROR ERROR Accessed Address: 0x0 ERROR Error: USER_MODE | INSTRUCTION_FETCH ERROR ERROR Task Info: TID=6, PID=6 ERROR Stack: InterruptErrorStack { code: 0x14, stack: InterruptStack { preserved: PreservedRegisters { r15: 0x1, r14: 0x1, r13: 0x2d, r12: 0x7fffffffdffb, rbp: 0x7fffffffdcd0, rbx: 0x0, }, scratch: ScratchRegisters { r11: 0x216, r10: 0x9, r9: 0x0, r8: 0x1, rsi: 0x4ccc75, rdi: 0x4cd05c, rdx: 0x62, rcx: 0x469c50, rax: 0x0, }, iret: IretRegisters { rip: 0x0, cs: 0x33, rflags: 0x246, rsp: 0x7fffffffdc58, ss: 0x2b, }, }, } TRACE ---------------------------------- BACKTRACE ----------------------------------- TRACE 0: 0xffffffff8022e07e - __interrupt_page_fault TRACE 1: 0xffffffff80228d12 - page_fault TRACE 2: 0x000000000040643f - <unknown> TRACE 3: 0x0000000000404e69 - <unknown> TRACE 4: 0x0000000041430d67 - <unknown> TRACE 5: 0x0000000000405cc7 - <unknown>
Also maybe a userland process shouldn't cause a kernel panic by accessing kernel memory....

Add Gitpod integration

Gitpod (https://gitpod.io) is a cool and dandy solution to “works on my machine” issues!
Workspaces are ephemeral and run in the cloud. It also allows you to work from any device. I personally use an iPad.

A .gitpod.yml file would be the only addition. This file can handle things such as a VNC client (as a remote desktop), dependency installation, etc.

I'll probably create a PR for this sometime soon.

Any usable aero.iso & disk.img which can be downloaded for a quick test?

I 've tried 3 days to build from source and still been stucked by all kinds of error like this:

[1] unwind.rs:177 (tid=4, pid=4) error cpu '0' panicked at 'called `Result::unwrap()` on an `Err` value: EntryNotFound'
[1] unwind.rs:181 (tid=4, pid=4) error aero_kernel/src/main.rs:204:21
[1] unwind.rs:185 (tid=4, pid=4) error 
[1] unwind.rs:110 (tid=4, pid=4) trace ---------------------------------- BACKTRACE -----------------------------------
[1] unwind.rs:147 (tid=4, pid=4) trace  0: 0xffffffff80053823 - rust_begin_unwind
[1] unwind.rs:147 (tid=4, pid=4) trace  1: 0xffffffff800d8215 - core::panicking::panic_fmt::he0ef9dac8b938339
[1] unwind.rs:147 (tid=4, pid=4) trace  2: 0xffffffff800d8675 - core::result::unwrap_failed::hde876a6a96296aa2
[1] unwind.rs:147 (tid=4, pid=4) trace  3: 0xffffffff8004e026 - core::result::Result<T,E>::unwrap::h79fbd27998fc04df
[1] unwind.rs:147 (tid=4, pid=4) trace  4: 0xffffffff80053e24 - aero_kernel::kernel_main_thread::he6ef85a90cd4927e
[1] unwind.rs:147 (tid=4, pid=4) trace  5: 0xffffffff8013bb18 - aero_kernel::AERO_SYSTEM_ALLOCATOR::h28ef31b44d263ea3
[1] unwind.rs:118 (tid=4, pid=4) trace  6: <guard page>

It's frustrating and almost discouraging/painful for a learner who wants to try out the Aero project.

Can someone who has successfully build up aero.iso & disk.img give us these 2 usable image files for downloading and testing?

Evaluate Profile-Guided Optimization (PGO)

Hi!

According to my tests, Profile-Guided Optimization (PGO) helps with optimizing to a lot of software (including OS like Linux and Windows - link). I think it's worth trying to apply PGO to Aero.

We need to perform PGO benchmarks on Aero. If it shows improvements - add a note to the documentation about possible improvements to Aero's performance with PGO. After that, providing an easier way (e.g., a build option) to build the OS with PGO can also be useful for the maintainers and end-users. Also, applying PGO on Aero can be an example for other operating systems.

For the Rust projects, I recommend starting with cargo-pgo.

If anyone already did PGO benchmarks with Aero - it would be awesome to see the results.

Build script throwing subprocess "Exec format error"

Hello! There's a bit of an issue with the build process, and the way the bundled cargo is called from aero.py seems to disagree with subprocess on my system for some reason.

Results of ./aero.py --test:

Traceback (most recent call last):
  File "/Users/<name>/Documents/Programming/aero/./aero.py", line 665, in <module>
    main()
  File "/Users/<name>/Documents/Programming/aero/./aero.py", line 644, in main
    user_bins = build_userland(args)
  File "/Users/<name>/Documents/Programming/aero/./aero.py", line 371, in build_userland
    return build_cargo_workspace('userland', 'build', ['--package', 'utest', *cmd_args], get_cargo())
  File "/Users/<name>/Documents/Programming/aero/./aero.py", line 261, in build_cargo_workspace
    code, _, _ = run_command([cargo, command, *args], cwd=cwd)
  File "/Users/cat/Documents/Programming/aero/./aero.py", line 223, in run_command
    output = subprocess.run(args, **kwargs)
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/subprocess.py", line 505, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/subprocess.py", line 951, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/subprocess.py", line 1821, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
OSError: [Errno 8] Exec format error: '../bundled/host-rust-prebuilt/aero/host-cargo/bin/cargo'
  • python3 --version: Python 3.9.6
  • Host Operating System: macOS Ventura 13.0
  • Host Architecture: aarch64-darwin

note: I'm well aware aarch64-darwin isn't officially supported, but it's one of the few (if not the only) mainstream consumer platform using the aarch64 architecture, and at least the only aarch64-based device I have access to for testing.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.