[PATCH] D44745: [HWASan] Port HWASan to Linux x86-64 (clang)
Enna1 added a comment. Herald added subscribers: yaneury, supersymetrie, Chia-hungDuan, pengfei. Herald added a project: All. Hi, I'm curious about why hwasan requires PIE. Is there any documents mentioned this? Thanks! Repository: rC Clang CHANGES SINCE LAST ACTION https://reviews.llvm.org/D44745/new/ https://reviews.llvm.org/D44745 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D44745: [HWASan] Port HWASan to Linux x86-64 (clang)
This revision was automatically updated to reflect the committed changes. Closed by commit rC328361: [HWASan] Port HWASan to Linux x86-64 (clang) (authored by alekseyshl, committed by ). Changed prior to commit: https://reviews.llvm.org/D44745?vs=139513=139640#toc Repository: rC Clang https://reviews.llvm.org/D44745 Files: lib/Driver/SanitizerArgs.cpp lib/Driver/ToolChains/Linux.cpp test/Driver/Inputs/resource_dir/lib/linux/libclang_rt.hwasan-x86_64.a.syms test/Driver/fsanitize-blacklist.c test/Driver/fsanitize.c test/Driver/sanitizer-ld.c Index: lib/Driver/SanitizerArgs.cpp === --- lib/Driver/SanitizerArgs.cpp +++ lib/Driver/SanitizerArgs.cpp @@ -30,7 +30,7 @@ NeedsUbsanCxxRt = Vptr | CFI, NotAllowedWithTrap = Vptr, NotAllowedWithMinimalRuntime = Vptr, - RequiresPIE = DataFlow | Scudo, + RequiresPIE = DataFlow | HWAddress | Scudo, NeedsUnwindTables = Address | HWAddress | Thread | Memory | DataFlow, SupportsCoverage = Address | HWAddress | KernelAddress | Memory | Leak | Undefined | Integer | Nullability | DataFlow | Fuzzer | Index: lib/Driver/ToolChains/Linux.cpp === --- lib/Driver/ToolChains/Linux.cpp +++ lib/Driver/ToolChains/Linux.cpp @@ -879,7 +879,7 @@ Res |= SanitizerKind::Function; if (IsX86_64 || IsMIPS64 || IsAArch64 || IsX86 || IsMIPS || IsArmArch) Res |= SanitizerKind::Scudo; - if (IsAArch64) + if (IsX86_64 || IsAArch64) Res |= SanitizerKind::HWAddress; return Res; } Index: test/Driver/sanitizer-ld.c === --- test/Driver/sanitizer-ld.c +++ test/Driver/sanitizer-ld.c @@ -696,54 +696,100 @@ // CHECK-SCUDO-ANDROID-STATIC: "-lpthread" // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ -// RUN: -target aarch64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \ +// RUN: -target x86_64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \ // RUN: -resource-dir=%S/Inputs/resource_dir \ // RUN: --sysroot=%S/Inputs/basic_linux_tree \ -// RUN: | FileCheck --check-prefix=CHECK-HWASAN-LINUX %s +// RUN: | FileCheck --check-prefix=CHECK-HWASAN-X86-64-LINUX %s +// +// CHECK-HWASAN-X86-64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" +// CHECK-HWASAN-X86-64-LINUX: "-pie" +// CHECK-HWASAN-X86-64-LINUX-NOT: "-lc" +// CHECK-HWASAN-X86-64-LINUX: libclang_rt.hwasan-x86_64.a" +// CHECK-HWASAN-X86-64-LINUX-NOT: "--export-dynamic" +// CHECK-HWASAN-X86-64-LINUX: "--dynamic-list={{.*}}libclang_rt.hwasan-x86_64.a.syms" +// CHECK-HWASAN-X86-64-LINUX-NOT: "--export-dynamic" +// CHECK-HWASAN-X86-64-LINUX: "-lpthread" +// CHECK-HWASAN-X86-64-LINUX: "-lrt" +// CHECK-HWASAN-X86-64-LINUX: "-ldl" + +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ +// RUN: -target x86_64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \ +// RUN: -shared-libsan -resource-dir=%S/Inputs/resource_dir \ +// RUN: --sysroot=%S/Inputs/basic_linux_tree \ +// RUN: | FileCheck --check-prefix=CHECK-SHARED-HWASAN-X86-64-LINUX %s +// +// CHECK-SHARED-HWASAN-X86-64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" +// CHECK-SHARED-HWASAN-X86-64-LINUX: "-pie" +// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-lc" +// CHECK-SHARED-HWASAN-X86-64-LINUX: libclang_rt.hwasan-x86_64.so" +// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-lpthread" +// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-lrt" +// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-ldl" +// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "--export-dynamic" +// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "--dynamic-list" + +// RUN: %clang -no-canonical-prefixes %s -### -o %t.so -shared 2>&1 \ +// RUN: -target x86_64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \ +// RUN: -shared-libsan -resource-dir=%S/Inputs/resource_dir \ +// RUN: --sysroot=%S/Inputs/basic_linux_tree \ +// RUN: | FileCheck --check-prefix=CHECK-DSO-SHARED-HWASAN-X86-64-LINUX %s // -// CHECK-HWASAN-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" -// CHECK-HWASAN-LINUX-NOT: "-lc" -// CHECK-HWASAN-LINUX: libclang_rt.hwasan-aarch64.a" -// CHECK-HWASAN-LINUX-NOT: "--export-dynamic" -// CHECK-HWASAN-LINUX: "--dynamic-list={{.*}}libclang_rt.hwasan-aarch64.a.syms" -// CHECK-HWASAN-LINUX-NOT: "--export-dynamic" -// CHECK-HWASAN-LINUX: "-lpthread" -// CHECK-HWASAN-LINUX: "-lrt" -// CHECK-HWASAN-LINUX: "-ldl" +// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" +// CHECK-DSO_SHARED-HWASAN-X86-64-LINUX: "-pie" +// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-lc" +// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX: libclang_rt.hwasan-x86_64.so" +// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-lpthread" +// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-lrt" +// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-ldl" +// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "--export-dynamic" +// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "--dynamic-list"
[PATCH] D44745: [HWASan] Port HWASan to Linux x86-64 (clang)
eugenis accepted this revision. eugenis added a comment. This revision is now accepted and ready to land. OK, sure, If you feel so strongly about this. Repository: rC Clang https://reviews.llvm.org/D44745 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D44745: [HWASan] Port HWASan to Linux x86-64 (clang)
alekseyshl updated this revision to Diff 139513. alekseyshl added a comment. - Revert triple change in asan.cc test Repository: rC Clang https://reviews.llvm.org/D44745 Files: lib/Driver/SanitizerArgs.cpp lib/Driver/ToolChains/Linux.cpp test/Driver/Inputs/resource_dir/lib/linux/libclang_rt.hwasan-x86_64.a.syms test/Driver/fsanitize-blacklist.c test/Driver/fsanitize.c test/Driver/sanitizer-ld.c Index: test/Driver/sanitizer-ld.c === --- test/Driver/sanitizer-ld.c +++ test/Driver/sanitizer-ld.c @@ -696,54 +696,100 @@ // CHECK-SCUDO-ANDROID-STATIC: "-lpthread" // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ -// RUN: -target aarch64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \ +// RUN: -target x86_64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \ // RUN: -resource-dir=%S/Inputs/resource_dir \ // RUN: --sysroot=%S/Inputs/basic_linux_tree \ -// RUN: | FileCheck --check-prefix=CHECK-HWASAN-LINUX %s +// RUN: | FileCheck --check-prefix=CHECK-HWASAN-X86-64-LINUX %s // -// CHECK-HWASAN-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" -// CHECK-HWASAN-LINUX-NOT: "-lc" -// CHECK-HWASAN-LINUX: libclang_rt.hwasan-aarch64.a" -// CHECK-HWASAN-LINUX-NOT: "--export-dynamic" -// CHECK-HWASAN-LINUX: "--dynamic-list={{.*}}libclang_rt.hwasan-aarch64.a.syms" -// CHECK-HWASAN-LINUX-NOT: "--export-dynamic" -// CHECK-HWASAN-LINUX: "-lpthread" -// CHECK-HWASAN-LINUX: "-lrt" -// CHECK-HWASAN-LINUX: "-ldl" +// CHECK-HWASAN-X86-64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" +// CHECK-HWASAN-X86-64-LINUX: "-pie" +// CHECK-HWASAN-X86-64-LINUX-NOT: "-lc" +// CHECK-HWASAN-X86-64-LINUX: libclang_rt.hwasan-x86_64.a" +// CHECK-HWASAN-X86-64-LINUX-NOT: "--export-dynamic" +// CHECK-HWASAN-X86-64-LINUX: "--dynamic-list={{.*}}libclang_rt.hwasan-x86_64.a.syms" +// CHECK-HWASAN-X86-64-LINUX-NOT: "--export-dynamic" +// CHECK-HWASAN-X86-64-LINUX: "-lpthread" +// CHECK-HWASAN-X86-64-LINUX: "-lrt" +// CHECK-HWASAN-X86-64-LINUX: "-ldl" // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ -// RUN: -target aarch64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress -shared-libsan \ -// RUN: -resource-dir=%S/Inputs/resource_dir \ +// RUN: -target x86_64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \ +// RUN: -shared-libsan -resource-dir=%S/Inputs/resource_dir \ +// RUN: --sysroot=%S/Inputs/basic_linux_tree \ +// RUN: | FileCheck --check-prefix=CHECK-SHARED-HWASAN-X86-64-LINUX %s +// +// CHECK-SHARED-HWASAN-X86-64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" +// CHECK-SHARED-HWASAN-X86-64-LINUX: "-pie" +// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-lc" +// CHECK-SHARED-HWASAN-X86-64-LINUX: libclang_rt.hwasan-x86_64.so" +// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-lpthread" +// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-lrt" +// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-ldl" +// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "--export-dynamic" +// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "--dynamic-list" + +// RUN: %clang -no-canonical-prefixes %s -### -o %t.so -shared 2>&1 \ +// RUN: -target x86_64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \ +// RUN: -shared-libsan -resource-dir=%S/Inputs/resource_dir \ // RUN: --sysroot=%S/Inputs/basic_linux_tree \ -// RUN: | FileCheck --check-prefix=CHECK-SHARED-HWASAN-LINUX %s +// RUN: | FileCheck --check-prefix=CHECK-DSO-SHARED-HWASAN-X86-64-LINUX %s +// +// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" +// CHECK-DSO_SHARED-HWASAN-X86-64-LINUX: "-pie" +// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-lc" +// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX: libclang_rt.hwasan-x86_64.so" +// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-lpthread" +// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-lrt" +// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-ldl" +// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "--export-dynamic" +// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "--dynamic-list" // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ // RUN: -target aarch64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \ -// RUN: -shared-libsan \ // RUN: -resource-dir=%S/Inputs/resource_dir \ // RUN: --sysroot=%S/Inputs/basic_linux_tree \ -// RUN: | FileCheck --check-prefix=CHECK-SHARED-HWASAN-LINUX %s +// RUN: | FileCheck --check-prefix=CHECK-HWASAN-AARCH64-LINUX %s // -// CHECK-SHARED-HWASAN-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" -// CHECK-SHARED-HWASAN-LINUX-NOT: "-lc" -// CHECK-SHARED-HWASAN-LINUX: libclang_rt.hwasan-aarch64.so" -// CHECK-SHARED-HWASAN-LINUX-NOT: "-lpthread" -// CHECK-SHARED-HWASAN-LINUX-NOT: "-lrt" -// CHECK-SHARED-HWASAN-LINUX-NOT: "-ldl" -// CHECK-SHARED-HWASAN-LINUX-NOT: "--export-dynamic" -// CHECK-SHARED-HWASAN-LINUX-NOT: "--dynamic-list" +// CHECK-HWASAN-AARCH64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" +// CHECK-HWASAN-AARCH64-LINUX: "-pie" +// CHECK-HWASAN-AARCH64-LINUX-NOT: "-lc" +//
[PATCH] D44745: [HWASan] Port HWASan to Linux x86-64 (clang)
alekseyshl added inline comments. Comment at: test/Driver/asan.c:12 -// RUN: %clang -O2 -target aarch64-unknown-linux -fsanitize=hwaddress %s -S -emit-llvm -o - | FileCheck %s --check-prefix=CHECK-HWASAN -// RUN: %clang -O3 -target aarch64-unknown-linux -fsanitize=hwaddress %s -S -emit-llvm -o - | FileCheck %s --check-prefix=CHECK-HWASAN // Verify that -fsanitize={address,kernel-address} invoke ASan and KASan instrumentation. eugenis wrote: > alekseyshl wrote: > > eugenis wrote: > > > Don't replace existing tests! > > > Add new ones. > > > > > I am not replacing them, I am making it consistent with all other > > sanitizers, which also support many more platforms than just > > x86_64-linux-gnu or *-unknown-linux, but have tests for that one platform > > only. > I don't think this is a good argument for changing existing tests. It does > not add any new coverage, and in this particular example it is not even > consistent with surrounding RUN lines - those use i386 triple. It simply adds > noise to code history. > > If you want to test that hwasan supports x86_64 triple - add a new test case. > Ok, this file, I'm ambivalent about, it is not consistent already, but the other ones I do feel quite strongly about, they are become more consistent and consistency is good. Repository: rC Clang https://reviews.llvm.org/D44745 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D44745: [HWASan] Port HWASan to Linux x86-64 (clang)
eugenis added inline comments. Comment at: test/Driver/asan.c:12 -// RUN: %clang -O2 -target aarch64-unknown-linux -fsanitize=hwaddress %s -S -emit-llvm -o - | FileCheck %s --check-prefix=CHECK-HWASAN -// RUN: %clang -O3 -target aarch64-unknown-linux -fsanitize=hwaddress %s -S -emit-llvm -o - | FileCheck %s --check-prefix=CHECK-HWASAN // Verify that -fsanitize={address,kernel-address} invoke ASan and KASan instrumentation. alekseyshl wrote: > eugenis wrote: > > Don't replace existing tests! > > Add new ones. > > > I am not replacing them, I am making it consistent with all other sanitizers, > which also support many more platforms than just x86_64-linux-gnu or > *-unknown-linux, but have tests for that one platform only. I don't think this is a good argument for changing existing tests. It does not add any new coverage, and in this particular example it is not even consistent with surrounding RUN lines - those use i386 triple. It simply adds noise to code history. If you want to test that hwasan supports x86_64 triple - add a new test case. Repository: rC Clang https://reviews.llvm.org/D44745 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D44745: [HWASan] Port HWASan to Linux x86-64 (clang)
alekseyshl updated this revision to Diff 139469. alekseyshl added a comment. - Add tests to verify that HWASan requires "-pie". Repository: rC Clang https://reviews.llvm.org/D44745 Files: lib/Driver/SanitizerArgs.cpp lib/Driver/ToolChains/Linux.cpp test/Driver/Inputs/resource_dir/lib/linux/libclang_rt.hwasan-x86_64.a.syms test/Driver/asan.c test/Driver/fsanitize-blacklist.c test/Driver/fsanitize.c test/Driver/sanitizer-ld.c Index: test/Driver/sanitizer-ld.c === --- test/Driver/sanitizer-ld.c +++ test/Driver/sanitizer-ld.c @@ -696,54 +696,100 @@ // CHECK-SCUDO-ANDROID-STATIC: "-lpthread" // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ -// RUN: -target aarch64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \ +// RUN: -target x86_64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \ // RUN: -resource-dir=%S/Inputs/resource_dir \ // RUN: --sysroot=%S/Inputs/basic_linux_tree \ -// RUN: | FileCheck --check-prefix=CHECK-HWASAN-LINUX %s +// RUN: | FileCheck --check-prefix=CHECK-HWASAN-X86-64-LINUX %s // -// CHECK-HWASAN-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" -// CHECK-HWASAN-LINUX-NOT: "-lc" -// CHECK-HWASAN-LINUX: libclang_rt.hwasan-aarch64.a" -// CHECK-HWASAN-LINUX-NOT: "--export-dynamic" -// CHECK-HWASAN-LINUX: "--dynamic-list={{.*}}libclang_rt.hwasan-aarch64.a.syms" -// CHECK-HWASAN-LINUX-NOT: "--export-dynamic" -// CHECK-HWASAN-LINUX: "-lpthread" -// CHECK-HWASAN-LINUX: "-lrt" -// CHECK-HWASAN-LINUX: "-ldl" +// CHECK-HWASAN-X86-64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" +// CHECK-HWASAN-X86-64-LINUX: "-pie" +// CHECK-HWASAN-X86-64-LINUX-NOT: "-lc" +// CHECK-HWASAN-X86-64-LINUX: libclang_rt.hwasan-x86_64.a" +// CHECK-HWASAN-X86-64-LINUX-NOT: "--export-dynamic" +// CHECK-HWASAN-X86-64-LINUX: "--dynamic-list={{.*}}libclang_rt.hwasan-x86_64.a.syms" +// CHECK-HWASAN-X86-64-LINUX-NOT: "--export-dynamic" +// CHECK-HWASAN-X86-64-LINUX: "-lpthread" +// CHECK-HWASAN-X86-64-LINUX: "-lrt" +// CHECK-HWASAN-X86-64-LINUX: "-ldl" // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ -// RUN: -target aarch64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress -shared-libsan \ -// RUN: -resource-dir=%S/Inputs/resource_dir \ +// RUN: -target x86_64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \ +// RUN: -shared-libsan -resource-dir=%S/Inputs/resource_dir \ +// RUN: --sysroot=%S/Inputs/basic_linux_tree \ +// RUN: | FileCheck --check-prefix=CHECK-SHARED-HWASAN-X86-64-LINUX %s +// +// CHECK-SHARED-HWASAN-X86-64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" +// CHECK-SHARED-HWASAN-X86-64-LINUX: "-pie" +// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-lc" +// CHECK-SHARED-HWASAN-X86-64-LINUX: libclang_rt.hwasan-x86_64.so" +// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-lpthread" +// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-lrt" +// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-ldl" +// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "--export-dynamic" +// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "--dynamic-list" + +// RUN: %clang -no-canonical-prefixes %s -### -o %t.so -shared 2>&1 \ +// RUN: -target x86_64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \ +// RUN: -shared-libsan -resource-dir=%S/Inputs/resource_dir \ // RUN: --sysroot=%S/Inputs/basic_linux_tree \ -// RUN: | FileCheck --check-prefix=CHECK-SHARED-HWASAN-LINUX %s +// RUN: | FileCheck --check-prefix=CHECK-DSO-SHARED-HWASAN-X86-64-LINUX %s +// +// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" +// CHECK-DSO_SHARED-HWASAN-X86-64-LINUX: "-pie" +// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-lc" +// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX: libclang_rt.hwasan-x86_64.so" +// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-lpthread" +// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-lrt" +// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-ldl" +// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "--export-dynamic" +// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "--dynamic-list" // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ // RUN: -target aarch64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \ -// RUN: -shared-libsan \ // RUN: -resource-dir=%S/Inputs/resource_dir \ // RUN: --sysroot=%S/Inputs/basic_linux_tree \ -// RUN: | FileCheck --check-prefix=CHECK-SHARED-HWASAN-LINUX %s +// RUN: | FileCheck --check-prefix=CHECK-HWASAN-AARCH64-LINUX %s // -// CHECK-SHARED-HWASAN-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" -// CHECK-SHARED-HWASAN-LINUX-NOT: "-lc" -// CHECK-SHARED-HWASAN-LINUX: libclang_rt.hwasan-aarch64.so" -// CHECK-SHARED-HWASAN-LINUX-NOT: "-lpthread" -// CHECK-SHARED-HWASAN-LINUX-NOT: "-lrt" -// CHECK-SHARED-HWASAN-LINUX-NOT: "-ldl" -// CHECK-SHARED-HWASAN-LINUX-NOT: "--export-dynamic" -// CHECK-SHARED-HWASAN-LINUX-NOT: "--dynamic-list" +// CHECK-HWASAN-AARCH64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" +// CHECK-HWASAN-AARCH64-LINUX: "-pie" +//
[PATCH] D44745: [HWASan] Port HWASan to Linux x86-64 (clang)
alekseyshl added inline comments. Comment at: test/Driver/asan.c:12 -// RUN: %clang -O2 -target aarch64-unknown-linux -fsanitize=hwaddress %s -S -emit-llvm -o - | FileCheck %s --check-prefix=CHECK-HWASAN -// RUN: %clang -O3 -target aarch64-unknown-linux -fsanitize=hwaddress %s -S -emit-llvm -o - | FileCheck %s --check-prefix=CHECK-HWASAN // Verify that -fsanitize={address,kernel-address} invoke ASan and KASan instrumentation. eugenis wrote: > Don't replace existing tests! > Add new ones. > I am not replacing them, I am making it consistent with all other sanitizers, which also support many more platforms than just x86_64-linux-gnu or *-unknown-linux, but have tests for that one platform only. Repository: rC Clang https://reviews.llvm.org/D44745 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D44745: [HWASan] Port HWASan to Linux x86-64 (clang)
eugenis added inline comments. Comment at: lib/Driver/SanitizerArgs.cpp:33 NotAllowedWithMinimalRuntime = Vptr, - RequiresPIE = DataFlow | Scudo, + RequiresPIE = DataFlow | HWAddress | Scudo, NeedsUnwindTables = Address | HWAddress | Thread | Memory | DataFlow, I did not realize hwasan was not mentioned in RequiresPIE before. Could you add a test for it? Comment at: test/Driver/asan.c:12 -// RUN: %clang -O2 -target aarch64-unknown-linux -fsanitize=hwaddress %s -S -emit-llvm -o - | FileCheck %s --check-prefix=CHECK-HWASAN -// RUN: %clang -O3 -target aarch64-unknown-linux -fsanitize=hwaddress %s -S -emit-llvm -o - | FileCheck %s --check-prefix=CHECK-HWASAN // Verify that -fsanitize={address,kernel-address} invoke ASan and KASan instrumentation. Don't replace existing tests! Add new ones. Repository: rC Clang https://reviews.llvm.org/D44745 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D44745: [HWASan] Port HWASan to Linux x86-64 (clang)
alekseyshl created this revision. alekseyshl added a reviewer: eugenis. Herald added a subscriber: cryptoad. Porting HWASan to Linux x86-64, the third of the three patches, clang part. Repository: rC Clang https://reviews.llvm.org/D44745 Files: lib/Driver/SanitizerArgs.cpp lib/Driver/ToolChains/Linux.cpp test/Driver/Inputs/resource_dir/lib/linux/libclang_rt.hwasan-x86_64.a.syms test/Driver/asan.c test/Driver/fsanitize-blacklist.c test/Driver/fsanitize.c test/Driver/sanitizer-ld.c Index: test/Driver/sanitizer-ld.c === --- test/Driver/sanitizer-ld.c +++ test/Driver/sanitizer-ld.c @@ -696,54 +696,94 @@ // CHECK-SCUDO-ANDROID-STATIC: "-lpthread" // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ -// RUN: -target aarch64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \ +// RUN: -target x86_64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \ // RUN: -resource-dir=%S/Inputs/resource_dir \ // RUN: --sysroot=%S/Inputs/basic_linux_tree \ -// RUN: | FileCheck --check-prefix=CHECK-HWASAN-LINUX %s +// RUN: | FileCheck --check-prefix=CHECK-HWASAN-X86-64-LINUX %s // -// CHECK-HWASAN-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" -// CHECK-HWASAN-LINUX-NOT: "-lc" -// CHECK-HWASAN-LINUX: libclang_rt.hwasan-aarch64.a" -// CHECK-HWASAN-LINUX-NOT: "--export-dynamic" -// CHECK-HWASAN-LINUX: "--dynamic-list={{.*}}libclang_rt.hwasan-aarch64.a.syms" -// CHECK-HWASAN-LINUX-NOT: "--export-dynamic" -// CHECK-HWASAN-LINUX: "-lpthread" -// CHECK-HWASAN-LINUX: "-lrt" -// CHECK-HWASAN-LINUX: "-ldl" +// CHECK-HWASAN-X86-64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" +// CHECK-HWASAN-X86-64-LINUX-NOT: "-lc" +// CHECK-HWASAN-X86-64-LINUX: libclang_rt.hwasan-x86_64.a" +// CHECK-HWASAN-X86-64-LINUX-NOT: "--export-dynamic" +// CHECK-HWASAN-X86-64-LINUX: "--dynamic-list={{.*}}libclang_rt.hwasan-x86_64.a.syms" +// CHECK-HWASAN-X86-64-LINUX-NOT: "--export-dynamic" +// CHECK-HWASAN-X86-64-LINUX: "-lpthread" +// CHECK-HWASAN-X86-64-LINUX: "-lrt" +// CHECK-HWASAN-X86-64-LINUX: "-ldl" // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ -// RUN: -target aarch64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress -shared-libsan \ -// RUN: -resource-dir=%S/Inputs/resource_dir \ +// RUN: -target x86_64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \ +// RUN: -shared-libsan -resource-dir=%S/Inputs/resource_dir \ +// RUN: --sysroot=%S/Inputs/basic_linux_tree \ +// RUN: | FileCheck --check-prefix=CHECK-SHARED-HWASAN-X86-64-LINUX %s +// +// CHECK-SHARED-HWASAN-X86-64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" +// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-lc" +// CHECK-SHARED-HWASAN-X86-64-LINUX: libclang_rt.hwasan-x86_64.so" +// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-lpthread" +// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-lrt" +// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-ldl" +// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "--export-dynamic" +// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "--dynamic-list" + +// RUN: %clang -no-canonical-prefixes %s -### -o %t.so -shared 2>&1 \ +// RUN: -target x86_64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \ +// RUN: -shared-libsan -resource-dir=%S/Inputs/resource_dir \ // RUN: --sysroot=%S/Inputs/basic_linux_tree \ -// RUN: | FileCheck --check-prefix=CHECK-SHARED-HWASAN-LINUX %s +// RUN: | FileCheck --check-prefix=CHECK-DSO-SHARED-HWASAN-X86-64-LINUX %s +// +// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" +// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-lc" +// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX: libclang_rt.hwasan-x86_64.so" +// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-lpthread" +// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-lrt" +// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-ldl" +// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "--export-dynamic" +// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "--dynamic-list" // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ // RUN: -target aarch64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \ -// RUN: -shared-libsan \ // RUN: -resource-dir=%S/Inputs/resource_dir \ // RUN: --sysroot=%S/Inputs/basic_linux_tree \ -// RUN: | FileCheck --check-prefix=CHECK-SHARED-HWASAN-LINUX %s +// RUN: | FileCheck --check-prefix=CHECK-HWASAN-AARCH64-LINUX %s // -// CHECK-SHARED-HWASAN-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" -// CHECK-SHARED-HWASAN-LINUX-NOT: "-lc" -// CHECK-SHARED-HWASAN-LINUX: libclang_rt.hwasan-aarch64.so" -// CHECK-SHARED-HWASAN-LINUX-NOT: "-lpthread" -// CHECK-SHARED-HWASAN-LINUX-NOT: "-lrt" -// CHECK-SHARED-HWASAN-LINUX-NOT: "-ldl" -// CHECK-SHARED-HWASAN-LINUX-NOT: "--export-dynamic" -// CHECK-SHARED-HWASAN-LINUX-NOT: "--dynamic-list" +// CHECK-HWASAN-AARCH64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" +// CHECK-HWASAN-AARCH64-LINUX-NOT: "-lc" +// CHECK-HWASAN-AARCH64-LINUX: libclang_rt.hwasan-aarch64.a" +//