-
Notifications
You must be signed in to change notification settings - Fork 119
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
llvm.org: reduce installed size #2562
base: main
Are you sure you want to change the base?
Conversation
PR Summary
|
On darwin+aarch64 it looks like this significantly decreases the size of the unpacked artifact: before: 3.1G Will dig into the Linux failures, which I believe can be addressed by tweaking some options. |
I tested locally and linux passes if we remove the other linux specific $ du -hd1 prefixes/linux/llvm.org/v16/
169M prefixes/linux/llvm.org/v16//bin
44K prefixes/linux/llvm.org/v16//libexec
46M prefixes/linux/llvm.org/v16//include
683M prefixes/linux/llvm.org/v16//lib
180K prefixes/linux/llvm.org/v16//share
899M prefixes/linux/llvm.org/v16/ |
Nice work! (I still haven't gotten tea set up on my Linux box yet.) The only thing left to do is to consider whether this change is desirable. My understanding is that this will lead to a small performance penalty for compiling with LLVM, which is maybe not such a big deal but at the margins (e.g., compiling Firefox or Chrome) would be an issue. |
|
this was ofc just a test to see if it helped, those ARGS were added by @jhheider for a reason presumably. |
I got this once too, but only once. Worked a second time after cleaning. So… that's weird. edit: no I'm wrong it only builds if we remove the |
I suspect that some of the build opts conflict between building llvm/clang/lldb and compiler-rt. I'm testing something out now to spin off compiler-rt into My preference would actually be to try to split these packages up fully (such that we have an |
|
all good points! forgot about meta-packages / package groups, will give it a shot |
This may help shrink binary sizes by avoiding static linking.
Currently building/testing
|
Hm. That sounds amazing. We might have a version-locking issue. @mxcl we could handle |
We could just have everything that currently depends on |
That's likely the right move. We could, in which might mean renaming the old package and keeping it on hand, in case it's needed. @ABevier would hate us for that, and rightly. this change is going to require precision. |
seems like a very well thought through organization! great work. Will this pkg become llvm.org/core? |
Yes, currently testing to see if all the pieces work well together on darwin+linux. Didn't want to push yet to avoid tying up CI for something that might not work |
Okay, figured clang out, it was a bug in llvm's build system. Testing now... |
This is getting pretty close to done, the package yamls are close to their final state. I have tested this on macOS arm64, and am in the process of doing the same for linux intel and arm. I need to come up with a better test for |
env: | ||
ARGS: | ||
- -Wl,-rpath,$TEA_PREFIX | ||
build: mkdir -p {{prefix}} && touch {{prefix}}/.tea-empty |
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.
time to support no src no build pkgs probs! what you think @jhheider
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.
Meta packages are a thing. We could probably use them just in resolution. If they don't have a build: key we can assume they're just dependency bundles.
The pantry workflow just needs to yeet them through.
This may help shrink binary sizes by avoiding static linking.