Add strtof_l and strtod_l.

libc++ needs these now. Add shims to match the others.

Test: make checkbuild tests
Bug: http://b/31639993
Change-Id: Ifec6c32099145d8d3d1a5639a4809e5e9f553c33
diff --git a/libc/bionic/locale.cpp b/libc/bionic/locale.cpp
index 2a4ce68..e51b38c 100644
--- a/libc/bionic/locale.cpp
+++ b/libc/bionic/locale.cpp
@@ -196,6 +196,18 @@
   return strncasecmp(s1, s2, n);
 }
 
+double strtod_l(const char* s, char** end_ptr, locale_t) {
+  return strtod(s, end_ptr);
+}
+
+float strtof_l(const char* s, char** end_ptr, locale_t) {
+  return strtof(s, end_ptr);
+}
+
+long strtol_l(const char* s, char** end_ptr, int base, locale_t) {
+  return strtol(s, end_ptr, base);
+}
+
 long double strtold_l(const char* s, char** end_ptr, locale_t) {
   return strtold(s, end_ptr);
 }
@@ -204,6 +216,10 @@
   return strtoll(s, end_ptr, base);
 }
 
+unsigned long strtoul_l(const char* s, char** end_ptr, int base, locale_t) {
+  return strtoul(s, end_ptr, base);
+}
+
 unsigned long long strtoull_l(const char* s, char** end_ptr, int base, locale_t) {
   return strtoull(s, end_ptr, base);
 }
diff --git a/libc/include/stdlib.h b/libc/include/stdlib.h
index 6b0ec12..f7f4014 100644
--- a/libc/include/stdlib.h
+++ b/libc/include/stdlib.h
@@ -77,8 +77,12 @@
 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;
diff --git a/libc/libc.arm.map b/libc/libc.arm.map
index c4243f4..eb75e8f 100644
--- a/libc/libc.arm.map
+++ b/libc/libc.arm.map
@@ -1306,6 +1306,10 @@
     sigpause; # future
     sigrelse; # future
     sigset; # future
+    strtod_l; # future
+    strtof_l; # future
+    strtol_l; # future
+    strtoul_l; # future
     sync_file_range; # future
     towctrans; # future
     towctrans_l; # future
diff --git a/libc/libc.arm64.map b/libc/libc.arm64.map
index 2393d22..28755d4 100644
--- a/libc/libc.arm64.map
+++ b/libc/libc.arm64.map
@@ -1228,6 +1228,10 @@
     sigpause; # future
     sigrelse; # future
     sigset; # future
+    strtod_l; # future
+    strtof_l; # future
+    strtol_l; # future
+    strtoul_l; # future
     sync_file_range; # future
     towctrans; # future
     towctrans_l; # future
diff --git a/libc/libc.map.txt b/libc/libc.map.txt
index 19fdb4b..1fba8ee 100644
--- a/libc/libc.map.txt
+++ b/libc/libc.map.txt
@@ -1331,6 +1331,10 @@
     sigpause; # future
     sigrelse; # future
     sigset; # future
+    strtod_l; # future
+    strtof_l; # future
+    strtol_l; # future
+    strtoul_l; # future
     sync_file_range; # future
     towctrans; # future
     towctrans_l; # future
diff --git a/libc/libc.mips.map b/libc/libc.mips.map
index 1461dc5..f61f615 100644
--- a/libc/libc.mips.map
+++ b/libc/libc.mips.map
@@ -1290,6 +1290,10 @@
     sigpause; # future
     sigrelse; # future
     sigset; # future
+    strtod_l; # future
+    strtof_l; # future
+    strtol_l; # future
+    strtoul_l; # future
     sync_file_range; # future
     towctrans; # future
     towctrans_l; # future
diff --git a/libc/libc.mips64.map b/libc/libc.mips64.map
index 2393d22..28755d4 100644
--- a/libc/libc.mips64.map
+++ b/libc/libc.mips64.map
@@ -1228,6 +1228,10 @@
     sigpause; # future
     sigrelse; # future
     sigset; # future
+    strtod_l; # future
+    strtof_l; # future
+    strtol_l; # future
+    strtoul_l; # future
     sync_file_range; # future
     towctrans; # future
     towctrans_l; # future
diff --git a/libc/libc.x86.map b/libc/libc.x86.map
index 57b81a8..a166361 100644
--- a/libc/libc.x86.map
+++ b/libc/libc.x86.map
@@ -1288,6 +1288,10 @@
     sigpause; # future
     sigrelse; # future
     sigset; # future
+    strtod_l; # future
+    strtof_l; # future
+    strtol_l; # future
+    strtoul_l; # future
     sync_file_range; # future
     towctrans; # future
     towctrans_l; # future
diff --git a/libc/libc.x86_64.map b/libc/libc.x86_64.map
index 2393d22..28755d4 100644
--- a/libc/libc.x86_64.map
+++ b/libc/libc.x86_64.map
@@ -1228,6 +1228,10 @@
     sigpause; # future
     sigrelse; # future
     sigset; # future
+    strtod_l; # future
+    strtof_l; # future
+    strtol_l; # future
+    strtoul_l; # future
     sync_file_range; # future
     towctrans; # future
     towctrans_l; # future