TTobias Hieta[scudo] Try to fix standalone build on armv7
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[scudo] Try to fix standalone build on armv7 When linking scudo standalone on armv7, it can't find symbols related to unwinding (e.g. __aeabi_unwind_cpp_pr0). This is because it is passing --unwindlib=none. This patch hacks around the issue by adding COMPILER_RT_UNWINDER_LINK_LIBS to the link line. I don't know anything about scudo, so I'm not sure what the original intention was. See also https://github.com/llvm/llvm-project/issues/56900 Differential Revision: https://reviews.llvm.org/D131250 (cherry picked from commit 8342ea6eac85bd20c56be0ab71b4ebbccd134c67) | 3 年前 | |
[compiler-rt] [scudo] Use -mcrc32 on x86 when available Update the hardware CRC32 logic in scudo to support using -mcrc32 instead of -msse4.2. The CRC32 intrinsics use the former flag in the newer compiler versions, e.g. in clang since 12fa608af44a. With these versions of clang, passing -msse4.2 is insufficient to enable the instructions and causes build failures when -march does not enable CRC32 implicitly: /var/tmp/portage/sys-libs/compiler-rt-sanitizers-14.0.0/work/compiler-rt/lib/scudo/scudo_crc32.cpp:20:10: error: always_inline function '_mm_crc32_u32' requires target feature 'crc32', but would be inlined into function 'computeHardwareCRC32' that is compiled without support for 'crc32' return CRC32_INTRINSIC(Crc, Data); ^ /var/tmp/portage/sys-libs/compiler-rt-sanitizers-14.0.0/work/compiler-rt/lib/scudo/scudo_crc32.h:27:27: note: expanded from macro 'CRC32_INTRINSIC' # define CRC32_INTRINSIC FIRST_32_SECOND_64(_mm_crc32_u32, _mm_crc32_u64) ^ /var/tmp/portage/sys-libs/compiler-rt-sanitizers-14.0.0/work/compiler-rt/lib/scudo/../sanitizer_common/sanitizer_platform.h:132:36: note: expanded from macro 'FIRST_32_SECOND_64' # define FIRST_32_SECOND_64(a, b) (a) ^ 1 error generated. For backwards compatibility, use -mcrc32 when available and fall back to -msse4.2. The <smmintrin.h> header remains in use as it still works and is compatible with GCC, while clang's <crc32intrin.h> is not. Use __builtin_ia32*() rather than _mm_crc32*() when using -mcrc32 to preserve compatibility with GCC. _mm_crc32*() are aliases to __builtin_ia32*() in both compilers but GCC requires -msse4.2 for the former, while both use -mcrc32 for the latter. Originally reported in https://bugs.gentoo.org/835870. Differential Revision: https://reviews.llvm.org/D122789 | 4 年前 | |
[compiler-rt] [scudo] Use -mcrc32 on x86 when available Update the hardware CRC32 logic in scudo to support using -mcrc32 instead of -msse4.2. The CRC32 intrinsics use the former flag in the newer compiler versions, e.g. in clang since 12fa608af44a. With these versions of clang, passing -msse4.2 is insufficient to enable the instructions and causes build failures when -march does not enable CRC32 implicitly: /var/tmp/portage/sys-libs/compiler-rt-sanitizers-14.0.0/work/compiler-rt/lib/scudo/scudo_crc32.cpp:20:10: error: always_inline function '_mm_crc32_u32' requires target feature 'crc32', but would be inlined into function 'computeHardwareCRC32' that is compiled without support for 'crc32' return CRC32_INTRINSIC(Crc, Data); ^ /var/tmp/portage/sys-libs/compiler-rt-sanitizers-14.0.0/work/compiler-rt/lib/scudo/scudo_crc32.h:27:27: note: expanded from macro 'CRC32_INTRINSIC' # define CRC32_INTRINSIC FIRST_32_SECOND_64(_mm_crc32_u32, _mm_crc32_u64) ^ /var/tmp/portage/sys-libs/compiler-rt-sanitizers-14.0.0/work/compiler-rt/lib/scudo/../sanitizer_common/sanitizer_platform.h:132:36: note: expanded from macro 'FIRST_32_SECOND_64' # define FIRST_32_SECOND_64(a, b) (a) ^ 1 error generated. For backwards compatibility, use -mcrc32 when available and fall back to -msse4.2. The <smmintrin.h> header remains in use as it still works and is compatible with GCC, while clang's <crc32intrin.h> is not. Use __builtin_ia32*() rather than _mm_crc32*() when using -mcrc32 to preserve compatibility with GCC. _mm_crc32*() are aliases to __builtin_ia32*() in both compilers but GCC requires -msse4.2 for the former, while both use -mcrc32 for the latter. Originally reported in https://bugs.gentoo.org/835870. Differential Revision: https://reviews.llvm.org/D122789 | 4 年前 | |
[scudo][NFC] Remove unneeded template from scudo::CombinedAllocator Reviewers: cryptoad, eugenis Reviewed By: cryptoad Subscribers: #sanitizers, llvm-commits Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D61162 llvm-svn: 359718 | 7 年前 | |
[scudo][NFC] Remove unneeded template from scudo::CombinedAllocator Reviewers: cryptoad, eugenis Reviewed By: cryptoad Subscribers: #sanitizers, llvm-commits Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D61162 llvm-svn: 359718 | 7 年前 | |
Update compiler-rt cpplint.py https://github.com/cpplint/cpplint/commit/adb3500107f409ac5491188ae652ac3f4d03d9d3 llvm-svn: 371675 | 6 年前 | |
[compiler-rt] [scudo] Use -mcrc32 on x86 when available Update the hardware CRC32 logic in scudo to support using -mcrc32 instead of -msse4.2. The CRC32 intrinsics use the former flag in the newer compiler versions, e.g. in clang since 12fa608af44a. With these versions of clang, passing -msse4.2 is insufficient to enable the instructions and causes build failures when -march does not enable CRC32 implicitly: /var/tmp/portage/sys-libs/compiler-rt-sanitizers-14.0.0/work/compiler-rt/lib/scudo/scudo_crc32.cpp:20:10: error: always_inline function '_mm_crc32_u32' requires target feature 'crc32', but would be inlined into function 'computeHardwareCRC32' that is compiled without support for 'crc32' return CRC32_INTRINSIC(Crc, Data); ^ /var/tmp/portage/sys-libs/compiler-rt-sanitizers-14.0.0/work/compiler-rt/lib/scudo/scudo_crc32.h:27:27: note: expanded from macro 'CRC32_INTRINSIC' # define CRC32_INTRINSIC FIRST_32_SECOND_64(_mm_crc32_u32, _mm_crc32_u64) ^ /var/tmp/portage/sys-libs/compiler-rt-sanitizers-14.0.0/work/compiler-rt/lib/scudo/../sanitizer_common/sanitizer_platform.h:132:36: note: expanded from macro 'FIRST_32_SECOND_64' # define FIRST_32_SECOND_64(a, b) (a) ^ 1 error generated. For backwards compatibility, use -mcrc32 when available and fall back to -msse4.2. The <smmintrin.h> header remains in use as it still works and is compatible with GCC, while clang's <crc32intrin.h> is not. Use __builtin_ia32*() rather than _mm_crc32*() when using -mcrc32 to preserve compatibility with GCC. _mm_crc32*() are aliases to __builtin_ia32*() in both compilers but GCC requires -msse4.2 for the former, while both use -mcrc32 for the latter. Originally reported in https://bugs.gentoo.org/835870. Differential Revision: https://reviews.llvm.org/D122789 | 4 年前 | |
[compiler-rt] [scudo] Use -mcrc32 on x86 when available Update the hardware CRC32 logic in scudo to support using -mcrc32 instead of -msse4.2. The CRC32 intrinsics use the former flag in the newer compiler versions, e.g. in clang since 12fa608af44a. With these versions of clang, passing -msse4.2 is insufficient to enable the instructions and causes build failures when -march does not enable CRC32 implicitly: /var/tmp/portage/sys-libs/compiler-rt-sanitizers-14.0.0/work/compiler-rt/lib/scudo/scudo_crc32.cpp:20:10: error: always_inline function '_mm_crc32_u32' requires target feature 'crc32', but would be inlined into function 'computeHardwareCRC32' that is compiled without support for 'crc32' return CRC32_INTRINSIC(Crc, Data); ^ /var/tmp/portage/sys-libs/compiler-rt-sanitizers-14.0.0/work/compiler-rt/lib/scudo/scudo_crc32.h:27:27: note: expanded from macro 'CRC32_INTRINSIC' # define CRC32_INTRINSIC FIRST_32_SECOND_64(_mm_crc32_u32, _mm_crc32_u64) ^ /var/tmp/portage/sys-libs/compiler-rt-sanitizers-14.0.0/work/compiler-rt/lib/scudo/../sanitizer_common/sanitizer_platform.h:132:36: note: expanded from macro 'FIRST_32_SECOND_64' # define FIRST_32_SECOND_64(a, b) (a) ^ 1 error generated. For backwards compatibility, use -mcrc32 when available and fall back to -msse4.2. The <smmintrin.h> header remains in use as it still works and is compatible with GCC, while clang's <crc32intrin.h> is not. Use __builtin_ia32*() rather than _mm_crc32*() when using -mcrc32 to preserve compatibility with GCC. _mm_crc32*() are aliases to __builtin_ia32*() in both compilers but GCC requires -msse4.2 for the former, while both use -mcrc32 for the latter. Originally reported in https://bugs.gentoo.org/835870. Differential Revision: https://reviews.llvm.org/D122789 | 4 年前 | |
Remove NOLINTs from compiler-rt llvm-svn: 371687 | 6 年前 | |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636 | 7 年前 | |
Improve error message when '=' is missing in {ASAN,...}_OPTIONS. Summary: It's handling isses as described here: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89832 Patch by Martin Liška. Reviewers: kcc, vitalybuka Reviewed By: vitalybuka Subscribers: cryptoad, kubamracek Differential Revision: https://reviews.llvm.org/D59876 llvm-svn: 363480 | 6 年前 | |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636 | 7 年前 | |
[scudo] Tuning changes based on feedback from current use Summary: This tunes several of the default parameters used within the allocator: - disable the deallocation type mismatch on Android by default; this was causing too many issues with third party libraries; - change the default SizeClassMap to Dense, it caches less entries and is way more memory efficient overall; - relax the timing of the RSS checks, 10 times per second was too much, lower it to 4 times (every 250ms), and update the test so that it passes with the new default. Reviewers: eugenis Reviewed By: eugenis Subscribers: srhines, delcypher, #sanitizers, llvm-commits Differential Revision: https://reviews.llvm.org/D57116 llvm-svn: 352057 | 7 年前 | |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636 | 7 年前 | |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636 | 7 年前 | |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636 | 7 年前 | |
[scudo] Tuning changes based on feedback from current use Summary: This tunes several of the default parameters used within the allocator: - disable the deallocation type mismatch on Android by default; this was causing too many issues with third party libraries; - change the default SizeClassMap to Dense, it caches less entries and is way more memory efficient overall; - relax the timing of the RSS checks, 10 times per second was too much, lower it to 4 times (every 250ms), and update the test so that it passes with the new default. Reviewers: eugenis Reviewed By: eugenis Subscribers: srhines, delcypher, #sanitizers, llvm-commits Differential Revision: https://reviews.llvm.org/D57116 llvm-svn: 352057 | 7 年前 | |
scudo: fix CheckFailed-related build breakage I was running: $ ninja check-sanitizer check-msan check-asan \ check-tsan check-lsan check-ubsan check-cfi \ check-profile check-memprof check-xray check-hwasan but missed check-scudo... Differential Revision: https://reviews.llvm.org/D102314 | 5 年前 | |
sanitizer_common: prefix thread-safety macros with SANITIZER_ Currently we use very common names for macros like ACQUIRE/RELEASE, which cause conflicts with system headers. Prefix all macros with SANITIZER_ to avoid conflicts. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D116652 | 4 年前 | |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636 | 7 年前 | |
sanitizer_common: prefix thread-safety macros with SANITIZER_ Currently we use very common names for macros like ACQUIRE/RELEASE, which cause conflicts with system headers. Prefix all macros with SANITIZER_ to avoid conflicts. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D116652 | 4 年前 | |
sanitizer_common: prefix thread-safety macros with SANITIZER_ Currently we use very common names for macros like ACQUIRE/RELEASE, which cause conflicts with system headers. Prefix all macros with SANITIZER_ to avoid conflicts. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D116652 | 4 年前 | |
scudo: fix thread-safety macro name Missed in 765921de5b ("sanitizer_common: prefix thread-safety macros with SANITIZER_") update. Differential Revision: https://reviews.llvm.org/D116818 | 4 年前 | |
scudo: fix __attribute__((format)) The attribute should be in the header on declaration. It's almost pointless in the source file. Depends on D107977. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D107978 | 4 年前 | |
scudo: fix __attribute__((format)) The attribute should be in the header on declaration. It's almost pointless in the source file. Depends on D107977. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D107978 | 4 年前 |