-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Add option to build monolithic, shared library #10732
base: main
Are you sure you want to change the base?
Conversation
✅ Deploy Preview for meta-velox canceled.
|
@assignUser, this is just a reply to the mentioned issue in PR description. In Gluten, we are using static folly lib, as well as gflags, for velox to link. Can upstream velox link these static libs also? |
@PHILO-HE that's what we normaly do as well but when building velox as an .so it doesn't work because of the mentioned linking issue. |
@assignUser, I see. Thanks for your clarification! |
f0b2964
to
654ad37
Compare
I am unclear on the one failed test, would be great if someone could have a look. But otherwise this is pretty done, we are currently using a temp CI image of course. |
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.
Thanks a lot for this!
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.
@assignUser Thanks for adding this!
654ad37
to
9ac8be2
Compare
I tried doing the monolithic shared build and ran into the error:
|
add accidentaly removed gtest envvar back in
This reverts commit d179be0.
a6afca1
to
abfd6e4
Compare
This introduces the option to build a shared version of the monolithic
libvelox.a
, the result is a much smaller build tree, library and executables. They are now so small that moving them is much easier, e.g. for test sharding.I also fixed some miscellaneous things in this PR:
FILESYSTEM
, the link is not necessary with GCC >= 9 which is our minimum.FOLLYBENCHMARK
with the proper targetInitially I looked at forcing a bundled build of folly and gflags to make sure they are shared but that introduces weird rpath issues when the dependencies are also on the system (like our CI image), instead I just changed the build script to build folly as shared in the image, we maybe want to make that an option so people can keep folly as static (though even for static build shared folly will likely make the binary size much smaller.). If folly is build from source it will be built static or shared matching the velox build.