From fdc6f8a4dbb7a222737a0e13ec67257b99bdb031335e8d1153e417725969b31f Mon Sep 17 00:00:00 2001 From: Marcus Meissner Date: Thu, 12 Jan 2017 12:18:57 +0000 Subject: [PATCH 1/4] Accepting request 449309 from home:marxin:branches:Base:System Removed unneeded patch. OBS-URL: https://build.opensuse.org/request/show/449309 OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=449 --- ...us-build-with-mainline-GCC-bug-20978.patch | 68 ++++++++++++ ...-Fix-rpcgen-buffer-overrun-bug-20790.patch | 102 ++++++++++++++++++ gcc7-fix-warnings.patch | 40 +++++++ glibc-testsuite.spec | 2 +- glibc-utils.spec | 2 +- glibc.changes | 11 ++ glibc.spec | 11 +- 7 files changed, 233 insertions(+), 3 deletions(-) create mode 100644 gcc7-Fix-nss_nisplus-build-with-mainline-GCC-bug-20978.patch create mode 100644 gcc7-Fix-rpcgen-buffer-overrun-bug-20790.patch create mode 100644 gcc7-fix-warnings.patch diff --git a/gcc7-Fix-nss_nisplus-build-with-mainline-GCC-bug-20978.patch b/gcc7-Fix-nss_nisplus-build-with-mainline-GCC-bug-20978.patch new file mode 100644 index 0000000..e3a3b20 --- /dev/null +++ b/gcc7-Fix-nss_nisplus-build-with-mainline-GCC-bug-20978.patch @@ -0,0 +1,68 @@ +From f88759ea9bd3c8d8fef28f123ba9767cb0e421a3 Mon Sep 17 00:00:00 2001 +From: Joseph Myers +Date: Wed, 21 Dec 2016 23:44:01 +0000 +Subject: [PATCH] Fix nss_nisplus build with mainline GCC (bug 20978). + +glibc build with current mainline GCC fails because +nis/nss_nisplus/nisplus-alias.c contains code + + if (name != NULL) + { + *errnop = EINVAL; + return NSS_STATUS_UNAVAIL; + } + + char buf[strlen (name) + 9 + tablename_len]; + +producing an error about strlen being called on a pointer that is +always NULL (and a subsequent use of that pointer with a %s format in +snprintf). + +As Andreas noted, the bogus conditional comes from a 1997 change: + +- if (name == NULL || strlen(name) > 8) +- return NSS_STATUS_NOTFOUND; +- else ++ if (name != NULL || strlen(name) <= 8) + +So the intention is clearly to return an error for NULL name. + +This patch duly inverts the sense of the conditional. It fixes the +build with GCC mainline, and passes usual glibc testsuite testing for +x86_64. However, I have not tried any actual substantive nisplus +testing, do not have an environment for such testing, and do not know +whether it is possible that strlen (name) or tablename_len might be +large so that the VLA for buf is actually a security issue. However, +if it is a security issue, there are plenty of other similar instances +in the nisplus code (that haven't been hidden by a bogus comparison +with NULL) - and nis_table.c:__create_ib_request uses strdupa on the +string passed to nis_list, so a local fix in the caller wouldn't +suffice anyway (see bug 20987). (Calls to strdupa and other such +macros that use alloca must be considered equally questionable +regarding stack overflow issues as direct calls to alloca and VLA +declarations.) + + [BZ #20978] + * nis/nss_nisplus/nisplus-alias.c (_nss_nisplus_getaliasbyname_r): + Compare name == NULL, not name != NULL. +--- + ChangeLog | 4 ++++ + nis/nss_nisplus/nisplus-alias.c | 2 +- + 2 files changed, 5 insertions(+), 1 deletion(-) + +diff --git a/nis/nss_nisplus/nisplus-alias.c b/nis/nss_nisplus/nisplus-alias.c +index 7f698b4e6d..cb5acce01d 100644 +--- a/nis/nss_nisplus/nisplus-alias.c ++++ b/nis/nss_nisplus/nisplus-alias.c +@@ -291,7 +291,7 @@ _nss_nisplus_getaliasbyname_r (const char *name, struct aliasent *alias, + return status; + } + +- if (name != NULL) ++ if (name == NULL) + { + *errnop = EINVAL; + return NSS_STATUS_UNAVAIL; +-- +2.11.0 + diff --git a/gcc7-Fix-rpcgen-buffer-overrun-bug-20790.patch b/gcc7-Fix-rpcgen-buffer-overrun-bug-20790.patch new file mode 100644 index 0000000..2cd84e1 --- /dev/null +++ b/gcc7-Fix-rpcgen-buffer-overrun-bug-20790.patch @@ -0,0 +1,102 @@ +From 5874510faaf3cbd0bb112aaacab9f225002beed1 Mon Sep 17 00:00:00 2001 +From: Joseph Myers +Date: Tue, 8 Nov 2016 23:44:51 +0000 +Subject: [PATCH] Fix rpcgen buffer overrun (bug 20790). + +Building with GCC 7 produces an error building rpcgen: + +rpc_parse.c: In function 'get_prog_declaration': +rpc_parse.c:543:25: error: may write a terminating nul past the end of the destination [-Werror=format-length=] + sprintf (name, "%s%d", ARGNAME, num); /* default name of argument */ + ~~~~^ +rpc_parse.c:543:5: note: format output between 5 and 14 bytes into a destination of size 10 + sprintf (name, "%s%d", ARGNAME, num); /* default name of argument */ + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +That buffer overrun is for the case where the .x file declares a +program with a million arguments. The strcpy two lines above can +generate a buffer overrun much more simply for a long argument name. + +The limit on length of line read by rpcgen (MAXLINESIZE == 1024) +provides a bound on the buffer size needed, so this patch just changes +the buffer size to MAXLINESIZE to avoid both possible buffer +overruns. A testcase is added that rpcgen does not crash with a +500-character argument name, where it previously crashed. + +It would not at all surprise me if there are many other ways of +crashing rpcgen with either valid or invalid input; fuzz testing would +likely find various such bugs, though I don't think they are that +important to fix (rpcgen is not that likely to be used with untrusted +.x files as input). (As well as fuzz-findable bugs there are probably +also issues when various int variables get overflowed on very large +input.) The test infrastructure for rpcgen-not-crashing tests would +need extending if tests are to be added for cases where rpcgen should +produce an error, as opposed to cases where it should succeed. + +Tested for x86_64 and x86. + + [BZ #20790] + * sunrpc/rpc_parse.c (get_prog_declaration): Increase buffer size + to MAXLINESIZE. + * sunrpc/bug20790.x: New file. + * sunrpc/Makefile [$(run-built-tests) = yes] (rpcgen-tests): New + variable. + [$(run-built-tests) = yes] (tests-special): Add $(rpcgen-tests). + [$(run-built-tests) = yes] ($(rpcgen-tests)): New rule. +--- + ChangeLog | 9 +++++++++ + sunrpc/Makefile | 11 +++++++++++ + sunrpc/bug20790.x | 1 + + sunrpc/rpc_parse.c | 2 +- + 4 files changed, 22 insertions(+), 1 deletion(-) + create mode 100644 sunrpc/bug20790.x + +diff --git a/sunrpc/Makefile b/sunrpc/Makefile +index 789ef423e5..99e5c3ccf8 100644 +--- a/sunrpc/Makefile ++++ b/sunrpc/Makefile +@@ -103,6 +103,11 @@ ifeq ($(have-thread-library),yes) + xtests += thrsvc + endif + ++ifeq ($(run-built-tests),yes) ++rpcgen-tests := $(objpfx)bug20790.out ++tests-special += $(rpcgen-tests) ++endif ++ + headers += $(rpcsvc:%.x=rpcsvc/%.h) + extra-libs := librpcsvc + extra-libs-others := librpcsvc # Make it in `others' pass, not `lib' pass. +@@ -225,3 +230,9 @@ endif + endif + + $(objpfx)thrsvc: $(common-objpfx)linkobj/libc.so $(shared-thread-library) ++ ++ifeq ($(run-built-tests),yes) ++$(rpcgen-tests): $(objpfx)%.out: %.x $(objpfx)rpcgen ++ $(built-program-cmd) -c $< -o $@; \ ++ $(evaluate-test) ++endif +diff --git a/sunrpc/bug20790.x b/sunrpc/bug20790.x +new file mode 100644 +index 0000000000..a00c9b3830 +--- /dev/null ++++ b/sunrpc/bug20790.x +@@ -0,0 +1 @@ ++program TPROG { version TVERS { int FUNC(int aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) = 1; } = 1; } = 1; +diff --git a/sunrpc/rpc_parse.c b/sunrpc/rpc_parse.c +index 1a1df6d8c2..505a6554cf 100644 +--- a/sunrpc/rpc_parse.c ++++ b/sunrpc/rpc_parse.c +@@ -521,7 +521,7 @@ static void + get_prog_declaration (declaration * dec, defkind dkind, int num /* arg number */ ) + { + token tok; +- char name[10]; /* argument name */ ++ char name[MAXLINESIZE]; /* argument name */ + + if (dkind == DEF_PROGRAM) + { +-- +2.11.0 + diff --git a/gcc7-fix-warnings.patch b/gcc7-fix-warnings.patch new file mode 100644 index 0000000..f3d5045 --- /dev/null +++ b/gcc7-fix-warnings.patch @@ -0,0 +1,40 @@ +From e223d1fe72e820d96f43831412ab267a1ace04d0 Mon Sep 17 00:00:00 2001 +From: steve ellcey-CA Eng-Software + +Date: Fri, 14 Oct 2016 12:53:27 -0700 +Subject: [PATCH] Fix warnings from latest GCC. + + * sysdeps/ieee754/dbl-64/e_pow.c (checkint) Make conditions explicitly + boolean. +--- + ChangeLog | 5 +++++ + sysdeps/ieee754/dbl-64/e_pow.c | 8 ++++---- + 2 files changed, 9 insertions(+), 4 deletions(-) + +diff --git a/sysdeps/ieee754/dbl-64/e_pow.c b/sysdeps/ieee754/dbl-64/e_pow.c +index 663fa39..bd758b5 100644 +--- a/sysdeps/ieee754/dbl-64/e_pow.c ++++ b/sysdeps/ieee754/dbl-64/e_pow.c +@@ -466,15 +466,15 @@ checkint (double x) + return (n & 1) ? -1 : 1; /* odd or even */ + if (k > 20) + { +- if (n << (k - 20)) ++ if (n << (k - 20) != 0) + return 0; /* if not integer */ +- return (n << (k - 21)) ? -1 : 1; ++ return (n << (k - 21) != 0) ? -1 : 1; + } + if (n) + return 0; /*if not integer */ + if (k == 20) + return (m & 1) ? -1 : 1; +- if (m << (k + 12)) ++ if (m << (k + 12) != 0) + return 0; +- return (m << (k + 11)) ? -1 : 1; ++ return (m << (k + 11) != 0) ? -1 : 1; + } +-- +2.10.2 + diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index d61bc08..31b00e0 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -1,7 +1,7 @@ # # spec file for package glibc-testsuite # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed diff --git a/glibc-utils.spec b/glibc-utils.spec index 6fddc0d..2fb8632 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -1,7 +1,7 @@ # # spec file for package glibc-utils # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed diff --git a/glibc.changes b/glibc.changes index 12c7b52..5eb21ce 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Fri Dec 23 08:57:59 UTC 2016 - mliska@suse.cz + +- Add gcc7-Fix-rpcgen-buffer-overrun-bug-20790.patch and + gcc7-Fix-nss_nisplus-build-with-mainline-GCC-bug-20978.patch patches. + +------------------------------------------------------------------- +Mon Nov 28 13:55:27 UTC 2016 - mliska@suse.cz + +- Add gcc7-fix-warnings.patch patch to handle new GCC 7 warning. + ------------------------------------------------------------------- Thu Oct 13 08:24:22 UTC 2016 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index e04ab78..08310b4 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1,7 +1,7 @@ # # spec file for package glibc # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -220,6 +220,12 @@ Patch18: glibc-cpusetsize.diff Patch19: nscd-server-user.patch # PATCH-FEATURE-SLE powerpc: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined Patch21: powerpc-elision-enable-envvar.patch +# PATCH-FIX-OPENSUSE -- Fix GCC7 warnings +Patch22: gcc7-fix-warnings.patch +# PATCH-FIX-OPENSUSE -- Fix bug 20790 +Patch23: gcc7-Fix-rpcgen-buffer-overrun-bug-20790.patch +# PATCH-FIX-OPENSUSE -- Fix bug 20978 +Patch24: gcc7-Fix-nss_nisplus-build-with-mainline-GCC-bug-20978.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales @@ -460,6 +466,9 @@ rm nscd/s-stamp %patch18 -p1 %patch19 -p1 %patch21 -p1 +%patch22 -p1 +%patch23 -p1 +%patch24 -p1 %patch100 -p1 %patch102 -p1 From 486cd1541f904598e32b56b64be067ac36e9fa7f1c30ef9eadb12b1a1aa518f4 Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Thu, 12 Jan 2017 14:55:16 +0000 Subject: [PATCH 2/4] osc copypac from project:Base:System package:glibc revision:448 OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=450 --- ...us-build-with-mainline-GCC-bug-20978.patch | 68 ------------ ...-Fix-rpcgen-buffer-overrun-bug-20790.patch | 102 ------------------ gcc7-fix-warnings.patch | 40 ------- glibc-testsuite.spec | 2 +- glibc-utils.spec | 2 +- glibc.changes | 11 -- glibc.spec | 11 +- 7 files changed, 3 insertions(+), 233 deletions(-) delete mode 100644 gcc7-Fix-nss_nisplus-build-with-mainline-GCC-bug-20978.patch delete mode 100644 gcc7-Fix-rpcgen-buffer-overrun-bug-20790.patch delete mode 100644 gcc7-fix-warnings.patch diff --git a/gcc7-Fix-nss_nisplus-build-with-mainline-GCC-bug-20978.patch b/gcc7-Fix-nss_nisplus-build-with-mainline-GCC-bug-20978.patch deleted file mode 100644 index e3a3b20..0000000 --- a/gcc7-Fix-nss_nisplus-build-with-mainline-GCC-bug-20978.patch +++ /dev/null @@ -1,68 +0,0 @@ -From f88759ea9bd3c8d8fef28f123ba9767cb0e421a3 Mon Sep 17 00:00:00 2001 -From: Joseph Myers -Date: Wed, 21 Dec 2016 23:44:01 +0000 -Subject: [PATCH] Fix nss_nisplus build with mainline GCC (bug 20978). - -glibc build with current mainline GCC fails because -nis/nss_nisplus/nisplus-alias.c contains code - - if (name != NULL) - { - *errnop = EINVAL; - return NSS_STATUS_UNAVAIL; - } - - char buf[strlen (name) + 9 + tablename_len]; - -producing an error about strlen being called on a pointer that is -always NULL (and a subsequent use of that pointer with a %s format in -snprintf). - -As Andreas noted, the bogus conditional comes from a 1997 change: - -- if (name == NULL || strlen(name) > 8) -- return NSS_STATUS_NOTFOUND; -- else -+ if (name != NULL || strlen(name) <= 8) - -So the intention is clearly to return an error for NULL name. - -This patch duly inverts the sense of the conditional. It fixes the -build with GCC mainline, and passes usual glibc testsuite testing for -x86_64. However, I have not tried any actual substantive nisplus -testing, do not have an environment for such testing, and do not know -whether it is possible that strlen (name) or tablename_len might be -large so that the VLA for buf is actually a security issue. However, -if it is a security issue, there are plenty of other similar instances -in the nisplus code (that haven't been hidden by a bogus comparison -with NULL) - and nis_table.c:__create_ib_request uses strdupa on the -string passed to nis_list, so a local fix in the caller wouldn't -suffice anyway (see bug 20987). (Calls to strdupa and other such -macros that use alloca must be considered equally questionable -regarding stack overflow issues as direct calls to alloca and VLA -declarations.) - - [BZ #20978] - * nis/nss_nisplus/nisplus-alias.c (_nss_nisplus_getaliasbyname_r): - Compare name == NULL, not name != NULL. ---- - ChangeLog | 4 ++++ - nis/nss_nisplus/nisplus-alias.c | 2 +- - 2 files changed, 5 insertions(+), 1 deletion(-) - -diff --git a/nis/nss_nisplus/nisplus-alias.c b/nis/nss_nisplus/nisplus-alias.c -index 7f698b4e6d..cb5acce01d 100644 ---- a/nis/nss_nisplus/nisplus-alias.c -+++ b/nis/nss_nisplus/nisplus-alias.c -@@ -291,7 +291,7 @@ _nss_nisplus_getaliasbyname_r (const char *name, struct aliasent *alias, - return status; - } - -- if (name != NULL) -+ if (name == NULL) - { - *errnop = EINVAL; - return NSS_STATUS_UNAVAIL; --- -2.11.0 - diff --git a/gcc7-Fix-rpcgen-buffer-overrun-bug-20790.patch b/gcc7-Fix-rpcgen-buffer-overrun-bug-20790.patch deleted file mode 100644 index 2cd84e1..0000000 --- a/gcc7-Fix-rpcgen-buffer-overrun-bug-20790.patch +++ /dev/null @@ -1,102 +0,0 @@ -From 5874510faaf3cbd0bb112aaacab9f225002beed1 Mon Sep 17 00:00:00 2001 -From: Joseph Myers -Date: Tue, 8 Nov 2016 23:44:51 +0000 -Subject: [PATCH] Fix rpcgen buffer overrun (bug 20790). - -Building with GCC 7 produces an error building rpcgen: - -rpc_parse.c: In function 'get_prog_declaration': -rpc_parse.c:543:25: error: may write a terminating nul past the end of the destination [-Werror=format-length=] - sprintf (name, "%s%d", ARGNAME, num); /* default name of argument */ - ~~~~^ -rpc_parse.c:543:5: note: format output between 5 and 14 bytes into a destination of size 10 - sprintf (name, "%s%d", ARGNAME, num); /* default name of argument */ - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -That buffer overrun is for the case where the .x file declares a -program with a million arguments. The strcpy two lines above can -generate a buffer overrun much more simply for a long argument name. - -The limit on length of line read by rpcgen (MAXLINESIZE == 1024) -provides a bound on the buffer size needed, so this patch just changes -the buffer size to MAXLINESIZE to avoid both possible buffer -overruns. A testcase is added that rpcgen does not crash with a -500-character argument name, where it previously crashed. - -It would not at all surprise me if there are many other ways of -crashing rpcgen with either valid or invalid input; fuzz testing would -likely find various such bugs, though I don't think they are that -important to fix (rpcgen is not that likely to be used with untrusted -.x files as input). (As well as fuzz-findable bugs there are probably -also issues when various int variables get overflowed on very large -input.) The test infrastructure for rpcgen-not-crashing tests would -need extending if tests are to be added for cases where rpcgen should -produce an error, as opposed to cases where it should succeed. - -Tested for x86_64 and x86. - - [BZ #20790] - * sunrpc/rpc_parse.c (get_prog_declaration): Increase buffer size - to MAXLINESIZE. - * sunrpc/bug20790.x: New file. - * sunrpc/Makefile [$(run-built-tests) = yes] (rpcgen-tests): New - variable. - [$(run-built-tests) = yes] (tests-special): Add $(rpcgen-tests). - [$(run-built-tests) = yes] ($(rpcgen-tests)): New rule. ---- - ChangeLog | 9 +++++++++ - sunrpc/Makefile | 11 +++++++++++ - sunrpc/bug20790.x | 1 + - sunrpc/rpc_parse.c | 2 +- - 4 files changed, 22 insertions(+), 1 deletion(-) - create mode 100644 sunrpc/bug20790.x - -diff --git a/sunrpc/Makefile b/sunrpc/Makefile -index 789ef423e5..99e5c3ccf8 100644 ---- a/sunrpc/Makefile -+++ b/sunrpc/Makefile -@@ -103,6 +103,11 @@ ifeq ($(have-thread-library),yes) - xtests += thrsvc - endif - -+ifeq ($(run-built-tests),yes) -+rpcgen-tests := $(objpfx)bug20790.out -+tests-special += $(rpcgen-tests) -+endif -+ - headers += $(rpcsvc:%.x=rpcsvc/%.h) - extra-libs := librpcsvc - extra-libs-others := librpcsvc # Make it in `others' pass, not `lib' pass. -@@ -225,3 +230,9 @@ endif - endif - - $(objpfx)thrsvc: $(common-objpfx)linkobj/libc.so $(shared-thread-library) -+ -+ifeq ($(run-built-tests),yes) -+$(rpcgen-tests): $(objpfx)%.out: %.x $(objpfx)rpcgen -+ $(built-program-cmd) -c $< -o $@; \ -+ $(evaluate-test) -+endif -diff --git a/sunrpc/bug20790.x b/sunrpc/bug20790.x -new file mode 100644 -index 0000000000..a00c9b3830 ---- /dev/null -+++ b/sunrpc/bug20790.x -@@ -0,0 +1 @@ -+program TPROG { version TVERS { int FUNC(int aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) = 1; } = 1; } = 1; -diff --git a/sunrpc/rpc_parse.c b/sunrpc/rpc_parse.c -index 1a1df6d8c2..505a6554cf 100644 ---- a/sunrpc/rpc_parse.c -+++ b/sunrpc/rpc_parse.c -@@ -521,7 +521,7 @@ static void - get_prog_declaration (declaration * dec, defkind dkind, int num /* arg number */ ) - { - token tok; -- char name[10]; /* argument name */ -+ char name[MAXLINESIZE]; /* argument name */ - - if (dkind == DEF_PROGRAM) - { --- -2.11.0 - diff --git a/gcc7-fix-warnings.patch b/gcc7-fix-warnings.patch deleted file mode 100644 index f3d5045..0000000 --- a/gcc7-fix-warnings.patch +++ /dev/null @@ -1,40 +0,0 @@ -From e223d1fe72e820d96f43831412ab267a1ace04d0 Mon Sep 17 00:00:00 2001 -From: steve ellcey-CA Eng-Software - -Date: Fri, 14 Oct 2016 12:53:27 -0700 -Subject: [PATCH] Fix warnings from latest GCC. - - * sysdeps/ieee754/dbl-64/e_pow.c (checkint) Make conditions explicitly - boolean. ---- - ChangeLog | 5 +++++ - sysdeps/ieee754/dbl-64/e_pow.c | 8 ++++---- - 2 files changed, 9 insertions(+), 4 deletions(-) - -diff --git a/sysdeps/ieee754/dbl-64/e_pow.c b/sysdeps/ieee754/dbl-64/e_pow.c -index 663fa39..bd758b5 100644 ---- a/sysdeps/ieee754/dbl-64/e_pow.c -+++ b/sysdeps/ieee754/dbl-64/e_pow.c -@@ -466,15 +466,15 @@ checkint (double x) - return (n & 1) ? -1 : 1; /* odd or even */ - if (k > 20) - { -- if (n << (k - 20)) -+ if (n << (k - 20) != 0) - return 0; /* if not integer */ -- return (n << (k - 21)) ? -1 : 1; -+ return (n << (k - 21) != 0) ? -1 : 1; - } - if (n) - return 0; /*if not integer */ - if (k == 20) - return (m & 1) ? -1 : 1; -- if (m << (k + 12)) -+ if (m << (k + 12) != 0) - return 0; -- return (m << (k + 11)) ? -1 : 1; -+ return (m << (k + 11) != 0) ? -1 : 1; - } --- -2.10.2 - diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 31b00e0..d61bc08 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -1,7 +1,7 @@ # # spec file for package glibc-testsuite # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed diff --git a/glibc-utils.spec b/glibc-utils.spec index 2fb8632..6fddc0d 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -1,7 +1,7 @@ # # spec file for package glibc-utils # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed diff --git a/glibc.changes b/glibc.changes index 5eb21ce..12c7b52 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,14 +1,3 @@ -------------------------------------------------------------------- -Fri Dec 23 08:57:59 UTC 2016 - mliska@suse.cz - -- Add gcc7-Fix-rpcgen-buffer-overrun-bug-20790.patch and - gcc7-Fix-nss_nisplus-build-with-mainline-GCC-bug-20978.patch patches. - -------------------------------------------------------------------- -Mon Nov 28 13:55:27 UTC 2016 - mliska@suse.cz - -- Add gcc7-fix-warnings.patch patch to handle new GCC 7 warning. - ------------------------------------------------------------------- Thu Oct 13 08:24:22 UTC 2016 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 08310b4..e04ab78 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1,7 +1,7 @@ # # spec file for package glibc # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -220,12 +220,6 @@ Patch18: glibc-cpusetsize.diff Patch19: nscd-server-user.patch # PATCH-FEATURE-SLE powerpc: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined Patch21: powerpc-elision-enable-envvar.patch -# PATCH-FIX-OPENSUSE -- Fix GCC7 warnings -Patch22: gcc7-fix-warnings.patch -# PATCH-FIX-OPENSUSE -- Fix bug 20790 -Patch23: gcc7-Fix-rpcgen-buffer-overrun-bug-20790.patch -# PATCH-FIX-OPENSUSE -- Fix bug 20978 -Patch24: gcc7-Fix-nss_nisplus-build-with-mainline-GCC-bug-20978.patch ### Locale related patches # PATCH-FIX-OPENSUSE Add additional locales @@ -466,9 +460,6 @@ rm nscd/s-stamp %patch18 -p1 %patch19 -p1 %patch21 -p1 -%patch22 -p1 -%patch23 -p1 -%patch24 -p1 %patch100 -p1 %patch102 -p1 From 9627e11e8be9146f51a7723d998e611437f4fe0ca1bdc058a09abf17a2ee8b45 Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Mon, 6 Feb 2017 10:25:17 +0000 Subject: [PATCH 3/4] Accepting request 454919 from home:Andreas_Schwab:Factory - Update to glibc 2.25 * The feature test macro __STDC_WANT_LIB_EXT2__, from ISO/IEC TR 24731-2:2010, is supported to enable declarations of functions from that TR. * The feature test macro __STDC_WANT_IEC_60559_BFP_EXT__, from ISO/IEC TS 18661-1:2014, is supported to enable declarations of functions and macros from that TS. * The feature test macro __STDC_WANT_IEC_60559_FUNCS_EXT__, from ISO/IEC TS 18661-4:2015, is supported to enable declarations of functions and macros from that TS. * The nonstandard feature selection macros _REENTRANT and _THREAD_SAFE are now treated as compatibility synonyms for _POSIX_C_SOURCE=199506L. * The inclusion of by is deprecated. * New features from TS 18661-1:2014 are added to libm: the fesetexcept, fetestexceptflag, fegetmode and fesetmode functions, the femode_t type and the FE_DFL_MODE and FE_SNANS_ALWAYS_SIGNAL macros. * Integer width macros from TS 18661-1:2014 are added to : CHAR_WIDTH, SCHAR_WIDTH, UCHAR_WIDTH, SHRT_WIDTH, USHRT_WIDTH, INT_WIDTH, UINT_WIDTH, LONG_WIDTH, ULONG_WIDTH, LLONG_WIDTH, ULLONG_WIDTH; and to : INT8_WIDTH, UINT8_WIDTH, INT16_WIDTH, UINT16_WIDTH, INT32_WIDTH, UINT32_WIDTH, INT64_WIDTH, UINT64_WIDTH, INT_LEAST8_WIDTH, UINT_LEAST8_WIDTH, INT_LEAST16_WIDTH, UINT_LEAST16_WIDTH, INT_LEAST32_WIDTH, UINT_LEAST32_WIDTH, INT_LEAST64_WIDTH, UINT_LEAST64_WIDTH, INT_FAST8_WIDTH, UINT_FAST8_WIDTH, INT_FAST16_WIDTH, UINT_FAST16_WIDTH, INT_FAST32_WIDTH, UINT_FAST32_WIDTH, INT_FAST64_WIDTH, UINT_FAST64_WIDTH, INTPTR_WIDTH, UINTPTR_WIDTH, INTMAX_WIDTH, UINTMAX_WIDTH, PTRDIFF_WIDTH, SIG_ATOMIC_WIDTH, SIZE_WIDTH, WCHAR_WIDTH, WINT_WIDTH. * New features are added from TS 18661-1:2014: - Signaling NaN macros: SNANF, SNAN, SNANL. OBS-URL: https://build.opensuse.org/request/show/454919 OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=451 --- _service | 2 +- cpuid-assertion.patch | 21 --- fnmatch-collating-elements.patch | 19 +-- glibc-2.14-crypt.diff | 276 +++---------------------------- glibc-2.24.tar.xz | 3 - glibc-2.24.tar.xz.sig | 17 -- glibc-2.25.tar.xz | 3 + glibc-2.25.tar.xz.sig | 10 ++ glibc-testsuite.changes | 102 ++++++++++++ glibc-testsuite.spec | 33 ++-- glibc-utils.changes | 102 ++++++++++++ glibc-utils.spec | 32 ++-- glibc-version.diff | 2 +- glibc.changes | 102 ++++++++++++ glibc.keyring | Bin 33423 -> 39186 bytes glibc.spec | 33 ++-- pre_checkin.sh | 2 +- startcontext-cantunwind.patch | 42 ----- 18 files changed, 401 insertions(+), 400 deletions(-) delete mode 100644 cpuid-assertion.patch delete mode 100644 glibc-2.24.tar.xz delete mode 100644 glibc-2.24.tar.xz.sig create mode 100644 glibc-2.25.tar.xz create mode 100644 glibc-2.25.tar.xz.sig delete mode 100644 startcontext-cantunwind.patch diff --git a/_service b/_service index afda933..3f7f18c 100644 --- a/_service +++ b/_service @@ -1,6 +1,6 @@ - 2.24.90.%cd.g%h + 2.25.90.%cd.g%h git://sourceware.org/git/glibc git diff --git a/cpuid-assertion.patch b/cpuid-assertion.patch deleted file mode 100644 index f426ad5..0000000 --- a/cpuid-assertion.patch +++ /dev/null @@ -1,21 +0,0 @@ -2016-10-12 H.J. Lu - - [BZ #20647] - * sysdeps/x86/cacheinfo.c (handle_intel): Return -1 if the - maximum CPUID level is less than 2. - -Index: glibc-2.24/sysdeps/x86/cacheinfo.c -=================================================================== ---- glibc-2.24.orig/sysdeps/x86/cacheinfo.c -+++ glibc-2.24/sysdeps/x86/cacheinfo.c -@@ -259,7 +259,9 @@ intel_check_word (int name, unsigned int - static long int __attribute__ ((noinline)) - handle_intel (int name, unsigned int maxidx) - { -- assert (maxidx >= 2); -+ /* Return -1 for older CPUs. */ -+ if (maxidx < 2) -+ return -1; - - /* OK, we can use the CPUID instruction to get all info about the - caches. */ diff --git a/fnmatch-collating-elements.patch b/fnmatch-collating-elements.patch index 3546638..801c381 100644 --- a/fnmatch-collating-elements.patch +++ b/fnmatch-collating-elements.patch @@ -10,21 +10,6 @@ Fix fnmatch handling of collating elements (BZ #17396, BZ #16976) * posix/tst-fnmatch4.c: New file. * posix/tst-fnmatch5.c: New file. - * Makefile (LOCALES): Add es_US.UTF-8 and es_US.ISO-8859-1. - -Index: glibc-2.22/localedata/Makefile -=================================================================== ---- glibc-2.22.orig/localedata/Makefile -+++ glibc-2.22/localedata/Makefile -@@ -106,7 +106,7 @@ LOCALES := de_DE.ISO-8859-1 de_DE.UTF-8 - hr_HR.ISO-8859-2 sv_SE.ISO-8859-1 ja_JP.SJIS fr_FR.ISO-8859-1 \ - nb_NO.ISO-8859-1 nn_NO.ISO-8859-1 tr_TR.UTF-8 cs_CZ.UTF-8 \ - zh_TW.EUC-TW fa_IR.UTF-8 fr_FR.UTF-8 ja_JP.UTF-8 si_LK.UTF-8 \ -- tr_TR.ISO-8859-9 en_GB.UTF-8 uk_UA.UTF-8 -+ tr_TR.ISO-8859-9 en_GB.UTF-8 uk_UA.UTF-8 es_US.UTF-8 es_US.ISO-8859-1 - include ../gen-locales.mk - endif - Index: glibc-2.22/posix/Makefile =================================================================== --- glibc-2.22.orig/posix/Makefile @@ -34,9 +19,9 @@ Index: glibc-2.22/posix/Makefile tst-pathconf tst-getaddrinfo4 tst-rxspencer-no-utf8 \ tst-fnmatch3 bug-regex36 tst-getaddrinfo5 \ + tst-fnmatch4 tst-fnmatch5 \ - tst-posix_spawn-fd + tst-posix_spawn-fd \ + tst-posix_fadvise tst-posix_fadvise64 xtests := bug-ga2 - ifeq (yes,$(build-shared)) Index: glibc-2.22/posix/fnmatch.c =================================================================== --- glibc-2.22.orig/posix/fnmatch.c diff --git a/glibc-2.14-crypt.diff b/glibc-2.14-crypt.diff index 767ea1f..5afebd2 100644 --- a/glibc-2.14-crypt.diff +++ b/glibc-2.14-crypt.diff @@ -1,7 +1,7 @@ -Index: glibc-2.20/crypt/Makefile +Index: glibc-2.25/crypt/Makefile =================================================================== ---- glibc-2.20.orig/crypt/Makefile -+++ glibc-2.20/crypt/Makefile +--- glibc-2.25.orig/crypt/Makefile ++++ glibc-2.25/crypt/Makefile @@ -23,14 +23,18 @@ subdir := crypt include ../Makeconfig @@ -23,10 +23,10 @@ Index: glibc-2.20/crypt/Makefile ifeq ($(crypt-in-libc),yes) routines += $(libcrypt-routines) -Index: glibc-2.20/crypt/Versions +Index: glibc-2.25/crypt/Versions =================================================================== ---- glibc-2.20.orig/crypt/Versions -+++ glibc-2.20/crypt/Versions +--- glibc-2.25.orig/crypt/Versions ++++ glibc-2.25/crypt/Versions @@ -3,3 +3,8 @@ libcrypt { crypt; crypt_r; encrypt; encrypt_r; fcrypt; setkey; setkey_r; } @@ -36,10 +36,10 @@ Index: glibc-2.20/crypt/Versions + crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra; + } +} -Index: glibc-2.20/crypt/crypt-entry.c +Index: glibc-2.25/crypt/crypt-entry.c =================================================================== ---- glibc-2.20.orig/crypt/crypt-entry.c -+++ glibc-2.20/crypt/crypt-entry.c +--- glibc-2.25.orig/crypt/crypt-entry.c ++++ glibc-2.25/crypt/crypt-entry.c @@ -71,7 +71,7 @@ extern struct crypt_data _ufc_foobar; */ @@ -49,23 +49,23 @@ Index: glibc-2.20/crypt/crypt-entry.c struct crypt_data * __restrict data) { ufc_long res[4]; -@@ -145,6 +145,7 @@ __crypt_r (key, salt, data) - _ufc_output_conversion_r (res[0], res[1], salt, data); +@@ -152,6 +152,7 @@ __crypt_r (const char *key, const char * + return data->crypt_3_buf; } +#if 0 weak_alias (__crypt_r, crypt_r) char * -@@ -187,3 +188,4 @@ __fcrypt (key, salt) +@@ -190,3 +191,4 @@ __fcrypt (const char *key, const char *s return crypt (key, salt); } #endif +#endif -Index: glibc-2.20/crypt/crypt-private.h +Index: glibc-2.25/crypt/crypt-private.h =================================================================== ---- glibc-2.20.orig/crypt/crypt-private.h -+++ glibc-2.20/crypt/crypt-private.h +--- glibc-2.25.orig/crypt/crypt-private.h ++++ glibc-2.25/crypt/crypt-private.h @@ -65,7 +65,7 @@ extern void __encrypt_r (char * __restri struct crypt_data * __restrict __data); @@ -75,11 +75,11 @@ Index: glibc-2.20/crypt/crypt-private.h struct crypt_data * __restrict __data); extern char *fcrypt (const char *key, const char *salt); -Index: glibc-2.20/shlib-versions +Index: glibc-2.25/shlib-versions =================================================================== ---- glibc-2.20.orig/shlib-versions -+++ glibc-2.20/shlib-versions -@@ -88,6 +88,7 @@ sh.*-.*-linux.* ld=ld-linux.so.2 GLIBC_ +--- glibc-2.25.orig/shlib-versions ++++ glibc-2.25/shlib-versions +@@ -58,6 +58,7 @@ libnsl=1 # This defines the shared library version numbers we will install. libcrypt=1 @@ -87,244 +87,10 @@ Index: glibc-2.20/shlib-versions # The gross patch for programs assuming broken locale implementations. libBrokenLocale=1 -Index: glibc-2.20/sysdeps/unix/sysv/linux/aarch64/libowcrypt.abilist +Index: glibc-2.25/sysdeps/unix/sysv/linux/libowcrypt.abilist =================================================================== --- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/aarch64/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/alpha/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/alpha/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/arm/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/arm/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/hppa/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/hppa/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/i386/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/i386/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/ia64/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/ia64/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/m68k/coldfire/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/m68k/coldfire/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/m68k/m680x0/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/m68k/m680x0/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/microblaze/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/microblaze/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/mips/mips32/fpu/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/mips/mips32/fpu/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/mips/mips64/n32/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/mips/mips64/n32/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/mips/mips64/n64/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/mips/mips64/n64/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc64/libowcrypt-le.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc64/libowcrypt-le.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc64/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/powerpc/powerpc64/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/s390/s390-32/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/s390/s390-32/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/s390/s390-64/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/s390/s390-64/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/sh/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/sh/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/sparc/sparc32/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/sparc/sparc32/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/sparc/sparc64/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/sparc/sparc64/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/tile/tilepro/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/tile/tilepro/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/x86_64/64/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/x86_64/64/libowcrypt.abilist -@@ -0,0 +1,4 @@ -+OW_CRYPT_1.0 OW_CRYPT_1.0 A -+OW_CRYPT_1.0 crypt_gensalt F -+OW_CRYPT_1.0 crypt_gensalt_ra F -+OW_CRYPT_1.0 crypt_gensalt_rn F -Index: glibc-2.20/sysdeps/unix/sysv/linux/x86_64/x32/libowcrypt.abilist -=================================================================== ---- /dev/null -+++ glibc-2.20/sysdeps/unix/sysv/linux/x86_64/x32/libowcrypt.abilist ++++ glibc-2.25/sysdeps/unix/sysv/linux/libowcrypt.abilist @@ -0,0 +1,4 @@ +OW_CRYPT_1.0 OW_CRYPT_1.0 A +OW_CRYPT_1.0 crypt_gensalt F diff --git a/glibc-2.24.tar.xz b/glibc-2.24.tar.xz deleted file mode 100644 index 5c42f1e..0000000 --- a/glibc-2.24.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:99d4a3e8efd144d71488e478f62587578c0f4e1fa0b4eed47ee3d4975ebeb5d3 -size 13554048 diff --git a/glibc-2.24.tar.xz.sig b/glibc-2.24.tar.xz.sig deleted file mode 100644 index 6e4e2aa..0000000 --- a/glibc-2.24.tar.xz.sig +++ /dev/null @@ -1,17 +0,0 @@ ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1 - -iQIcBAABAgAGBQJXo1gPAAoJEBZ5K06iU0D4XQcP/3979bgeQZFIzdhhW9qDGf8y -3Zkij6WyytpSM0xm80bZCTD/4fkVYkiDOhgzfghrI0T3BQWitrQIUS4q94VtbeRk -i0QbPdYZ6xmnS56OcyxK+hdqr8XpGxRwfCZH+hCEbXjGblYiViXY54VSL2oWj6q9 -Lolyi7LoZZg3nM7Hf7/yEqa38eKq0N6654MXaVZi9wz31YHweJHsI1rdUkYEpWxp -YIc6eCmhZpyj09Vk7s4qriNqBXmBLZbAcqOAL7hzc1H4aRVGLWdR6JQAClOQtQ6b -SrW4/MO4re5coz1EYWJLpzkDOnH/pkhA0gPeM7PDm+3t2DJa/6k01Jljxjswfujf -EflmRw/FRG08/QADaBrtmu8s79/07xJUjf/qLhg0YIJL2aBqaVNkxSZhE+aOIOXD -FrqX+fVhG4FX2YlQ5twDSU+7Uc370Gh7b8QIEOVvd5Tllg52i200aMB2wlVO+Rl5 -oKN21dhbMzzQvJM9IxrBcWoymEE3kQXid+IBZxShg6JOEv9ZKpHKJGRtueJ1EM3R -V44rfJ5hVYn+U872lEgf2jf0w1A0aSMCVAX8N/8BO9NAZ9waM6IBgc3v1ng6uWdn -o4CdOHK6WP+GrbJ8Rbva8co16UHd9Ae1Vcwe5tDU7TxfFFkJ0RPVzVgTdl65+arX -VU1J1Kp1fBvbgwEacwxC -=yUZV ------END PGP SIGNATURE----- diff --git a/glibc-2.25.tar.xz b/glibc-2.25.tar.xz new file mode 100644 index 0000000..714c058 --- /dev/null +++ b/glibc-2.25.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:067bd9bb3390e79aa45911537d13c3721f1d9d3769931a30c2681bfee66f23a0 +size 13873900 diff --git a/glibc-2.25.tar.xz.sig b/glibc-2.25.tar.xz.sig new file mode 100644 index 0000000..25a8824 --- /dev/null +++ b/glibc-2.25.tar.xz.sig @@ -0,0 +1,10 @@ +-----BEGIN PGP SIGNATURE----- + +iQEcBAABAgAGBQJYl08CAAoJEHnEPfvxzyGHhWcH/2eIspxugXwMnM0YZm3fkzji +yJpu19zpYvfap+tTXJGiY/P6UrJSqHUCSssxWyWJQAbOov40IT/ySSg3DyWhyxra +6HTTOwjIGz/9KQwVdzm79LA+YhsOauowvdiYCS6XnTQbPMc7zBDsOIEAzp+vXNdl +KIzIe7XzUJnK9kl6oqBzXuzdA4jjjzZ2jqyMOwRypipkAXu7OgXO7TiEdN149eSs +2Owodmw9epP1omEK1KLo0N9QsG/+ioaHNfldtWzWNvxuRigAnwaaJTy5zVG7xJ45 +xVfsXaZQKFt4KPep1GF5jaZ30TWTvt5gyjOBiZa/+UfvEOXOt0ox/BB8ydlV/eg= +=HMRX +-----END PGP SIGNATURE----- diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index 12c7b52..e5af9bb 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,105 @@ +------------------------------------------------------------------- +Sun Feb 5 18:26:21 UTC 2017 - schwab@suse.de + +- Update to glibc 2.25 + * The feature test macro __STDC_WANT_LIB_EXT2__, from ISO/IEC TR + 24731-2:2010, is supported to enable declarations of functions from that + TR. + * The feature test macro __STDC_WANT_IEC_60559_BFP_EXT__, from ISO/IEC TS + 18661-1:2014, is supported to enable declarations of functions and macros + from that TS. + * The feature test macro __STDC_WANT_IEC_60559_FUNCS_EXT__, from ISO/IEC TS + 18661-4:2015, is supported to enable declarations of functions and macros + from that TS. + * The nonstandard feature selection macros _REENTRANT and _THREAD_SAFE are + now treated as compatibility synonyms for _POSIX_C_SOURCE=199506L. + * The inclusion of by is deprecated. + * New features from TS 18661-1:2014 are added to libm: the + fesetexcept, fetestexceptflag, fegetmode and fesetmode functions, the + femode_t type and the FE_DFL_MODE and FE_SNANS_ALWAYS_SIGNAL macros. + * Integer width macros from TS 18661-1:2014 are added to : + CHAR_WIDTH, SCHAR_WIDTH, UCHAR_WIDTH, SHRT_WIDTH, USHRT_WIDTH, INT_WIDTH, + UINT_WIDTH, LONG_WIDTH, ULONG_WIDTH, LLONG_WIDTH, ULLONG_WIDTH; and to + : INT8_WIDTH, UINT8_WIDTH, INT16_WIDTH, UINT16_WIDTH, + INT32_WIDTH, UINT32_WIDTH, INT64_WIDTH, UINT64_WIDTH, INT_LEAST8_WIDTH, + UINT_LEAST8_WIDTH, INT_LEAST16_WIDTH, UINT_LEAST16_WIDTH, + INT_LEAST32_WIDTH, UINT_LEAST32_WIDTH, INT_LEAST64_WIDTH, + UINT_LEAST64_WIDTH, INT_FAST8_WIDTH, UINT_FAST8_WIDTH, INT_FAST16_WIDTH, + UINT_FAST16_WIDTH, INT_FAST32_WIDTH, UINT_FAST32_WIDTH, INT_FAST64_WIDTH, + UINT_FAST64_WIDTH, INTPTR_WIDTH, UINTPTR_WIDTH, INTMAX_WIDTH, + UINTMAX_WIDTH, PTRDIFF_WIDTH, SIG_ATOMIC_WIDTH, SIZE_WIDTH, WCHAR_WIDTH, + WINT_WIDTH. + * New features are added from TS 18661-1:2014: + - Signaling NaN macros: SNANF, SNAN, SNANL. + - Nearest integer functions: roundeven, roundevenf, roundevenl, fromfp, + fromfpf, fromfpl, ufromfp, ufromfpf, ufromfpl, fromfpx, fromfpxf, + fromfpxl, ufromfpx, ufromfpxf, ufromfpxl. + - llogb functions: the llogb, llogbf and llogbl functions, and the + FP_LLOGB0 and FP_LLOGBNAN macros. + - Max-min magnitude functions: fmaxmag, fmaxmagf, fmaxmagl, fminmag, + fminmagf, fminmagl. + - Comparison macros: iseqsig. + - Classification macros: iscanonical, issubnormal, iszero. + - Total order functions: totalorder, totalorderf, totalorderl, + totalordermag, totalordermagf, totalordermagl. + - Canonicalize functions: canonicalize, canonicalizef, canonicalizel. + - NaN functions: getpayload, getpayloadf, getpayloadl, setpayload, + setpayloadf, setpayloadl, setpayloadsig, setpayloadsigf, setpayloadsigl. + * The functions strfromd, strfromf, and strfroml, from ISO/IEC TS 18661-1:2014, + are added to libc. + * Most of glibc can now be built with the stack smashing protector enabled. + * The function explicit_bzero, from OpenBSD, has been added to libc. + * On ColdFire, MicroBlaze, Nios II and SH3, the float_t type is now defined + to float instead of double. + * On x86_64, when compiling with -mfpmath=387 or -mfpmath=sse+387, the + float_t and double_t types are now defined to long double instead of float + and double. + * The getentropy and getrandom functions, and the header file + have been added. + * The buffer size for byte-oriented stdio streams is now limited to 8192 + bytes by default. + * The header now includes the header. + * The malloc_get_state and malloc_set_state functions have been removed. + * The “ip6-dotint” and “no-ip6-dotint” resolver options, and the + corresponding RES_NOIP6DOTINT flag from have been removed. + * The "ip6-bytestring" resolver option and the corresponding RES_USEBSTRING + flag from have been removed. + * The flags RES_AAONLY, RES_PRIMARY, RES_NOCHECKNAME, RES_KEEPTSIG, + RES_BLAST defined in the header file have been deprecated. + * The "inet6" option in /etc/resolv.conf and the RES_USE_INET6 flag for + _res.flags are deprecated. + * DNSSEC-related declarations and definitions have been removed from the + header file, and libresolv will no longer attempt to + decode the data part of DNSSEC record types. + * The resource record type classification macros ns_t_qt_p, ns_t_mrr_p, + ns_t_rr_p, ns_t_udp_p, ns_t_xfr_p have been removed from the + header file because the distinction between RR types and + meta-RR types is not officially standardized, subject to revision, and + thus not suitable for encoding in a macro. + * The types res_sendhookact, res_send_qhook, re_send_rhook, and the qhook + and rhook members of the res_state type in have been removed. + * For multi-arch support it is recommended to use a GCC which has + been built with support for GNU indirect functions. + * GDB pretty printers have been added for mutex and condition variable + structures in POSIX Threads. + * Tunables feature added to allow tweaking of the runtime for an application + program. + * A new version of condition variables functions have been implemented in + the NPTL implementation of POSIX Threads to provide stronger ordering + guarantees. + * A new version of pthread_rwlock functions have been implemented to use a more + scalable algorithm primarily through not using a critical section anymore to + make state changes. + * On ARM EABI (32-bit), generating a backtrace for execution contexts which + have been created with makecontext could fail to terminate due to a + missing .cantunwind annotation. (CVE-2016-6323) + * The DNS stub resolver functions would crash due to a NULL pointer + dereference when processing a query with a valid DNS question type which + was used internally in the implementation. (CVE-2015-5180) +- Enable stack protector if part of %optflags +- startcontext-cantunwind.patch: Removed +- cpuid-assertion.patch: Removed + ------------------------------------------------------------------- Thu Oct 13 08:24:22 UTC 2016 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index d61bc08..972d3f3 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -1,7 +1,7 @@ # # spec file for package glibc-testsuite # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -36,6 +36,7 @@ Name: glibc-testsuite Summary: Standard Shared Libraries (from the GNU C Library) License: LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ Group: System/Libraries +# UTILS-SUMMARY-END BuildRequires: audit-devel BuildRequires: fdupes BuildRequires: libcap-devel @@ -104,10 +105,10 @@ BuildRequires: gd-devel # 3.1 is the openSUSE 12.1 kernel %define enablekernel 3.0 -Version: 2.24 +Version: 2.25 Release: 0 %if !%{build_snapshot} -%define git_id beb0f59498c3 +%define git_id db0242e30234 %define libversion %version %else %define git_id %(echo %version | sed 's/.*\.g//') @@ -248,10 +249,6 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM ARM: mark __startcontext as .cantunwind (BZ #20435) -Patch1000: startcontext-cantunwind.patch -# PATCH-FIX-UPSTREAM X86: Don't assert on older Intel CPUs (BZ #20647) -Patch1001: cpuid-assertion.patch ### # Patches awaiting upstream approval @@ -472,9 +469,6 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 -%patch1000 -p1 -%patch1001 -p1 - %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 @@ -539,6 +533,14 @@ echo "#define GITID \"%{git_id}\"" >> version.h # Default CFLAGS and Compiler # BuildFlags="%{optflags} -U_FORTIFY_SOURCE" +enable_stack_protector= +for opt in $BuildFlags; do + case $opt in + -fstack-protector-strong) enable_stack_protector=strong ;; + -fstack-protector-all) enable_stack_protector=all ;; + -fstack-protector) enable_stack_protector=yes ;; + esac +done BuildFlags=$(echo $BuildFlags | sed -e 's#-fstack-protector[^ ]*##' -e 's#-ffortify=[0-9]*##') BuildCC="%__cc" BuildCCplus="%__cxx" @@ -621,9 +623,6 @@ configure_and_build_glibc() { --enable-add-ons=$add_ons \ $profile $elision \ "$@" \ -%if %{enable_stackguard_randomization} - --enable-stackguard-randomization \ -%endif --build=%{target} --host=%{target} \ %ifarch armv7hl ppc ppc64 ppc64le %{ix86} x86_64 sparc sparc64 s390 s390x --enable-multi-arch \ @@ -634,6 +633,11 @@ configure_and_build_glibc() { %ifarch ppc64p7 --with-cpu=power7 \ %endif +%if %{enable_stackguard_randomization} + --enable-stackguard-randomization \ +%endif + ${enable_stack_protector:+--enable-stack-protector=$enable_stack_protector} \ + --enable-tunables \ --enable-kernel=%{enablekernel} \ --with-bugurl=http://bugs.opensuse.org \ --enable-bind-now --enable-obsolete-rpc \ @@ -746,7 +750,7 @@ make -C cc-base -k check || { cd cc-base o=$- set +x - for sum in */*.sum; do + for sum in subdir-tests.sum */subdir-tests.sum; do while read s t; do case $s in XPASS:|PASS:) @@ -1292,6 +1296,7 @@ exit 0 %{_libdir}/libdl.a %{_libdir}/libm.a %ifarch x86_64 +%{_libdir}/libm-%{libversion}.a %{_libdir}/libmvec.a %endif %{_libdir}/libnsl.a diff --git a/glibc-utils.changes b/glibc-utils.changes index 12c7b52..e5af9bb 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,105 @@ +------------------------------------------------------------------- +Sun Feb 5 18:26:21 UTC 2017 - schwab@suse.de + +- Update to glibc 2.25 + * The feature test macro __STDC_WANT_LIB_EXT2__, from ISO/IEC TR + 24731-2:2010, is supported to enable declarations of functions from that + TR. + * The feature test macro __STDC_WANT_IEC_60559_BFP_EXT__, from ISO/IEC TS + 18661-1:2014, is supported to enable declarations of functions and macros + from that TS. + * The feature test macro __STDC_WANT_IEC_60559_FUNCS_EXT__, from ISO/IEC TS + 18661-4:2015, is supported to enable declarations of functions and macros + from that TS. + * The nonstandard feature selection macros _REENTRANT and _THREAD_SAFE are + now treated as compatibility synonyms for _POSIX_C_SOURCE=199506L. + * The inclusion of by is deprecated. + * New features from TS 18661-1:2014 are added to libm: the + fesetexcept, fetestexceptflag, fegetmode and fesetmode functions, the + femode_t type and the FE_DFL_MODE and FE_SNANS_ALWAYS_SIGNAL macros. + * Integer width macros from TS 18661-1:2014 are added to : + CHAR_WIDTH, SCHAR_WIDTH, UCHAR_WIDTH, SHRT_WIDTH, USHRT_WIDTH, INT_WIDTH, + UINT_WIDTH, LONG_WIDTH, ULONG_WIDTH, LLONG_WIDTH, ULLONG_WIDTH; and to + : INT8_WIDTH, UINT8_WIDTH, INT16_WIDTH, UINT16_WIDTH, + INT32_WIDTH, UINT32_WIDTH, INT64_WIDTH, UINT64_WIDTH, INT_LEAST8_WIDTH, + UINT_LEAST8_WIDTH, INT_LEAST16_WIDTH, UINT_LEAST16_WIDTH, + INT_LEAST32_WIDTH, UINT_LEAST32_WIDTH, INT_LEAST64_WIDTH, + UINT_LEAST64_WIDTH, INT_FAST8_WIDTH, UINT_FAST8_WIDTH, INT_FAST16_WIDTH, + UINT_FAST16_WIDTH, INT_FAST32_WIDTH, UINT_FAST32_WIDTH, INT_FAST64_WIDTH, + UINT_FAST64_WIDTH, INTPTR_WIDTH, UINTPTR_WIDTH, INTMAX_WIDTH, + UINTMAX_WIDTH, PTRDIFF_WIDTH, SIG_ATOMIC_WIDTH, SIZE_WIDTH, WCHAR_WIDTH, + WINT_WIDTH. + * New features are added from TS 18661-1:2014: + - Signaling NaN macros: SNANF, SNAN, SNANL. + - Nearest integer functions: roundeven, roundevenf, roundevenl, fromfp, + fromfpf, fromfpl, ufromfp, ufromfpf, ufromfpl, fromfpx, fromfpxf, + fromfpxl, ufromfpx, ufromfpxf, ufromfpxl. + - llogb functions: the llogb, llogbf and llogbl functions, and the + FP_LLOGB0 and FP_LLOGBNAN macros. + - Max-min magnitude functions: fmaxmag, fmaxmagf, fmaxmagl, fminmag, + fminmagf, fminmagl. + - Comparison macros: iseqsig. + - Classification macros: iscanonical, issubnormal, iszero. + - Total order functions: totalorder, totalorderf, totalorderl, + totalordermag, totalordermagf, totalordermagl. + - Canonicalize functions: canonicalize, canonicalizef, canonicalizel. + - NaN functions: getpayload, getpayloadf, getpayloadl, setpayload, + setpayloadf, setpayloadl, setpayloadsig, setpayloadsigf, setpayloadsigl. + * The functions strfromd, strfromf, and strfroml, from ISO/IEC TS 18661-1:2014, + are added to libc. + * Most of glibc can now be built with the stack smashing protector enabled. + * The function explicit_bzero, from OpenBSD, has been added to libc. + * On ColdFire, MicroBlaze, Nios II and SH3, the float_t type is now defined + to float instead of double. + * On x86_64, when compiling with -mfpmath=387 or -mfpmath=sse+387, the + float_t and double_t types are now defined to long double instead of float + and double. + * The getentropy and getrandom functions, and the header file + have been added. + * The buffer size for byte-oriented stdio streams is now limited to 8192 + bytes by default. + * The header now includes the header. + * The malloc_get_state and malloc_set_state functions have been removed. + * The “ip6-dotint” and “no-ip6-dotint” resolver options, and the + corresponding RES_NOIP6DOTINT flag from have been removed. + * The "ip6-bytestring" resolver option and the corresponding RES_USEBSTRING + flag from have been removed. + * The flags RES_AAONLY, RES_PRIMARY, RES_NOCHECKNAME, RES_KEEPTSIG, + RES_BLAST defined in the header file have been deprecated. + * The "inet6" option in /etc/resolv.conf and the RES_USE_INET6 flag for + _res.flags are deprecated. + * DNSSEC-related declarations and definitions have been removed from the + header file, and libresolv will no longer attempt to + decode the data part of DNSSEC record types. + * The resource record type classification macros ns_t_qt_p, ns_t_mrr_p, + ns_t_rr_p, ns_t_udp_p, ns_t_xfr_p have been removed from the + header file because the distinction between RR types and + meta-RR types is not officially standardized, subject to revision, and + thus not suitable for encoding in a macro. + * The types res_sendhookact, res_send_qhook, re_send_rhook, and the qhook + and rhook members of the res_state type in have been removed. + * For multi-arch support it is recommended to use a GCC which has + been built with support for GNU indirect functions. + * GDB pretty printers have been added for mutex and condition variable + structures in POSIX Threads. + * Tunables feature added to allow tweaking of the runtime for an application + program. + * A new version of condition variables functions have been implemented in + the NPTL implementation of POSIX Threads to provide stronger ordering + guarantees. + * A new version of pthread_rwlock functions have been implemented to use a more + scalable algorithm primarily through not using a critical section anymore to + make state changes. + * On ARM EABI (32-bit), generating a backtrace for execution contexts which + have been created with makecontext could fail to terminate due to a + missing .cantunwind annotation. (CVE-2016-6323) + * The DNS stub resolver functions would crash due to a NULL pointer + dereference when processing a query with a valid DNS question type which + was used internally in the implementation. (CVE-2015-5180) +- Enable stack protector if part of %optflags +- startcontext-cantunwind.patch: Removed +- cpuid-assertion.patch: Removed + ------------------------------------------------------------------- Thu Oct 13 08:24:22 UTC 2016 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 6fddc0d..7b04767 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -1,7 +1,7 @@ # # spec file for package glibc-utils # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -103,10 +103,10 @@ BuildRequires: gd-devel # 3.1 is the openSUSE 12.1 kernel %define enablekernel 3.0 -Version: 2.24 +Version: 2.25 Release: 0 %if !%{build_snapshot} -%define git_id beb0f59498c3 +%define git_id db0242e30234 %define libversion %version %else %define git_id %(echo %version | sed 's/.*\.g//') @@ -247,10 +247,6 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM ARM: mark __startcontext as .cantunwind (BZ #20435) -Patch1000: startcontext-cantunwind.patch -# PATCH-FIX-UPSTREAM X86: Don't assert on older Intel CPUs (BZ #20647) -Patch1001: cpuid-assertion.patch ### # Patches awaiting upstream approval @@ -472,9 +468,6 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 -%patch1000 -p1 -%patch1001 -p1 - %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 @@ -539,6 +532,14 @@ echo "#define GITID \"%{git_id}\"" >> version.h # Default CFLAGS and Compiler # BuildFlags="%{optflags} -U_FORTIFY_SOURCE" +enable_stack_protector= +for opt in $BuildFlags; do + case $opt in + -fstack-protector-strong) enable_stack_protector=strong ;; + -fstack-protector-all) enable_stack_protector=all ;; + -fstack-protector) enable_stack_protector=yes ;; + esac +done BuildFlags=$(echo $BuildFlags | sed -e 's#-fstack-protector[^ ]*##' -e 's#-ffortify=[0-9]*##') BuildCC="%__cc" BuildCCplus="%__cxx" @@ -621,9 +622,6 @@ configure_and_build_glibc() { --enable-add-ons=$add_ons \ $profile $elision \ "$@" \ -%if %{enable_stackguard_randomization} - --enable-stackguard-randomization \ -%endif --build=%{target} --host=%{target} \ %ifarch armv7hl ppc ppc64 ppc64le %{ix86} x86_64 sparc sparc64 s390 s390x --enable-multi-arch \ @@ -634,6 +632,11 @@ configure_and_build_glibc() { %ifarch ppc64p7 --with-cpu=power7 \ %endif +%if %{enable_stackguard_randomization} + --enable-stackguard-randomization \ +%endif + ${enable_stack_protector:+--enable-stack-protector=$enable_stack_protector} \ + --enable-tunables \ --enable-kernel=%{enablekernel} \ --with-bugurl=http://bugs.opensuse.org \ --enable-bind-now --enable-obsolete-rpc \ @@ -746,7 +749,7 @@ make -C cc-base -k check || { cd cc-base o=$- set +x - for sum in */*.sum; do + for sum in subdir-tests.sum */subdir-tests.sum; do while read s t; do case $s in XPASS:|PASS:) @@ -1292,6 +1295,7 @@ exit 0 %{_libdir}/libdl.a %{_libdir}/libm.a %ifarch x86_64 +%{_libdir}/libm-%{libversion}.a %{_libdir}/libmvec.a %endif %{_libdir}/libnsl.a diff --git a/glibc-version.diff b/glibc-version.diff index 0cc1703..8381c25 100644 --- a/glibc-version.diff +++ b/glibc-version.diff @@ -8,7 +8,7 @@ Index: glibc-2.17.90/csu/version.c static const char banner[] = -"GNU C Library "PKGVERSION RELEASE" release version "VERSION", by Roland McGrath et al.\n\ +"GNU C Library "PKGVERSION RELEASE" release version "VERSION" (git "GITID"), by Roland McGrath et al.\n\ - Copyright (C) 2016 Free Software Foundation, Inc.\n\ + Copyright (C) 2017 Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions.\n\ There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n\ PARTICULAR PURPOSE.\n\ diff --git a/glibc.changes b/glibc.changes index 12c7b52..e5af9bb 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,105 @@ +------------------------------------------------------------------- +Sun Feb 5 18:26:21 UTC 2017 - schwab@suse.de + +- Update to glibc 2.25 + * The feature test macro __STDC_WANT_LIB_EXT2__, from ISO/IEC TR + 24731-2:2010, is supported to enable declarations of functions from that + TR. + * The feature test macro __STDC_WANT_IEC_60559_BFP_EXT__, from ISO/IEC TS + 18661-1:2014, is supported to enable declarations of functions and macros + from that TS. + * The feature test macro __STDC_WANT_IEC_60559_FUNCS_EXT__, from ISO/IEC TS + 18661-4:2015, is supported to enable declarations of functions and macros + from that TS. + * The nonstandard feature selection macros _REENTRANT and _THREAD_SAFE are + now treated as compatibility synonyms for _POSIX_C_SOURCE=199506L. + * The inclusion of by is deprecated. + * New features from TS 18661-1:2014 are added to libm: the + fesetexcept, fetestexceptflag, fegetmode and fesetmode functions, the + femode_t type and the FE_DFL_MODE and FE_SNANS_ALWAYS_SIGNAL macros. + * Integer width macros from TS 18661-1:2014 are added to : + CHAR_WIDTH, SCHAR_WIDTH, UCHAR_WIDTH, SHRT_WIDTH, USHRT_WIDTH, INT_WIDTH, + UINT_WIDTH, LONG_WIDTH, ULONG_WIDTH, LLONG_WIDTH, ULLONG_WIDTH; and to + : INT8_WIDTH, UINT8_WIDTH, INT16_WIDTH, UINT16_WIDTH, + INT32_WIDTH, UINT32_WIDTH, INT64_WIDTH, UINT64_WIDTH, INT_LEAST8_WIDTH, + UINT_LEAST8_WIDTH, INT_LEAST16_WIDTH, UINT_LEAST16_WIDTH, + INT_LEAST32_WIDTH, UINT_LEAST32_WIDTH, INT_LEAST64_WIDTH, + UINT_LEAST64_WIDTH, INT_FAST8_WIDTH, UINT_FAST8_WIDTH, INT_FAST16_WIDTH, + UINT_FAST16_WIDTH, INT_FAST32_WIDTH, UINT_FAST32_WIDTH, INT_FAST64_WIDTH, + UINT_FAST64_WIDTH, INTPTR_WIDTH, UINTPTR_WIDTH, INTMAX_WIDTH, + UINTMAX_WIDTH, PTRDIFF_WIDTH, SIG_ATOMIC_WIDTH, SIZE_WIDTH, WCHAR_WIDTH, + WINT_WIDTH. + * New features are added from TS 18661-1:2014: + - Signaling NaN macros: SNANF, SNAN, SNANL. + - Nearest integer functions: roundeven, roundevenf, roundevenl, fromfp, + fromfpf, fromfpl, ufromfp, ufromfpf, ufromfpl, fromfpx, fromfpxf, + fromfpxl, ufromfpx, ufromfpxf, ufromfpxl. + - llogb functions: the llogb, llogbf and llogbl functions, and the + FP_LLOGB0 and FP_LLOGBNAN macros. + - Max-min magnitude functions: fmaxmag, fmaxmagf, fmaxmagl, fminmag, + fminmagf, fminmagl. + - Comparison macros: iseqsig. + - Classification macros: iscanonical, issubnormal, iszero. + - Total order functions: totalorder, totalorderf, totalorderl, + totalordermag, totalordermagf, totalordermagl. + - Canonicalize functions: canonicalize, canonicalizef, canonicalizel. + - NaN functions: getpayload, getpayloadf, getpayloadl, setpayload, + setpayloadf, setpayloadl, setpayloadsig, setpayloadsigf, setpayloadsigl. + * The functions strfromd, strfromf, and strfroml, from ISO/IEC TS 18661-1:2014, + are added to libc. + * Most of glibc can now be built with the stack smashing protector enabled. + * The function explicit_bzero, from OpenBSD, has been added to libc. + * On ColdFire, MicroBlaze, Nios II and SH3, the float_t type is now defined + to float instead of double. + * On x86_64, when compiling with -mfpmath=387 or -mfpmath=sse+387, the + float_t and double_t types are now defined to long double instead of float + and double. + * The getentropy and getrandom functions, and the header file + have been added. + * The buffer size for byte-oriented stdio streams is now limited to 8192 + bytes by default. + * The header now includes the header. + * The malloc_get_state and malloc_set_state functions have been removed. + * The “ip6-dotint” and “no-ip6-dotint” resolver options, and the + corresponding RES_NOIP6DOTINT flag from have been removed. + * The "ip6-bytestring" resolver option and the corresponding RES_USEBSTRING + flag from have been removed. + * The flags RES_AAONLY, RES_PRIMARY, RES_NOCHECKNAME, RES_KEEPTSIG, + RES_BLAST defined in the header file have been deprecated. + * The "inet6" option in /etc/resolv.conf and the RES_USE_INET6 flag for + _res.flags are deprecated. + * DNSSEC-related declarations and definitions have been removed from the + header file, and libresolv will no longer attempt to + decode the data part of DNSSEC record types. + * The resource record type classification macros ns_t_qt_p, ns_t_mrr_p, + ns_t_rr_p, ns_t_udp_p, ns_t_xfr_p have been removed from the + header file because the distinction between RR types and + meta-RR types is not officially standardized, subject to revision, and + thus not suitable for encoding in a macro. + * The types res_sendhookact, res_send_qhook, re_send_rhook, and the qhook + and rhook members of the res_state type in have been removed. + * For multi-arch support it is recommended to use a GCC which has + been built with support for GNU indirect functions. + * GDB pretty printers have been added for mutex and condition variable + structures in POSIX Threads. + * Tunables feature added to allow tweaking of the runtime for an application + program. + * A new version of condition variables functions have been implemented in + the NPTL implementation of POSIX Threads to provide stronger ordering + guarantees. + * A new version of pthread_rwlock functions have been implemented to use a more + scalable algorithm primarily through not using a critical section anymore to + make state changes. + * On ARM EABI (32-bit), generating a backtrace for execution contexts which + have been created with makecontext could fail to terminate due to a + missing .cantunwind annotation. (CVE-2016-6323) + * The DNS stub resolver functions would crash due to a NULL pointer + dereference when processing a query with a valid DNS question type which + was used internally in the implementation. (CVE-2015-5180) +- Enable stack protector if part of %optflags +- startcontext-cantunwind.patch: Removed +- cpuid-assertion.patch: Removed + ------------------------------------------------------------------- Thu Oct 13 08:24:22 UTC 2016 - schwab@suse.de diff --git a/glibc.keyring b/glibc.keyring index afbce5a6c5045a00ac212eb1ab0232043fb9b9fa7ca86637a915faefdfbb8fbc..3f66b81ac313efb0b001edfe9e5504c118165f5938c07eb46570b905850b9b96 100644 GIT binary patch delta 5630 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 diff --git a/glibc.spec b/glibc.spec index e04ab78..76ab459 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1,7 +1,7 @@ # # spec file for package glibc # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -36,6 +36,7 @@ Name: glibc Summary: Standard Shared Libraries (from the GNU C Library) License: LGPL-2.1+ and SUSE-LGPL-2.1+-with-GCC-exception and GPL-2.0+ Group: System/Libraries +# UTILS-SUMMARY-END BuildRequires: audit-devel BuildRequires: fdupes BuildRequires: libcap-devel @@ -104,10 +105,10 @@ BuildRequires: gd-devel # 3.1 is the openSUSE 12.1 kernel %define enablekernel 3.0 -Version: 2.24 +Version: 2.25 Release: 0 %if !%{build_snapshot} -%define git_id beb0f59498c3 +%define git_id db0242e30234 %define libversion %version %else %define git_id %(echo %version | sed 's/.*\.g//') @@ -248,10 +249,6 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### -# PATCH-FIX-UPSTREAM ARM: mark __startcontext as .cantunwind (BZ #20435) -Patch1000: startcontext-cantunwind.patch -# PATCH-FIX-UPSTREAM X86: Don't assert on older Intel CPUs (BZ #20647) -Patch1001: cpuid-assertion.patch ### # Patches awaiting upstream approval @@ -472,9 +469,6 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 -%patch1000 -p1 -%patch1001 -p1 - %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 @@ -539,6 +533,14 @@ echo "#define GITID \"%{git_id}\"" >> version.h # Default CFLAGS and Compiler # BuildFlags="%{optflags} -U_FORTIFY_SOURCE" +enable_stack_protector= +for opt in $BuildFlags; do + case $opt in + -fstack-protector-strong) enable_stack_protector=strong ;; + -fstack-protector-all) enable_stack_protector=all ;; + -fstack-protector) enable_stack_protector=yes ;; + esac +done BuildFlags=$(echo $BuildFlags | sed -e 's#-fstack-protector[^ ]*##' -e 's#-ffortify=[0-9]*##') BuildCC="%__cc" BuildCCplus="%__cxx" @@ -621,9 +623,6 @@ configure_and_build_glibc() { --enable-add-ons=$add_ons \ $profile $elision \ "$@" \ -%if %{enable_stackguard_randomization} - --enable-stackguard-randomization \ -%endif --build=%{target} --host=%{target} \ %ifarch armv7hl ppc ppc64 ppc64le %{ix86} x86_64 sparc sparc64 s390 s390x --enable-multi-arch \ @@ -634,6 +633,11 @@ configure_and_build_glibc() { %ifarch ppc64p7 --with-cpu=power7 \ %endif +%if %{enable_stackguard_randomization} + --enable-stackguard-randomization \ +%endif + ${enable_stack_protector:+--enable-stack-protector=$enable_stack_protector} \ + --enable-tunables \ --enable-kernel=%{enablekernel} \ --with-bugurl=http://bugs.opensuse.org \ --enable-bind-now --enable-obsolete-rpc \ @@ -746,7 +750,7 @@ make -C cc-base -k check || { cd cc-base o=$- set +x - for sum in */*.sum; do + for sum in subdir-tests.sum */subdir-tests.sum; do while read s t; do case $s in XPASS:|PASS:) @@ -1292,6 +1296,7 @@ exit 0 %{_libdir}/libdl.a %{_libdir}/libm.a %ifarch x86_64 +%{_libdir}/libm-%{libversion}.a %{_libdir}/libmvec.a %endif %{_libdir}/libnsl.a diff --git a/pre_checkin.sh b/pre_checkin.sh index 3f14c9b..121f4b1 100644 --- a/pre_checkin.sh +++ b/pre_checkin.sh @@ -10,7 +10,7 @@ Summary: Development utilities from GNU C library\n\ License: LGPL-2.1+\n\ Group: Development/Languages/C and C++" } -/^BuildRequires/ { ignore = 0 } +/UTILS-SUMMARY-END/ { ignore = 0; next } /^%description$/ { ignore = 1 print "\ diff --git a/startcontext-cantunwind.patch b/startcontext-cantunwind.patch deleted file mode 100644 index 4d36591..0000000 --- a/startcontext-cantunwind.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 1061d6fe364ddac7458a872839ea9efe8f7600f0 Mon Sep 17 00:00:00 2001 -From: Andreas Schwab -Date: Mon, 8 Aug 2016 09:29:18 +0200 -Subject: [PATCH] arm: mark __startcontext as .cantunwind - -__startcontext marks the bottom of the call stack of the contexts created -by makecontext. - - [BZ #20435] - * sysdeps/unix/sysv/linux/arm/setcontext.S (__startcontext): Mark - as .cantunwind. ---- - sysdeps/unix/sysv/linux/arm/setcontext.S | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/sysdeps/unix/sysv/linux/arm/setcontext.S b/sysdeps/unix/sysv/linux/arm/setcontext.S -index 603e508..d1f168f 100644 ---- a/sysdeps/unix/sysv/linux/arm/setcontext.S -+++ b/sysdeps/unix/sysv/linux/arm/setcontext.S -@@ -86,12 +86,19 @@ weak_alias(__setcontext, setcontext) - - /* Called when a makecontext() context returns. Start the - context in R4 or fall through to exit(). */ -+ /* Unwind descriptors are looked up based on PC - 2, so we have to -+ make sure to mark the instruction preceding the __startcontext -+ label as .cantunwind. */ -+ .fnstart -+ .cantunwind -+ nop - ENTRY(__startcontext) - movs r0, r4 - bne PLTJMP(__setcontext) - - @ New context was 0 - exit - b PLTJMP(HIDDEN_JUMPTARGET(exit)) -+ .fnend - END(__startcontext) - - #ifdef PIC --- -2.9.2 - From 1aae48d750a49edb8c17d21f9db1ff13574dd3153168f3cadbcb5d610dbb286b Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Wed, 8 Feb 2017 10:48:05 +0000 Subject: [PATCH 4/4] Accepting request 455480 from home:Andreas_Schwab:Factory - tunables-bigendian.patch: Fix getting tunable values on big-endian (BZ #21109) OBS-URL: https://build.opensuse.org/request/show/455480 OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=452 --- glibc-testsuite.changes | 6 ++++ glibc-testsuite.spec | 4 +++ glibc-utils.changes | 6 ++++ glibc-utils.spec | 4 +++ glibc.changes | 6 ++++ glibc.spec | 4 +++ tunables-bigendian.patch | 73 ++++++++++++++++++++++++++++++++++++++++ 7 files changed, 103 insertions(+) create mode 100644 tunables-bigendian.patch diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes index e5af9bb..20dc6fd 100644 --- a/glibc-testsuite.changes +++ b/glibc-testsuite.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Feb 8 09:38:15 UTC 2017 - schwab@suse.de + +- tunables-bigendian.patch: Fix getting tunable values on big-endian (BZ + #21109) + ------------------------------------------------------------------- Sun Feb 5 18:26:21 UTC 2017 - schwab@suse.de diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec index 972d3f3..9c60f57 100644 --- a/glibc-testsuite.spec +++ b/glibc-testsuite.spec @@ -249,6 +249,8 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### +# PATCH-FIX-UPSTREAM Fix getting tunable values on big-endian (BZ #21109) +Patch1000: tunables-bigendian.patch ### # Patches awaiting upstream approval @@ -469,6 +471,8 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 +%patch1000 -p1 + %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 diff --git a/glibc-utils.changes b/glibc-utils.changes index e5af9bb..20dc6fd 100644 --- a/glibc-utils.changes +++ b/glibc-utils.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Feb 8 09:38:15 UTC 2017 - schwab@suse.de + +- tunables-bigendian.patch: Fix getting tunable values on big-endian (BZ + #21109) + ------------------------------------------------------------------- Sun Feb 5 18:26:21 UTC 2017 - schwab@suse.de diff --git a/glibc-utils.spec b/glibc-utils.spec index 7b04767..16c5515 100644 --- a/glibc-utils.spec +++ b/glibc-utils.spec @@ -247,6 +247,8 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### +# PATCH-FIX-UPSTREAM Fix getting tunable values on big-endian (BZ #21109) +Patch1000: tunables-bigendian.patch ### # Patches awaiting upstream approval @@ -468,6 +470,8 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 +%patch1000 -p1 + %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 diff --git a/glibc.changes b/glibc.changes index e5af9bb..20dc6fd 100644 --- a/glibc.changes +++ b/glibc.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Feb 8 09:38:15 UTC 2017 - schwab@suse.de + +- tunables-bigendian.patch: Fix getting tunable values on big-endian (BZ + #21109) + ------------------------------------------------------------------- Sun Feb 5 18:26:21 UTC 2017 - schwab@suse.de diff --git a/glibc.spec b/glibc.spec index 76ab459..1b50e49 100644 --- a/glibc.spec +++ b/glibc.spec @@ -249,6 +249,8 @@ Patch306: glibc-fix-double-loopback.diff ### # Patches from upstream ### +# PATCH-FIX-UPSTREAM Fix getting tunable values on big-endian (BZ #21109) +Patch1000: tunables-bigendian.patch ### # Patches awaiting upstream approval @@ -469,6 +471,8 @@ rm nscd/s-stamp %patch304 -p1 %patch306 -p1 +%patch1000 -p1 + %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 diff --git a/tunables-bigendian.patch b/tunables-bigendian.patch new file mode 100644 index 0000000..f679c20 --- /dev/null +++ b/tunables-bigendian.patch @@ -0,0 +1,73 @@ +2017-02-08 Siddhesh Poyarekar + + [BZ #21109] + * elf/dl-tunable-types.h (tunable_callback_t): Accept + tunable_val_t as argument. + * elf/dl-tunables.c (__tunable_set_val): Add comment. + * malloc/arena.c (set_mallopt_check): Take tunable_val_t as + argument. + (DL_TUNABLE_CALLBACK_FNDECL): Likewise. + +Index: glibc-2.25/elf/dl-tunable-types.h +=================================================================== +--- glibc-2.25.orig/elf/dl-tunable-types.h ++++ glibc-2.25/elf/dl-tunable-types.h +@@ -21,8 +21,6 @@ + # define _TUNABLE_TYPES_H_ + #include + +-typedef void (*tunable_callback_t) (void *); +- + typedef enum + { + TUNABLE_TYPE_INT_32, +@@ -43,6 +41,8 @@ typedef union + const char *strval; + } tunable_val_t; + ++typedef void (*tunable_callback_t) (tunable_val_t *); ++ + /* Security level for tunables. This decides what to do with individual + tunables for AT_SECURE binaries. */ + typedef enum +Index: glibc-2.25/elf/dl-tunables.c +=================================================================== +--- glibc-2.25.orig/elf/dl-tunables.c ++++ glibc-2.25/elf/dl-tunables.c +@@ -455,6 +455,8 @@ __tunable_set_val (tunable_id_t id, void + if (cur->strval == NULL) + return; + ++ /* Caller does not need the value, just call the callback with our tunable ++ value. */ + if (valp == NULL) + goto cb; + +Index: glibc-2.25/malloc/arena.c +=================================================================== +--- glibc-2.25.orig/malloc/arena.c ++++ glibc-2.25/malloc/arena.c +@@ -212,9 +212,9 @@ __malloc_fork_unlock_child (void) + #if HAVE_TUNABLES + static inline int do_set_mallopt_check (int32_t value); + void +-DL_TUNABLE_CALLBACK (set_mallopt_check) (void *valp) ++DL_TUNABLE_CALLBACK (set_mallopt_check) (tunable_val_t *valp) + { +- int32_t value = *(int32_t *) valp; ++ int32_t value = (int32_t) valp->numval; + do_set_mallopt_check (value); + if (check_action != 0) + __malloc_check_init (); +@@ -223,9 +223,9 @@ DL_TUNABLE_CALLBACK (set_mallopt_check) + # define DL_TUNABLE_CALLBACK_FNDECL(__name, __type) \ + static inline int do_ ## __name (__type value); \ + void \ +-DL_TUNABLE_CALLBACK (__name) (void *valp) \ ++DL_TUNABLE_CALLBACK (__name) (tunable_val_t *valp) \ + { \ +- __type value = *(__type *) valp; \ ++ __type value = (__type) (valp)->numval; \ + do_ ## __name (value); \ + } +