diff --git a/llvm-build/README.md b/llvm-build/README.md index 5159b4e0d22318677f9df5c5ddb3f3947fe0e0ca..27e340b7103253f3583e4591f6a658a6548e1c94 100644 --- a/llvm-build/README.md +++ b/llvm-build/README.md @@ -52,6 +52,7 @@ build.py options: --enable-assertions # enable assertion when compiling --build-name # specify release package name --debug # build debug version llvm toolchain +--target-debug # build debug version of target llvm libraries, runtimes, and lldb-server --strip # strip llvm toolchain binaries --no-build-arm # skip triplet arm --no-build-aarch64 # skip triplet arm64 diff --git a/llvm-build/build.py b/llvm-build/build.py index cf6cbf729d3713e3c0987f1f6db73dd46bfe5b42..87e2471628a0ede5f3b7f0d2c04ea7d99d55c7ed 100755 --- a/llvm-build/build.py +++ b/llvm-build/build.py @@ -39,6 +39,7 @@ class BuildConfig(): self.do_package = not args.skip_package self.build_name = args.build_name self.debug = args.debug + self.target_debug = args.target_debug self.strip = args.strip self.no_lto = args.no_lto self.build_instrumented = args.build_instrumented @@ -110,6 +111,12 @@ class BuildConfig(): default=False, help='Building Clang and LLVM Tools for Debugging (only affects stage2)') + parser.add_argument( + '--target-debug', + action='store_true', + default=False, + help='Building libraries, runtimes and lldb for the target for debugging') + parser.add_argument( '--strip', action='store_true', @@ -1051,6 +1058,8 @@ class LlvmLibs(BuildUtils): ldflags = [] cflags = [] self.logger().info('Build libs for %s', llvm_triple) + if self.build_config.target_debug: + defines['CMAKE_BUILD_TYPE'] = 'Debug' self.build_libs_defines(llvm_triple, defines, cc, cxx, ar, llvm_config, ldflags, cflags, extra_flags) if arch == 'mipsel': ldflags.append('-Wl,-z,notext') @@ -1113,7 +1122,6 @@ class LlvmLibs(BuildUtils): rt_cflags.append('-fno-omit-frame-pointer') rt_defines = defines.copy() - rt_defines.update(self.base_cmake_defines()) rt_defines['OHOS'] = '1' rt_defines['LLVM_ENABLE_PER_TARGET_RUNTIME_DIR'] = 'ON' rt_defines['LLVM_TARGET_MULTILIB_SUFFIX'] = multilib_suffix @@ -1137,7 +1145,6 @@ class LlvmLibs(BuildUtils): rt_defines['CMAKE_ASM_FLAGS'] = ' '.join(rt_cflags) rt_defines['CMAKE_C_FLAGS'] = ' '.join(rt_cflags) rt_defines['CMAKE_CXX_FLAGS'] = ' '.join(rt_cflags) - rt_defines['CMAKE_BUILD_TYPE'] = 'Release' rt_defines['CMAKE_INSTALL_PREFIX'] = llvm_install rt_defines['CMAKE_SHARED_LINKER_FLAGS'] = ' '.join(ldflags) rt_defines['CMAKE_SYSTEM_NAME'] = 'OHOS' @@ -1183,12 +1190,11 @@ class LlvmLibs(BuildUtils): crt_install = os.path.join(llvm_install, 'lib', 'clang', self.build_config.VERSION) crt_extra_flags = [] - if not self.build_config.debug: + if not self.build_config.target_debug: # Remove absolute paths from compiler-rt debug info emitted with -gline-tables-only crt_extra_flags = ['-ffile-prefix-map=%s=.' % self.build_config.REPOROOT_DIR] crt_defines = defines.copy() - crt_defines.update(self.base_cmake_defines()) crt_defines['CMAKE_EXE_LINKER_FLAGS'] = ' '.join(ldflags) crt_defines['CMAKE_SHARED_LINKER_FLAGS'] = ' '.join(ldflags) crt_defines['CMAKE_MODULE_LINKER_FLAGS'] = ' '.join(ldflags) @@ -1248,7 +1254,6 @@ class LlvmLibs(BuildUtils): libomp_cflags.append('-fPIC') libomp_defines = defines.copy() - libomp_defines.update(self.base_cmake_defines()) libomp_defines['CMAKE_EXE_LINKER_FLAGS'] = ' '.join(ldflags) libomp_defines['CMAKE_SHARED_LINKER_FLAGS'] = ' '.join(ldflags) libomp_defines['CMAKE_MODULE_LINKER_FLAGS'] = ' '.join(ldflags) @@ -1299,7 +1304,6 @@ class LlvmLibs(BuildUtils): libz_cflags.append('-fPIC') libz_defines = defines.copy() - libz_defines.update(self.base_cmake_defines()) libz_defines['CMAKE_EXE_LINKER_FLAGS'] = ' '.join(ldflags) libz_defines['CMAKE_SHARED_LINKER_FLAGS'] = ' '.join(ldflags) libz_defines['CMAKE_MODULE_LINKER_FLAGS'] = ' '.join(ldflags) @@ -1346,7 +1350,6 @@ class LlvmLibs(BuildUtils): lldb_ldflags.append('-static') lldb_defines = defines.copy() - lldb_defines.update(self.base_cmake_defines()) lldb_defines['CMAKE_EXE_LINKER_FLAGS'] = ' '.join(lldb_ldflags) lldb_defines['CMAKE_SHARED_LINKER_FLAGS'] = ' '.join(lldb_ldflags)