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

Use musl cross make for Heads, Linux, coreboot and edk2 #653

Merged
merged 7 commits into from
Jan 15, 2020

Conversation

osresearch
Copy link
Collaborator

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.

@@ -2,88 +2,61 @@ version: 2
jobs:
build:
docker:
- image: osresearch/heads-ubuntu:16.04
- image: osresearch/musl-cross:38e52db
Copy link
Collaborator

@tlaurion tlaurion Jan 10, 2020

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.

@flammit flammit mentioned this pull request Jan 12, 2020
Copy link
Collaborator

@flammit flammit left a 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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants