void-packages/srcpkgs/llvm18/patches/libcxx-musl.patch

27 lines
1.3 KiB
Diff

--- a/libcxx/include/locale
+++ b/libcxx/include/locale
@@ -742,7 +742,11 @@ __num_get_signed_integral(const char* __a, const char* __a_end,
__libcpp_remove_reference_t<decltype(errno)> __save_errno = errno;
errno = 0;
char* __p2;
+#if defined(__linux__) && !defined(__GLIBC__)
+ long long __ll = strtoll(__a, &__p2, __base);
+#else
long long __ll = strtoll_l(__a, &__p2, __base, _LIBCPP_GET_C_LOCALE);
+#endif
__libcpp_remove_reference_t<decltype(errno)> __current_errno = errno;
if (__current_errno == 0)
errno = __save_errno;
@@ -782,7 +786,11 @@ __num_get_unsigned_integral(const char* __a, const char* __a_end,
__libcpp_remove_reference_t<decltype(errno)> __save_errno = errno;
errno = 0;
char* __p2;
+#if defined(__linux__) && !defined(__GLIBC__)
+ unsigned long long __ll = strtoull(__a, &__p2, __base);
+#else
unsigned long long __ll = strtoull_l(__a, &__p2, __base, _LIBCPP_GET_C_LOCALE);
+#endif
__libcpp_remove_reference_t<decltype(errno)> __current_errno = errno;
if (__current_errno == 0)
errno = __save_errno;