Skip to content

Bincompat helloworld g++ - #113

Open
Antonio-88 wants to merge 2 commits into
unikraft:mainfrom
Antonio-88:bincompat-helloworld-g++
Open

Bincompat helloworld g++#113
Antonio-88 wants to merge 2 commits into
unikraft:mainfrom
Antonio-88:bincompat-helloworld-g++

Conversation

@Antonio-88

@Antonio-88 Antonio-88 commented Jul 8, 2026

Copy link
Copy Markdown

Added bincompat-c++-hello
Added bincompat-c++-http

@Antonio-88
Antonio-88 marked this pull request as ready for review July 8, 2026 12:56
@Antonio-88
Antonio-88 marked this pull request as draft July 8, 2026 12:57
@Antonio-88
Antonio-88 force-pushed the bincompat-helloworld-g++ branch from fbac4b5 to b5e4639 Compare July 11, 2026 10:44
@Antonio-88
Antonio-88 marked this pull request as ready for review July 11, 2026 10:45
@razvand
razvand requested a review from Copilot July 11, 2026 11:29
@razvand razvand self-assigned this Jul 11, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds two new Unikraft binary-compatibility examples that run Linux-ELF C++ programs via the ELF loader: a minimal “hello” and a simple HTTP server, including rootfs build artifacts, platform run scripts, and scripted test harnesses.

Changes:

  • Introduce bincompat-c++-hello: C++ “Bye, World!” ELF + QEMU/Firecracker build/run/test scripts.
  • Introduce bincompat-c++-http: statically-linked HTTP server ELF + QEMU/Firecracker build/run/test scripts.
  • Add documentation and helper scripts (setup.sh, .scripts/*, Firecracker JSON configs) to automate setup/build/run/test flows.

Reviewed changes

Copilot reviewed 41 out of 41 changed files in this pull request and generated 9 comments.

Show a summary per file
File Description
bincompat-c++-http/setup.sh Creates workdir/ and symlinks required repo(s) into it.
bincompat-c++-http/rootfs/Makefile Builds the Linux-ELF HTTP server binary for inclusion in the initrd.
bincompat-c++-http/rootfs/http_server.cpp Implements a simple socket-based HTTP server returning “Bye, World!”.
bincompat-c++-http/rootfs/.gitignore Ignores the built http_server binary in rootfs.
bincompat-c++-http/README.md Documents build/run workflow for the HTTP server on Unikraft ELF loader.
bincompat-c++-http/fc.x86_64.json Firecracker config to boot the ELF loader with initrd and run /http_server.
bincompat-c++-http/.scripts/test/wrapper.sh Test wrapper intended to validate the app behavior after starting a VM.
bincompat-c++-http/.scripts/test/README.md Documents the scripted test flow for this app.
bincompat-c++-http/.scripts/test/common.sh Common test helpers (cleanup, start instance, curl/ping checks).
bincompat-c++-http/.scripts/test/all.sh Runs build+run smoke tests for qemu/fc variants and logs output.
bincompat-c++-http/.scripts/test/.gitignore Ignores test logs directory.
bincompat-c++-http/.scripts/run/qemu.x86_64 Starts QEMU with networking and runs /http_server under elfloader.
bincompat-c++-http/.scripts/run/fc.x86_64 Starts Firecracker using fc.x86_64.json.
bincompat-c++-http/.scripts/README.md Documents .scripts build/run usage.
bincompat-c++-http/.scripts/common.sh Sets elfloader base app and provides helper to build it.
bincompat-c++-http/.scripts/build/rootfs.x86_64 Builds rootfs ELF and packages initrd.cpio.
bincompat-c++-http/.scripts/build/qemu.x86_64 Builds rootfs + qemu kernel for base elfloader app.
bincompat-c++-http/.scripts/build/kernel.qemu.x86_64 Builds elfloader base kernel for QEMU.
bincompat-c++-http/.scripts/build/kernel.fc.x86_64 Builds elfloader base kernel for Firecracker.
bincompat-c++-http/.scripts/build/fc.x86_64 Builds rootfs + fc kernel for base elfloader app.
bincompat-c++-http/.gitignore Ignores local build outputs (workdir/, initrd.cpio).
bincompat-c++-hello/setup.sh Creates workdir/ and symlinks required repo(s) into it.
bincompat-c++-hello/rootfs/Makefile Builds the Linux-ELF C++ hello binary for inclusion in the initrd.
bincompat-c++-hello/rootfs/helloworld.cpp Implements the “Bye, World!” C++ hello program.
bincompat-c++-hello/rootfs/.gitignore Ignores the built hello-c++ binary in rootfs.
bincompat-c++-hello/README.md Documents build/run workflow for the C++ hello app on Unikraft ELF loader.
bincompat-c++-hello/fc.x86_64.json Firecracker config to boot the ELF loader and run /hello-c++.
bincompat-c++-hello/.scripts/test/wrapper.sh Test wrapper that checks for expected output.
bincompat-c++-hello/.scripts/test/README.md Documents the scripted test flow for this app.
bincompat-c++-hello/.scripts/test/common.sh Common test helpers (cleanup, start instance, curl/ping checks).
bincompat-c++-hello/.scripts/test/all.sh Runs build+run smoke tests for qemu/fc variants and logs output.
bincompat-c++-hello/.scripts/test/.gitignore Ignores test logs directory.
bincompat-c++-hello/.scripts/run/qemu.x86_64 Starts QEMU and runs /hello-c++ under elfloader.
bincompat-c++-hello/.scripts/run/fc.x86_64 Starts Firecracker using fc.x86_64.json.
bincompat-c++-hello/.scripts/common.sh Sets elfloader base app and provides helper to build it.
bincompat-c++-hello/.scripts/build/rootfs.x86_64 Builds rootfs ELF and packages initrd.cpio.
bincompat-c++-hello/.scripts/build/qemu.x86_64 Builds rootfs + qemu kernel for base elfloader app.
bincompat-c++-hello/.scripts/build/kernel.qemu.x86_64 Builds elfloader base kernel for QEMU.
bincompat-c++-hello/.scripts/build/kernel.fc.x86_64 Builds elfloader base kernel for Firecracker.
bincompat-c++-hello/.scripts/build/fc.x86_64 Builds rootfs + fc kernel for base elfloader app.
bincompat-c++-hello/.gitignore Ignores local build outputs (workdir).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread bincompat-c++-http/.scripts/test/wrapper.sh Outdated
Comment thread bincompat-c++-http/rootfs/http_server.cpp
Comment thread bincompat-c++-http/README.md Outdated
Comment thread bincompat-c++-http/README.md Outdated
Comment thread bincompat-c++-http/README.md Outdated
Comment thread bincompat-c++-http/.scripts/test/README.md Outdated
Comment thread bincompat-c++-hello/.scripts/test/README.md Outdated
Comment thread bincompat-c++-hello/README.md Outdated
Comment thread bincompat-c++-http/.scripts/README.md
Signed-off-by: Antonio Mincu <mincu_antonio@icloud.com>
Signed-off-by: Antonio Mincu <mincu_antonio@icloud.com>
@Antonio-88
Antonio-88 force-pushed the bincompat-helloworld-g++ branch from 58f6a28 to ffc0ee6 Compare July 11, 2026 12:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants