Revert "Re-land tests for MTE globals"

Revert submission 3236258

Reason for revert: b/374452952

Reverted changes: /q/submissionid:3236258
(cherry picked from https://android-review.googlesource.com/q/commit:c0112570483f4cb8771695fae6d7357e4198029f)
Merged-In: I73a39300205890a387d41ac0e629812e13e8a941
Change-Id: I73a39300205890a387d41ac0e629812e13e8a941
Staged CLs so I don't have to wait for merges before I CP
diff --git a/tests/Android.bp b/tests/Android.bp
index 460b471..b537483 100644
--- a/tests/Android.bp
+++ b/tests/Android.bp
@@ -429,7 +429,6 @@
         "math_test.cpp",
         "membarrier_test.cpp",
         "memtag_stack_test.cpp",
-        "memtag_globals_test.cpp",
         "mntent_test.cpp",
         "mte_test.cpp",
         "netdb_test.cpp",
@@ -897,11 +896,6 @@
         "preinit_syscall_test_helper",
         "thread_exit_cb_helper",
         "tls_properties_helper",
-        "memtag_globals_binary",
-        "memtag_globals_binary_static",
-        "mte_globals_relr_regression_test_b_314038442",
-        "mte_globals_relr_regression_test_b_314038442_mte",
-        "memtag_globals_dso",
     ],
     data_libs: [
         "libatest_simple_zip",
@@ -1293,11 +1287,6 @@
         "heap_tagging_static_disabled_helper",
         "heap_tagging_static_sync_helper",
         "heap_tagging_sync_helper",
-        "memtag_globals_binary",
-        "memtag_globals_binary_static",
-        "memtag_globals_dso",
-        "mte_globals_relr_regression_test_b_314038442",
-        "mte_globals_relr_regression_test_b_314038442_mte",
         "stack_tagging_helper",
         "stack_tagging_static_helper",
     ],
diff --git a/tests/libs/Android.bp b/tests/libs/Android.bp
index 5b86e78..d13ee60 100644
--- a/tests/libs/Android.bp
+++ b/tests/libs/Android.bp
@@ -1903,89 +1903,3 @@
         " $(location soong_zip) -o $(out).unaligned -L 0 -C $(genDir)/zipdir -D $(genDir)/zipdir &&" +
         " $(location bionic_tests_zipalign) 16384 $(out).unaligned $(out)",
 }
