From 7d38eb38977980efe703eac93645b1af5a5f8a0c Mon Sep 17 00:00:00 2001 From: Aurelien Jarno Date: Sat, 16 Dec 2017 12:25:41 +0100 Subject: 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. --- NEWS | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'NEWS') diff --git a/NEWS b/NEWS index 61fed654d8..0670585b4c 100644 --- a/NEWS +++ b/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 -- cgit 1.4.1