mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 12:30:06 +00:00
ldconfig: set LC_COLLATE to C [BZ #22505]
ldconfig supports `include' directives and use the glob function to process them. The glob function sort entries according to the LC_COLLATE category. When using a standard "include /etc/ld.so.conf.d/*.conf" entry in /etc/ld.so.conf, the order therefore depends on the locale used to run ldconfig. A few examples of locale specific order that might be disturbing in that context compared to the C locale: - The cs_CZ and sk_SK locales sort the digits after the letters. - The et_EE locale sorts the 'z' between 's' and 't'. This patch fixes that by setting LC_COLLATE to C in order to process files in deterministic order, independently of the locale used to launch ldconfig. NOTE: This should NOT be backported to older release branches. Changelog: [BZ #22505] * elf/ldconfig.c (main): Call setlocale to force LC_COLLATE to C.
This commit is contained in:
parent
2e77deef67
commit
7d38eb3897
@ -1,3 +1,8 @@
|
||||
2017-12-16 Aurelien Jarno <aurelien@aurel32.net>
|
||||
|
||||
[BZ #22505]
|
||||
* elf/ldconfig.c (main): Call setlocale to force LC_COLLATE to C.
|
||||
|
||||
2017-12-16 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
|
||||
|
||||
* sysdeps/s390/fpu/libm-test-ulps: Update.
|
||||
|
4
NEWS
4
NEWS
@ -63,6 +63,10 @@ Major new features:
|
||||
|
||||
* Optimized memcpy, mempcpy, memmove, and memset for sparc M7.
|
||||
|
||||
* The ldconfig utility now processes `include' directives using the C/POSIX
|
||||
collation ordering. Previous glibc versions used locale-specific
|
||||
ordering, the change might break systems that relied on that.
|
||||
|
||||
Deprecated and removed features, and other changes affecting compatibility:
|
||||
|
||||
* On GNU/Linux, the obsolete Linux constant PTRACE_SEIZE_DEVEL is no longer
|
||||
|
@ -1259,6 +1259,10 @@ main (int argc, char **argv)
|
||||
/* Set locale via LC_ALL. */
|
||||
setlocale (LC_ALL, "");
|
||||
|
||||
/* But keep the C collation. That way `include' directives using
|
||||
globbing patterns are processed in a locale-independent order. */
|
||||
setlocale (LC_COLLATE, "C");
|
||||
|
||||
/* Set the text message domain. */
|
||||
textdomain (_libc_intl_domainname);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user