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.
---

Reply via email to