2019-01-10 12:21:29 +01:00
|
|
|
Fix handling of collating elements in fnmatch (bug 17396, bug 16976)
|
|
|
|
|
|
|
|
This fixes the same bug in fnmatch that was fixed by commit 7e2f0d2d77 for
|
|
|
|
regexp matching. As a side effect it also removes the use of an unbound
|
|
|
|
VLA.
|
2015-09-17 10:19:34 +02:00
|
|
|
|
|
|
|
[BZ #16976]
|
|
|
|
[BZ #17396]
|
|
|
|
* posix/fnmatch_loop.c (internal_fnmatch, internal_fnwmatch): When
|
|
|
|
looking up collating elements match against (wide) character
|
|
|
|
sequence instead of name. Correct alignment adjustment.
|
|
|
|
* posix/fnmatch.c: Don't include "../locale/elem-hash.h".
|
2019-01-10 12:21:29 +01:00
|
|
|
(WMEMCMP) [HANDLE_MULTIBYTE]: Define.
|
2015-09-17 10:19:34 +02:00
|
|
|
* posix/Makefile (tests): Add tst-fnmatch4 and tst-fnmatch5.
|
Accepting request 627715 from home:Andreas_Schwab:Factory
- Update to glibc 2.28
* The localization data for ISO 14651 is updated to match the 2016
Edition 4 release of the standard, this matches data provided by
Unicode 9.0.0
* Unicode 11.0.0 Support: Character encoding, character type info, and
transliteration tables are all updated to Unicode 11.0.0, using
generator scripts contributed by Mike FABIAN (Red Hat)
* <math.h> functions that round their results to a narrower type are added
from TS 18661-1:2014 and TS 18661-3:2015
* Two grammatical forms of month names are now supported
* The renameat2 function has been added, a variant of the renameat function
which has a flags argument
* The statx function has been added, a variant of the fstatat64
function with an additional flags argument
* IDN domain names in getaddrinfo and getnameinfo now use the system libidn2
library if installed
* Parsing of dynamic string tokens in DT_RPATH, DT_RUNPATH, DT_NEEDED,
DT_AUXILIARY, and DT_FILTER has been expanded to support the full
range of ELF gABI expressions including such constructs as
'$ORIGIN$ORIGIN' (if valid)
* Support for ISO C threads (ISO/IEC 9899:2011) has been added.
* The nonstandard header files <libio.h> and <_G_config.h> are no longer
installed
* The stdio functions 'getc' and 'putc' are no longer defined as macros
* All stdio functions now treat end-of-file as a sticky condition
* The macros 'major', 'minor', and 'makedev' are now only available from
the header <sys/sysmacros.h>
* The obsolete function ustat is no longer available to newly linked
binaries; the headers <ustat.h> and <sys/ustat.h> have been removed
* The obsolete function nfsservctl is no longer available to newly linked
OBS-URL: https://build.opensuse.org/request/show/627715
OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=509
2018-08-06 17:01:59 +02:00
|
|
|
(LOCALES): Add cs_CZ.ISO-8859-2.
|
2015-09-17 10:19:34 +02:00
|
|
|
* posix/tst-fnmatch4.c: New file.
|
|
|
|
* posix/tst-fnmatch5.c: New file.
|
2019-01-10 12:21:29 +01:00
|
|
|
* include/wchar.h (__wmemcmp): Declare.
|
|
|
|
* wcsmbs/wmemcmp.c: Define __wmemcmp and add wmemcmp as weak alias.
|
|
|
|
* sysdeps/i386/i686/multiarch/wmemcmp.c: Likewise.
|
|
|
|
* sysdeps/x86_64/multiarch/wmemcmp.c: Likewise.
|
|
|
|
* sysdeps/s390/wmemcmp.c: Likewise.
|
2015-09-17 10:19:34 +02:00
|
|
|
|
2019-01-10 12:21:29 +01:00
|
|
|
Index: glibc-2.28/include/wchar.h
|
|
|
|
===================================================================
|
|
|
|
--- glibc-2.28.orig/include/wchar.h
|
|
|
|
+++ glibc-2.28/include/wchar.h
|
|
|
|
@@ -143,6 +143,8 @@ libc_hidden_proto (wmemchr)
|
|
|
|
libc_hidden_proto (__wmemchr)
|
|
|
|
libc_hidden_proto (wmemset)
|
|
|
|
libc_hidden_proto (__wmemset)
|
|
|
|
+extern int __wmemcmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n)
|
|
|
|
+ __THROW __attribute_pure__;
|
|
|
|
|
|
|
|
/* Now define the internal interfaces. */
|
|
|
|
extern int __wcscasecmp (const wchar_t *__s1, const wchar_t *__s2)
|
|
|
|
Index: glibc-2.28/posix/Makefile
|
2015-09-17 10:19:34 +02:00
|
|
|
===================================================================
|
2019-01-10 12:21:29 +01:00
|
|
|
--- glibc-2.28.orig/posix/Makefile
|
|
|
|
+++ glibc-2.28/posix/Makefile
|
Accepting request 572614 from home:Andreas_Schwab:Factory
- Update to glibc 2.27
* Optimized x86-64 asin, atan2, exp, expf, log, pow, atan, sin, cosf,
sinf, sincosf and tan with FMA
* Optimized x86-64 trunc and truncf for processors with SSE4.1
* Optimized generic expf, exp2f, logf, log2f, powf, sinf, cosf and
sincosf
* In order to support faster and safer process termination the malloc API
family of functions will no longer print a failure address and stack
backtrace after detecting heap corruption
* The abort function terminates the process immediately, without flushing
stdio streams
* On platforms where long double has the IEEE binary128 format (aarch64,
alpha, mips64, riscv, s390 and sparc), the math library now implements
_Float128 interfaces for that type, as defined by ISO/IEC TS 18661-3:2015
These are the same interfaces added in version 2.26 for some platforms where
this format is supported but is not the format of long double
* On platforms with support for _Float64x (aarch64, alpha, i386, ia64,
mips64, powerpc64le, riscv, s390, sparc and x86_64), the math library now
implements interfaces for that type, as defined by ISO/IEC TS
18661-3:2015
* The math library now implements interfaces for the _Float32, _Float64 and
_Float32x types, as defined by ISO/IEC TS 18661-3:2015
* glibc now implements the memfd_create and mlock2 functions on Linux
* Support for memory protection keys was added
* The copy_file_range function was added
* The ldconfig utility now processes `include' directives using the C/POSIX
collation ordering
* Support for two grammatical forms of month names has been added
* Support for the RISC-V ISA running on Linux has been added
* Statically compiled applications attempting to load locales compiled for the
OBS-URL: https://build.opensuse.org/request/show/572614
OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=491
2018-02-05 11:33:11 +01:00
|
|
|
@@ -92,6 +92,7 @@ tests := test-errno tstgetopt testfnm r
|
2015-09-17 10:19:34 +02:00
|
|
|
bug-getopt5 tst-getopt_long1 bug-regex34 bug-regex35 \
|
Accepting request 572614 from home:Andreas_Schwab:Factory
- Update to glibc 2.27
* Optimized x86-64 asin, atan2, exp, expf, log, pow, atan, sin, cosf,
sinf, sincosf and tan with FMA
* Optimized x86-64 trunc and truncf for processors with SSE4.1
* Optimized generic expf, exp2f, logf, log2f, powf, sinf, cosf and
sincosf
* In order to support faster and safer process termination the malloc API
family of functions will no longer print a failure address and stack
backtrace after detecting heap corruption
* The abort function terminates the process immediately, without flushing
stdio streams
* On platforms where long double has the IEEE binary128 format (aarch64,
alpha, mips64, riscv, s390 and sparc), the math library now implements
_Float128 interfaces for that type, as defined by ISO/IEC TS 18661-3:2015
These are the same interfaces added in version 2.26 for some platforms where
this format is supported but is not the format of long double
* On platforms with support for _Float64x (aarch64, alpha, i386, ia64,
mips64, powerpc64le, riscv, s390, sparc and x86_64), the math library now
implements interfaces for that type, as defined by ISO/IEC TS
18661-3:2015
* The math library now implements interfaces for the _Float32, _Float64 and
_Float32x types, as defined by ISO/IEC TS 18661-3:2015
* glibc now implements the memfd_create and mlock2 functions on Linux
* Support for memory protection keys was added
* The copy_file_range function was added
* The ldconfig utility now processes `include' directives using the C/POSIX
collation ordering
* Support for two grammatical forms of month names has been added
* Support for the RISC-V ISA running on Linux has been added
* Statically compiled applications attempting to load locales compiled for the
OBS-URL: https://build.opensuse.org/request/show/572614
OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=491
2018-02-05 11:33:11 +01:00
|
|
|
tst-pathconf tst-rxspencer-no-utf8 \
|
|
|
|
tst-fnmatch3 bug-regex36 \
|
2016-08-08 14:56:22 +02:00
|
|
|
+ tst-fnmatch4 tst-fnmatch5 \
|
2017-07-26 17:08:57 +02:00
|
|
|
tst-posix_spawn-fd tst-posix_spawn-setsid \
|
|
|
|
tst-posix_fadvise tst-posix_fadvise64 \
|
Accepting request 572614 from home:Andreas_Schwab:Factory
- Update to glibc 2.27
* Optimized x86-64 asin, atan2, exp, expf, log, pow, atan, sin, cosf,
sinf, sincosf and tan with FMA
* Optimized x86-64 trunc and truncf for processors with SSE4.1
* Optimized generic expf, exp2f, logf, log2f, powf, sinf, cosf and
sincosf
* In order to support faster and safer process termination the malloc API
family of functions will no longer print a failure address and stack
backtrace after detecting heap corruption
* The abort function terminates the process immediately, without flushing
stdio streams
* On platforms where long double has the IEEE binary128 format (aarch64,
alpha, mips64, riscv, s390 and sparc), the math library now implements
_Float128 interfaces for that type, as defined by ISO/IEC TS 18661-3:2015
These are the same interfaces added in version 2.26 for some platforms where
this format is supported but is not the format of long double
* On platforms with support for _Float64x (aarch64, alpha, i386, ia64,
mips64, powerpc64le, riscv, s390, sparc and x86_64), the math library now
implements interfaces for that type, as defined by ISO/IEC TS
18661-3:2015
* The math library now implements interfaces for the _Float32, _Float64 and
_Float32x types, as defined by ISO/IEC TS 18661-3:2015
* glibc now implements the memfd_create and mlock2 functions on Linux
* Support for memory protection keys was added
* The copy_file_range function was added
* The ldconfig utility now processes `include' directives using the C/POSIX
collation ordering
* Support for two grammatical forms of month names has been added
* Support for the RISC-V ISA running on Linux has been added
* Statically compiled applications attempting to load locales compiled for the
OBS-URL: https://build.opensuse.org/request/show/572614
OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=491
2018-02-05 11:33:11 +01:00
|
|
|
tst-sysconf-empty-chroot tst-glob_symlinks tst-fexecve \
|
2019-01-10 12:21:29 +01:00
|
|
|
@@ -166,7 +167,8 @@ $(objpfx)wordexp-tst.out: wordexp-tst.sh
|
Accepting request 627715 from home:Andreas_Schwab:Factory
- Update to glibc 2.28
* The localization data for ISO 14651 is updated to match the 2016
Edition 4 release of the standard, this matches data provided by
Unicode 9.0.0
* Unicode 11.0.0 Support: Character encoding, character type info, and
transliteration tables are all updated to Unicode 11.0.0, using
generator scripts contributed by Mike FABIAN (Red Hat)
* <math.h> functions that round their results to a narrower type are added
from TS 18661-1:2014 and TS 18661-3:2015
* Two grammatical forms of month names are now supported
* The renameat2 function has been added, a variant of the renameat function
which has a flags argument
* The statx function has been added, a variant of the fstatat64
function with an additional flags argument
* IDN domain names in getaddrinfo and getnameinfo now use the system libidn2
library if installed
* Parsing of dynamic string tokens in DT_RPATH, DT_RUNPATH, DT_NEEDED,
DT_AUXILIARY, and DT_FILTER has been expanded to support the full
range of ELF gABI expressions including such constructs as
'$ORIGIN$ORIGIN' (if valid)
* Support for ISO C threads (ISO/IEC 9899:2011) has been added.
* The nonstandard header files <libio.h> and <_G_config.h> are no longer
installed
* The stdio functions 'getc' and 'putc' are no longer defined as macros
* All stdio functions now treat end-of-file as a sticky condition
* The macros 'major', 'minor', and 'makedev' are now only available from
the header <sys/sysmacros.h>
* The obsolete function ustat is no longer available to newly linked
binaries; the headers <ustat.h> and <sys/ustat.h> have been removed
* The obsolete function nfsservctl is no longer available to newly linked
OBS-URL: https://build.opensuse.org/request/show/627715
OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=509
2018-08-06 17:01:59 +02:00
|
|
|
endif
|
|
|
|
|
|
|
|
LOCALES := cs_CZ.UTF-8 da_DK.ISO-8859-1 de_DE.ISO-8859-1 de_DE.UTF-8 \
|
|
|
|
- en_US.UTF-8 es_US.ISO-8859-1 es_US.UTF-8 ja_JP.EUC-JP tr_TR.UTF-8
|
|
|
|
+ en_US.UTF-8 es_US.ISO-8859-1 es_US.UTF-8 ja_JP.EUC-JP tr_TR.UTF-8 \
|
|
|
|
+ cs_CZ.ISO-8859-2
|
|
|
|
include ../gen-locales.mk
|
|
|
|
|
|
|
|
$(objpfx)bug-regex1.out: $(gen-locales)
|
2019-01-10 12:21:29 +01:00
|
|
|
Index: glibc-2.28/posix/fnmatch.c
|
2015-09-17 10:19:34 +02:00
|
|
|
===================================================================
|
2019-01-10 12:21:29 +01:00
|
|
|
--- glibc-2.28.orig/posix/fnmatch.c
|
|
|
|
+++ glibc-2.28/posix/fnmatch.c
|
2015-09-17 10:19:34 +02:00
|
|
|
@@ -53,7 +53,6 @@
|
|
|
|
we support a correct implementation only in glibc. */
|
|
|
|
#ifdef _LIBC
|
|
|
|
# include "../locale/localeinfo.h"
|
|
|
|
-# include "../locale/elem-hash.h"
|
|
|
|
# include "../locale/coll-lookup.h"
|
|
|
|
# include <shlib-compat.h>
|
|
|
|
|
2019-01-10 12:21:29 +01:00
|
|
|
@@ -237,6 +236,11 @@ __wcschrnul (const wchar_t *s, wint_t c)
|
|
|
|
# define MEMPCPY(D, S, N) __wmempcpy (D, S, N)
|
|
|
|
# define MEMCHR(S, C, N) __wmemchr (S, C, N)
|
|
|
|
# define STRCOLL(S1, S2) wcscoll (S1, S2)
|
|
|
|
+# ifdef _LIBC
|
|
|
|
+# define WMEMCMP(S1, S2, N) __wmemcmp (S1, S2, N)
|
|
|
|
+# else
|
|
|
|
+# define WMEMCMP(S1, S2, N) wmemcmp (S1, S2, N)
|
|
|
|
+# endif
|
|
|
|
# define WIDE_CHAR_VERSION 1
|
|
|
|
/* Change the name the header defines so it doesn't conflict with
|
|
|
|
the <locale/weight.h> version included above. */
|
|
|
|
Index: glibc-2.28/posix/fnmatch_loop.c
|
2015-09-17 10:19:34 +02:00
|
|
|
===================================================================
|
2019-01-10 12:21:29 +01:00
|
|
|
--- glibc-2.28.orig/posix/fnmatch_loop.c
|
|
|
|
+++ glibc-2.28/posix/fnmatch_loop.c
|
Accepting request 572614 from home:Andreas_Schwab:Factory
- Update to glibc 2.27
* Optimized x86-64 asin, atan2, exp, expf, log, pow, atan, sin, cosf,
sinf, sincosf and tan with FMA
* Optimized x86-64 trunc and truncf for processors with SSE4.1
* Optimized generic expf, exp2f, logf, log2f, powf, sinf, cosf and
sincosf
* In order to support faster and safer process termination the malloc API
family of functions will no longer print a failure address and stack
backtrace after detecting heap corruption
* The abort function terminates the process immediately, without flushing
stdio streams
* On platforms where long double has the IEEE binary128 format (aarch64,
alpha, mips64, riscv, s390 and sparc), the math library now implements
_Float128 interfaces for that type, as defined by ISO/IEC TS 18661-3:2015
These are the same interfaces added in version 2.26 for some platforms where
this format is supported but is not the format of long double
* On platforms with support for _Float64x (aarch64, alpha, i386, ia64,
mips64, powerpc64le, riscv, s390, sparc and x86_64), the math library now
implements interfaces for that type, as defined by ISO/IEC TS
18661-3:2015
* The math library now implements interfaces for the _Float32, _Float64 and
_Float32x types, as defined by ISO/IEC TS 18661-3:2015
* glibc now implements the memfd_create and mlock2 functions on Linux
* Support for memory protection keys was added
* The copy_file_range function was added
* The ldconfig utility now processes `include' directives using the C/POSIX
collation ordering
* Support for two grammatical forms of month names has been added
* Support for the RISC-V ISA running on Linux has been added
* Statically compiled applications attempting to load locales compiled for the
OBS-URL: https://build.opensuse.org/request/show/572614
OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=491
2018-02-05 11:33:11 +01:00
|
|
|
@@ -494,26 +494,12 @@ FCT (const CHAR *pattern, const CHAR *st
|
2015-09-17 10:19:34 +02:00
|
|
|
{
|
|
|
|
int32_t table_size;
|
|
|
|
const int32_t *symb_table;
|
|
|
|
-# if WIDE_CHAR_VERSION
|
|
|
|
- char str[c1];
|
|
|
|
- unsigned int strcnt;
|
|
|
|
-# else
|
|
|
|
-# define str (startp + 1)
|
|
|
|
-# endif
|
|
|
|
const unsigned char *extra;
|
|
|
|
int32_t idx;
|
|
|
|
int32_t elem;
|
|
|
|
- int32_t second;
|
|
|
|
- int32_t hash;
|
|
|
|
-
|
|
|
|
# if WIDE_CHAR_VERSION
|
|
|
|
- /* We have to convert the name to a single-byte
|
|
|
|
- string. This is possible since the names
|
|
|
|
- consist of ASCII characters and the internal
|
|
|
|
- representation is UCS4. */
|
|
|
|
- for (strcnt = 0; strcnt < c1; ++strcnt)
|
|
|
|
- str[strcnt] = startp[1 + strcnt];
|
|
|
|
-#endif
|
2019-01-10 12:21:29 +01:00
|
|
|
+ CHAR *wextra;
|
2015-09-17 10:19:34 +02:00
|
|
|
+# endif
|
|
|
|
|
|
|
|
table_size =
|
|
|
|
_NL_CURRENT_WORD (LC_COLLATE,
|
2019-01-10 12:21:29 +01:00
|
|
|
@@ -525,71 +511,54 @@ FCT (const CHAR *pattern, const CHAR *st
|
2015-09-17 10:19:34 +02:00
|
|
|
_NL_CURRENT (LC_COLLATE,
|
|
|
|
_NL_COLLATE_SYMB_EXTRAMB);
|
|
|
|
|
|
|
|
- /* Locate the character in the hashing table. */
|
|
|
|
- hash = elem_hash (str, c1);
|
|
|
|
-
|
|
|
|
- idx = 0;
|
|
|
|
- elem = hash % table_size;
|
|
|
|
- if (symb_table[2 * elem] != 0)
|
|
|
|
- {
|
|
|
|
- second = hash % (table_size - 2) + 1;
|
|
|
|
-
|
|
|
|
- do
|
|
|
|
- {
|
|
|
|
- /* First compare the hashing value. */
|
|
|
|
- if (symb_table[2 * elem] == hash
|
|
|
|
- && (c1
|
|
|
|
- == extra[symb_table[2 * elem + 1]])
|
|
|
|
- && memcmp (str,
|
|
|
|
- &extra[symb_table[2 * elem
|
|
|
|
- + 1]
|
|
|
|
- + 1], c1) == 0)
|
|
|
|
- {
|
|
|
|
- /* Yep, this is the entry. */
|
|
|
|
- idx = symb_table[2 * elem + 1];
|
|
|
|
- idx += 1 + extra[idx];
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /* Next entry. */
|
|
|
|
- elem += second;
|
|
|
|
- }
|
|
|
|
- while (symb_table[2 * elem] != 0);
|
|
|
|
- }
|
|
|
|
+ for (elem = 0; elem < table_size; elem++)
|
|
|
|
+ if (symb_table[2 * elem] != 0)
|
|
|
|
+ {
|
|
|
|
+ idx = symb_table[2 * elem + 1];
|
|
|
|
+ /* Skip the name of collating element. */
|
|
|
|
+ idx += 1 + extra[idx];
|
|
|
|
+# if WIDE_CHAR_VERSION
|
|
|
|
+ /* Skip the byte sequence of the
|
|
|
|
+ collating element. */
|
|
|
|
+ idx += 1 + extra[idx];
|
|
|
|
+ /* Adjust for the alignment. */
|
|
|
|
+ idx = (idx + 3) & ~3;
|
|
|
|
+
|
2019-01-10 12:21:29 +01:00
|
|
|
+ wextra = (CHAR *) &extra[idx + 4];
|
2015-09-17 10:19:34 +02:00
|
|
|
+
|
|
|
|
+ if (/* Compare the length of the sequence. */
|
|
|
|
+ c1 == wextra[0]
|
|
|
|
+ /* Compare the wide char sequence. */
|
2019-01-10 12:21:29 +01:00
|
|
|
+ && WMEMCMP (startp + 1, &wextra[1],
|
|
|
|
+ c1) == 0)
|
2015-09-17 10:19:34 +02:00
|
|
|
+ /* Yep, this is the entry. */
|
|
|
|
+ break;
|
|
|
|
+# else
|
|
|
|
+ if (/* Compare the length of the sequence. */
|
|
|
|
+ c1 == extra[idx]
|
|
|
|
+ /* Compare the byte sequence. */
|
|
|
|
+ && memcmp (startp + 1,
|
|
|
|
+ &extra[idx + 1], c1) == 0)
|
|
|
|
+ /* Yep, this is the entry. */
|
|
|
|
+ break;
|
|
|
|
+# endif
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- if (symb_table[2 * elem] != 0)
|
|
|
|
+ if (elem < table_size)
|
|
|
|
{
|
|
|
|
/* Compare the byte sequence but only if
|
|
|
|
this is not part of a range. */
|
|
|
|
-# if WIDE_CHAR_VERSION
|
|
|
|
- int32_t *wextra;
|
2019-01-10 12:21:29 +01:00
|
|
|
-
|
2015-09-17 10:19:34 +02:00
|
|
|
- idx += 1 + extra[idx];
|
|
|
|
- /* Adjust for the alignment. */
|
|
|
|
- idx = (idx + 3) & ~3;
|
2019-01-10 12:21:29 +01:00
|
|
|
+ if (! is_range
|
|
|
|
|
2015-09-17 10:19:34 +02:00
|
|
|
- wextra = (int32_t *) &extra[idx + 4];
|
|
|
|
-# endif
|
|
|
|
-
|
|
|
|
- if (! is_range)
|
|
|
|
- {
|
|
|
|
# if WIDE_CHAR_VERSION
|
|
|
|
- for (c1 = 0;
|
|
|
|
- (int32_t) c1 < wextra[idx];
|
|
|
|
- ++c1)
|
|
|
|
- if (n[c1] != wextra[1 + c1])
|
|
|
|
- break;
|
|
|
|
-
|
|
|
|
- if ((int32_t) c1 == wextra[idx])
|
|
|
|
- goto matched;
|
2019-01-10 12:21:29 +01:00
|
|
|
+ && WMEMCMP (n, &wextra[1], c1) == 0
|
2015-09-17 10:19:34 +02:00
|
|
|
# else
|
|
|
|
- for (c1 = 0; c1 < extra[idx]; ++c1)
|
|
|
|
- if (n[c1] != extra[1 + c1])
|
|
|
|
- break;
|
|
|
|
-
|
|
|
|
- if (c1 == extra[idx])
|
|
|
|
- goto matched;
|
|
|
|
+ && memcmp (n, &extra[idx + 1], c1) == 0
|
|
|
|
# endif
|
|
|
|
+ )
|
|
|
|
+ {
|
|
|
|
+ n += c1 - 1;
|
|
|
|
+ goto matched;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Get the collation sequence value. */
|
2019-01-10 12:21:29 +01:00
|
|
|
@@ -597,9 +566,9 @@ FCT (const CHAR *pattern, const CHAR *st
|
2015-09-17 10:19:34 +02:00
|
|
|
# if WIDE_CHAR_VERSION
|
|
|
|
cold = wextra[1 + wextra[idx]];
|
|
|
|
# else
|
|
|
|
- /* Adjust for the alignment. */
|
|
|
|
idx += 1 + extra[idx];
|
|
|
|
- idx = (idx + 3) & ~4;
|
|
|
|
+ /* Adjust for the alignment. */
|
|
|
|
+ idx = (idx + 3) & ~3;
|
|
|
|
cold = *((int32_t *) &extra[idx]);
|
|
|
|
# endif
|
|
|
|
|
2019-01-10 12:21:29 +01:00
|
|
|
@@ -609,10 +578,10 @@ FCT (const CHAR *pattern, const CHAR *st
|
2015-09-17 10:19:34 +02:00
|
|
|
{
|
|
|
|
/* No valid character. Match it as a
|
|
|
|
single byte. */
|
|
|
|
- if (!is_range && *n == str[0])
|
|
|
|
+ if (!is_range && *n == startp[1])
|
|
|
|
goto matched;
|
|
|
|
|
|
|
|
- cold = str[0];
|
|
|
|
+ cold = startp[1];
|
|
|
|
c = *p++;
|
|
|
|
}
|
|
|
|
else
|
2019-01-10 12:21:29 +01:00
|
|
|
@@ -620,7 +589,6 @@ FCT (const CHAR *pattern, const CHAR *st
|
2015-09-17 10:19:34 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
-# undef str
|
|
|
|
#endif
|
|
|
|
{
|
|
|
|
c = FOLD (c);
|
2019-01-10 12:21:29 +01:00
|
|
|
@@ -712,25 +680,11 @@ FCT (const CHAR *pattern, const CHAR *st
|
2015-09-17 10:19:34 +02:00
|
|
|
{
|
|
|
|
int32_t table_size;
|
|
|
|
const int32_t *symb_table;
|
|
|
|
-# if WIDE_CHAR_VERSION
|
|
|
|
- char str[c1];
|
|
|
|
- unsigned int strcnt;
|
|
|
|
-# else
|
|
|
|
-# define str (startp + 1)
|
|
|
|
-# endif
|
|
|
|
const unsigned char *extra;
|
|
|
|
int32_t idx;
|
|
|
|
int32_t elem;
|
|
|
|
- int32_t second;
|
|
|
|
- int32_t hash;
|
|
|
|
-
|
|
|
|
# if WIDE_CHAR_VERSION
|
|
|
|
- /* We have to convert the name to a single-byte
|
|
|
|
- string. This is possible since the names
|
|
|
|
- consist of ASCII characters and the internal
|
|
|
|
- representation is UCS4. */
|
|
|
|
- for (strcnt = 0; strcnt < c1; ++strcnt)
|
|
|
|
- str[strcnt] = startp[1 + strcnt];
|
2019-01-10 12:21:29 +01:00
|
|
|
+ CHAR *wextra;
|
2015-09-17 10:19:34 +02:00
|
|
|
# endif
|
|
|
|
|
|
|
|
table_size =
|
2019-01-10 12:21:29 +01:00
|
|
|
@@ -743,71 +697,63 @@ FCT (const CHAR *pattern, const CHAR *st
|
2015-09-17 10:19:34 +02:00
|
|
|
_NL_CURRENT (LC_COLLATE,
|
|
|
|
_NL_COLLATE_SYMB_EXTRAMB);
|
|
|
|
|
|
|
|
- /* Locate the character in the hashing
|
|
|
|
- table. */
|
|
|
|
- hash = elem_hash (str, c1);
|
|
|
|
-
|
|
|
|
- idx = 0;
|
|
|
|
- elem = hash % table_size;
|
|
|
|
- if (symb_table[2 * elem] != 0)
|
|
|
|
- {
|
|
|
|
- second = hash % (table_size - 2) + 1;
|
|
|
|
-
|
|
|
|
- do
|
|
|
|
- {
|
|
|
|
- /* First compare the hashing value. */
|
|
|
|
- if (symb_table[2 * elem] == hash
|
|
|
|
- && (c1
|
|
|
|
- == extra[symb_table[2 * elem + 1]])
|
|
|
|
- && memcmp (str,
|
|
|
|
- &extra[symb_table[2 * elem + 1]
|
|
|
|
- + 1], c1) == 0)
|
|
|
|
- {
|
|
|
|
- /* Yep, this is the entry. */
|
|
|
|
- idx = symb_table[2 * elem + 1];
|
|
|
|
- idx += 1 + extra[idx];
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /* Next entry. */
|
|
|
|
- elem += second;
|
|
|
|
- }
|
|
|
|
- while (symb_table[2 * elem] != 0);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if (symb_table[2 * elem] != 0)
|
|
|
|
- {
|
|
|
|
- /* Compare the byte sequence but only if
|
|
|
|
- this is not part of a range. */
|
|
|
|
+ for (elem = 0; elem < table_size; elem++)
|
|
|
|
+ if (symb_table[2 * elem] != 0)
|
|
|
|
+ {
|
|
|
|
+ idx = symb_table[2 * elem + 1];
|
|
|
|
+ /* Skip the name of collating
|
|
|
|
+ element. */
|
|
|
|
+ idx += 1 + extra[idx];
|
|
|
|
# if WIDE_CHAR_VERSION
|
|
|
|
- int32_t *wextra;
|
|
|
|
-
|
|
|
|
- idx += 1 + extra[idx];
|
|
|
|
- /* Adjust for the alignment. */
|
|
|
|
- idx = (idx + 3) & ~4;
|
|
|
|
-
|
|
|
|
- wextra = (int32_t *) &extra[idx + 4];
|
|
|
|
+ /* Skip the byte sequence of the
|
|
|
|
+ collating element. */
|
|
|
|
+ idx += 1 + extra[idx];
|
|
|
|
+ /* Adjust for the alignment. */
|
|
|
|
+ idx = (idx + 3) & ~3;
|
|
|
|
+
|
2019-01-10 12:21:29 +01:00
|
|
|
+ wextra = (CHAR *) &extra[idx + 4];
|
2015-09-17 10:19:34 +02:00
|
|
|
+
|
|
|
|
+ if (/* Compare the length of the
|
|
|
|
+ sequence. */
|
|
|
|
+ c1 == wextra[0]
|
|
|
|
+ /* Compare the wide char sequence. */
|
2019-01-10 12:21:29 +01:00
|
|
|
+ && WMEMCMP (startp + 1, &wextra[1],
|
|
|
|
+ c1) == 0)
|
2015-09-17 10:19:34 +02:00
|
|
|
+ /* Yep, this is the entry. */
|
|
|
|
+ break;
|
|
|
|
+# else
|
|
|
|
+ if (/* Compare the length of the
|
|
|
|
+ sequence. */
|
|
|
|
+ c1 == extra[idx]
|
|
|
|
+ /* Compare the byte sequence. */
|
|
|
|
+ && memcmp (startp + 1,
|
|
|
|
+ &extra[idx + 1], c1) == 0)
|
|
|
|
+ /* Yep, this is the entry. */
|
|
|
|
+ break;
|
|
|
|
# endif
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (elem < table_size)
|
|
|
|
+ {
|
|
|
|
/* Get the collation sequence value. */
|
|
|
|
is_seqval = 1;
|
|
|
|
# if WIDE_CHAR_VERSION
|
2019-01-10 12:21:29 +01:00
|
|
|
cend = wextra[1 + wextra[idx]];
|
2015-09-17 10:19:34 +02:00
|
|
|
# else
|
2019-01-10 12:21:29 +01:00
|
|
|
- /* Adjust for the alignment. */
|
2015-09-17 10:19:34 +02:00
|
|
|
idx += 1 + extra[idx];
|
|
|
|
- idx = (idx + 3) & ~4;
|
2019-01-10 12:21:29 +01:00
|
|
|
+ /* Adjust for the alignment. */
|
2015-09-17 10:19:34 +02:00
|
|
|
+ idx = (idx + 3) & ~3;
|
|
|
|
cend = *((int32_t *) &extra[idx]);
|
|
|
|
# endif
|
|
|
|
}
|
|
|
|
- else if (symb_table[2 * elem] != 0 && c1 == 1)
|
|
|
|
+ else if (c1 == 1)
|
|
|
|
{
|
|
|
|
- cend = str[0];
|
|
|
|
+ cend = startp[1];
|
|
|
|
c = *p++;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
return FNM_NOMATCH;
|
|
|
|
}
|
|
|
|
-# undef str
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2019-01-10 12:21:29 +01:00
|
|
|
Index: glibc-2.28/posix/tst-fnmatch4.c
|
2015-09-17 10:19:34 +02:00
|
|
|
===================================================================
|
|
|
|
--- /dev/null
|
2019-01-10 12:21:29 +01:00
|
|
|
+++ glibc-2.28/posix/tst-fnmatch4.c
|
|
|
|
@@ -0,0 +1,41 @@
|
2015-09-17 10:19:34 +02:00
|
|
|
+/* Test for fnmatch handling of collating elements
|
2019-01-10 12:21:29 +01:00
|
|
|
+ Copyright (C) 2019 Free Software Foundation, Inc.
|
2015-09-17 10:19:34 +02:00
|
|
|
+ This file is part of the GNU C Library.
|
|
|
|
+
|
|
|
|
+ The GNU C Library is free software; you can redistribute it and/or
|
|
|
|
+ modify it under the terms of the GNU Lesser General Public
|
|
|
|
+ License as published by the Free Software Foundation; either
|
|
|
|
+ version 2.1 of the License, or (at your option) any later version.
|
|
|
|
+
|
|
|
|
+ The GNU C Library is distributed in the hope that it will be useful,
|
|
|
|
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
+ Lesser General Public License for more details.
|
|
|
|
+
|
|
|
|
+ You should have received a copy of the GNU Lesser General Public
|
|
|
|
+ License along with the GNU C Library; if not, see
|
|
|
|
+ <http://www.gnu.org/licenses/>. */
|
|
|
|
+
|
|
|
|
+#include <stdio.h>
|
|
|
|
+#include <locale.h>
|
|
|
|
+#include <fnmatch.h>
|
2019-01-10 12:21:29 +01:00
|
|
|
+#include <support/check.h>
|
2015-09-17 10:19:34 +02:00
|
|
|
+
|
2019-01-10 12:21:29 +01:00
|
|
|
+static void
|
2015-09-17 10:19:34 +02:00
|
|
|
+do_test_locale (const char *locale)
|
|
|
|
+{
|
2019-01-10 12:21:29 +01:00
|
|
|
+ TEST_VERIFY_EXIT (setlocale (LC_ALL, locale) != NULL);
|
2015-09-17 10:19:34 +02:00
|
|
|
+
|
2019-01-10 12:21:29 +01:00
|
|
|
+ TEST_VERIFY (fnmatch ("[[.ch.]]", "ch", 0) == 0);
|
2015-09-17 10:19:34 +02:00
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static int
|
|
|
|
+do_test (void)
|
|
|
|
+{
|
2019-01-10 12:21:29 +01:00
|
|
|
+ do_test_locale ("cs_CZ.ISO-8859-2");
|
|
|
|
+ do_test_locale ("cs_CZ.UTF-8");
|
|
|
|
+
|
|
|
|
+ return 0;
|
2015-09-17 10:19:34 +02:00
|
|
|
+}
|
|
|
|
+
|
2019-01-10 12:21:29 +01:00
|
|
|
+#include <support/test-driver.c>
|
|
|
|
Index: glibc-2.28/posix/tst-fnmatch5.c
|
2015-09-17 10:19:34 +02:00
|
|
|
===================================================================
|
|
|
|
--- /dev/null
|
2019-01-10 12:21:29 +01:00
|
|
|
+++ glibc-2.28/posix/tst-fnmatch5.c
|
|
|
|
@@ -0,0 +1,46 @@
|
2015-09-17 10:19:34 +02:00
|
|
|
+/* Test for fnmatch handling of collating elements
|
2019-01-10 12:21:29 +01:00
|
|
|
+ Copyright (C) 2019 Free Software Foundation, Inc.
|
2015-09-17 10:19:34 +02:00
|
|
|
+ This file is part of the GNU C Library.
|
|
|
|
+
|
|
|
|
+ The GNU C Library is free software; you can redistribute it and/or
|
|
|
|
+ modify it under the terms of the GNU Lesser General Public
|
|
|
|
+ License as published by the Free Software Foundation; either
|
|
|
|
+ version 2.1 of the License, or (at your option) any later version.
|
|
|
|
+
|
|
|
|
+ The GNU C Library is distributed in the hope that it will be useful,
|
|
|
|
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
+ Lesser General Public License for more details.
|
|
|
|
+
|
|
|
|
+ You should have received a copy of the GNU Lesser General Public
|
|
|
|
+ License along with the GNU C Library; if not, see
|
|
|
|
+ <http://www.gnu.org/licenses/>. */
|
|
|
|
+
|
|
|
|
+#include <fnmatch.h>
|
|
|
|
+#include <locale.h>
|
|
|
|
+#include <stdio.h>
|
|
|
|
+#include <string.h>
|
2019-01-10 12:21:29 +01:00
|
|
|
+#include <support/check.h>
|
2015-09-17 10:19:34 +02:00
|
|
|
+
|
|
|
|
+#define LENGTH 20000000
|
|
|
|
+
|
2019-01-10 12:21:29 +01:00
|
|
|
+static char pattern[LENGTH + 7];
|
2015-09-17 10:19:34 +02:00
|
|
|
+
|
|
|
|
+static int
|
|
|
|
+do_test (void)
|
|
|
|
+{
|
2019-01-10 12:21:29 +01:00
|
|
|
+ TEST_VERIFY_EXIT (setlocale (LC_ALL, "en_US.UTF-8") != NULL);
|
|
|
|
+
|
2015-09-17 10:19:34 +02:00
|
|
|
+ pattern[0] = '[';
|
|
|
|
+ pattern[1] = '[';
|
|
|
|
+ pattern[2] = '.';
|
|
|
|
+ memset (pattern + 3, 'a', LENGTH);
|
|
|
|
+ pattern[LENGTH + 3] = '.';
|
|
|
|
+ pattern[LENGTH + 4] = ']';
|
|
|
|
+ pattern[LENGTH + 5] = ']';
|
2019-01-10 12:21:29 +01:00
|
|
|
+ TEST_VERIFY (fnmatch (pattern, "a", 0) != 0);
|
|
|
|
+
|
2015-09-17 10:19:34 +02:00
|
|
|
+ return 0;
|
|
|
|
+}
|
|
|
|
+
|
2019-01-10 12:21:29 +01:00
|
|
|
+#include <support/test-driver.c>
|
|
|
|
Index: glibc-2.28/sysdeps/i386/i686/multiarch/wmemcmp.c
|
|
|
|
===================================================================
|
|
|
|
--- glibc-2.28.orig/sysdeps/i386/i686/multiarch/wmemcmp.c
|
|
|
|
+++ glibc-2.28/sysdeps/i386/i686/multiarch/wmemcmp.c
|
|
|
|
@@ -26,5 +26,6 @@
|
|
|
|
# define SYMBOL_NAME wmemcmp
|
|
|
|
# include "ifunc-ssse3-sse4_2.h"
|
|
|
|
|
|
|
|
-libc_ifunc_redirected (__redirect_wmemcmp, wmemcmp, IFUNC_SELECTOR ());
|
|
|
|
+libc_ifunc_redirected (__redirect_wmemcmp, __wmemcmp, IFUNC_SELECTOR ());
|
|
|
|
+weak_alias (__wmemcmp, wmemcmp)
|
|
|
|
#endif
|
Accepting request 670585 from home:Andreas_Schwab:Factory
- Update to glibc 2.29
* The getcpu wrapper function has been added, which returns the currently
used CPU and NUMA node
* Optimized generic exp, exp2, log, log2, pow, sinf, cosf, sincosf and tanf
* The reallocarray function is now declared under _DEFAULT_SOURCE, not just
for _GNU_SOURCE, to match BSD environments
* For powercp64le ABI, Transactional Lock Elision is now enabled iff kernel
indicates that it will abort the transaction prior to entering the kernel
(PPC_FEATURE2_HTM_NOSC on hwcap2)
* The functions posix_spawn_file_actions_addchdir_np and
posix_spawn_file_actions_addfchdir_np have been added, enabling
posix_spawn and posix_spawnp to run the new process in a different
directory
* The popen and system do not run atfork handlers anymore (BZ#17490)
* strftime's default formatting of a locale's alternative year (%Ey)
has been changed to zero-pad the year to a minimum of two digits,
like "%y"
* As a GNU extension, the '_' and '-' flags can now be applied to
"%EY" to control how the year number is formatted
* The glibc.tune tunable namespace has been renamed to glibc.cpu and the
tunable glibc.tune.cpu has been renamed to glibc.cpu.name
* The type of the pr_uid and pr_gid members of struct elf_prpsinfo, defined
in <sys/procfs.h>, has been corrected to match the type actually used by
the Linux kernel
* An archaic GNU extension to scanf, under which '%as', '%aS', and '%a[...]'
meant to scan a string and allocate space for it with malloc, is now
restricted to programs compiled in C89 or C++98 mode with _GNU_SOURCE
defined
- unwind-ctor.patch, old-getdents64.patch, nss-files-leak.patch,
riscv-feholdexcept-setround.patch,
OBS-URL: https://build.opensuse.org/request/show/670585
OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=516
2019-02-01 14:45:56 +01:00
|
|
|
Index: glibc-2.28/sysdeps/s390/wmemcmp.c
|
2019-01-10 12:21:29 +01:00
|
|
|
===================================================================
|
Accepting request 670585 from home:Andreas_Schwab:Factory
- Update to glibc 2.29
* The getcpu wrapper function has been added, which returns the currently
used CPU and NUMA node
* Optimized generic exp, exp2, log, log2, pow, sinf, cosf, sincosf and tanf
* The reallocarray function is now declared under _DEFAULT_SOURCE, not just
for _GNU_SOURCE, to match BSD environments
* For powercp64le ABI, Transactional Lock Elision is now enabled iff kernel
indicates that it will abort the transaction prior to entering the kernel
(PPC_FEATURE2_HTM_NOSC on hwcap2)
* The functions posix_spawn_file_actions_addchdir_np and
posix_spawn_file_actions_addfchdir_np have been added, enabling
posix_spawn and posix_spawnp to run the new process in a different
directory
* The popen and system do not run atfork handlers anymore (BZ#17490)
* strftime's default formatting of a locale's alternative year (%Ey)
has been changed to zero-pad the year to a minimum of two digits,
like "%y"
* As a GNU extension, the '_' and '-' flags can now be applied to
"%EY" to control how the year number is formatted
* The glibc.tune tunable namespace has been renamed to glibc.cpu and the
tunable glibc.tune.cpu has been renamed to glibc.cpu.name
* The type of the pr_uid and pr_gid members of struct elf_prpsinfo, defined
in <sys/procfs.h>, has been corrected to match the type actually used by
the Linux kernel
* An archaic GNU extension to scanf, under which '%as', '%aS', and '%a[...]'
meant to scan a string and allocate space for it with malloc, is now
restricted to programs compiled in C89 or C++98 mode with _GNU_SOURCE
defined
- unwind-ctor.patch, old-getdents64.patch, nss-files-leak.patch,
riscv-feholdexcept-setround.patch,
OBS-URL: https://build.opensuse.org/request/show/670585
OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=516
2019-02-01 14:45:56 +01:00
|
|
|
--- glibc-2.28.orig/sysdeps/s390/wmemcmp.c
|
|
|
|
+++ glibc-2.28/sysdeps/s390/wmemcmp.c
|
|
|
|
@@ -23,16 +23,17 @@
|
2019-01-10 12:21:29 +01:00
|
|
|
# include <ifunc-resolve.h>
|
|
|
|
|
Accepting request 670585 from home:Andreas_Schwab:Factory
- Update to glibc 2.29
* The getcpu wrapper function has been added, which returns the currently
used CPU and NUMA node
* Optimized generic exp, exp2, log, log2, pow, sinf, cosf, sincosf and tanf
* The reallocarray function is now declared under _DEFAULT_SOURCE, not just
for _GNU_SOURCE, to match BSD environments
* For powercp64le ABI, Transactional Lock Elision is now enabled iff kernel
indicates that it will abort the transaction prior to entering the kernel
(PPC_FEATURE2_HTM_NOSC on hwcap2)
* The functions posix_spawn_file_actions_addchdir_np and
posix_spawn_file_actions_addfchdir_np have been added, enabling
posix_spawn and posix_spawnp to run the new process in a different
directory
* The popen and system do not run atfork handlers anymore (BZ#17490)
* strftime's default formatting of a locale's alternative year (%Ey)
has been changed to zero-pad the year to a minimum of two digits,
like "%y"
* As a GNU extension, the '_' and '-' flags can now be applied to
"%EY" to control how the year number is formatted
* The glibc.tune tunable namespace has been renamed to glibc.cpu and the
tunable glibc.tune.cpu has been renamed to glibc.cpu.name
* The type of the pr_uid and pr_gid members of struct elf_prpsinfo, defined
in <sys/procfs.h>, has been corrected to match the type actually used by
the Linux kernel
* An archaic GNU extension to scanf, under which '%as', '%aS', and '%a[...]'
meant to scan a string and allocate space for it with malloc, is now
restricted to programs compiled in C89 or C++98 mode with _GNU_SOURCE
defined
- unwind-ctor.patch, old-getdents64.patch, nss-files-leak.patch,
riscv-feholdexcept-setround.patch,
OBS-URL: https://build.opensuse.org/request/show/670585
OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=516
2019-02-01 14:45:56 +01:00
|
|
|
# if HAVE_WMEMCMP_C
|
|
|
|
-extern __typeof (wmemcmp) WMEMCMP_C attribute_hidden;
|
|
|
|
+extern __typeof (__wmemcmp) WMEMCMP_C attribute_hidden;
|
|
|
|
# endif
|
|
|
|
|
|
|
|
# if HAVE_WMEMCMP_Z13
|
|
|
|
-extern __typeof (wmemcmp) WMEMCMP_Z13 attribute_hidden;
|
|
|
|
+extern __typeof (__wmemcmp) WMEMCMP_Z13 attribute_hidden;
|
|
|
|
# endif
|
2019-01-10 12:21:29 +01:00
|
|
|
|
Accepting request 670585 from home:Andreas_Schwab:Factory
- Update to glibc 2.29
* The getcpu wrapper function has been added, which returns the currently
used CPU and NUMA node
* Optimized generic exp, exp2, log, log2, pow, sinf, cosf, sincosf and tanf
* The reallocarray function is now declared under _DEFAULT_SOURCE, not just
for _GNU_SOURCE, to match BSD environments
* For powercp64le ABI, Transactional Lock Elision is now enabled iff kernel
indicates that it will abort the transaction prior to entering the kernel
(PPC_FEATURE2_HTM_NOSC on hwcap2)
* The functions posix_spawn_file_actions_addchdir_np and
posix_spawn_file_actions_addfchdir_np have been added, enabling
posix_spawn and posix_spawnp to run the new process in a different
directory
* The popen and system do not run atfork handlers anymore (BZ#17490)
* strftime's default formatting of a locale's alternative year (%Ey)
has been changed to zero-pad the year to a minimum of two digits,
like "%y"
* As a GNU extension, the '_' and '-' flags can now be applied to
"%EY" to control how the year number is formatted
* The glibc.tune tunable namespace has been renamed to glibc.cpu and the
tunable glibc.tune.cpu has been renamed to glibc.cpu.name
* The type of the pr_uid and pr_gid members of struct elf_prpsinfo, defined
in <sys/procfs.h>, has been corrected to match the type actually used by
the Linux kernel
* An archaic GNU extension to scanf, under which '%as', '%aS', and '%a[...]'
meant to scan a string and allocate space for it with malloc, is now
restricted to programs compiled in C89 or C++98 mode with _GNU_SOURCE
defined
- unwind-ctor.patch, old-getdents64.patch, nss-files-leak.patch,
riscv-feholdexcept-setround.patch,
OBS-URL: https://build.opensuse.org/request/show/670585
OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=516
2019-02-01 14:45:56 +01:00
|
|
|
-s390_libc_ifunc_expr (wmemcmp, wmemcmp,
|
|
|
|
+s390_libc_ifunc_expr (__wmemcmp, __wmemcmp,
|
|
|
|
(HAVE_WMEMCMP_Z13 && (hwcap & HWCAP_S390_VX))
|
|
|
|
? WMEMCMP_Z13
|
|
|
|
: WMEMCMP_DEFAULT
|
|
|
|
)
|
|
|
|
+weak_alias (__wmemcmp, wmemcmp)
|
|
|
|
#endif
|
2019-01-10 12:21:29 +01:00
|
|
|
Index: glibc-2.28/sysdeps/x86_64/multiarch/wmemcmp.c
|
|
|
|
===================================================================
|
|
|
|
--- glibc-2.28.orig/sysdeps/x86_64/multiarch/wmemcmp.c
|
|
|
|
+++ glibc-2.28/sysdeps/x86_64/multiarch/wmemcmp.c
|
|
|
|
@@ -26,5 +26,6 @@
|
|
|
|
# define SYMBOL_NAME wmemcmp
|
|
|
|
# include "ifunc-memcmp.h"
|
|
|
|
|
|
|
|
-libc_ifunc_redirected (__redirect_wmemcmp, wmemcmp, IFUNC_SELECTOR ());
|
|
|
|
+libc_ifunc_redirected (__redirect_wmemcmp, __wmemcmp, IFUNC_SELECTOR ());
|
|
|
|
+weak_alias (__wmemcmp, wmemcmp)
|
|
|
|
#endif
|
|
|
|
Index: glibc-2.28/wcsmbs/wmemcmp.c
|
|
|
|
===================================================================
|
|
|
|
--- glibc-2.28.orig/wcsmbs/wmemcmp.c
|
|
|
|
+++ glibc-2.28/wcsmbs/wmemcmp.c
|
|
|
|
@@ -18,12 +18,12 @@
|
|
|
|
|
|
|
|
#include <wchar.h>
|
|
|
|
|
|
|
|
-#ifndef WMEMCMP
|
|
|
|
-# define WMEMCMP wmemcmp
|
|
|
|
+#ifdef WMEMCMP
|
|
|
|
+# define __wmemcmp WMEMCMP
|
|
|
|
#endif
|
|
|
|
|
|
|
|
int
|
|
|
|
-WMEMCMP (const wchar_t *s1, const wchar_t *s2, size_t n)
|
|
|
|
+__wmemcmp (const wchar_t *s1, const wchar_t *s2, size_t n)
|
|
|
|
{
|
|
|
|
wchar_t c1;
|
|
|
|
wchar_t c2;
|
|
|
|
@@ -81,3 +81,6 @@ WMEMCMP (const wchar_t *s1, const wchar_
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
+#ifndef WMEMCMP
|
|
|
|
+weak_alias (__wmemcmp, wmemcmp)
|
|
|
|
+#endif
|