Fix warnings (and errors) in static inline headers.

Bug: http://b/31676510
Change-Id: Idcbc544e498f7e6bbe99c2bf7dc557a5681e96c4
Test: preupload hook
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;