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