gnu: glibc: Do not abort when incompatible locale data is found.
* gnu/packages/patches/glibc-locale-incompatibility.patch: New file. * gnu/packages/base.scm (glibc)[source]: Use it. * gnu-system.am (dist_patch_DATA): Add it.
This commit is contained in:
parent
997f86e96b
commit
2ae71b746b
|
@ -471,6 +471,7 @@ dist_patch_DATA = \
|
||||||
gnu/packages/patches/glibc-bootstrap-system.patch \
|
gnu/packages/patches/glibc-bootstrap-system.patch \
|
||||||
gnu/packages/patches/glibc-ldd-x86_64.patch \
|
gnu/packages/patches/glibc-ldd-x86_64.patch \
|
||||||
gnu/packages/patches/glibc-locales.patch \
|
gnu/packages/patches/glibc-locales.patch \
|
||||||
|
gnu/packages/patches/glibc-locale-incompatibility.patch \
|
||||||
gnu/packages/patches/glibc-o-largefile.patch \
|
gnu/packages/patches/glibc-o-largefile.patch \
|
||||||
gnu/packages/patches/gmp-arm-asm-nothumb.patch \
|
gnu/packages/patches/gmp-arm-asm-nothumb.patch \
|
||||||
gnu/packages/patches/gnucash-price-quotes-perl.patch \
|
gnu/packages/patches/gnucash-price-quotes-perl.patch \
|
||||||
|
|
|
@ -476,6 +476,7 @@ store.")
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
(patches (map search-patch
|
(patches (map search-patch
|
||||||
'("glibc-ldd-x86_64.patch"
|
'("glibc-ldd-x86_64.patch"
|
||||||
|
"glibc-locale-incompatibility.patch"
|
||||||
"glibc-o-largefile.patch")))))
|
"glibc-o-largefile.patch")))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
This patch avoids an assertion failure when incompatible locale data
|
||||||
|
is encountered:
|
||||||
|
|
||||||
|
https://sourceware.org/ml/libc-alpha/2015-09/msg00575.html
|
||||||
|
|
||||||
|
--- glibc-2.22/locale/loadlocale.c 2015-09-22 17:16:02.321981548 +0200
|
||||||
|
+++ glibc-2.22/locale/loadlocale.c 2015-09-22 17:17:34.814659064 +0200
|
||||||
|
@@ -120,10 +120,11 @@
|
||||||
|
_nl_value_type_LC_XYZ array. There are all pointers. */
|
||||||
|
switch (category)
|
||||||
|
{
|
||||||
|
-#define CATTEST(cat) \
|
||||||
|
- case LC_##cat: \
|
||||||
|
- assert (cnt < (sizeof (_nl_value_type_LC_##cat) \
|
||||||
|
- / sizeof (_nl_value_type_LC_##cat[0]))); \
|
||||||
|
+#define CATTEST(cat) \
|
||||||
|
+ case LC_##cat: \
|
||||||
|
+ if (cnt >= (sizeof (_nl_value_type_LC_##cat) \
|
||||||
|
+ / sizeof (_nl_value_type_LC_##cat[0]))) \
|
||||||
|
+ goto puntdata; \
|
||||||
|
break
|
||||||
|
CATTEST (NUMERIC);
|
||||||
|
CATTEST (TIME);
|
Loading…
Reference in New Issue