mirror of
https://github.com/facebook/sapling.git
synced 2024-10-09 00:14:35 +03:00
Fix OSS build
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
This commit is contained in:
parent
b80291023a
commit
d0faf27e9f
@ -8,6 +8,16 @@ from __future__ import unicode_literals
|
|||||||
|
|
||||||
def fbcode_builder_spec(builder):
|
def fbcode_builder_spec(builder):
|
||||||
builder.add_option('fmtlib/fmt:git_hash', '6.2.1')
|
builder.add_option('fmtlib/fmt:git_hash', '6.2.1')
|
||||||
|
builder.add_option(
|
||||||
|
'fmtlib/fmt:cmake_defines',
|
||||||
|
{
|
||||||
|
# Avoids a bizarred failure to run tests in Bistro:
|
||||||
|
# test_crontab_selector: error while loading shared libraries:
|
||||||
|
# libfmt.so.6: cannot open shared object file:
|
||||||
|
# No such file or directory
|
||||||
|
'BUILD_SHARED_LIBS': 'OFF',
|
||||||
|
}
|
||||||
|
)
|
||||||
return {
|
return {
|
||||||
'steps': [
|
'steps': [
|
||||||
builder.github_project_workdir('fmtlib/fmt', 'build'),
|
builder.github_project_workdir('fmtlib/fmt', 'build'),
|
||||||
|
@ -5,9 +5,12 @@ from __future__ import division
|
|||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
import specs.fmt as fmt
|
||||||
|
|
||||||
|
|
||||||
def fbcode_builder_spec(builder):
|
def fbcode_builder_spec(builder):
|
||||||
return {
|
return {
|
||||||
|
"depends_on": [fmt],
|
||||||
'steps': [
|
'steps': [
|
||||||
# on macOS the filesystem is typically case insensitive.
|
# on macOS the filesystem is typically case insensitive.
|
||||||
# We need to ensure that the CWD is not the folly source
|
# We need to ensure that the CWD is not the folly source
|
||||||
|
Loading…
Reference in New Issue
Block a user