diff --git a/CMakeLists.txt b/CMakeLists.txt index 35100c16632171dc7e95efd87baa564c073351af..b5307ce87f30901c5708e813ae18fee365ab25ba 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -133,9 +133,9 @@ if (CMAKE_BUILD_TYPE MATCHES Debug) set(CMAKE_CXX_FLAGS "-fstack-protector-all -Wl,-z,relro,-z,now,-z,noexecstack -fPIE -pie ${CMAKE_CXX_FLAGS}") set(CXXFLAGS "-fstack-protector-all -Wl,-z,relro,-z,now,-z,noexecstack -fPIE -pie ${CXXFLAGS}") else() - set(CMAKE_C_FLAGS "-fstack-protector-all -Wl,-z,relro,-z,now,-s,-z,noexecstack -fPIE -pie ${CMAKE_C_FLAGS}") - set(CMAKE_CXX_FLAGS "-fstack-protector-all -Wl,-z,relro,-z,now,-s,-z,noexecstack -fPIE -pie ${CMAKE_CXX_FLAGS}") - set(CXXFLAGS "-fstack-protector-all -Wl,-z,relro,-z,now,-s,-z,noexecstack -fPIE -pie ${CXXFLAGS}") + set(CMAKE_C_FLAGS "-fstack-protector-all -Wl,-z,relro,-z,now,-z,noexecstack -fPIE -pie ${CMAKE_C_FLAGS}") + set(CMAKE_CXX_FLAGS "-fstack-protector-all -Wl,-z,relro,-z,now,-z,noexecstack -fPIE -pie ${CMAKE_CXX_FLAGS}") + set(CXXFLAGS "-fstack-protector-all -Wl,-z,relro,-z,now,-z,noexecstack -fPIE -pie ${CXXFLAGS}") endif() set(_GLIBCXX_USE_CXX11_ABI 0) diff --git a/setup.py b/setup.py index 223368d0f6da408049fc08f6897f7d3c0c93e6ee..74d5fe195b932363378ac1ef8ba3ab87c6a44ca3 100644 --- a/setup.py +++ b/setup.py @@ -44,6 +44,7 @@ THIRD_PARTY_PATH = os.path.join(BASE_DIR, "third_party") VERSION = '2.0.1.post1' UNKNOWN = "Unknown" BUILD_PERMISSION = stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | stat.S_IRGRP | stat.S_IXGRP +call_once_flag = 0 def get_submodule_folders(): @@ -202,6 +203,20 @@ def build_stub(base_dir): sys.exit(1) +def generate_dbg_files_and_strip(): + global call_once_flag + if call_once_flag == 1: + return + library_dir = Path(BASE_DIR).joinpath("build/packages/torch_npu") + dbg_dir = Path(BASE_DIR).joinpath("build/dbg") + os.makedirs(dbg_dir, exist_ok=True) + library_files = [Path(i) for i in library_dir.rglob('*.so')] + for library_file in library_files: + subprocess.check_call(["eu-strip", library_file, "-f", + str(dbg_dir.joinpath(library_file.name)) + ".debug"], cwd=BASE_DIR) # Compliant + call_once_flag = 1 + + def CppExtension(name, sources, *args, **kwargs): r''' Creates a :class:`setuptools.Extension` for C++. @@ -324,6 +339,8 @@ class Build(build_ext, object): self.library_dirs.append( os.path.relpath(os.path.join(BASE_DIR, "build/packages/torch_npu/lib"))) super(Build, self).run() + if which('eu-strip') is not None: + generate_dbg_files_and_strip() class InstallCmd(install): @@ -440,7 +457,7 @@ if DEBUG: extra_link_args += ['-O0', '-g', '-Wl,-z,now'] else: extra_compile_args += ['-DNDEBUG'] - extra_link_args += ['-Wl,-z,now,-s'] + extra_link_args += ['-Wl,-z,now'] setup(