Merge "Rename target.linux[_x86[_64]] to target.linux_glibc[_x86[_64]]"
diff --git a/libc/include/android/api-level.h b/libc/include/android/api-level.h
index 7e3aa99..18825e7 100644
--- a/libc/include/android/api-level.h
+++ b/libc/include/android/api-level.h
@@ -57,5 +57,6 @@
 #define __ANDROID_API_N__ 24
 #define __ANDROID_API_N_MR1__ 25
 #define __ANDROID_API_O__ 26
+#define __ANDROID_API_O_MR1__ 27
 
 #endif /* ANDROID_API_LEVEL_H */
diff --git a/libc/libc.arm.map b/libc/libc.arm.map
index d2fe05e..13c267a 100644
--- a/libc/libc.arm.map
+++ b/libc/libc.arm.map
@@ -1318,25 +1318,25 @@
     wctrans_l; # introduced=26
 } LIBC_N;
 
-LIBC_P {
+LIBC_P { # introduced=P
   global:
-    __freading; # future
-    __fwriting; # future
-    getentropy; # future
-    getrandom; # future
-    getlogin_r; # future
-    glob; # future
-    globfree; # future
-    hcreate; # future
-    hcreate_r; # future
-    hdestroy; # future
-    hdestroy_r; # future
-    hsearch; # future
-    hsearch_r; # future
-    iconv; # future
-    iconv_close; # future
-    iconv_open; # future
-    syncfs; # future
+    __freading;
+    __fwriting;
+    getentropy;
+    getrandom;
+    getlogin_r;
+    glob;
+    globfree;
+    hcreate;
+    hcreate_r;
+    hdestroy;
+    hdestroy_r;
+    hsearch;
+    hsearch_r;
+    iconv;
+    iconv_close;
+    iconv_open;
+    syncfs;
 } LIBC_O;
 
 LIBC_PRIVATE {
diff --git a/libc/libc.arm64.map b/libc/libc.arm64.map
index 6ed6619..9d8c1b7 100644
--- a/libc/libc.arm64.map
+++ b/libc/libc.arm64.map
@@ -1238,25 +1238,25 @@
     wctrans_l; # introduced=26
 } LIBC_N;
 
-LIBC_P {
+LIBC_P { # introduced=P
   global:
-    __freading; # future
-    __fwriting; # future
-    getentropy; # future
-    getrandom; # future
-    getlogin_r; # future
-    glob; # future
-    globfree; # future
-    hcreate; # future
-    hcreate_r; # future
-    hdestroy; # future
-    hdestroy_r; # future
-    hsearch; # future
-    hsearch_r; # future
-    iconv; # future
-    iconv_close; # future
-    iconv_open; # future
-    syncfs; # future
+    __freading;
+    __fwriting;
+    getentropy;
+    getrandom;
+    getlogin_r;
+    glob;
+    globfree;
+    hcreate;
+    hcreate_r;
+    hdestroy;
+    hdestroy_r;
+    hsearch;
+    hsearch_r;
+    iconv;
+    iconv_close;
+    iconv_open;
+    syncfs;
 } LIBC_O;
 
 LIBC_PRIVATE {
diff --git a/libc/libc.map.txt b/libc/libc.map.txt
index f8e7aa1..da462d3 100644
--- a/libc/libc.map.txt
+++ b/libc/libc.map.txt
@@ -1343,25 +1343,25 @@
     wctrans_l; # introduced=26
 } LIBC_N;
 
-LIBC_P {
+LIBC_P { # introduced=P
   global:
-    __freading; # future
-    __fwriting; # future
-    getentropy; # future
-    getrandom; # future
-    getlogin_r; # future
-    glob; # future
-    globfree; # future
-    hcreate; # future
-    hcreate_r; # future
-    hdestroy; # future
-    hdestroy_r; # future
-    hsearch; # future
-    hsearch_r; # future
-    iconv; # future
-    iconv_close; # future
-    iconv_open; # future
-    syncfs; # future
+    __freading;
+    __fwriting;
+    getentropy;
+    getrandom;
+    getlogin_r;
+    glob;
+    globfree;
+    hcreate;
+    hcreate_r;
+    hdestroy;
+    hdestroy_r;
+    hsearch;
+    hsearch_r;
+    iconv;
+    iconv_close;
+    iconv_open;
+    syncfs;
 } LIBC_O;
 
 LIBC_PRIVATE {
diff --git a/libc/libc.mips.map b/libc/libc.mips.map
index 9295c99..3e41f95 100644
--- a/libc/libc.mips.map
+++ b/libc/libc.mips.map
@@ -1302,25 +1302,25 @@
     wctrans_l; # introduced=26
 } LIBC_N;
 
-LIBC_P {
+LIBC_P { # introduced=P
   global:
-    __freading; # future
-    __fwriting; # future
-    getentropy; # future
-    getrandom; # future
-    getlogin_r; # future
-    glob; # future
-    globfree; # future
-    hcreate; # future
-    hcreate_r; # future
-    hdestroy; # future
-    hdestroy_r; # future
-    hsearch; # future
-    hsearch_r; # future
-    iconv; # future
-    iconv_close; # future
-    iconv_open; # future
-    syncfs; # future
+    __freading;
+    __fwriting;
+    getentropy;
+    getrandom;
+    getlogin_r;
+    glob;
+    globfree;
+    hcreate;
+    hcreate_r;
+    hdestroy;
+    hdestroy_r;
+    hsearch;
+    hsearch_r;
+    iconv;
+    iconv_close;
+    iconv_open;
+    syncfs;
 } LIBC_O;
 
 LIBC_PRIVATE {
diff --git a/libc/libc.mips64.map b/libc/libc.mips64.map
index 6ed6619..9d8c1b7 100644
--- a/libc/libc.mips64.map
+++ b/libc/libc.mips64.map
@@ -1238,25 +1238,25 @@
     wctrans_l; # introduced=26
 } LIBC_N;
 
-LIBC_P {
+LIBC_P { # introduced=P
   global:
-    __freading; # future
-    __fwriting; # future
-    getentropy; # future
-    getrandom; # future
-    getlogin_r; # future
-    glob; # future
-    globfree; # future
-    hcreate; # future
-    hcreate_r; # future
-    hdestroy; # future
-    hdestroy_r; # future
-    hsearch; # future
-    hsearch_r; # future
-    iconv; # future
-    iconv_close; # future
-    iconv_open; # future
-    syncfs; # future
+    __freading;
+    __fwriting;
+    getentropy;
+    getrandom;
+    getlogin_r;
+    glob;
+    globfree;
+    hcreate;
+    hcreate_r;
+    hdestroy;
+    hdestroy_r;
+    hsearch;
+    hsearch_r;
+    iconv;
+    iconv_close;
+    iconv_open;
+    syncfs;
 } LIBC_O;
 
 LIBC_PRIVATE {
diff --git a/libc/libc.x86.map b/libc/libc.x86.map
index 7752b01..c3d678c 100644
--- a/libc/libc.x86.map
+++ b/libc/libc.x86.map
@@ -1300,25 +1300,25 @@
     wctrans_l; # introduced=26
 } LIBC_N;
 
-LIBC_P {
+LIBC_P { # introduced=P
   global:
-    __freading; # future
-    __fwriting; # future
-    getentropy; # future
-    getrandom; # future
-    getlogin_r; # future
-    glob; # future
-    globfree; # future
-    hcreate; # future
-    hcreate_r; # future
-    hdestroy; # future
-    hdestroy_r; # future
-    hsearch; # future
-    hsearch_r; # future
-    iconv; # future
-    iconv_close; # future
-    iconv_open; # future
-    syncfs; # future
+    __freading;
+    __fwriting;
+    getentropy;
+    getrandom;
+    getlogin_r;
+    glob;
+    globfree;
+    hcreate;
+    hcreate_r;
+    hdestroy;
+    hdestroy_r;
+    hsearch;
+    hsearch_r;
+    iconv;
+    iconv_close;
+    iconv_open;
+    syncfs;
 } LIBC_O;
 
 LIBC_PRIVATE {
diff --git a/libc/libc.x86_64.map b/libc/libc.x86_64.map
index 6ed6619..9d8c1b7 100644
--- a/libc/libc.x86_64.map
+++ b/libc/libc.x86_64.map
@@ -1238,25 +1238,25 @@
     wctrans_l; # introduced=26
 } LIBC_N;
 
-LIBC_P {
+LIBC_P { # introduced=P
   global:
-    __freading; # future
-    __fwriting; # future
-    getentropy; # future
-    getrandom; # future
-    getlogin_r; # future
-    glob; # future
-    globfree; # future
-    hcreate; # future
-    hcreate_r; # future
-    hdestroy; # future
-    hdestroy_r; # future
-    hsearch; # future
-    hsearch_r; # future
-    iconv; # future
-    iconv_close; # future
-    iconv_open; # future
-    syncfs; # future
+    __freading;
+    __fwriting;
+    getentropy;
+    getrandom;
+    getlogin_r;
+    glob;
+    globfree;
+    hcreate;
+    hcreate_r;
+    hdestroy;
+    hdestroy_r;
+    hsearch;
+    hsearch_r;
+    iconv;
+    iconv_close;
+    iconv_open;
+    syncfs;
 } LIBC_O;
 
 LIBC_PRIVATE {
diff --git a/libc/seccomp/Android.bp b/libc/seccomp/Android.bp
index a75aa65..b3707bc 100644
--- a/libc/seccomp/Android.bp
+++ b/libc/seccomp/Android.bp
@@ -16,6 +16,7 @@
         "mips64_global_policy.cpp",
     ],
     export_include_dirs: ["include"],
+    cflags: ["-Wall", "-Werror"],
     shared: {
         shared_libs: ["libbase"],
     },
diff --git a/libdl/libdl.arm.map b/libdl/libdl.arm.map
index 9fc9d23..1fcfc58 100644
--- a/libdl/libdl.arm.map
+++ b/libdl/libdl.arm.map
@@ -34,11 +34,11 @@
     dlvsym; # introduced=24
 } LIBC;
 
-LIBC_OMR1 { # future
+LIBC_OMR1 { # introduced=27
   global:
-    __cfi_shadow_size; # future
-    __cfi_slowpath; # future
-    __cfi_slowpath_diag; # future
+    __cfi_shadow_size;
+    __cfi_slowpath;
+    __cfi_slowpath_diag;
 } LIBC_N;
 
 LIBC_PLATFORM {
diff --git a/libdl/libdl.arm64.map b/libdl/libdl.arm64.map
index bde6cab..8d4019c 100644
--- a/libdl/libdl.arm64.map
+++ b/libdl/libdl.arm64.map
@@ -33,11 +33,11 @@
     dlvsym; # introduced=24
 } LIBC;
 
-LIBC_OMR1 { # future
+LIBC_OMR1 { # introduced=27
   global:
-    __cfi_shadow_size; # future
-    __cfi_slowpath; # future
-    __cfi_slowpath_diag; # future
+    __cfi_shadow_size;
+    __cfi_slowpath;
+    __cfi_slowpath_diag;
 } LIBC_N;
 
 LIBC_PLATFORM {
diff --git a/libdl/libdl.map.txt b/libdl/libdl.map.txt
index d1f4ab8..002e9f8 100644
--- a/libdl/libdl.map.txt
+++ b/libdl/libdl.map.txt
@@ -33,11 +33,11 @@
     dlvsym; # introduced=24
 } LIBC;
 
-LIBC_OMR1 { # future
+LIBC_OMR1 { # introduced=27
   global:
-    __cfi_shadow_size; # future
-    __cfi_slowpath; # future
-    __cfi_slowpath_diag; # future
+    __cfi_shadow_size;
+    __cfi_slowpath;
+    __cfi_slowpath_diag;
 } LIBC_N;
 
 LIBC_PLATFORM {
diff --git a/libdl/libdl.mips.map b/libdl/libdl.mips.map
index bde6cab..8d4019c 100644
--- a/libdl/libdl.mips.map
+++ b/libdl/libdl.mips.map
@@ -33,11 +33,11 @@
     dlvsym; # introduced=24
 } LIBC;
 
-LIBC_OMR1 { # future
+LIBC_OMR1 { # introduced=27
   global:
-    __cfi_shadow_size; # future
-    __cfi_slowpath; # future
-    __cfi_slowpath_diag; # future
+    __cfi_shadow_size;
+    __cfi_slowpath;
+    __cfi_slowpath_diag;
 } LIBC_N;
 
 LIBC_PLATFORM {
diff --git a/libdl/libdl.mips64.map b/libdl/libdl.mips64.map
index bde6cab..8d4019c 100644
--- a/libdl/libdl.mips64.map
+++ b/libdl/libdl.mips64.map
@@ -33,11 +33,11 @@
     dlvsym; # introduced=24
 } LIBC;
 
-LIBC_OMR1 { # future
+LIBC_OMR1 { # introduced=27
   global:
-    __cfi_shadow_size; # future
-    __cfi_slowpath; # future
-    __cfi_slowpath_diag; # future
+    __cfi_shadow_size;
+    __cfi_slowpath;
+    __cfi_slowpath_diag;
 } LIBC_N;
 
 LIBC_PLATFORM {
diff --git a/libdl/libdl.x86.map b/libdl/libdl.x86.map
index bde6cab..8d4019c 100644
--- a/libdl/libdl.x86.map
+++ b/libdl/libdl.x86.map
@@ -33,11 +33,11 @@
     dlvsym; # introduced=24
 } LIBC;
 
-LIBC_OMR1 { # future
+LIBC_OMR1 { # introduced=27
   global:
-    __cfi_shadow_size; # future
-    __cfi_slowpath; # future
-    __cfi_slowpath_diag; # future
+    __cfi_shadow_size;
+    __cfi_slowpath;
+    __cfi_slowpath_diag;
 } LIBC_N;
 
 LIBC_PLATFORM {
diff --git a/libdl/libdl.x86_64.map b/libdl/libdl.x86_64.map
index bde6cab..8d4019c 100644
--- a/libdl/libdl.x86_64.map
+++ b/libdl/libdl.x86_64.map
@@ -33,11 +33,11 @@
     dlvsym; # introduced=24
 } LIBC;
 
-LIBC_OMR1 { # future
+LIBC_OMR1 { # introduced=27
   global:
-    __cfi_shadow_size; # future
-    __cfi_slowpath; # future
-    __cfi_slowpath_diag; # future
+    __cfi_shadow_size;
+    __cfi_slowpath;
+    __cfi_slowpath_diag;
 } LIBC_N;
 
 LIBC_PLATFORM {
diff --git a/linker/Android.bp b/linker/Android.bp
index 2a581ea..f802f45 100644
--- a/linker/Android.bp
+++ b/linker/Android.bp
@@ -6,6 +6,7 @@
         "linker_allocator.cpp",
         "linker_memory.cpp",
     ],
+    cflags: ["-Wall", "-Werror"],
 
     // We need to access Bionic private headers in the linker.
     include_dirs: ["bionic/libc"],
diff --git a/tests/libs/Android.bp b/tests/libs/Android.bp
index aa4d0dd..858f2b1 100644
--- a/tests/libs/Android.bp
+++ b/tests/libs/Android.bp
@@ -17,6 +17,10 @@
 cc_defaults {
     name: "bionic_testlib_defaults",
     host_supported: true,
+    cflags: [
+        "-Wall",
+        "-Werror",
+    ],
     ldflags: [
         "-Wl,--rpath,${ORIGIN}",
         "-Wl,--enable-new-dtags",
diff --git a/tools/relocation_packer/Android.bp b/tools/relocation_packer/Android.bp
index 2907b31..cd6053a 100644
--- a/tools/relocation_packer/Android.bp
+++ b/tools/relocation_packer/Android.bp
@@ -16,11 +16,13 @@
 
 cc_defaults {
     name: "relocation_packer_flags",
-    cppflags: [
+    cflags: [
         "-Wall",
+        "-Werror",
+    ],
+    cppflags: [
         "-Wextra",
         "-Wunused",
-        "-Werror",
         "-Wold-style-cast",
     ],