mirror of
https://github.com/facebook/proxygen.git
synced 2025-08-05 19:55:47 +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:
committed by
Facebook GitHub Bot
parent
d57a95d41e
commit
018b10ba1d
@@ -497,6 +497,12 @@ class ShowInstDirCmd(ProjectCmdBase):
|
|||||||
manifests = [manifest]
|
manifests = [manifest]
|
||||||
|
|
||||||
for m in manifests:
|
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)
|
inst_dir = loader.get_project_install_dir_respecting_install_prefix(m)
|
||||||
print(inst_dir)
|
print(inst_dir)
|
||||||
|
|
||||||
@@ -1056,6 +1062,11 @@ jobs:
|
|||||||
out.write(
|
out.write(
|
||||||
f" run: {sudo_arg}python3 build/fbcode_builder/getdeps.py --allow-system-packages install-system-deps --recursive {manifest.name}\n"
|
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()
|
projects = loader.manifests_in_dependency_order()
|
||||||
|
|
||||||
|
@@ -336,16 +336,21 @@ class ElfDeps(DepBase):
|
|||||||
super(ElfDeps, self).__init__(buildopts, install_dirs, strip)
|
super(ElfDeps, self).__init__(buildopts, install_dirs, strip)
|
||||||
|
|
||||||
# We need patchelf to rewrite deps, so ensure that it is built...
|
# 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
|
# ... and that we know where it lives
|
||||||
self.patchelf = os.path.join(
|
patchelf_install = os.fsdecode(
|
||||||
os.fsdecode(
|
subprocess.check_output(args + ["show-inst-dir", "patchelf"]).strip()
|
||||||
subprocess.check_output(
|
|
||||||
[sys.executable, sys.argv[0], "show-inst-dir", "patchelf"]
|
|
||||||
).strip()
|
|
||||||
),
|
|
||||||
"bin/patchelf",
|
|
||||||
)
|
)
|
||||||
|
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):
|
def list_dynamic_deps(self, objfile):
|
||||||
out = (
|
out = (
|
||||||
|
Reference in New Issue
Block a user