From ecd8c28b1cbc4ad691b00d0dcf8b750bbdb6a8fc Mon Sep 17 00:00:00 2001 From: Benson Ma Date: Mon, 23 Sep 2024 11:48:28 -0700 Subject: [PATCH] [fbgemm_gpu] Remove errant RPATHs from binaries - Remove errant RPATHs from binaries (https://github.com/pytorch/FBGEMM/issues/3098) --- .github/scripts/fbgemm_gpu_build.bash | 3 +++ .github/scripts/fbgemm_gpu_postbuild.sh | 12 ++++++++++++ .github/scripts/utils_build.bash | 1 + fbgemm_gpu/CMakeLists.txt | 4 ++++ fbgemm_gpu/FbgemmGpu.cmake | 7 +++++++ 5 files changed, 27 insertions(+) create mode 100644 .github/scripts/fbgemm_gpu_postbuild.sh diff --git a/.github/scripts/fbgemm_gpu_build.bash b/.github/scripts/fbgemm_gpu_build.bash index fd76b5669d..1a7ca88264 100644 --- a/.github/scripts/fbgemm_gpu_build.bash +++ b/.github/scripts/fbgemm_gpu_build.bash @@ -416,6 +416,9 @@ __print_library_infos () { echo "[CHECK] Listing out external shared libraries linked:" print_exec ldd "${library}" + + echo "[CHECK] Displaying ELF information:" + print_exec readelf -d "${library}" echo "################################################################################" echo "" echo "" diff --git a/.github/scripts/fbgemm_gpu_postbuild.sh b/.github/scripts/fbgemm_gpu_postbuild.sh new file mode 100644 index 0000000000..ae38485a25 --- /dev/null +++ b/.github/scripts/fbgemm_gpu_postbuild.sh @@ -0,0 +1,12 @@ +#!/bin/sh +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the BSD-style license found in the +# LICENSE file in the root directory of this source tree. + +echo "[CMAKE] Running post-build script ..." + +echo $(pwd) +echo $(ls -la) +find . -name *.so | xargs patchelf --remove-rpath diff --git a/.github/scripts/utils_build.bash b/.github/scripts/utils_build.bash index 1191bf34d1..60127ed053 100644 --- a/.github/scripts/utils_build.bash +++ b/.github/scripts/utils_build.bash @@ -297,6 +297,7 @@ install_build_tools () { ncurses \ ninja \ openblas \ + patchelf \ scikit-build \ wheel) || return 1 diff --git a/fbgemm_gpu/CMakeLists.txt b/fbgemm_gpu/CMakeLists.txt index d56a9ca368..b5eded501a 100644 --- a/fbgemm_gpu/CMakeLists.txt +++ b/fbgemm_gpu/CMakeLists.txt @@ -112,3 +112,7 @@ if(NOT FBGEMM_CPU_ONLY AND NOT USE_ROCM) # add_subdirectory(experimental/gen_ai) endif() + + +install(CODE "execute_process(COMMAND ../.github/scripts/fbgemm_gpu_postbuild.sh)") +# ; patchelf --remove-rpath *.so) diff --git a/fbgemm_gpu/FbgemmGpu.cmake b/fbgemm_gpu/FbgemmGpu.cmake index f67a6b6b24..5322e3f3ba 100644 --- a/fbgemm_gpu/FbgemmGpu.cmake +++ b/fbgemm_gpu/FbgemmGpu.cmake @@ -725,3 +725,10 @@ install(FILES ${gen_python_source_files} install(FILES ${gen_defused_optim_py_files} DESTINATION fbgemm_gpu/split_embedding_optimizer_codegen) + + +add_custom_target(clean_rpath ALL + WORKING_DIRECTORY ${OUTPUT_DIR}/bin + COMMAND sh ../.github/scripts/fbgemm_gpu_postbuild.sh) + + add_dependencies(fbgemm_gpu_py clean_rpath)