* 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.
		
			
				
	
	
		
			23 lines
		
	
	
	
		
			808 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
	
		
			808 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
| 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);
 |