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

Create Dockerfile/Docker image to build LLVM #6

Open
kbeyls opened this issue Oct 10, 2023 · 4 comments
Open

Create Dockerfile/Docker image to build LLVM #6

kbeyls opened this issue Oct 10, 2023 · 4 comments

Comments

@kbeyls
Copy link

kbeyls commented Oct 10, 2023

The idea is that having a dockerfile available will remove a number of potential build issues that newcomers could struggle with.

@kbeyls
Copy link
Author

kbeyls commented Oct 10, 2023

@rsundahl will create a Dockerfile that (minimally) will build llvm-project agnostic of the host Docker OS.

@rsundahl
Copy link

Playing with this... NB: llvm-project already has some Dockerfile support and I started there but going for a bare-bones simple Dockerfile. Moved from Debian to Alpine for a lighter lift and it is, but relatively. It's still a big bloat. Optimizing build sequencing for overlayfs. First layer: minimal Alpine. Second layer: git clone. Third layer: additional packages. Fourth layer: build artifacts.

@kbeyls
Copy link
Author

kbeyls commented Apr 15, 2024

This idea was raised again at the EuroLLVM 2024 community.o workshop as maybe one of the most effective ways to help newcomers overcome the first hurdle when starting with LLVM: how to build it. This continues to be a non-trivial challenge.

@rsundahl
Copy link

That's good to know. I spent a decent amount of time on this after the last meeting but either the size of the container is too big, the amount of data needed to download during the build of the image is too much, or the amount of resources needed for Docker to be happy building it, are acceptable. I might have to go back to it and pick one thing to tolerate, go into detail on how to configure for the demand, and then optimize around the remaining things that I can control. One thing that stands out for me is that staying "current" with the llvm repo is just too much and not valuable enough to entertain. I was thinking that at some cadence that's roughly yearly(?) we do the work of putting together a reference container or Dockerfile bound to downloading building that release, and then we go with it for the year. At least that way, we can write tutorials, demos, etc. on a stable platform. I don't think we'd lose much doing that and we'd know that things are working and stable for our users and that the work of bringing thing up to the next release will be contained and not some ongoing nightmare.

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

No branches or pull requests

2 participants