riscv64: fix ODR violations.

Rather than do the work to fix the ODR violations while preserving non-V,
let's just remove the non-V code. Android will require V anyway, and
anyone trying to work on a non-V system in the meantime already needs
a bunch of patches to the build system and ART, so one more shouldn't
hurt too much.

Test: treehugger
Change-Id: Iab43d8a80d99a4d045b0008dbea4e7e8696d1167
diff --git a/libc/Android.bp b/libc/Android.bp
index fe5f6de..390cc0c 100644
--- a/libc/Android.bp
+++ b/libc/Android.bp
@@ -136,6 +136,8 @@
     },
 
     apex_available: ["com.android.runtime"],
+
+    tidy_disabled_srcs: ["upstream-*/**/*.c"],
 }
 
 libc_scudo_product_variables = {
@@ -251,7 +253,6 @@
 cc_library_static {
 
     defaults: ["libc_defaults"],
-    tidy_disabled_srcs: ["upstream-*/**/*.c"],
     srcs: [
         "tzcode/**/*.c",
         "tzcode/bionic.cpp",
@@ -302,7 +303,6 @@
 cc_library_static {
 
     defaults: ["libc_defaults"],
-    tidy_disabled_srcs: ["upstream-*/**/*.c"],
     srcs: [
         "dns/**/*.c*",
 
@@ -345,7 +345,6 @@
 
 cc_library_static {
     defaults: ["libc_defaults"],
-    tidy_disabled_srcs: ["upstream-*/**/*.c"],
     srcs: [
         "upstream-freebsd/lib/libc/stdlib/getopt_long.c",
         "upstream-freebsd/lib/libc/stdlib/hcreate.c",
@@ -411,7 +410,6 @@
 
 cc_library_static {
     defaults: ["libc_defaults"],
-    tidy_disabled_srcs: ["upstream-*/**/*.c"],
     srcs: [
         "upstream-freebsd/lib/libc/gen/glob.c",
     ],
@@ -439,7 +437,6 @@
 cc_library_static {
 
     defaults: ["libc_defaults"],
-    tidy_disabled_srcs: ["upstream-*/**/*.c"],
     srcs: [
         "upstream-netbsd/common/lib/libc/stdlib/random.c",
         "upstream-netbsd/lib/libc/gen/nice.c",
@@ -497,7 +494,6 @@
 cc_library_static {
     name: "libc_openbsd_ndk",
     defaults: ["libc_defaults"],
-    tidy_disabled_srcs: ["upstream-*/**/*.c"],
     srcs: [
         "upstream-openbsd/lib/libc/gen/alarm.c",
         "upstream-openbsd/lib/libc/gen/ctype_.c",
@@ -616,7 +612,6 @@
 cc_library_static {
     name: "libc_openbsd_large_stack",
     defaults: ["libc_defaults"],
-    tidy_disabled_srcs: ["upstream-*/**/*.c"],
     srcs: [
         "stdio/vfprintf.cpp",
         "stdio/vfwprintf.cpp",
@@ -646,78 +641,54 @@
 // automatically included.
 cc_library_static {
     defaults: ["libc_defaults"],
-    tidy_disabled_srcs: ["upstream-*/**/*.c"],
     srcs: [
         // These two depend on getentropy, which isn't in libc_ndk.a.
         "upstream-openbsd/lib/libc/crypt/arc4random.c",
         "upstream-openbsd/lib/libc/crypt/arc4random_uniform.c",
-
-        // May be overriden by per-arch optimized versions
-        "upstream-openbsd/lib/libc/string/memchr.c",
-        "upstream-openbsd/lib/libc/string/memrchr.c",
-        "upstream-openbsd/lib/libc/string/stpcpy.c",
-        "upstream-openbsd/lib/libc/string/stpncpy.c",
-        "upstream-openbsd/lib/libc/string/strcat.c",
-        "upstream-openbsd/lib/libc/string/strcpy.c",
-        "upstream-openbsd/lib/libc/string/strlcat.c",
-        "upstream-openbsd/lib/libc/string/strlcpy.c",
-        "upstream-openbsd/lib/libc/string/strncat.c",
-        "upstream-openbsd/lib/libc/string/strncmp.c",
-        "upstream-openbsd/lib/libc/string/strncpy.c",
     ],
 
+    // Each architecture has optimized versions of some routines,
+    // and only includes the portable C versions of ones it's missing.
     arch: {
         arm: {
-            exclude_srcs: [
-                "upstream-openbsd/lib/libc/string/strcpy.c",
-                "upstream-openbsd/lib/libc/string/stpcpy.c",
-                "upstream-openbsd/lib/libc/string/strcat.c",
+            srcs: [
+                "upstream-openbsd/lib/libc/string/memchr.c",
+                "upstream-openbsd/lib/libc/string/memrchr.c",
+                "upstream-openbsd/lib/libc/string/stpncpy.c",
+                "upstream-openbsd/lib/libc/string/strlcat.c",
+                "upstream-openbsd/lib/libc/string/strlcpy.c",
+                "upstream-openbsd/lib/libc/string/strncat.c",
+                "upstream-openbsd/lib/libc/string/strncmp.c",
+                "upstream-openbsd/lib/libc/string/strncpy.c",
             ],
         },
         arm64: {
-            exclude_srcs: [
-                "upstream-openbsd/lib/libc/string/memchr.c",
-                "upstream-openbsd/lib/libc/string/memrchr.c",
-                "upstream-openbsd/lib/libc/string/stpcpy.c",
-                "upstream-openbsd/lib/libc/string/strcpy.c",
-                "upstream-openbsd/lib/libc/string/strncmp.c",
+            srcs: [
+                "upstream-openbsd/lib/libc/string/stpncpy.c",
+                "upstream-openbsd/lib/libc/string/strcat.c",
+                "upstream-openbsd/lib/libc/string/strlcat.c",
+                "upstream-openbsd/lib/libc/string/strlcpy.c",
+                "upstream-openbsd/lib/libc/string/strncat.c",
+                "upstream-openbsd/lib/libc/string/strncpy.c",
             ],
         },
         riscv64: {
             srcs: [
-                "upstream-freebsd/lib/libc/string/memcmp.c",
-                "upstream-freebsd/lib/libc/string/memcpy.c",
-                "upstream-freebsd/lib/libc/string/memmove.c",
-                "upstream-freebsd/lib/libc/string/memset.c",
-                "upstream-openbsd/lib/libc/string/strcmp.c",
-                "upstream-openbsd/lib/libc/string/strlen.c",
+                "upstream-openbsd/lib/libc/string/memrchr.c",
+                "upstream-openbsd/lib/libc/string/stpncpy.c",
+                "upstream-openbsd/lib/libc/string/strlcat.c",
+                "upstream-openbsd/lib/libc/string/strlcpy.c",
             ],
         },
         x86: {
-            exclude_srcs: [
+            // This space intentionally left blank.
+        },
+        x86_64: {
+            srcs: [
                 "upstream-openbsd/lib/libc/string/memchr.c",
                 "upstream-openbsd/lib/libc/string/memrchr.c",
-                "upstream-openbsd/lib/libc/string/stpcpy.c",
-                "upstream-openbsd/lib/libc/string/stpncpy.c",
-                "upstream-openbsd/lib/libc/string/strcat.c",
-                "upstream-openbsd/lib/libc/string/strcpy.c",
-                "upstream-openbsd/lib/libc/string/strncmp.c",
-                "upstream-openbsd/lib/libc/string/strncpy.c",
                 "upstream-openbsd/lib/libc/string/strlcat.c",
                 "upstream-openbsd/lib/libc/string/strlcpy.c",
-                "upstream-openbsd/lib/libc/string/strncat.c",
-            ],
-        },
-
-        x86_64: {
-            exclude_srcs: [
-                "upstream-openbsd/lib/libc/string/stpcpy.c",
-                "upstream-openbsd/lib/libc/string/stpncpy.c",
-                "upstream-openbsd/lib/libc/string/strcat.c",
-                "upstream-openbsd/lib/libc/string/strcpy.c",
-                "upstream-openbsd/lib/libc/string/strncat.c",
-                "upstream-openbsd/lib/libc/string/strncmp.c",
-                "upstream-openbsd/lib/libc/string/strncpy.c",
             ],
         },
     },
@@ -745,7 +716,6 @@
 
 cc_library_static {
     defaults: ["libc_defaults"],
-    tidy_disabled_srcs: ["upstream-*/**/*.c"],
     srcs: [
         "upstream-openbsd/android/gdtoa_support.cpp",
         "upstream-openbsd/lib/libc/gdtoa/dmisc.c",
@@ -861,26 +831,12 @@
         // The following must not be statically linked into libc_ndk.a, because
         // debuggerd will look for the abort message in libc.so's copy.
         "bionic/android_set_abort_message.cpp",
-
-        "bionic/strchr.cpp",
-        "bionic/strchrnul.cpp",
-        "bionic/strnlen.c",
-        "bionic/strrchr.cpp",
     ],
 
     arch: {
         arm: {
             asflags: libc_common_flags + ["-mno-restrict-it"],
             srcs: [
-                "arch-arm/generic/bionic/memcmp.S",
-                "arch-arm/generic/bionic/memmove.S",
-                "arch-arm/generic/bionic/memset.S",
-                "arch-arm/generic/bionic/stpcpy.c",
-                "arch-arm/generic/bionic/strcat.c",
-                "arch-arm/generic/bionic/strcmp.S",
-                "arch-arm/generic/bionic/strcpy.S",
-                "arch-arm/generic/bionic/strlen.c",
-
                 "arch-arm/bionic/__aeabi_read_tp.S",
                 "arch-arm/bionic/__bionic_clone.S",
                 "arch-arm/bionic/__restore.S",
@@ -893,6 +849,20 @@
                 "arch-arm/bionic/syscall.S",
                 "arch-arm/bionic/vfork.S",
 
+                "bionic/strchr.cpp",
+                "bionic/strchrnul.cpp",
+                "bionic/strnlen.c",
+                "bionic/strrchr.cpp",
+
+                "arch-arm/generic/bionic/memcmp.S",
+                "arch-arm/generic/bionic/memmove.S",
+                "arch-arm/generic/bionic/memset.S",
+                "arch-arm/generic/bionic/stpcpy.c",
+                "arch-arm/generic/bionic/strcat.c",
+                "arch-arm/generic/bionic/strcmp.S",
+                "arch-arm/generic/bionic/strcpy.S",
+                "arch-arm/generic/bionic/strlen.c",
+
                 "arch-arm/cortex-a15/bionic/memcpy.S",
                 "arch-arm/cortex-a15/bionic/memmove.S",
                 "arch-arm/cortex-a15/bionic/memset.S",
@@ -930,12 +900,6 @@
                 "arch-arm64/bionic/syscall.S",
                 "arch-arm64/bionic/vfork.S",
             ],
-            exclude_srcs: [
-                "bionic/strchr.cpp",
-                "bionic/strchrnul.cpp",
-                "bionic/strnlen.c",
-                "bionic/strrchr.cpp",
-            ],
         },
 
         riscv64: {
@@ -946,26 +910,40 @@
                 "arch-riscv64/bionic/syscall.S",
                 "arch-riscv64/bionic/vfork.S",
 
-                "arch-riscv64/string/memchr_vext.S",
-                "arch-riscv64/string/memcmp_vext.S",
-                "arch-riscv64/string/memcpy_vext.S",
-                "arch-riscv64/string/memmove_vext.S",
-                "arch-riscv64/string/memset_vext.S",
-                "arch-riscv64/string/stpcpy_vext.S",
-                "arch-riscv64/string/strcat_vext.S",
-                "arch-riscv64/string/strchr_vext.S",
-                "arch-riscv64/string/strcmp_vext.S",
-                "arch-riscv64/string/strcpy_vext.S",
-                "arch-riscv64/string/strlen_vext.S",
-                "arch-riscv64/string/strncat_vext.S",
-                "arch-riscv64/string/strncmp_vext.S",
-                "arch-riscv64/string/strncpy_vext.S",
-                "arch-riscv64/string/strnlen_vext.S",
+                "bionic/strchrnul.cpp",
+                "bionic/strrchr.cpp",
+
+                "arch-riscv64/string/memchr.S",
+                "arch-riscv64/string/memcmp.S",
+                "arch-riscv64/string/memcpy.S",
+                "arch-riscv64/string/memmove.S",
+                "arch-riscv64/string/memset.S",
+                "arch-riscv64/string/stpcpy.S",
+                "arch-riscv64/string/strcat.S",
+                "arch-riscv64/string/strchr.S",
+                "arch-riscv64/string/strcmp.S",
+                "arch-riscv64/string/strcpy.S",
+                "arch-riscv64/string/strlen.S",
+                "arch-riscv64/string/strncat.S",
+                "arch-riscv64/string/strncmp.S",
+                "arch-riscv64/string/strncpy.S",
+                "arch-riscv64/string/strnlen.S",
             ],
         },
 
         x86: {
             srcs: [
+                "arch-x86/bionic/__bionic_clone.S",
+                "arch-x86/bionic/_exit_with_stack_teardown.S",
+                "arch-x86/bionic/libcrt_compat.c",
+                "arch-x86/bionic/__restore.S",
+                "arch-x86/bionic/setjmp.S",
+                "arch-x86/bionic/syscall.S",
+                "arch-x86/bionic/vfork.S",
+                "arch-x86/bionic/__x86.get_pc_thunk.S",
+
+                "bionic/strchrnul.cpp",
+
                 "arch-x86/generic/string/memcmp.S",
                 "arch-x86/generic/string/strcmp.S",
                 "arch-x86/generic/string/strncmp.S",
@@ -1013,25 +991,22 @@
 
                 "arch-x86/string/sse4-memcmp-slm.S",
                 "arch-x86/string/sse4-wmemcmp-slm.S",
-
-                "arch-x86/bionic/__bionic_clone.S",
-                "arch-x86/bionic/_exit_with_stack_teardown.S",
-                "arch-x86/bionic/libcrt_compat.c",
-                "arch-x86/bionic/__restore.S",
-                "arch-x86/bionic/setjmp.S",
-                "arch-x86/bionic/syscall.S",
-                "arch-x86/bionic/vfork.S",
-                "arch-x86/bionic/__x86.get_pc_thunk.S",
-            ],
-
-            exclude_srcs: [
-                "bionic/strchr.cpp",
-                "bionic/strnlen.c",
-                "bionic/strrchr.cpp",
             ],
         },
         x86_64: {
             srcs: [
+                "arch-x86_64/bionic/__bionic_clone.S",
+                "arch-x86_64/bionic/_exit_with_stack_teardown.S",
+                "arch-x86_64/bionic/__restore_rt.S",
+                "arch-x86_64/bionic/setjmp.S",
+                "arch-x86_64/bionic/syscall.S",
+                "arch-x86_64/bionic/vfork.S",
+
+                "bionic/strchr.cpp",
+                "bionic/strchrnul.cpp",
+                "bionic/strnlen.c",
+                "bionic/strrchr.cpp",
+
                 "arch-x86_64/string/avx2-memset-kbl.S",
                 "arch-x86_64/string/sse2-memmove-slm.S",
                 "arch-x86_64/string/sse2-memset-slm.S",
@@ -1045,13 +1020,6 @@
                 "arch-x86_64/string/sse4-memcmp-slm.S",
                 "arch-x86_64/string/ssse3-strcmp-slm.S",
                 "arch-x86_64/string/ssse3-strncmp-slm.S",
-
-                "arch-x86_64/bionic/__bionic_clone.S",
-                "arch-x86_64/bionic/_exit_with_stack_teardown.S",
-                "arch-x86_64/bionic/__restore_rt.S",
-                "arch-x86_64/bionic/setjmp.S",
-                "arch-x86_64/bionic/syscall.S",
-                "arch-x86_64/bionic/vfork.S",
             ],
         },
     },
@@ -1569,9 +1537,6 @@
         arm64: {
             srcs: ["arch-arm64/static_function_dispatch.S"],
         },
-        riscv64: {
-            srcs: ["arch-riscv64/static_function_dispatch.S"]
-        },
     },
 }
 
@@ -1600,9 +1565,6 @@
         arm64: {
             srcs: ["arch-arm64/dynamic_function_dispatch.cpp"],
         },
-        riscv64: {
-            srcs: ["arch-riscv64/dynamic_function_dispatch.cpp"]
-        },
     },
 }
 
@@ -2921,7 +2883,6 @@
 
 cc_library_host_static {
     name: "libfts",
-    tidy_disabled_srcs: ["upstream-*/**/*.c"],
     srcs: [
         "bionic/fts.c",
         "upstream-openbsd/lib/libc/stdlib/recallocarray.c",
@@ -2964,7 +2925,6 @@
 cc_library_host_static {
     name: "libb64",
     visibility: ["//external/musl"],
-    tidy_disabled_srcs: ["upstream-*/**/*.c"],
     srcs: ["upstream-openbsd/lib/libc/net/base64.c"],
     export_include_dirs: ["b64/include"],
     local_include_dirs: [