diff --git a/libc/include/android/legacy_string_inlines.h b/libc/include/android/legacy_string_inlines.h
index 6b711d7..af84f55 100644
--- a/libc/include/android/legacy_string_inlines.h
+++ b/libc/include/android/legacy_string_inlines.h
@@ -24,8 +24,8 @@
 
 #if __ANDROID_API__ < 21
 
-static __inline int strcoll_l(const char* _Nonnull s1, const char* _Nonnull s2,
-                              locale_t l __unused) __purefunc {
+static __inline __purefunc int strcoll_l(const char* _Nonnull s1, const char* _Nonnull s2,
+                              locale_t l __unused)  {
   return strcoll(s1, s2);
 }
 
diff --git a/libc/include/android/legacy_wchar_inlines.h b/libc/include/android/legacy_wchar_inlines.h
index d8f1b7b..6c0d29e 100644
--- a/libc/include/android/legacy_wchar_inlines.h
+++ b/libc/include/android/legacy_wchar_inlines.h
@@ -24,12 +24,12 @@
 
 #if __ANDROID_API__ < 21
 
-static __inline int wcscoll_l(const wchar_t* _Nonnull ws1, const char* _Nonull ws2,
+static __inline int wcscoll_l(const wchar_t* _Nonnull ws1, const wchar_t* _Nonnull ws2,
                               locale_t l __unused) {
   return wcscoll(ws1, ws2);
 }
 
-size_t wcsxfrm_l(wchar_t* dest, const char* _Nonnull src, size_t n, locale_t l __unused) {
+size_t wcsxfrm_l(wchar_t* dest, const wchar_t* _Nonnull src, size_t n, locale_t l __unused) {
   return wcsxfrm(dest, src, n);
 }
 
diff --git a/libc/include/ctype.h b/libc/include/ctype.h
index 4818fef..e1b237a 100644
--- a/libc/include/ctype.h
+++ b/libc/include/ctype.h
@@ -76,6 +76,7 @@
 int tolower(int);
 int toupper(int);
 
+#if __ANDROID_API__ >= 21
 int isalnum_l(int, locale_t) __INTRODUCED_IN(21);
 int isalpha_l(int, locale_t) __INTRODUCED_IN(21);
 int isblank_l(int, locale_t) __INTRODUCED_IN(21);
@@ -90,6 +91,10 @@
 int isxdigit_l(int, locale_t) __INTRODUCED_IN(21);
 int tolower_l(int, locale_t) __INTRODUCED_IN(21);
 int toupper_l(int, locale_t) __INTRODUCED_IN(21);
+#else
+// Implemented as static inlines before 21.
+#endif
+
 int isascii(int);
 int toascii(int);
 int _tolower(int) __INTRODUCED_IN(21);
diff --git a/libc/include/stdlib.h b/libc/include/stdlib.h
index f7f4014..8d6651b 100644
--- a/libc/include/stdlib.h
+++ b/libc/include/stdlib.h
@@ -77,13 +77,7 @@
 double strtod(const char*, char**);
 long double strtold(const char*, char**) __INTRODUCED_IN(21);
 
-double strtod_l(const char*, char**, locale_t) __INTRODUCED_IN_FUTURE;
-float strtof_l(const char*, char**, locale_t) __INTRODUCED_IN_FUTURE;
-long strtol_l(const char*, char**, int, locale_t) __INTRODUCED_IN_FUTURE;
-long double strtold_l(const char*, char**, locale_t) __INTRODUCED_IN(21);
-long long strtoll_l(const char*, char**, int, locale_t) __INTRODUCED_IN(21);
 unsigned long strtoul_l(const char*, char**, int, locale_t) __INTRODUCED_IN_FUTURE;
-unsigned long long strtoull_l(const char*, char**, int, locale_t) __INTRODUCED_IN(21);
 
 int atoi(const char*) __purefunc;
 long atol(const char*) __purefunc;
@@ -201,10 +195,22 @@
 long random(void) __INTRODUCED_IN(21);
 void srandom(unsigned int) __INTRODUCED_IN(21);
 int grantpt(int) __INTRODUCED_IN(21);
+
+long long strtoll_l(const char*, char**, int, locale_t) __INTRODUCED_IN(21);
+unsigned long long strtoull_l(const char*, char**, int, locale_t) __INTRODUCED_IN(21);
+long double strtold_l(const char*, char**, locale_t) __INTRODUCED_IN(21);
 #else
 // Implemented as static inlines before 21.
 #endif
 
+#if __ANDROID_API__ >= __ANDROID_API_FUTURE__
+double strtod_l(const char*, char**, locale_t) __INTRODUCED_IN_FUTURE;
+float strtof_l(const char*, char**, locale_t) __INTRODUCED_IN_FUTURE;
+long strtol_l(const char*, char**, int, locale_t) __INTRODUCED_IN_FUTURE;
+#else
+// Implemented as static inlines.
+#endif
+
 __END_DECLS
 
 #include <android/legacy_stdlib_inlines.h>
diff --git a/libc/include/string.h b/libc/include/string.h
index b945883..8ad227b 100644
--- a/libc/include/string.h
+++ b/libc/include/string.h
@@ -114,8 +114,12 @@
 int strcoll(const char* _Nonnull, const char* _Nonnull) __purefunc;
 size_t strxfrm(char* __restrict, const char* _Nonnull __restrict, size_t);
 
+#if __ANDROID_API__ >= 21
 int strcoll_l(const char* _Nonnull, const char* _Nonnull, locale_t) __purefunc __INTRODUCED_IN(21);
 size_t strxfrm_l(char* __restrict, const char* _Nonnull __restrict, size_t, locale_t) __INTRODUCED_IN(21);
+#else
+// Implemented as static inlines before 21.
+#endif
 
 #if defined(__USE_GNU) && !defined(basename)
 /*
diff --git a/libc/include/time.h b/libc/include/time.h
index 691aa06..898b816 100644
--- a/libc/include/time.h
+++ b/libc/include/time.h
@@ -76,7 +76,12 @@
 
 char* strptime(const char*, const char*, struct tm*);
 size_t strftime(char*, size_t, const char*, const struct tm*);
+
+#if __ANDROID_API__ >= 21
 size_t strftime_l(char*, size_t, const char*, const struct tm*, locale_t) __INTRODUCED_IN(21);
+#else
+// Implemented as static inline before 21.
+#endif
 
 char* ctime(const time_t*);
 char* ctime_r(const time_t*, char*);
diff --git a/libc/include/wchar.h b/libc/include/wchar.h
index 1c0327e..0f32355 100644
--- a/libc/include/wchar.h
+++ b/libc/include/wchar.h
@@ -132,6 +132,7 @@
 int               wprintf(const wchar_t *, ...);
 int               wscanf(const wchar_t *, ...);
 
+#if __ANDROID_API__ >= 21
 long long wcstoll_l(const wchar_t*, wchar_t**, int, locale_t) __INTRODUCED_IN(21);
 unsigned long long wcstoull_l(const wchar_t*, wchar_t**, int, locale_t) __INTRODUCED_IN(21);
 long double wcstold_l(const wchar_t*, wchar_t**, locale_t) __INTRODUCED_IN(21);
@@ -139,6 +140,9 @@
 int wcscoll_l(const wchar_t* _Nonnull, const wchar_t* _Nonnull, locale_t) __purefunc
     __INTRODUCED_IN(21);
 size_t wcsxfrm_l(wchar_t*, const wchar_t* _Nonnull, size_t, locale_t) __INTRODUCED_IN(21);
+#else
+// Implemented as static inlines before 21.
+#endif
 
 size_t wcslcat(wchar_t*, const wchar_t*, size_t);
 size_t wcslcpy(wchar_t*, const wchar_t*, size_t);
diff --git a/libc/include/wctype.h b/libc/include/wctype.h
index fb17f22..a77b212 100644
--- a/libc/include/wctype.h
+++ b/libc/include/wctype.h
@@ -35,6 +35,7 @@
 
 __BEGIN_DECLS
 
+#if __ANDROID_API__ >= 21
 int iswalnum_l(wint_t, locale_t) __INTRODUCED_IN(21);
 int iswalpha_l(wint_t, locale_t) __INTRODUCED_IN(21);
 int iswblank_l(wint_t, locale_t) __INTRODUCED_IN(21);
@@ -50,6 +51,9 @@
 
 wint_t towlower_l(int, locale_t) __INTRODUCED_IN(21);
 wint_t towupper_l(int, locale_t) __INTRODUCED_IN(21);
+#else
+// Implemented as static inlines before 21.
+#endif
 
 wint_t towctrans_l(wint_t, wctrans_t, locale_t) __INTRODUCED_IN_FUTURE;
 wctrans_t wctrans_l(const char*, locale_t) __INTRODUCED_IN_FUTURE;
