diff --git a/bundle.json b/bundle.json new file mode 100644 index 0000000000000000000000000000000000000000..6f5be6db9101a69bdde839a30c5db09bc88152e0 --- /dev/null +++ b/bundle.json @@ -0,0 +1,33 @@ +{ + "name": "@ohos/llvm-project", + "description": "The LLVM Compiler Infrastructure", + "version": "3.1", + "license": "Apache License v2.0 with LLVM Exceptions", + "publishAs": "code-segment", + "segment": { + "destPath": "third_party/llvm-project" + }, + "dirs": {}, + "scripts": {}, + "readmePath": { + "en": "" + }, + "component": { + "name": "llvm-project", + "subsystem": "llvmproject", + "syscap": [], + "features": [], + "adapted_system_type": [ "standard", "small" ], + "rom": "", + "ram": "", + "deps": { + "components": [], + "third_party": [] + }, + "build": { + "sub_component": ["//toolchain/llvm-project/llvm-build:new_crt"], + "inner_kits": [], + "test": [] + } + } +} diff --git a/clang/lib/Driver/ToolChains/OHOS.cpp b/clang/lib/Driver/ToolChains/OHOS.cpp index 4ceafa9e7139229bf67d281c0edb14d93febda88..61d6dc83dcf01258ab4a024888c3424de644585b 100644 --- a/clang/lib/Driver/ToolChains/OHOS.cpp +++ b/clang/lib/Driver/ToolChains/OHOS.cpp @@ -388,6 +388,10 @@ SanitizerMask OHOS::getSupportedSanitizers() const { Res |= SanitizerKind::Vptr; Res |= SanitizerKind::SafeStack; Res |= SanitizerKind::Scudo; + Res |= SanitizerKind::KernelAddress; + Res |= SanitizerKind::KernelMemory; + // OHOS_LOCAL + Res |= SanitizerKind::HWAddress; // TODO: kASAN for liteos ?? // TODO: Support TSAN and HWASAN and update mask. return Res; diff --git a/llvm-build/build.py b/llvm-build/build.py index c05ec8742fe5b9898048b9b8925d8f2801cdd483..e0059ce572917100e8b740b0e98fd88497d2c94a 100755 --- a/llvm-build/build.py +++ b/llvm-build/build.py @@ -1458,6 +1458,8 @@ class LlvmLibs(BuildUtils): self.sysroot_composer.build_musl_header(arch, target) if target.endswith(self.build_config.OPENHOS_SFX): self.sysroot_composer.install_linux_headers(arch, target) + # 创建软连接 + self.create_link(llvm_install) if self.build_config.build_libs_with_hb: self.run_hb_build_libs('crts_first_time') else: @@ -1738,6 +1740,35 @@ class LlvmLibs(BuildUtils): target=None, install=True) + + def create_link(self, llvm_install): + src_dir = os.path.join(llvm_install, 'lib', 'clang', '19.1.7', 'lib') + dst_dir = os.path.join(llvm_install, 'lib', 'clang', '19', 'lib') + + src_aarch64_dir = os.path.join(src_dir, "aarch64-unknown-linux-ohos") + src_x86_dir = os.path.join(src_dir, "x86_64-unknown-linux-ohos") + + dst_aarch64_19_1_7_dir = os.path.join(src_dir, "aarch64-linux-ohos") + dst_x86_19_1_7_dir = os.path.join(src_dir, "x86_64-linux-ohos") + + dst_aarch64_19_dir = os.path.join(dst_dir, "aarch64-linux-ohos") + dst_x86_19_dir = os.path.join(dst_dir, "x86_64-linux-ohos") + + prefix_path = os.path.join("..", "..", "19.1.7", "lib") + + if os.path.exists(src_aarch64_dir) and not os.path.exists(dst_aarch64_19_1_7_dir): + os.symlink(os.path.basename(src_aarch64_dir), dst_aarch64_19_1_7_dir) + + if os.path.exists(src_aarch64_dir) and not os.path.exists(dst_aarch64_19_dir): + os.symlink(os.path.join(prefix_path, os.path.basename(src_aarch64_dir)), dst_aarch64_19_dir) + + if os.path.exists(src_x86_dir) and not os.path.exists(dst_x86_19_1_7_dir): + os.symlink(os.path.basename(src_x86_dir), dst_x86_19_1_7_dir) + + if os.path.exists(src_x86_dir) and not os.path.exists(dst_x86_19_dir): + os.symlink(os.path.join(prefix_path, os.path.basename(src_x86_dir)), dst_x86_19_dir) + + def build_crts(self, llvm_install, arch,