Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

initial support for building linux kernel with buildrump.sh #78

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

thehajime
Copy link

This commit introduces a new options for buildrump.sh, which is '-l'
option to build Linux kernel. Linux kernel is based on Linux Kernel
Library (LKL) with not-upstreamed patches to implement with rump
hypercall interfaces.

Since LKL is not yet upstreamed and development is still ongoing, the
commit tries to minimize future modifications to this script
(buildrump.sh) by specifying interfaces to build Linux kernel.

Currently, when '-l' option is specified, NetBSD rump kernel code will
be also built in addition to Linux kernel build since Linux part
requires headers files (i.e., include/rump) to build it.

A few more travis tests are also added though it's only build tests at
this moment though.

Signed-off-by: Hajime Tazaki [email protected]

@thehajime
Copy link
Author

I have cleaned up, refactored/rebased, rewritten the commit message, and travis script to raise this PR up again.
(took so long time after the initial PR, but I'm still working on it :))

To summarize, I followed @anttikantee's suggestion (below) to not treat an alternate rump kernel as a second-class citizen. The split files (netbsd.sh and linux.sh) from the main script are for the purpose, but still leave the default build to NetBSD rump kernel as it was.

http://www.freelists.org/post/rumpkernel-users/2-PRs-for-Linux-kernel-with-rump-hypercall,1

I will fill another PR to rumprun later.

@thehajime thehajime force-pushed the linux-libos branch 2 times, most recently from d3402b4 to 5a1633f Compare March 14, 2017 03:16
thehajime added a commit to libos-nuse/frankenlibc that referenced this pull request Mar 21, 2017
Signed-off-by: Hajime Tazaki <[email protected]>
@thehajime thehajime force-pushed the linux-libos branch 3 times, most recently from 039d9be to 294a478 Compare March 26, 2017 01:15
This commit introduces a new options for buildrump.sh, which is '-l'
option to specify which rumpkernel (netbsd or linux) is used (default:
netbsd).  Linux kernel is based on Linux Kernel Library (LKL) with
non-upstreamed patches to implement with rump hypercall interfaces.

Since LKL is not yet upstreamed to Linus tree and development is still
ongoing, the commit tries to minimize future modifications to this
script (buildrump.sh) by specifying interfaces to build Linux kernel.

The new rumpkernel support involves the script structure refactor to
split each rumpkernel dependent commands into separate files (netbsd.sh
and linux.sh).

Currently, when '-l' option is specified, NetBSD rump kernel code will
be also built in addition to Linux kernel build since Linux part
requires headers files (i.e., include/rump) to build it.

A few more travis tests are also added though it's only build tests and
no execution tests for Linux at this moment though.  Plus, clang build
is marked as 'allow_failure' since Linux kernel isn't able to build with
clang so far.

There are still a couple of limitations:
- LKL_SRCDIR is hardcoded, which uses the current dir of the (root)
script.
- only build with standalone buildrump.sh.  standalone execution (i.e.,
without rumprun or frankenlibc) are not implemented since LKL itself has
to do it.
- thus, no standalone test are implemented either.

Signed-off-by: Hajime Tazaki <[email protected]>
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.

1 participant