extern "C" int __strtorQ(const char*, char**, int, void*);
long double strtold(const char* s, char** end_ptr) {
#if defined(__LP64__)
long double result;
__strtorQ(s, end_ptr, FLT_ROUNDS, &result);
return result;
#else
// This is fine for LP32 where long double is just double.
return strtod(s, end_ptr);
#endif
}