mirror of
https://github.com/facebookincubator/mvfst.git
synced 2025-04-18 17:24:03 +03:00
use system patchelf in eden fs build
Summary: X-link: https://github.com/facebookincubator/velox/pull/7072 use system patchelf in eden fs build Saves us from doing a fetch and build of autoconf, libtool, automake and patchelf during the arfifacts part of CI X-link: https://github.com/facebook/sapling/pull/750 Reviewed By: sggutier Differential Revision: D50313417 Pulled By: genevievehelsel fbshipit-source-id: 7c585357c848c15a65c5797d6c8750d1119b6efd
This commit is contained in:
parent
d8cd799210
commit
6c72eb2f02
@ -497,6 +497,12 @@ class ShowInstDirCmd(ProjectCmdBase):
|
||||
manifests = [manifest]
|
||||
|
||||
for m in manifests:
|
||||
fetcher = loader.create_fetcher(m)
|
||||
if isinstance(fetcher, SystemPackageFetcher):
|
||||
# We are guaranteed that if the fetcher is set to
|
||||
# SystemPackageFetcher then this item is completely
|
||||
# satisfied by the appropriate system packages
|
||||
continue
|
||||
inst_dir = loader.get_project_install_dir_respecting_install_prefix(m)
|
||||
print(inst_dir)
|
||||
|
||||
@ -1056,6 +1062,11 @@ jobs:
|
||||
out.write(
|
||||
f" run: {sudo_arg}python3 build/fbcode_builder/getdeps.py --allow-system-packages install-system-deps --recursive {manifest.name}\n"
|
||||
)
|
||||
if build_opts.is_linux() or build_opts.is_freebsd():
|
||||
out.write(" - name: Install packaging system deps\n")
|
||||
out.write(
|
||||
f" run: {sudo_arg}python3 build/fbcode_builder/getdeps.py --allow-system-packages install-system-deps --recursive patchelf\n"
|
||||
)
|
||||
|
||||
projects = loader.manifests_in_dependency_order()
|
||||
|
||||
|
@ -336,16 +336,21 @@ class ElfDeps(DepBase):
|
||||
super(ElfDeps, self).__init__(buildopts, install_dirs, strip)
|
||||
|
||||
# We need patchelf to rewrite deps, so ensure that it is built...
|
||||
subprocess.check_call([sys.executable, sys.argv[0], "build", "patchelf"])
|
||||
args = [sys.executable, sys.argv[0]]
|
||||
if buildopts.allow_system_packages:
|
||||
args.append("--allow-system-packages")
|
||||
subprocess.check_call(args + ["build", "patchelf"])
|
||||
|
||||
# ... and that we know where it lives
|
||||
self.patchelf = os.path.join(
|
||||
os.fsdecode(
|
||||
subprocess.check_output(
|
||||
[sys.executable, sys.argv[0], "show-inst-dir", "patchelf"]
|
||||
).strip()
|
||||
),
|
||||
"bin/patchelf",
|
||||
patchelf_install = os.fsdecode(
|
||||
subprocess.check_output(args + ["show-inst-dir", "patchelf"]).strip()
|
||||
)
|
||||
if not patchelf_install:
|
||||
# its a system package, so we assume it is in the path
|
||||
patchelf_install = "patchelf"
|
||||
else:
|
||||
patchelf_install = os.path.join(patchelf_install, "bin", "patchelf")
|
||||
self.patchelf = patchelf_install
|
||||
|
||||
def list_dynamic_deps(self, objfile):
|
||||
out = (
|
||||
|
Loading…
x
Reference in New Issue
Block a user