---
# System prepended metadata

title: 'Application Compatibility WG, February 22, 2023'
tags: [' app-compat', ' musl', unikraft]

---

---
title: "Application Compatibility WG, February 22, 2023"
tags: unikraft, musl, app-compat
datetime: 2023-02-22T12:00:00+02:00
location: Online, Discord (https://bit.ly/UnikraftDiscord), the `#monkey-business` voice channel
teams:
- musl-syscall
participants:
- Andra
- Andrei
- Cosmin
- Florin
- Maria
- Pierre
- Simon
- Stefan
- Teodor
---

## :dart: Agenda

- Status update
- Next steps

## :closed_book: Discussions

AM:

- Try to extract the args used by the unikernel.
- It was possible to get the args from ukboot.
- This was removed and I have issues to extract the args.
- I'm working on procfs.

SK:

- There will be an update for inittab, would help with parsing args.
- Every init could get args from the cmdline.
- We had discussions what to cache or not.

AM:

- Will wait after the inittab update is available.
- Working on improvements for procfs.
- Should cache the static ones, based on the previous discussions.

CV:

- I tried to compile using the posix-mmap, but there is a missing header.
- I built with musl.
- Tried to use a 4K page when the mmap error appears.
- https://gist.github.com/csvancea/ef35f935be76a6f99b43a6213fbe72ec
- Looking into the openjdk app.

SK:

- Should not pick headers / libs from your system.
- I tested the elfloader with nolibc.
- There are ukmmap and posix-mmap, in the future functionality from ukmmap will be merged into posix-mmap.
- posix-mmap is with full paging support.

FP:

- Managed to run the nginx test suite with Loupe.
- The output of the log files occupied too much space on my PC, reduced the output.
- There is no proper cleanup, there were so many processes.

PO:

- Should check this out - https://github.com/unikraft/loupe/compare/staging...pierre-smart-kill - for the cleanup issue.
- Should use signaling to kill the entire process group.

FP:

- I talked with Razvan to port the Node.js one.

SK:

- Should port using the "app-elfloader".

MS:

- Razvan told me I should be working on the app-compat, I'm new to this.
- I will look into the elfloader readme PR.

SK:

- There is a PR on how to execute and debug statically and dynamically linked ELF binaries
- https://github.com/unikraft/app-elfloader/pull/7
- Can compile using the Makefile from the repo.
- There is a pool of statically linked apps; then use dynamically linked ones.
- https://github.com/unikraft/static-pie-apps

PO:

- My student is still working on porting tests for Unikraft.
- Loupe graph - https://discord.com/channels/762976922531528725/992447887864762419/1077914394580762705
- Will report the results for the Linux testing suite.

SK:

- I'm working on a patch series to setup the initrd.
- Also setup the environment variables.
- Please find time to do testing for the apps catalogue.

SJ:

- No updates during this week.
- Test the elfloader with statically linked apps as next step.
- Looking into the sqlite app.

TT:

- There is an unhandled trap 8 showed when using posix-mmap.
- https://discord.com/channels/762976922531528725/992447887864762419/1077918072754688091
- Also looking through the statically linked apps.
- Looking into the python app.


## :wrench: TODOs and Decisions

AM:

- Continue with the procfs improvements development.

CV, SJ, TT:

- Continue the testing of the chosen apps.
    - CV: openjdk app
    - SJ: sqlite app
    - TT: python app

FP:

- Check solution for proper cleanup, after running nginx with Loupe.
- Port Node.js using the elfloader.

MS:

- Look into the elfloader readme.

PO:

- Report the results for the Linux testing suite.

SK:

- Continue the development for the elfloader to setup the initrd and the environment variables.