GitHub user navsan opened a pull request:
https://github.com/apache/incubator-quickstep/pull/13
Add option to build using shared libraries.
Modify the build process to allow optional use of shared libraries instead
of the static libraries we use today. The benefits are
- much smaller build directory size (Iâm seeing < 5GB for release mode,
as opposed to the usual 40GB with static libs)
- slightly faster build time (went from 18-20min to 14-15min on the
CloudLab machine with 40 jobs)
- reduced memory consumption (average memory consumption during build went
from 12GB to 8.5GB)
To use this, just turn on the CMake flag BUILD_SHARED_LIBS. Currently, we
don't support the use of both shared and static libraries in the build, because
that leads to some really nasty bugs with the common third party libraries
(GFlags, GLog, ProtoBuf) due to double-linking.
All tests passed locally (both with the flag turned on and off).
Also, see the attached shell script
[build.shared.sh.txt](https://github.com/apache/incubator-quickstep/files/305928/build.shared.sh.txt)
(renamed to .txt to attach to this PR). In a clean build directory, it runs
the build commands, outputs them to a log file with timestamps (so that we can
profile the build process if we want to), records the memory and cpu load
statistics periodically, and computes the time taken and the average memory
consumption during the build.
All of the changes in the commit are to do with linking to gflags library,
since its name depends on whether it's shared or static.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/apache/incubator-quickstep build_shared
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/incubator-quickstep/pull/13.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #13
----
commit 7eb9cf762f3c3ed926cc33f653bed4a868b2873c
Author: Navneet Potti <[email protected]>
Date: 2016-06-08T21:59:07Z
Add option to build using shared libraries.
commit 520b4e0353c4675f9a9fc30d79da6fd7398c2496
Author: Navneet Potti <[email protected]>
Date: 2016-06-08T22:51:23Z
Oops, missed a file
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---