Merge "Call out the REL architectures and make RELA the default."
diff --git a/libc/kernel/tools/clean_header.py b/libc/kernel/tools/clean_header.py
index cfd301a..f15fab4 100755
--- a/libc/kernel/tools/clean_header.py
+++ b/libc/kernel/tools/clean_header.py
@@ -109,9 +109,6 @@
     if arch and arch in kernel_default_arch_macros:
         macros.update(kernel_default_arch_macros[arch])
 
-    if arch and arch in kernel_arch_token_replacements:
-        blocks.replaceTokens(kernel_arch_token_replacements[arch])
-
     blocks.removeStructs(kernel_structs_to_remove)
     blocks.optimizeMacros(macros)
     blocks.optimizeIf01()
diff --git a/libc/kernel/tools/defaults.py b/libc/kernel/tools/defaults.py
index 5fe907c..6ad0a32 100644
--- a/libc/kernel/tools/defaults.py
+++ b/libc/kernel/tools/defaults.py
@@ -63,12 +63,6 @@
     "x86": {},
     }
 
-kernel_arch_token_replacements = {
-    "arm": {},
-    "arm64": {},
-    "x86": {},
-    }
-
 # Replace tokens in the output according to this mapping.
 kernel_token_replacements = {
     # The kernel usage of __unused for unused struct fields conflicts with the macro defined in <sys/cdefs.h>.
diff --git a/libc/libc.map.txt b/libc/libc.map.txt
index e8d03b9..7bcee9d 100644
--- a/libc/libc.map.txt
+++ b/libc/libc.map.txt
@@ -680,28 +680,28 @@
     nftw64; # introduced=21
     nice;
     nrand48;
-    ns_format_ttl; # arm64 x86_64 introduced=22
-    ns_get16; # arm64 x86_64 introduced=22
-    ns_get32; # arm64 x86_64 introduced=22
-    ns_initparse; # arm64 x86_64 introduced=22
-    ns_makecanon; # arm64 x86_64 introduced=22
-    ns_msg_getflag; # arm64 x86_64 introduced=22
-    ns_name_compress; # arm64 x86_64 introduced=22
-    ns_name_ntol; # arm64 x86_64 introduced=22
-    ns_name_ntop; # arm64 x86_64 introduced=22
-    ns_name_pack; # arm64 x86_64 introduced=22
-    ns_name_pton; # arm64 x86_64 introduced=22
-    ns_name_rollback; # arm64 x86_64 introduced=22
-    ns_name_skip; # arm64 x86_64 introduced=22
-    ns_name_uncompress; # arm64 x86_64 introduced=22
-    ns_name_unpack; # arm64 x86_64 introduced=22
-    ns_parserr; # arm64 x86_64 introduced=22
-    ns_put16; # arm64 x86_64 introduced=22
-    ns_put32; # arm64 x86_64 introduced=22
-    ns_samename; # arm64 x86_64 introduced=22
-    ns_skiprr; # arm64 x86_64 introduced=22
-    ns_sprintrr; # arm64 x86_64 introduced=22
-    ns_sprintrrf; # arm64 x86_64 introduced=22
+    ns_format_ttl; # arm64 x86_64 riscv64 introduced=22
+    ns_get16; # arm64 x86_64 riscv64 introduced=22
+    ns_get32; # arm64 x86_64 riscv64 introduced=22
+    ns_initparse; # arm64 x86_64 riscv64 introduced=22
+    ns_makecanon; # arm64 x86_64 riscv64 introduced=22
+    ns_msg_getflag; # arm64 x86_64 riscv64 introduced=22
+    ns_name_compress; # arm64 x86_64 riscv64 introduced=22
+    ns_name_ntol; # arm64 x86_64 riscv64 introduced=22
+    ns_name_ntop; # arm64 x86_64 riscv64 introduced=22
+    ns_name_pack; # arm64 x86_64 riscv64 introduced=22
+    ns_name_pton; # arm64 x86_64 riscv64 introduced=22
+    ns_name_rollback; # arm64 x86_64 riscv64 introduced=22
+    ns_name_skip; # arm64 x86_64 riscv64 introduced=22
+    ns_name_uncompress; # arm64 x86_64 riscv64 introduced=22
+    ns_name_unpack; # arm64 x86_64 riscv64 introduced=22
+    ns_parserr; # arm64 x86_64 riscv64 introduced=22
+    ns_put16; # arm64 x86_64 riscv64 introduced=22
+    ns_put32; # arm64 x86_64 riscv64 introduced=22
+    ns_samename; # arm64 x86_64 riscv64 introduced=22
+    ns_skiprr; # arm64 x86_64 riscv64 introduced=22
+    ns_sprintrr; # arm64 x86_64 riscv64 introduced=22
+    ns_sprintrrf; # arm64 x86_64 riscv64 introduced=22
     nsdispatch;
     ntohl; # introduced=21
     ntohs; # introduced=21
@@ -740,7 +740,7 @@
     pread;
     pread64; # introduced-arm=12 introduced-arm64=21 introduced-x86=12 introduced-x86_64=21
     printf;
-    prlimit; # arm64 x86_64
+    prlimit; # arm64 x86_64 riscv64
     prlimit64; # introduced=21
     process_vm_readv; # introduced=23
     process_vm_writev; # introduced=23
diff --git a/libc/libstdc++.map.txt b/libc/libstdc++.map.txt
index bb7040f..8af3b91 100644
--- a/libc/libstdc++.map.txt
+++ b/libc/libstdc++.map.txt
@@ -7,12 +7,12 @@
     _ZdlPvRKSt9nothrow_t; # weak
     _Znaj; # arm x86 weak
     _ZnajRKSt9nothrow_t; # arm x86 weak
-    _Znam; # arm64 x86_64 weak
-    _ZnamRKSt9nothrow_t; # arm64 x86_64 weak
+    _Znam; # arm64 x86_64 riscv64 weak
+    _ZnamRKSt9nothrow_t; # arm64 x86_64 riscv64 weak
     _Znwj; # arm x86 weak
     _ZnwjRKSt9nothrow_t; # arm x86 weak
-    _Znwm; # arm64 x86_64 weak
-    _ZnwmRKSt9nothrow_t; # arm64 x86_64 weak
+    _Znwm; # arm64 x86_64 riscv64 weak
+    _ZnwmRKSt9nothrow_t; # arm64 x86_64 riscv64 weak
     __cxa_guard_abort;
     __cxa_guard_acquire;
     __cxa_guard_release;
diff --git a/libc/versioner-dependencies/riscv64/kernel_uapi_asm-riscv64 b/libc/versioner-dependencies/riscv64/kernel_uapi_asm-riscv64
new file mode 120000
index 0000000..61353cb
--- /dev/null
+++ b/libc/versioner-dependencies/riscv64/kernel_uapi_asm-riscv64
@@ -0,0 +1 @@
+../../kernel/uapi/asm-riscv/
\ No newline at end of file
diff --git a/tools/generate-version-script.py b/tools/generate-version-script.py
index def621e..206b91b 100755
--- a/tools/generate-version-script.py
+++ b/tools/generate-version-script.py
@@ -8,7 +8,7 @@
 import sys
 
 def has_arch_tags(tags):
-  for arch in ["arm", "arm64", "x86", "x86_64"]:
+  for arch in ["arm", "arm64", "riscv", "x86", "x86_64"]:
     if arch in tags:
       return True
   return False