m4: fix getlocalename_l-unsafe.c patch to use !HAVE_GETLOCALENAME_L
The previous patch left a broken `__redox__ && HAVE_GETLOCALENAME_L`
branch that referenced the non-existent relibc function `getlocalename_l`,
causing the m4 build to fail with:
error: #error "Please port gnulib getlocalename_l-unsafe.c to your platform!"
Redox's relibc has no `getlocalename_l` symbol. The patch now uses
`__redox__ && !HAVE_GETLOCALENAME_L` and returns "C" (matching
the existing `__ANDROID__` branch behaviour for unknown locales),
so the build no longer hits the gnulib #error.
This commit is contained in:
@@ -1,12 +1,16 @@
|
||||
--- a/lib/getlocalename_l-unsafe.c
|
||||
+++ b/lib/getlocalename_l-unsafe.c
|
||||
@@ -658,6 +658,9 @@ getlocalename_l_unsafe (int category, locale_t locale)
|
||||
@@ -658,9 +658,10 @@ getlocalename_l_unsafe (int category, locale_t locale)
|
||||
};
|
||||
const char *name = ((struct __locale_t *) locale)->mb_cur_max == 4 ? "C.UTF-8" : "C";
|
||||
return (struct string_with_storage) { name, STORAGE_INDEFINITE };
|
||||
+#elif defined __redox__ && HAVE_GETLOCALENAME_L
|
||||
+ const char *name = getlocalename_l (category, locale);
|
||||
+ return (struct string_with_storage) { name != NULL ? name : "", STORAGE_OBJECT };
|
||||
-#elif defined __redox__ && HAVE_GETLOCALENAME_L
|
||||
- const char *name = getlocalename_l (category, locale);
|
||||
- return (struct string_with_storage) { name != NULL ? name : "", STORAGE_OBJECT };
|
||||
+#elif defined __redox__ && !HAVE_GETLOCALENAME_L
|
||||
+ /* Redox's relibc has no getlocalename_l; return the closest matching
|
||||
+ POSIX locale name without referencing a non-existent symbol. */
|
||||
+ return (struct string_with_storage) { "C", STORAGE_INDEFINITE };
|
||||
#else
|
||||
#error "Please port gnulib getlocalename_l-unsafe.c to your platform! Report this to bug-gnulib."
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user