• P
    Major CircleCI/Linux fixes / tweaks / enhancements (#7078) · 92731b6b
    Peter Dillinger 提交于
    Summary:
    Primarily, this change adds a way to work around a bug limiting the effective output (and therefore debugability) of the Linux builds using parallel make. We would get
    make[1]: write error: stdout
    probably due to a kernel bug, apparently affecting both available ubuntu 16 machine images (maybe not affecting docker images, less horsepower). https://bugs.launchpad.net/ubuntu/+source/linux-signed/+bug/1814393
    
    Now in the CircleCI config, make output on Ubuntu is piped through a custom 'cat' that ignores EAGAIN errors, which seems to fix the problem.
    
    Significant other changes:
    * Add another linux build that combines
      * LIB_MODE=shared, to ensure this works with compile and unit test execution
      * Alternative rocksdb namespace, to ensure this works (not rely on Travis)
      * ASSERT_STATUS_CHECKED=1, but with building all unit tests and running those expected to pass with it
    * Run release build with and without gflags. (Was running only without, ignore large swaths of code in a normal release build! Two regressions in this build, only with gflags, in the last week not caught by CI!)
    * Use gflags with unity and LITE build, as typical case.
    
    Debugability improvements:
    * Use V=1 to show commands being executed (thanks to EAGAIN work-around)
    * Print kernel version and compiler versions as part of V=1 output from Makefile
    
    Cosmetic other changes:
    * Put more commands on one line, for less clutter in CircleCI output pages
    * Remove redundant "all" in "make all check" and put make command options before targets
    * Change some recursive "make clean" into dependency on "clean," toward minimizing unnecessary overhead (detect platform, build version, etc.) of extra recursive makes
    
    Pull Request resolved: https://github.com/facebook/rocksdb/pull/7078
    
    Reviewed By: siying
    
    Differential Revision: D22391647
    
    Pulled By: pdillinger
    
    fbshipit-source-id: d446fccf5a8c568b37dc8748621c8a5c546fe135
    92731b6b
Makefile 78.8 KB