Skip to content

Commit

Permalink
[DanglingPtr] Cherry-pick upstream build failure fix
Browse files Browse the repository at this point in the history
I had to spend some significant bysecting this and it turns out rust
tools don't support sanitisers, which was breaking the experimental
build with dangling pointers.

Chromium change:
https://chromium.googlesource.com/chromium/src/+/b250fcef54d8631d6fc09d1936980fa81ccaf4d0

commit b250fcef54d8631d6fc09d1936980fa81ccaf4d0
Author: danakj <[email protected]>
Date:   Tue Oct 1 17:57:51 2024 +0000

    Disable PA-based features in the Rust host tools toolchain (proc macros)

    If the user explicitly turns on ASAN and use_raw_ptr_asan_unowned_impl
    we don't want to use those in the host tools toolchain. Elsewhere we
    disable ASAN in the toolchain in build/config/sanitizers/sanitizers.gni:
    ```
    if (!is_a_target_toolchain || toolchain_for_rust_host_build_tools) {
      is_asan = false
    ```

    But that leaves use_raw_ptr_asan_unowned_impl on without ASAN which then
    causes GN assertions and badness.

    The rust host tools toolchain should just use default allocators anyway
    so that the proc macro DLLs use the same allocator as the compiler that
    dlopens them.

    Bug: 40212971
  • Loading branch information
cdesouza-chromium committed Oct 16, 2024
1 parent d67b8d0 commit 12c036b
Showing 1 changed file with 15 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
diff --git a/base/allocator/partition_allocator/partition_alloc.gni b/base/allocator/partition_allocator/partition_alloc.gni
index 2b589ddd153214e237c1028f6be736351754a6f0..f320b815d1a500dffc299471140a21ff2e5d03c7 100644
--- a/base/allocator/partition_allocator/partition_alloc.gni
+++ b/base/allocator/partition_allocator/partition_alloc.gni
@@ -284,7 +284,9 @@ stack_scan_supported =
# - has_memory_tagging
if (!use_partition_alloc ||
(defined(toolchain_allows_use_partition_alloc_as_malloc) &&
- !toolchain_allows_use_partition_alloc_as_malloc)) {
+ !toolchain_allows_use_partition_alloc_as_malloc) ||
+ (defined(toolchain_for_rust_host_build_tools) &&
+ toolchain_for_rust_host_build_tools)) {
use_partition_alloc_as_malloc = false
glue_core_pools = false
enable_backup_ref_ptr_support = false

0 comments on commit 12c036b

Please sign in to comment.