-
-
Notifications
You must be signed in to change notification settings - Fork 191
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
Use musl cross make for Heads, Linux, coreboot and edk2 #653
Conversation
Signed-off-by: Trammell Hudson <hudson@trmm.net>
Signed-off-by: Trammell Hudson <hudson@trmm.net>
Signed-off-by: Trammell hudson <hudson@trmm.net>
Signed-off-by: Trammell hudson <hudson@trmm.net>
Signed-off-by: Trammell hudson <hudson@trmm.net>
Signed-off-by: Trammell hudson <hudson@trmm.net>
@@ -2,88 +2,61 @@ version: 2 | |||
jobs: | |||
build: | |||
docker: | |||
- image: osresearch/heads-ubuntu:16.04 | |||
- image: osresearch/musl-cross:38e52db |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@osresearch Having the toolchain prebuilt is a nice shortcut for testing, but wouldn't we better have a clean checkout of up to date, mainstream docker images (ubuntu:18.04, ubuntu:latest, fedora, debian, etc) so that we can trace build problems from the host toolchain changes from one build to the other and across different images, the default being ubuntu:18:04?
Consequently, from CircleCI at least, anyone wanting to build Heads themselves would simply have to subscribe to the project.
I'm not a CI expert, but the ideal down this path would be somewhat to have the same Heads codebase, and have somehow environment variables specifying the host docker image to be used and the board config to be built, so that one CircleCI/GitlabCI configs can build for all hosts and boards config, requiring only different CI environment variables, based on the same code base to test different hosts and boards.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM along with #654
This replaces the musl-cross checkout with either a local build of musl-cross-make or an external one specified via
$(CROSS)
environment variable. This is really helpful in reducing the size of Heads trees since they no longer need to contain multiple gcc builds. It also changes the circleci to use a docker image with musl-cross-make pre-built, allowing a somewhat faster CI cycle.One remaining issue is that the musl-cross-make does need both x86_64-linux-musl and i386-linux-musl since coreboot is a 32-bit build.
x86_64-linux-musl-gcc -m32
should work, except for a problem with libgcc.a.