• Alexey Spiridonov's avatar
    Fix OSS build · aaf2076d
    Alexey Spiridonov authored
    Summary:
    There are two separate changes here.
    
    ### Use `find_package`
    
    The old setup of "let's manually enumerate and order the libraries that Bistro depends on" worked fine, except:
     - it was a bit brittle (requiring occasional patches as deps changed), and
     - it garnered a lot of feedback to the effect of "your build is weird, so it's probably broken because of that."
    
    Now I expect to have fewer breaks and more plausible deniability :)
    
     More importantly, this should make it much easier to migrate to `getdeps.py`.
    
    ## Statically link `fmt`
    
    After `fmt` was added as a `folly` dependency, and linked into Folly code used by Bistro, its tests would fail to run with this error: `test_sqlite_task_store: error while loading shared libraries: libfmt.so.6: cannot open shared object file: No such file or directory`.
    
    Something was getting messed up in the dynamic linking, and it wasn't clear to me what -- the way that Bistro is linking its dependencies certainly seems sensible. Most likely one of the dependencies is incompatible with dynamic linking in a subtle way. I suspect Proxygen.
    
    The `fmt.py` change in this diff addresses this problem by forcing static linking on the offending library.
    
    Reviewed By: yfeldblum
    
    Differential Revision: D24604309
    
    fbshipit-source-id: 35ecbbb277b25907ecaee493e8b0081d9f20b865
    aaf2076d
folly.py 803 Bytes