-
-cc_defaults {
-    name: "memtag_globals_defaults",
-    defaults: [
-        "bionic_testlib_defaults",
-        "bionic_targets_only"
-    ],
-    cflags: [
-        "-Wno-array-bounds",
-        "-Wno-unused-variable",
-    ],
-    header_libs: ["bionic_libc_platform_headers"],
-    sanitize: {
-        hwaddress: false,
-        memtag_heap: true,
-        memtag_globals: true,
-        diag: {
-            memtag_heap: true,
-        }
-    },
-}
-
-cc_test_library {
-    name: "memtag_globals_dso",
-    defaults: [ "memtag_globals_defaults" ],
-    srcs: ["memtag_globals_dso.cpp"],
-}
-
-cc_test {
-    name: "memtag_globals_binary",
-    defaults: [ "memtag_globals_defaults" ],
-    srcs: ["memtag_globals_binary.cpp"],
-    shared_libs: [ "memtag_globals_dso" ],
-    // This binary is used in the bionic-unit-tests as a data dependency, and is
-    // in the same folder as memtag_globals_dso. But, the default cc_test rules
-    // make this binary (when just explicitly built and shoved in
-    // /data/nativetest64/) end up in a subfolder called
-    // 'memtag_globals_binary'. When this happens, the explicit build fails to
-    // find the DSO because the default rpath is just ${ORIGIN}, and because we
-    // want this to be usable both from bionic-unit-tests and explicit builds,
-    // let's just not put it in a subdirectory.
-    no_named_install_directory: true,
-}
-
-cc_test {
-    name: "memtag_globals_binary_static",
-    defaults: [ "memtag_globals_defaults" ],
-    srcs: ["memtag_globals_binary.cpp"],
-    static_libs: [ "memtag_globals_dso" ],
-    no_named_install_directory: true,
-    static_executable: true,
-}
-
-// This is a regression test for b/314038442, where binaries built *without* MTE
-// globals would have out-of-bounds RELR relocations, which where then `ldg`'d,
-// which resulted in linker crashes.
-cc_test {
-  name: "mte_globals_relr_regression_test_b_314038442",
-  defaults: [
-        "bionic_testlib_defaults",
-        "bionic_targets_only"
-    ],
-    cflags: [ "-Wno-array-bounds" ],
-    ldflags: [ "-Wl,--pack-dyn-relocs=relr" ],
-    srcs: ["mte_globals_relr_regression_test_b_314038442.cpp"],
-    no_named_install_directory: true,
-    sanitize: {
-        memtag_globals: false,
-    },
-}
-
-// Same test as above, but also for MTE globals, just for the sake of it.
-cc_test {
-  name: "mte_globals_relr_regression_test_b_314038442_mte",
-  defaults: [
-        "bionic_testlib_defaults",
-        "bionic_targets_only"
-    ],
-    cflags: [ "-Wno-array-bounds" ],
-    ldflags: [ "-Wl,--pack-dyn-relocs=relr" ],
-    srcs: ["mte_globals_relr_regression_test_b_314038442.cpp"],
-    no_named_install_directory: true,
-    sanitize: {
-      memtag_globals: true,
-    },
-}
diff --git a/tests/libs/memtag_globals.h b/tests/libs/memtag_globals.h
deleted file mode 100644
index a03abae..0000000
--- a/tests/libs/memtag_globals.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <utility>
-#include <vector>
-
-void check_tagged(const void* a);
-void check_untagged(const void* a);
-void check_matching_tags(const void* a, const void* b);
-void check_eq(const void* a, const void* b);
-
-void dso_check_assertions(bool enforce_tagged);
-void dso_print_variables();
-
-void print_variable_address(const char* name, const void* ptr);
-void print_variables(const char* header,
-                     const std::vector<std::pair<const char*, const void*>>& tagged_variables,
-                     const std::vector<std::pair<const char*, const void*>>& untagged_variables);
diff --git a/tests/libs/memtag_globals_binary.cpp b/tests/libs/memtag_globals_binary.cpp
deleted file mode 100644
index 9248728..0000000
--- a/tests/libs/memtag_globals_binary.cpp
+++ /dev/null
@@ -1,195 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <string>
-#include <vector>
-
-#include "memtag_globals.h"
-
-// Adapted from the LLD test suite: lld/test/ELF/Inputs/aarch64-memtag-globals.s
-
-/// Global variables defined here, of various semantics.
-char global[30] = {};
-__attribute__((no_sanitize("memtag"))) int global_untagged = 0;
-const int const_global = 0;
-static const int hidden_const_global = 0;
-static char hidden_global[12] = {};
-__attribute__((visibility("hidden"))) int hidden_attr_global = 0;
-__attribute__((visibility("hidden"))) const int hidden_attr_const_global = 0;
-
-/// Should be untagged.
-__thread int tls_global;
-__thread static int hidden_tls_global;
-
-/// Tagged, from the other file.
-extern int global_extern;
-/// Untagged, from the other file.
-extern __attribute__((no_sanitize("memtag"))) int global_extern_untagged;
-/// Tagged here, but untagged in the definition found in the sister objfile
-/// (explicitly).
-extern int global_extern_untagged_definition_but_tagged_import;
-
-/// ABS64 relocations. Also, forces symtab entries for local and external
-/// globals.
-char* pointer_to_global = &global[0];
-char* pointer_inside_global = &global[17];
-char* pointer_to_global_end = &global[30];
-char* pointer_past_global_end = &global[48];
-int* pointer_to_global_untagged = &global_untagged;
-const int* pointer_to_const_global = &const_global;
-/// RELATIVE relocations.
-const int* pointer_to_hidden_const_global = &hidden_const_global;
-char* pointer_to_hidden_global = &hidden_global[0];
-int* pointer_to_hidden_attr_global = &hidden_attr_global;
-const int* pointer_to_hidden_attr_const_global = &hidden_attr_const_global;
-/// RELATIVE relocations with special AArch64 MemtagABI semantics, with the
-/// offset ('12' or '16') encoded in the place.
-char* pointer_to_hidden_global_end = &hidden_global[12];
-char* pointer_past_hidden_global_end = &hidden_global[16];
-/// ABS64 relocations.
-int* pointer_to_global_extern = &global_extern;
-int* pointer_to_global_extern_untagged = &global_extern_untagged;
-int* pointer_to_global_extern_untagged_definition_but_tagged_import =
-    &global_extern_untagged_definition_but_tagged_import;
-
-// Force materialization of these globals into the symtab.
-int* get_address_to_tls_global() {
-  return &tls_global;
-}
-int* get_address_to_hidden_tls_global() {
-  return &hidden_tls_global;
-}
-
-static const std::vector<std::pair<const char*, const void*>>& get_expected_tagged_vars() {
-  static std::vector<std::pair<const char*, const void*>> expected_tagged_vars = {
-      {"global", &global},
-      {"pointer_inside_global", pointer_inside_global},
-      {"pointer_to_global_end", pointer_to_global_end},
-      {"pointer_past_global_end", pointer_past_global_end},
-      {"hidden_global", &hidden_global},
-      {"hidden_attr_global", &hidden_attr_global},
-      {"global_extern", &global_extern},
-  };
-  return expected_tagged_vars;
-}
-
-static const std::vector<std::pair<const char*, const void*>>& get_expected_untagged_vars() {
-  static std::vector<std::pair<const char*, const void*>> expected_untagged_vars = {
-      {"global_extern_untagged", &global_extern_untagged},
-      {"global_extern_untagged_definition_but_tagged_import",
-       &global_extern_untagged_definition_but_tagged_import},
-      {"global_untagged", &global_untagged},
-      {"const_global", &const_global},
-      {"hidden_const_global", &hidden_const_global},
-      {"hidden_attr_const_global", &hidden_attr_const_global},
-      {"tls_global", &tls_global},
-      {"hidden_tls_global", &hidden_tls_global},
-  };
-  return expected_untagged_vars;
-}
-
-void exe_print_variables() {
-  print_variables("  Variables accessible from the binary:\n", get_expected_tagged_vars(),
-                  get_expected_untagged_vars());
-}
-
-// Dump the addresses of the global variables to stderr
-void dso_print();
-void dso_print_others();
-
-void exe_check_assertions(bool check_pointers_are_tagged) {
-  // Check that non-const variables are writeable.
-  *pointer_to_global = 0;
-  *pointer_inside_global = 0;
-  *(pointer_to_global_end - 1) = 0;
-  *pointer_to_global_untagged = 0;
-  *pointer_to_hidden_global = 0;
-  *pointer_to_hidden_attr_global = 0;
-  *(pointer_to_hidden_global_end - 1) = 0;
-  *pointer_to_global_extern = 0;
-  *pointer_to_global_extern_untagged = 0;
-  *pointer_to_global_extern_untagged_definition_but_tagged_import = 0;
-
-  if (check_pointers_are_tagged) {
-    for (const auto& [_, pointer] : get_expected_tagged_vars()) {
-      check_tagged(pointer);
-    }
-  }
-
-  for (const auto& [_, pointer] : get_expected_untagged_vars()) {
-    check_untagged(pointer);
-  }
-
-  check_matching_tags(pointer_to_global, pointer_inside_global);
-  check_matching_tags(pointer_to_global, pointer_to_global_end);
-  check_matching_tags(pointer_to_global, pointer_past_global_end);
-  check_eq(pointer_inside_global, pointer_to_global + 17);
-  check_eq(pointer_to_global_end, pointer_to_global + 30);
-  check_eq(pointer_past_global_end, pointer_to_global + 48);
-
-  check_matching_tags(pointer_to_hidden_global, pointer_to_hidden_global_end);
-  check_matching_tags(pointer_to_hidden_global, pointer_past_hidden_global_end);
-  check_eq(pointer_to_hidden_global_end, pointer_to_hidden_global + 12);
-  check_eq(pointer_past_hidden_global_end, pointer_to_hidden_global + 16);
-}
-
-void crash() {
-  *pointer_past_global_end = 0;
-}
-
-int main(int argc, char** argv) {
-  bool check_pointers_are_tagged = false;
-  // For an MTE-capable device, provide argv[1] == '1' to enable the assertions
-  // that pointers should be tagged.
-  if (argc >= 2 && argv[1][0] == '1') {
-    check_pointers_are_tagged = true;
-  }
-
-  char* heap_ptr = static_cast<char*>(malloc(1));
-  print_variable_address("heap address", heap_ptr);
-  *heap_ptr = 0;
-  if (check_pointers_are_tagged) check_tagged(heap_ptr);
-  free(heap_ptr);
-
-  exe_print_variables();
-  dso_print_variables();
-
-  exe_check_assertions(check_pointers_are_tagged);
-  dso_check_assertions(check_pointers_are_tagged);
-
-  printf("Assertions were passed. Now doing a global-buffer-overflow.\n");
-  fflush(stdout);
-  crash();
-  printf("global-buffer-overflow went uncaught.\n");
-  return 0;
-}
diff --git a/tests/libs/memtag_globals_dso.cpp b/tests/libs/memtag_globals_dso.cpp
deleted file mode 100644
index 9ed264e..0000000
--- a/tests/libs/memtag_globals_dso.cpp
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <vector>
-
-#include "memtag_globals.h"
-
-// Adapted from the LLD test suite: lld/test/ELF/Inputs/aarch64-memtag-globals.s
-
-int global_extern;
-static int global_extern_hidden;
-__attribute__((no_sanitize("memtag"))) int global_extern_untagged;
-__attribute__((no_sanitize("memtag"))) int global_extern_untagged_definition_but_tagged_import;
-
-void assertion_failure() {
-  exit(1);
-}
-
-void check_tagged(const void* a) {
-  uintptr_t a_uptr = reinterpret_cast<uintptr_t>(a);
-#if defined(__aarch64__)
-  if ((a_uptr >> 56) == 0) {
-    fprintf(stderr, "**********************************\n");
-    fprintf(stderr, "Failed assertion:\n");
-    fprintf(stderr, "  tag(0x%zx) != 0\n", a_uptr);
-    fprintf(stderr, "**********************************\n");
-
-    assertion_failure();
-  }
-#endif  // defined(__aarch64__)
-}
-
-void check_untagged(const void* a) {
-  uintptr_t a_uptr = reinterpret_cast<uintptr_t>(a);
-#if defined(__aarch64__)
-  if ((a_uptr >> 56) != 0) {
-    fprintf(stderr, "**********************************\n");
-    fprintf(stderr, "Failed assertion:\n");
-    fprintf(stderr, "  tag(0x%zx) == 0\n", a_uptr);
-    fprintf(stderr, "**********************************\n");
-
-    assertion_failure();
-  }
-#endif  // defined(__aarch64__)
-}
-
-void check_matching_tags(const void* a, const void* b) {
-  uintptr_t a_uptr = reinterpret_cast<uintptr_t>(a);
-  uintptr_t b_uptr = reinterpret_cast<uintptr_t>(b);
-#if defined(__aarch64__)
-  if (a_uptr >> 56 != b_uptr >> 56) {
-    fprintf(stderr, "**********************************\n");
-    fprintf(stderr, "Failed assertion:\n");
-    fprintf(stderr, "  tag(0x%zx) != tag(0x%zx)\n", a_uptr, b_uptr);
-    fprintf(stderr, "**********************************\n");
-
-    assertion_failure();
-  }
-#endif  // defined(__aarch64__)
-}
-
-void check_eq(const void* a, const void* b) {
-  if (a != b) {
-    fprintf(stderr, "**********************************\n");
-    fprintf(stderr, "Failed assertion:\n");
-    fprintf(stderr, "  %p != %p\n", a, b);
-    fprintf(stderr, "**********************************\n");
-
-    assertion_failure();
-  }
-}
-
-#define LONGEST_VARIABLE_NAME "51"
-void print_variable_address(const char* name, const void* ptr) {
-  printf("%" LONGEST_VARIABLE_NAME "s: %16p\n", name, ptr);
-}
-
-static const std::vector<std::pair<const char*, const void*>>& get_expected_tagged_vars() {
-  static std::vector<std::pair<const char*, const void*>> expected_tagged_vars = {
-      {"global_extern", &global_extern},
-      {"global_extern_hidden", &global_extern_hidden},
-  };
-  return expected_tagged_vars;
-}
-
-static const std::vector<std::pair<const char*, const void*>>& get_expected_untagged_vars() {
-  static std::vector<std::pair<const char*, const void*>> expected_untagged_vars = {
-      {"global_extern_untagged", &global_extern_untagged},
-      {"global_extern_untagged_definition_but_tagged_import",
-       &global_extern_untagged_definition_but_tagged_import},
-  };
-  return expected_untagged_vars;
-}
-
-void dso_print_variables() {
-  print_variables("  Variables declared in the DSO:\n", get_expected_tagged_vars(),
-                  get_expected_untagged_vars());
-}
-
-void print_variables(const char* header,
-                     const std::vector<std::pair<const char*, const void*>>& tagged_variables,
-                     const std::vector<std::pair<const char*, const void*>>& untagged_variables) {
-  printf("==========================================================\n");
-  printf("%s", header);
-  printf("==========================================================\n");
-  printf(" Variables expected to be tagged:\n");
-  printf("----------------------------------------------------------\n");
-  for (const auto& [name, pointer] : tagged_variables) {
-    print_variable_address(name, pointer);
-  }
-
-  printf("\n----------------------------------------------------------\n");
-  printf(" Variables expected to be untagged:\n");
-  printf("----------------------------------------------------------\n");
-  for (const auto& [name, pointer] : untagged_variables) {
-    print_variable_address(name, pointer);
-  }
-  printf("\n");
-}
-
-void dso_check_assertions(bool check_pointers_are_tagged) {
-  // Check that non-const variables are writeable.
-  global_extern = 0;
-  global_extern_hidden = 0;
-  global_extern_untagged = 0;
-  global_extern_untagged_definition_but_tagged_import = 0;
-
-  if (check_pointers_are_tagged) {
-    for (const auto& [_, pointer] : get_expected_tagged_vars()) {
-      check_tagged(pointer);
-    }
-  }
-
-  for (const auto& [_, pointer] : get_expected_untagged_vars()) {
-    check_untagged(pointer);
-  }
-}
diff --git a/tests/libs/mte_globals_relr_regression_test_b_314038442.cpp b/tests/libs/mte_globals_relr_regression_test_b_314038442.cpp
deleted file mode 100644
index 20bbba9..0000000
--- a/tests/libs/mte_globals_relr_regression_test_b_314038442.cpp
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <stdint.h>
-#include <stdio.h>
-
-static volatile char array[0x10000];
-volatile char* volatile oob_ptr = &array[0x111111111];
-
-unsigned char get_tag(__attribute__((unused)) volatile void* ptr) {
-#if defined(__aarch64__)
-  return static_cast<unsigned char>(reinterpret_cast<uintptr_t>(ptr) >> 56) & 0xf;
-#else   // !defined(__aarch64__)
-  return 0;
-#endif  // defined(__aarch64__)
-}
-
-int main() {
-  printf("Program loaded successfully. %p %p. ", array, oob_ptr);
-  if (get_tag(array) != get_tag(oob_ptr)) {
-    printf("Tags are mismatched!\n");
-    return 1;
-  }
-  if (get_tag(array) == 0) {
-    printf("Tags are zero!\n");
-  } else {
-    printf("Tags are non-zero\n");
-  }
-  return 0;
-}
diff --git a/tests/memtag_globals_test.cpp b/tests/memtag_globals_test.cpp
deleted file mode 100644
index ff93e7b..0000000
--- a/tests/memtag_globals_test.cpp
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <gtest/gtest.h>
-
-#if defined(__BIONIC__)
-#include "gtest_globals.h"
-#include "utils.h"
-#endif  // defined(__BIONIC__)
-
-#include <android-base/test_utils.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <string>
-#include <tuple>
-
-#include "platform/bionic/mte.h"
-
-class MemtagGlobalsTest : public testing::TestWithParam<bool> {};
-
-TEST_P(MemtagGlobalsTest, test) {
-  SKIP_WITH_HWASAN << "MTE globals tests are incompatible with HWASan";
-#if defined(__BIONIC__) && defined(__aarch64__)
-  std::string binary = GetTestLibRoot() + "/memtag_globals_binary";
-  bool is_static = MemtagGlobalsTest::GetParam();
-  if (is_static) {
-    binary += "_static";
-  }
-
-  chmod(binary.c_str(), 0755);
-  ExecTestHelper eth;
-  eth.SetArgs({binary.c_str(), nullptr});
-  eth.Run(
-      [&]() {
-        execve(binary.c_str(), eth.GetArgs(), eth.GetEnv());
-        GTEST_FAIL() << "Failed to execve: " << strerror(errno) << " " << binary.c_str();
-      },
-      // We catch the global-buffer-overflow and crash only when MTE globals is
-      // supported. Note that MTE globals is unsupported for fully static
-      // executables, but we should still make sure the binary passes its
-      // assertions, just that global variables won't be tagged.
-      (mte_supported() && !is_static) ? -SIGSEGV : 0, "Assertions were passed");
-#else
-  GTEST_SKIP() << "bionic/arm64 only";
-#endif
-}
-
-INSTANTIATE_TEST_SUITE_P(MemtagGlobalsTest, MemtagGlobalsTest, testing::Bool(),
-                         [](const ::testing::TestParamInfo<MemtagGlobalsTest::ParamType>& info) {
-                           if (info.param) return "MemtagGlobalsTest_static";
-                           return "MemtagGlobalsTest";
-                         });
-
-TEST(MemtagGlobalsTest, RelrRegressionTestForb314038442) {
-  SKIP_WITH_HWASAN << "MTE globals tests are incompatible with HWASan";
-#if defined(__BIONIC__) && defined(__aarch64__)
-  std::string binary = GetTestLibRoot() + "/mte_globals_relr_regression_test_b_314038442";
-  chmod(binary.c_str(), 0755);
-  ExecTestHelper eth;
-  eth.SetArgs({binary.c_str(), nullptr});
-  eth.Run(
-      [&]() {
-        execve(binary.c_str(), eth.GetArgs(), eth.GetEnv());
-        GTEST_FAIL() << "Failed to execve: " << strerror(errno) << " " << binary.c_str();
-      },
-      /* exit code */ 0, "Program loaded successfully.*Tags are zero!");
-#else
-  GTEST_SKIP() << "bionic/arm64 only";
-#endif
-}
-
-TEST(MemtagGlobalsTest, RelrRegressionTestForb314038442WithMteGlobals) {
-  if (!mte_supported()) GTEST_SKIP() << "Must have MTE support.";
-#if defined(__BIONIC__) && defined(__aarch64__)
-  std::string binary = GetTestLibRoot() + "/mte_globals_relr_regression_test_b_314038442_mte";
-  chmod(binary.c_str(), 0755);
-  ExecTestHelper eth;
-  eth.SetArgs({binary.c_str(), nullptr});
-  eth.Run(
-      [&]() {
-        execve(binary.c_str(), eth.GetArgs(), eth.GetEnv());
-        GTEST_FAIL() << "Failed to execve: " << strerror(errno) << " " << binary.c_str();
-      },
-      /* exit code */ 0, "Program loaded successfully.*Tags are non-zero");
-#else
-  GTEST_SKIP() << "bionic/arm64 only";
-#endif
-}