diff --git a/_service b/_service
deleted file mode 100644
index 3f7f18c..0000000
--- a/_service
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
- 2.25.90.%cd.g%h
- git://sourceware.org/git/glibc
- git
-
-
-
- xz
- *.tar
-
-
- glibc
-
-
diff --git a/abort-no-flush.patch b/abort-no-flush.patch
index e7bc31a..a32b6fe 100644
--- a/abort-no-flush.patch
+++ b/abort-no-flush.patch
@@ -18,7 +18,7 @@ Index: glibc-2.19/stdlib/abort.c
struct abort_msg_s *__abort_msg __attribute__ ((nocommon));
libc_hidden_def (__abort_msg)
@@ -66,16 +63,8 @@ abort (void)
- __sigprocmask (SIG_UNBLOCK, &sigs, (sigset_t *) NULL);
+ __sigprocmask (SIG_UNBLOCK, &sigs, 0);
}
- /* Flush all streams. We cannot close them now because the user
diff --git a/add-locales.patch b/add-locales.patch
new file mode 100644
index 0000000..7a18cd1
--- /dev/null
+++ b/add-locales.patch
@@ -0,0 +1,29 @@
+Index: glibc-2.25/localedata/SUPPORTED
+===================================================================
+--- glibc-2.25.orig/localedata/SUPPORTED
++++ glibc-2.25/localedata/SUPPORTED
+@@ -129,6 +129,7 @@ en_CA.UTF-8/UTF-8 \
+ en_CA/ISO-8859-1 \
+ en_DK.UTF-8/UTF-8 \
+ en_DK/ISO-8859-1 \
++en_GB.ISO-8859-15/ISO-8859-15 \
+ en_GB.UTF-8/UTF-8 \
+ en_GB/ISO-8859-1 \
+ en_HK.UTF-8/UTF-8 \
+@@ -145,6 +146,7 @@ en_PH.UTF-8/UTF-8 \
+ en_PH/ISO-8859-1 \
+ en_SG.UTF-8/UTF-8 \
+ en_SG/ISO-8859-1 \
++en_US.ISO-8859-15/ISO-8859-15 \
+ en_US.UTF-8/UTF-8 \
+ en_US/ISO-8859-1 \
+ en_ZA.UTF-8/UTF-8 \
+@@ -269,6 +271,8 @@ it_IT/ISO-8859-1 \
+ it_IT@euro/ISO-8859-15 \
+ iu_CA/UTF-8 \
+ ja_JP.EUC-JP/EUC-JP \
++ja_JP.SHIFT_JISX0213/SHIFT_JISX0213 \
++ja_JP.SJIS/SHIFT_JIS \
+ ja_JP.UTF-8/UTF-8 \
+ ka_GE.UTF-8/UTF-8 \
+ ka_GE/GEORGIAN-PS \
diff --git a/check-build.sh b/check-build.sh
deleted file mode 100644
index 3f33595..0000000
--- a/check-build.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/bash
-# Copyright (c) 2003, 2004, 2011,2012 SUSE Linux Products GmbH, Germany. All rights reserved.
-#
-# Authors: Thorsten Kukuk
-#
-
-
-
-if [ `nice` -gt '9' ] ; then
- echo "Don't modify nice for building glibc!"
- exit 1
-fi
-
-# get kernel version
-OFS="$IFS" ; IFS=".-" ; version=(`uname -r`) ; IFS="$OIFS"
-ARCH=(`uname -m`)
-
-if test ${version[0]} -gt 2 ; then
- : # okay
-elif test ${version[0]} -lt 2 -o ${version[1]} -lt 6 -o ${version[2]} -lt 16 ; then
- echo "FATAL: kernel too old, need kernel >= 2.6.16 for this package" 1>&2
- exit 1
-elif $ARCH -eq 'x86_64' ; then
- if test ${version[0]} -lt 2 -o ${version[1]} -lt 6 -o ${version[2]} -lt 32 ; then
- echo "FATAL: kernel too old, need kernel >= 2.6.32 for this package" 1>&2
- exit 1
- fi
-fi
-
-
-exit 0
-
diff --git a/fnmatch-collating-elements.patch b/fnmatch-collating-elements.patch
index 801c381..f660b31 100644
--- a/fnmatch-collating-elements.patch
+++ b/fnmatch-collating-elements.patch
@@ -19,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_fadvise tst-posix_fadvise64
- xtests := bug-ga2
+ tst-posix_spawn-fd tst-posix_spawn-setsid \
+ tst-posix_fadvise tst-posix_fadvise64 \
+ tst-sysconf-empty-chroot
Index: glibc-2.22/posix/fnmatch.c
===================================================================
--- glibc-2.22.orig/posix/fnmatch.c
diff --git a/glibc-2.2-sunrpc.diff b/glibc-2.2-sunrpc.diff
deleted file mode 100644
index 2efdd81..0000000
--- a/glibc-2.2-sunrpc.diff
+++ /dev/null
@@ -1,82 +0,0 @@
-For details see:
-http://sourceware.org/bugzilla/show_bug.cgi?id=5379
-
-
-Index: glibc-2.20/sunrpc/clnt_udp.c
-===================================================================
---- glibc-2.20.orig/sunrpc/clnt_udp.c
-+++ glibc-2.20/sunrpc/clnt_udp.c
-@@ -308,6 +308,7 @@ clntudp_call (cl, proc, xargs, argsp, xr
- XDR *xdrs;
- int outlen = 0;
- int inlen;
-+ int pollresult;
- socklen_t fromlen;
- struct pollfd fd;
- int milliseconds = (cu->cu_wait.tv_sec * 1000) +
-@@ -378,37 +379,39 @@ send_again:
- anyup = 0;
- for (;;)
- {
-- switch (__poll (&fd, 1, milliseconds))
-+ switch (pollresult = __poll (&fd, 1, milliseconds))
- {
--
- case 0:
-- if (anyup == 0)
-+ case -1:
-+ if (pollresult == 0 || errno == EINTR)
- {
-- anyup = is_network_up (cu->cu_sock);
-- if (!anyup)
-- return (cu->cu_error.re_status = RPC_CANTRECV);
-+ if (anyup == 0)
-+ {
-+ anyup = is_network_up (cu->cu_sock);
-+ if (!anyup)
-+ return (cu->cu_error.re_status = RPC_CANTRECV);
-+ }
-+
-+ time_waited.tv_sec += cu->cu_wait.tv_sec;
-+ time_waited.tv_usec += cu->cu_wait.tv_usec;
-+ while (time_waited.tv_usec >= 1000000)
-+ {
-+ time_waited.tv_sec++;
-+ time_waited.tv_usec -= 1000000;
-+ }
-+ if ((time_waited.tv_sec < timeout.tv_sec) ||
-+ ((time_waited.tv_sec == timeout.tv_sec) &&
-+ (time_waited.tv_usec < timeout.tv_usec)))
-+ {
-+ if (pollresult == 0)
-+ goto send_again;
-+ else
-+ continue;
-+ }
-+ return (cu->cu_error.re_status = RPC_TIMEDOUT);
- }
-
-- time_waited.tv_sec += cu->cu_wait.tv_sec;
-- time_waited.tv_usec += cu->cu_wait.tv_usec;
-- while (time_waited.tv_usec >= 1000000)
-- {
-- time_waited.tv_sec++;
-- time_waited.tv_usec -= 1000000;
-- }
-- if ((time_waited.tv_sec < timeout.tv_sec) ||
-- ((time_waited.tv_sec == timeout.tv_sec) &&
-- (time_waited.tv_usec < timeout.tv_usec)))
-- goto send_again;
-- return (cu->cu_error.re_status = RPC_TIMEDOUT);
--
-- /*
-- * buggy in other cases because time_waited is not being
-- * updated.
-- */
-- case -1:
-- if (errno == EINTR)
-- continue;
-+ /* errno != EINTR */
- cu->cu_error.re_errno = errno;
- return (cu->cu_error.re_status = RPC_CANTRECV);
- }
diff --git a/glibc-2.25.tar.xz b/glibc-2.25.tar.xz
deleted file mode 100644
index 714c058..0000000
--- a/glibc-2.25.tar.xz
+++ /dev/null
@@ -1,3 +0,0 @@
-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
deleted file mode 100644
index 25a8824..0000000
--- a/glibc-2.25.tar.xz.sig
+++ /dev/null
@@ -1,10 +0,0 @@
------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-2.26.tar.xz b/glibc-2.26.tar.xz
new file mode 100644
index 0000000..3a2b030
--- /dev/null
+++ b/glibc-2.26.tar.xz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e54e0a934cd2bc94429be79da5e9385898d2306b9eaf3c92d5a77af96190f6bd
+size 14682748
diff --git a/glibc-2.26.tar.xz.sig b/glibc-2.26.tar.xz.sig
new file mode 100644
index 0000000..21adc1c
--- /dev/null
+++ b/glibc-2.26.tar.xz.sig
@@ -0,0 +1,10 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQEcBAABAgAGBQJZgduLAAoJEHnEPfvxzyGHDesH/itf17ZUWSWNIRp2cC0RK1et
+jtR7ufFMpSHfMFJQXkli162s+iFMAxuOus52rma/h3PP8BXVbEKB7M3N0dvqPbmC
+AIC6YtAYU/I4M3V+6T1pi4ras19i2VgNY+iag0xw5o0ah4yZmZwB5eFR2xIz10ZD
+SGffJyCD/8EFwn/SPx38JS55ENwGj5PT1m2TsEnlLeHg7sCH7ksb5Pqq/ZEwIw0v
+E56a4hSliDUhurc0gUQmFxm/FhFSdTzns0vShfgou4D2tNSYaUjrf/17ebj0ehUF
+XkNH5jvwHoxiKzEVnD7dS9NLbvOPAG4AlFnWejgqvX0JB/M5TknOcmJYpzZYiGE=
+=XObH
+-----END PGP SIGNATURE-----
diff --git a/glibc-2.3.locales.diff.bz2 b/glibc-2.3.locales.diff.bz2
deleted file mode 100644
index 4d5120f..0000000
--- a/glibc-2.3.locales.diff.bz2
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:88419776f97fb76adac25cec0540b5be19c90d7a745cd56512f79bb523b7da37
-size 328722
diff --git a/glibc-cpusetsize.diff b/glibc-cpusetsize.diff
deleted file mode 100644
index 7d34630..0000000
--- a/glibc-cpusetsize.diff
+++ /dev/null
@@ -1,26 +0,0 @@
-Index: glibc-2.17.90/bits/sched.h
-===================================================================
---- glibc-2.17.90.orig/bits/sched.h
-+++ glibc-2.17.90/bits/sched.h
-@@ -52,7 +52,7 @@ struct __sched_param
- #if defined _SCHED_H && !defined __cpu_set_t_defined
- # define __cpu_set_t_defined
- /* Size definition for CPU sets. */
--# define __CPU_SETSIZE 1024
-+# define __CPU_SETSIZE 4096
- # define __NCPUBITS (8 * sizeof (__cpu_mask))
-
- /* Type for array elements in 'cpu_set_t'. */
-Index: glibc-2.17.90/sysdeps/unix/sysv/linux/bits/sched.h
-===================================================================
---- glibc-2.17.90.orig/sysdeps/unix/sysv/linux/bits/sched.h
-+++ glibc-2.17.90/sysdeps/unix/sysv/linux/bits/sched.h
-@@ -111,7 +111,7 @@ struct __sched_param
- #if defined _SCHED_H && !defined __cpu_set_t_defined
- # define __cpu_set_t_defined
- /* Size definition for CPU sets. */
--# define __CPU_SETSIZE 1024
-+# define __CPU_SETSIZE 4096
- # define __NCPUBITS (8 * sizeof (__cpu_mask))
-
- /* Type for array elements in 'cpu_set_t'. */
diff --git a/glibc-resolv-reload.diff b/glibc-resolv-reload.diff
deleted file mode 100644
index 86a36bf..0000000
--- a/glibc-resolv-reload.diff
+++ /dev/null
@@ -1,121 +0,0 @@
-From libc-alpha-return-22754-pasky=ucw.cz@sourceware.org Tue Mar 16 00:47:00 2010
-Return-Path:
-X-Original-To: pasky@pasky.or.cz
-Delivered-To: pasky@pasky.or.cz
-Received: from nikam.ms.mff.cuni.cz (nikam-dmz.ms.mff.cuni.cz [195.113.20.16])
- by machine.or.cz (Postfix) with ESMTPS id C1B8586202A
- for ; Tue, 16 Mar 2010 00:47:00 +0100 (CET)
-Received: by nikam.ms.mff.cuni.cz (Postfix)
- id 9CDEC9AC7A4; Tue, 16 Mar 2010 00:47:00 +0100 (CET)
-Delivered-To: pasky@kam.mff.cuni.cz
-Received: from jabberwock.ucw.cz (jabberwock.ucw.cz [89.250.246.4])
- by nikam.ms.mff.cuni.cz (Postfix) with ESMTP id 99F0E9AC77B
- for ; Tue, 16 Mar 2010 00:47:00 +0100 (CET)
-Received: from sourceware.org (server1.sourceware.org [209.132.180.131])
- by jabberwock.ucw.cz (Postfix) with SMTP id 14E1ACF040
- for ; Tue, 16 Mar 2010 00:46:59 +0100 (CET)
-Received: (qmail 18956 invoked by alias); 15 Mar 2010 23:46:58 -0000
-Delivered-To: moderator for libc-alpha@sourceware.org
-Received: (qmail 15843 invoked by uid 22791); 15 Mar 2010 17:23:15 -0000
-X-SWARE-Spam-Status: No, hits=-2.6 required=5.0
- tests=BAYES_00
-X-Spam-Check-By: sourceware.org
-Message-ID: <4B9E6CFA.7020002@riot.org>
-Date: Mon, 15 Mar 2010 18:23:06 +0100
-From: Sebastian Kienzl
-User-Agent: Thunderbird 2.0.0.23 (Windows/20090812)
-MIME-Version: 1.0
-To: libc-alpha@sourceware.org
-Subject: Reloading of /etc/resolv.conf
-Content-Type: multipart/mixed;
- boundary="------------060407080409020101000002"
-Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm
-Precedence: bulk
-List-Id:
-List-Unsubscribe:
-List-Subscribe:
-List-Archive:
-List-Post:
-List-Help: ,
-Sender: libc-alpha-owner@sourceware.org
-Delivered-To: mailing list libc-alpha@sourceware.org
-
-This is a multi-part message in MIME format.
---------------060407080409020101000002
-Content-Type: text/plain; charset=ISO-8859-15; format=flowed
-Content-Transfer-Encoding: 7bit
-
-Hello!
-
-There's a patch in the wild against the resolver which makes it reload
-/etc/resolv.conf on change, see
-http://sources.redhat.com/ml/libc-alpha/2004-09/msg00130.html
-
-However, this patch actually doesn't work properly for multi-threaded
-programs, as only one thread will notice the change and refresh its
-resolver state. I've attached a proper patch. It's for 2.5 but it should
-work with current versions, too.
-
-Even though the patch may not be interesting for upstream, I decided to
-let you know about this problem, since the mentioned patch seems to be
-used by at least Debian and Ubuntu.
-
-Regards,
-Seb.
-
-
-
---------------060407080409020101000002
-Content-Type: text/plain;
- name="glibc-2.5-resolvconf.patch"
-Content-Transfer-Encoding: 7bit
-Content-Disposition: inline;
- filename="glibc-2.5-resolvconf.patch"
-
-Index: glibc-2.17.90/resolv/res_libc.c
-===================================================================
---- glibc-2.17.90.orig/resolv/res_libc.c
-+++ glibc-2.17.90/resolv/res_libc.c
-@@ -22,6 +22,7 @@
- #include
- #include
- #include
-+#include
-
- extern unsigned long long int __res_initstamp attribute_hidden;
- /* We have atomic increment operations on 64-bit platforms. */
-@@ -89,12 +89,34 @@ res_init(void) {
- return (__res_vinit(&_res, 1));
- }
-
-+static time_t resconf_mtime;
-+__libc_lock_define_initialized (static, resconf_mtime_lock);
-+
-+/* Check if the modification time of resolv.conf has changed.
-+ If so, have all threads re-initialize their resolver states */
-+static void
-+__res_check_resconf (void)
-+{
-+ struct stat statbuf;
-+ if (stat (_PATH_RESCONF, &statbuf) == 0) {
-+ __libc_lock_lock (resconf_mtime_lock);
-+ if (statbuf.st_mtime != resconf_mtime) {
-+ resconf_mtime = statbuf.st_mtime;
-+ atomicinclock (lock);
-+ atomicinc (__res_initstamp);
-+ atomicincunlock (lock);
-+ }
-+ __libc_lock_unlock (resconf_mtime_lock);
-+ }
-+}
-+
- /* Initialize resp if RES_INIT is not yet set or if res_init in some other
- thread requested re-initializing. */
- int
- __res_maybe_init (res_state resp, int preinit)
- {
- if (resp->options & RES_INIT) {
-+ __res_check_resconf ();
- if (__res_initstamp != resp->_u._ext.initstamp) {
- if (resp->nscount > 0)
- __res_iclose (resp, true);
diff --git a/glibc-testsuite.changes b/glibc-testsuite.changes
index 36fc946..0a38171 100644
--- a/glibc-testsuite.changes
+++ b/glibc-testsuite.changes
@@ -1,3 +1,110 @@
+-------------------------------------------------------------------
+Wed Aug 2 14:32:58 UTC 2017 - schwab@suse.de
+
+- Update to glibc 2.26
+ * A per-thread cache has been added to malloc
+ * Unicode 10.0.0 Support
+ * Improvements to the DNS stub resolver
+ * New function reallocarray, which resizes an allocated block (like
+ realloc) to the product of two sizes, with a guaranteed clean failure
+ upon integer overflow in the multiplication
+ * New wrappers for the Linux-specific system calls preadv2 and pwritev2
+ * posix_spawnattr_setflags now supports the flag POSIX_SPAWN_SETSID, to
+ create a new session ID for the spawned process
+ * errno.h is now safe to use from C-preprocessed assembly language on all
+ supported operating systems
+ * On ia64, powerpc64le, x86-32, and x86-64, the math library now implements
+ 128-bit floating point as defined by ISO/IEC/IEEE 60559:2011 (IEEE
+ 754-2008) and ISO/IEC TS 18661-3:2015
+ * The synchronization that pthread_spin_unlock performs has been changed to
+ now be equivalent to a C11 atomic store with release memory order to the
+ spin lock's memory location
+ * The DNS stub resolver no longer performs EDNS fallback
+ * res_mkquery and res_nmkquery no longer support the IQUERY opcode
+ * The _res_opcodes variable has been removed from libresolv
+ * no longer includes inline versions of any string functions,
+ as this kind of optimization is better done by the compiler
+ * The nonstandard header has been removed
+ * The obsolete header has been removed
+ * The obsolete signal constant SIGUNUSED is no longer defined by
+ * The obsolete function cfree has been removed
+ * The stack_t type no longer has the name struct sigaltstack
+ * The ucontext_t type no longer has the name struct ucontext
+ * On S/390 GNU/Linux, the constants defined by have been
+ synced with the kernel
+ * Linux kernel 3.2 or later is required at runtime, on all architectures
+ supported by that kernel
+ * The DNS stub resolver limits the advertised UDP buffer size to 1200 bytes,
+ to avoid fragmentation-based spoofing attacks (CVE-2017-12132)
+ * LD_LIBRARY_PATH is now ignored in binaries running in privileged
+ AT_SECURE mode to guard against local privilege escalation attacks
+ (CVE-2017-1000366)
+ * Avoid printing a backtrace from the __stack_chk_fail function since it
+ is called on a corrupt stack and a backtrace is unreliable on a
+ corrupt stack (CVE-2010-3192)
+ * A use-after-free vulnerability in clntudp_call in the Sun RPC system
+ has been fixed (CVE-2017-12133)
+ * fate#322258, fate#321513, fate#322453
+- fts-symbol-redirect.patch, glibc-resolv-reload.diff, glibc-2.2-sunrpc.diff,
+ i686-memchr-sse.patch, ld-hwcap-mask-suid.patch, ld-library-path-suid.patch,
+ sunrpc-use-after-free.patch, test-math-vector-sincos-aliasing.patch,
+ tunables-bigendian.patch: Removed
+
+-------------------------------------------------------------------
+Tue Jul 25 07:32:25 UTC 2017 - schwab@suse.de
+
+- Fix RPM group
+
+-------------------------------------------------------------------
+Thu Jul 20 12:17:21 UTC 2017 - schwab@suse.de
+
+- s390-elision-enable-envvar.patch: enable TLE only if
+ GLIBC_ELISION_ENABLE=yes is defined (fate#322271)
+
+-------------------------------------------------------------------
+Wed Jun 21 15:15:12 UTC 2017 - schwab@suse.de
+
+- ld-hwcap-mask-suid.patch: Ignore and remove LD_HWCAP_MASK for AT_SECURE
+ programs (BZ #21209)
+- ld-library-path-suid.patch: Completely ignore LD_LIBRARY_PATH for
+ AT_SECURE=1 programs (CVE-2017-1000366, bsc#1039357, BZ #21624)
+
+-------------------------------------------------------------------
+Wed Jun 14 12:22:21 UTC 2017 - schwab@suse.de
+
+- Remove glibc-cpusetsize.diff, no longer useful
+
+-------------------------------------------------------------------
+Wed May 31 10:35:31 UTC 2017 - schwab@suse.de
+
+- fts-symbol-redirect.patch: Fix symbol redirect for fts_set (bsc#1041123,
+ BZ #21289)
+
+-------------------------------------------------------------------
+Mon May 29 18:10:31 UTC 2017 - schwab@suse.de
+
+- test-math-vector-sincos-aliasing.patch: Fix test-math-vector-sincos.h
+ aliasing
+
+-------------------------------------------------------------------
+Mon May 29 10:24:22 UTC 2017 - schwab@suse.de
+
+- add-locales.patch: renamed from glibc-2.3.locales.diff.bz2, drop en_BE
+ locales (bsc#1039502)
+
+-------------------------------------------------------------------
+Tue May 23 09:54:08 UTC 2017 - schwab@suse.de
+
+- Remove glibc-testsuite.patch, no longer relevant
+
+-------------------------------------------------------------------
+Mon May 22 10:04:59 UTC 2017 - schwab@suse.de
+
+- Use multibuild feature
+- Remove obsolete check-build.sh
+- glibc.rpmlintrc: remove obsolete entries
+- Use %tmpfiles_create in nscd postin
+
-------------------------------------------------------------------
Wed Mar 29 13:09:49 UTC 2017 - schwab@suse.de
diff --git a/glibc-testsuite.patch b/glibc-testsuite.patch
deleted file mode 100644
index bb60587..0000000
--- a/glibc-testsuite.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-test-lfs runs for ever on ReiserFS. Let's disable it completely.
-
-Index: glibc-2.17.90/io/Makefile
-===================================================================
---- glibc-2.17.90.orig/io/Makefile
-+++ glibc-2.17.90/io/Makefile
-@@ -63,7 +63,7 @@ static-only-routines = stat fstat lstat
-
- others := pwd
- test-srcs := ftwtest
--tests := test-utime test-stat test-stat2 test-lfs tst-getcwd \
-+tests := test-utime test-stat test-stat2 tst-getcwd \
- tst-fcntl bug-ftw1 bug-ftw2 bug-ftw3 bug-ftw4 tst-statvfs \
- tst-openat tst-unlinkat tst-fstatat tst-futimesat \
- tst-renameat tst-fchownat tst-fchmodat tst-faccessat \
diff --git a/glibc-testsuite.spec b/glibc-testsuite.spec
index e36a20f..fe38b5a 100644
--- a/glibc-testsuite.spec
+++ b/glibc-testsuite.spec
@@ -16,27 +16,35 @@
#
-%define build_snapshot 0
-
-# PLEASE run pre_checkin.sh in this directory before submitting
-# this package. Otherwise the .spec and .changes for glibc-testsuite
-# and glibc-utils aren't updated.
-
# Run with osc --with=fast_build to have a shorter turnaround
# It will avoid building some parts of glibc
%bcond_with fast_build
%define crypt_bf_version 1.3
+%define build_snapshot 0
+
+%define flavor testsuite
Name: glibc-testsuite
-%define normal_build ("%{name}" == "glibc")
-%define utils_build ("%{name}" == "glibc-utils")
-%define testsuite_build ("%{name}" == "glibc-testsuite")
-# UTILS-SUMMARY-BEGIN
-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
+Summary: Testsuite results from the GNU C Library
+License: LGPL-2.1+
+Group: Development/Libraries/C and C++
+
+%bcond_with all
+%define build_main 1
+%define build_utils %{with all}
+%define build_testsuite %{with all}
+%if "%flavor" == "utils"
+%define build_main 0
+%define build_utils 1
+%define build_testsuite 0
+%endif
+%if "%flavor" == "testsuite"
+%define build_main 0
+%define build_utils 0
+%define build_testsuite 1
+%endif
+
BuildRequires: audit-devel
BuildRequires: fdupes
BuildRequires: libcap-devel
@@ -45,16 +53,21 @@ BuildRequires: makeinfo
BuildRequires: pwdutils
BuildRequires: systemd-rpm-macros
BuildRequires: xz
-%if %{testsuite_build}
+%if %{build_testsuite}
BuildRequires: gcc-c++
BuildRequires: gdb
BuildRequires: glibc-devel-static
BuildRequires: libstdc++-devel
BuildRequires: python-pexpect
%endif
-%if %{utils_build}
+%if %{build_utils}
BuildRequires: gd-devel
%endif
+%if "%flavor" == "i686"
+ExclusiveArch: i586 i686
+BuildArch: i686
+%global optflags %(echo "%optflags"|sed -e s/i586/i686/) -march=i686 -mtune=generic
+%endif
%define __filter_GLIBC_PRIVATE 1
%ifarch i686
@@ -64,7 +77,7 @@ BuildRequires: gd-devel
%define build_locales 1
%define build_html 0
%else
-%if %{with fast_build} || %{utils_build}
+%if %{with fast_build} || %{build_utils} && %{without all}
%define build_profile 0
%define build_locales 0
%define build_html 0
@@ -76,7 +89,7 @@ BuildRequires: gd-devel
%endif
%endif
-%define build_variants %{normal_build}
+%define build_variants %{build_main}
%define disable_assert 0
%define enable_stackguard_randomization 1
@@ -103,14 +116,23 @@ BuildRequires: gd-devel
%define powerpc_optimize_cpu_power7 0
%define powerpc_optimize_cpu_cell 0
%endif # ppc, ppc64
-# 3.0 is the SLES 11 SP3 kernel
-# 3.1 is the openSUSE 12.1 kernel
-%define enablekernel 3.0
+# glibc requires at least kernel 3.2
+%define enablekernel 3.2
+# some architectures need a newer kernel
+%ifarch ppc64le
+%define enablekernel 3.10
+%endif
+%ifarch aarch64
+%define enablekernel 3.7
+%endif
+%ifarch ia64
+%define enablekernel 3.2.18
+%endif
-Version: 2.25
+Version: 2.26
Release: 0
%if !%{build_snapshot}
-%define git_id db0242e30234
+%define git_id 1c9a5c270d8b
%define libversion %version
%else
%define git_id %(echo %version | sed 's/.*\.g//')
@@ -118,9 +140,11 @@ Release: 0
%endif
Url: http://www.gnu.org/software/libc/libc.html
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz
%if !%{build_snapshot}
+Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz
Source1: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz.sig
+%else
+Source: glibc-%{version}.tar.xz
%endif
Source2: http://savannah.gnu.org/project/memberlist-gpgkeys.php?group=libc&download=1#/glibc.keyring
Source3: noversion.tar.bz2
@@ -138,7 +162,7 @@ Source50: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}
# The sign key uses MD5 which is no longer accepted by gpg
#Source51: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz.sign
-%if %{normal_build}
+%if %{build_main}
# ngpt was used in 8.1 and SLES8
Obsoletes: ngpt < 2.2.2
Obsoletes: ngpt-devel < 2.2.2
@@ -160,8 +184,8 @@ Provides: ld-linux.so.3(GLIBC_2.4)
Requires(pre): filesystem
Recommends: glibc-extra
Provides: rtld(GNU_HASH)
-%endif # %{normal_build}
-%if %{utils_build}
+%endif
+%if %{build_utils}
Requires: glibc = %{version}
%endif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -207,8 +231,6 @@ Patch8: glibc-nscd.conf.patch
Patch9: glibc-nodate.patch
# PATCH-FIX-OPENSUSE -- add some extra information to version output - kukuk@suse.de
Patch10: glibc-version.diff
-# PATCH-FIX-OPENSUSE remove lfs test from testsuite aj@suse.de
-Patch11: glibc-testsuite.patch
# PATCH-FIX-OPENSUSE handle old glibc binaries
Patch12: glibc-2.3.90-noversion.diff
# PATCH-FIX-OPENSUSE -- Make --no-archive default for localedef - kukuk@suse.de
@@ -217,16 +239,16 @@ Patch13: glibc-2.3.2.no_archive.diff
Patch14: glibc-bindresvport-blacklist.diff
# PATCH-FIX-OPENSUSE prefer -lang rpm packages
Patch15: glibc-2.3.90-langpackdir.diff
-# PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de (XXX: Review)
-Patch18: glibc-cpusetsize.diff
# PATCH-FEATURE-SLE Use nscd user for nscd
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-FEATURE-SLE s390: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined
+Patch22: s390-elision-enable-envvar.patch
### Locale related patches
# PATCH-FIX-OPENSUSE Add additional locales
-Patch100: glibc-2.3.locales.diff.bz2
+Patch100: add-locales.patch
# PATCH-FIX-OPENSUSE -- Add no_NO back (XXX: Still needed?)
Patch102: glibc-2.4.90-no_NO.diff
# PATCH-FIX-OPENSUSE -- Renames for China
@@ -239,10 +261,6 @@ Patch105: glibc-disable-gettext-for-c-utf8.patch
### Broken patches in glibc that we revert for now:
### Network related patches
-# PATCH-FIX-OPENSUSE reload /etc/resolv.conf on change
-Patch300: glibc-resolv-reload.diff
-# PATCH-FIX-OPENSUSE Fix hangs in UDP RPC calls bso#5379 bnc#257745 aj@suse.de
-Patch301: glibc-2.2-sunrpc.diff
# PATCH-FIX-OPENSUSE Warn about usage of mdns in resolv.conv
Patch304: glibc-resolv-mdnshint.diff
# PATCH-FIX-OPENSUSE disable rewriting ::1 to 127.0.0.1 for /etc/hosts bnc#684534, bnc#706719
@@ -251,12 +269,6 @@ 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
-# PATCH-FIX-UPSTREAM Fix i686 memchr overflow calculation (BZ #21182)
-Patch1001: i686-memchr-sse.patch
-# PATCH-FIX-UPSTREAM Avoid use-after-free read access in clntudp_call (BZ #21115)
-Patch1002: sunrpc-use-after-free.patch
###
# Patches awaiting upstream approval
@@ -281,10 +293,22 @@ Patch2008: reinitialize-dl_load_write_lock.patch
Patch3000: manpages.patch
%description
+%if %build_main
The GNU C Library provides the most important standard libraries used
by nearly all programs: the standard C library, the standard math
library, and the POSIX thread library. A system is not functional
without these libraries.
+%endif
+%if %build_utils
+The glibc-utils package contains mtrace, a memory leak tracer and
+xtrace, a function call tracer which can be helpful during program
+debugging.
+
+If you are unsure if you need this, do not install this package.
+%endif
+%if %build_testsuite
+This package contains the testsuite results from the GNU C Library.
+%endif
%package info
Summary: Info Files for the GNU C Library
@@ -408,7 +432,7 @@ which is highly discouraged.
%package extra
Summary: Extra binaries from GNU C Library
License: LGPL-2.1+
-Group: Development/Languages/C and C++
+Group: Development/Libraries/C and C++
Requires: glibc = %{version}
%description extra
@@ -457,14 +481,13 @@ touch -r nscd/nscd_stat.c nscd/s-stamp
touch -r nscd/s-stamp nscd/nscd_stat.c
rm nscd/s-stamp
%patch10 -p1
-%patch11 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
-%patch18 -p1
%patch19 -p1
%patch21 -p1
+%patch22 -p1
%patch100 -p1
%patch102 -p1
@@ -472,15 +495,9 @@ rm nscd/s-stamp
%patch104 -p1
%patch105 -p1
-%patch300 -p1
-%patch301 -p1
%patch304 -p1
%patch306 -p1
-%patch1000 -p1
-%patch1001 -p1
-%patch1002 -p1
-
%patch2000 -p1
%patch2001 -p1
%patch2002 -p1
@@ -636,7 +653,7 @@ configure_and_build_glibc() {
$profile $elision \
"$@" \
--build=%{target} --host=%{target} \
-%ifarch armv7hl ppc ppc64 ppc64le %{ix86} x86_64 sparc sparc64 s390 s390x
+%ifarch armv7hl ppc ppc64 ppc64le i686 x86_64 sparc sparc64 s390 s390x
--enable-multi-arch \
%endif
%ifarch mipsel
@@ -652,7 +669,8 @@ configure_and_build_glibc() {
--enable-tunables \
--enable-kernel=%{enablekernel} \
--with-bugurl=http://bugs.opensuse.org \
- --enable-bind-now --enable-obsolete-rpc \
+ --enable-bind-now \
+ --enable-obsolete-rpc --enable-obsolete-nsl \
--disable-timezone-tools
# Should we enable --enable-systemtap?
# Should we enable --enable-nss-crypt to build use freebl3 hash functions?
@@ -751,7 +769,7 @@ popd
#######################################################################
%check
-%if %{testsuite_build}
+%if %{build_testsuite}
# The testsuite will fail if asneeded is used
export SUSE_ASNEEDED=0
# Increase timeout
@@ -793,7 +811,7 @@ make %{?_smp_mflags} -C cc-base check-abi
#######################################################################
%install
-%if %{normal_build}
+%if %{build_main}
# We don't want to strip the .symtab from our libraries in find-debuginfo.sh,
# certainly not from libpthread.so.* because it is used by libthread_db to find
# some non-exported symbols in order to detect if threading support
@@ -994,6 +1012,7 @@ ln -s ld-%{libversion}.so %{buildroot}/lib/ld-linux.so.3
mv %{buildroot}%{_bindir}/getconf %{buildroot}%{_libexecdir}/getconf/getconf
ln -s %{_libexecdir}/getconf/getconf %{buildroot}%{_bindir}/getconf
+%if !%{build_utils}
# Remove unwanted files (packaged in glibc-utils)
rm -f %{buildroot}/%{_lib}/libmemusage*
rm -f %{buildroot}/%{_lib}/libpcprofile*
@@ -1011,6 +1030,7 @@ rm -rf %{buildroot}%{_infodir} %{buildroot}%{_prefix}/share/i18n
rm -f %{buildroot}%{_bindir}/makedb %{buildroot}/var/lib/misc/Makefile
rm -f %{buildroot}%{_sbindir}/nscd
%endif # i686
+%endif # !utils
# LSB
%ifarch %ix86
@@ -1032,9 +1052,9 @@ ln -sf /%{_lib}/ld.so.1 $RPM_BUILD_ROOT/%{_lib}/ld-lsb-s390.so.3
ln -sf /%{_lib}/ld64.so.1 $RPM_BUILD_ROOT/%{_lib}/ld-lsb-s390x.so.3
%endif
-%endif # %{normal_build}
+%else # !main
-%if %{utils_build}
+%if %{build_utils}
make %{?_smp_mflags} install_root=%{buildroot} install -C cc-base \
subdirs='malloc debug elf'
@@ -1047,7 +1067,9 @@ rm -f %{buildroot}%{_bindir}/{catchsegv,ldd*,sprof}
rm -rf %{buildroot}%{_mandir}/man*
rm -rf %{buildroot}/sbin %{buildroot}%{_includedir}
-%endif # %{utils_build}
+%endif # utils
+
+%endif # !main
#######################################################################
###
@@ -1055,13 +1077,9 @@ rm -rf %{buildroot}/sbin %{buildroot}%{_includedir}
###
#######################################################################
-%if %{normal_build}
%post -p %{_sbindir}/glibc_post_upgrade
-
%postun -p /sbin/ldconfig
-%endif # %{normal_build}
-
%post locale
for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do
[ -d "$l.d" ] || continue
@@ -1086,7 +1104,7 @@ getent passwd nscd >/dev/null || %{_sbindir}/useradd -r -g nscd -c "User for nsc
%post -n nscd
%service_add_post nscd.service
-mkdir -p /run/nscd
+%tmpfiles_create /usr/lib/tmpfiles.d/nscd.conf
# Previously we had nscd.socket, remove it
test -x /usr/bin/systemctl && /usr/bin/systemctl stop nscd.socket 2>/dev/null || :
test -x /usr/bin/systemctl && /usr/bin/systemctl disable nscd.socket 2>/dev/null || :
@@ -1098,14 +1116,8 @@ exit 0
%service_del_postun nscd.service
exit 0
-%if %{normal_build}
%files
-#######################################################################
-###
-### FILES
-###
-#######################################################################
-
+%if %{build_main}
# glibc
%defattr(-,root,root)
%doc LICENSES
@@ -1381,10 +1393,9 @@ exit 0
/var/lib/misc/Makefile
%endif # !i686
-%endif # %{normal_build}
+%endif # main
-%if %{utils_build}
-%files
+%if %{build_utils}
%defattr(-,root,root)
/%{_lib}/libmemusage.so
/%{_lib}/libpcprofile.so
@@ -1397,6 +1408,6 @@ exit 0
%{_bindir}/sotruss
%{_bindir}/xtrace
%{_bindir}/pldd
-%endif # %{utils_build}
+%endif # utils
%changelog
diff --git a/glibc-testsuite.spec.in b/glibc-testsuite.spec.in
new file mode 100644
index 0000000..c43f8d5
--- /dev/null
+++ b/glibc-testsuite.spec.in
@@ -0,0 +1,6 @@
+%define flavor testsuite
+
+Name: glibc-testsuite
+Summary: Testsuite results from the GNU C Library
+License: LGPL-2.1+
+Group: Development/Libraries/C and C++
diff --git a/glibc-utils.changes b/glibc-utils.changes
index 36fc946..0a38171 100644
--- a/glibc-utils.changes
+++ b/glibc-utils.changes
@@ -1,3 +1,110 @@
+-------------------------------------------------------------------
+Wed Aug 2 14:32:58 UTC 2017 - schwab@suse.de
+
+- Update to glibc 2.26
+ * A per-thread cache has been added to malloc
+ * Unicode 10.0.0 Support
+ * Improvements to the DNS stub resolver
+ * New function reallocarray, which resizes an allocated block (like
+ realloc) to the product of two sizes, with a guaranteed clean failure
+ upon integer overflow in the multiplication
+ * New wrappers for the Linux-specific system calls preadv2 and pwritev2
+ * posix_spawnattr_setflags now supports the flag POSIX_SPAWN_SETSID, to
+ create a new session ID for the spawned process
+ * errno.h is now safe to use from C-preprocessed assembly language on all
+ supported operating systems
+ * On ia64, powerpc64le, x86-32, and x86-64, the math library now implements
+ 128-bit floating point as defined by ISO/IEC/IEEE 60559:2011 (IEEE
+ 754-2008) and ISO/IEC TS 18661-3:2015
+ * The synchronization that pthread_spin_unlock performs has been changed to
+ now be equivalent to a C11 atomic store with release memory order to the
+ spin lock's memory location
+ * The DNS stub resolver no longer performs EDNS fallback
+ * res_mkquery and res_nmkquery no longer support the IQUERY opcode
+ * The _res_opcodes variable has been removed from libresolv
+ * no longer includes inline versions of any string functions,
+ as this kind of optimization is better done by the compiler
+ * The nonstandard header has been removed
+ * The obsolete header has been removed
+ * The obsolete signal constant SIGUNUSED is no longer defined by
+ * The obsolete function cfree has been removed
+ * The stack_t type no longer has the name struct sigaltstack
+ * The ucontext_t type no longer has the name struct ucontext
+ * On S/390 GNU/Linux, the constants defined by have been
+ synced with the kernel
+ * Linux kernel 3.2 or later is required at runtime, on all architectures
+ supported by that kernel
+ * The DNS stub resolver limits the advertised UDP buffer size to 1200 bytes,
+ to avoid fragmentation-based spoofing attacks (CVE-2017-12132)
+ * LD_LIBRARY_PATH is now ignored in binaries running in privileged
+ AT_SECURE mode to guard against local privilege escalation attacks
+ (CVE-2017-1000366)
+ * Avoid printing a backtrace from the __stack_chk_fail function since it
+ is called on a corrupt stack and a backtrace is unreliable on a
+ corrupt stack (CVE-2010-3192)
+ * A use-after-free vulnerability in clntudp_call in the Sun RPC system
+ has been fixed (CVE-2017-12133)
+ * fate#322258, fate#321513, fate#322453
+- fts-symbol-redirect.patch, glibc-resolv-reload.diff, glibc-2.2-sunrpc.diff,
+ i686-memchr-sse.patch, ld-hwcap-mask-suid.patch, ld-library-path-suid.patch,
+ sunrpc-use-after-free.patch, test-math-vector-sincos-aliasing.patch,
+ tunables-bigendian.patch: Removed
+
+-------------------------------------------------------------------
+Tue Jul 25 07:32:25 UTC 2017 - schwab@suse.de
+
+- Fix RPM group
+
+-------------------------------------------------------------------
+Thu Jul 20 12:17:21 UTC 2017 - schwab@suse.de
+
+- s390-elision-enable-envvar.patch: enable TLE only if
+ GLIBC_ELISION_ENABLE=yes is defined (fate#322271)
+
+-------------------------------------------------------------------
+Wed Jun 21 15:15:12 UTC 2017 - schwab@suse.de
+
+- ld-hwcap-mask-suid.patch: Ignore and remove LD_HWCAP_MASK for AT_SECURE
+ programs (BZ #21209)
+- ld-library-path-suid.patch: Completely ignore LD_LIBRARY_PATH for
+ AT_SECURE=1 programs (CVE-2017-1000366, bsc#1039357, BZ #21624)
+
+-------------------------------------------------------------------
+Wed Jun 14 12:22:21 UTC 2017 - schwab@suse.de
+
+- Remove glibc-cpusetsize.diff, no longer useful
+
+-------------------------------------------------------------------
+Wed May 31 10:35:31 UTC 2017 - schwab@suse.de
+
+- fts-symbol-redirect.patch: Fix symbol redirect for fts_set (bsc#1041123,
+ BZ #21289)
+
+-------------------------------------------------------------------
+Mon May 29 18:10:31 UTC 2017 - schwab@suse.de
+
+- test-math-vector-sincos-aliasing.patch: Fix test-math-vector-sincos.h
+ aliasing
+
+-------------------------------------------------------------------
+Mon May 29 10:24:22 UTC 2017 - schwab@suse.de
+
+- add-locales.patch: renamed from glibc-2.3.locales.diff.bz2, drop en_BE
+ locales (bsc#1039502)
+
+-------------------------------------------------------------------
+Tue May 23 09:54:08 UTC 2017 - schwab@suse.de
+
+- Remove glibc-testsuite.patch, no longer relevant
+
+-------------------------------------------------------------------
+Mon May 22 10:04:59 UTC 2017 - schwab@suse.de
+
+- Use multibuild feature
+- Remove obsolete check-build.sh
+- glibc.rpmlintrc: remove obsolete entries
+- Use %tmpfiles_create in nscd postin
+
-------------------------------------------------------------------
Wed Mar 29 13:09:49 UTC 2017 - schwab@suse.de
diff --git a/glibc-utils.spec b/glibc-utils.spec
index e04201f..cc72262 100644
--- a/glibc-utils.spec
+++ b/glibc-utils.spec
@@ -16,25 +16,35 @@
#
-%define build_snapshot 0
-
-# PLEASE run pre_checkin.sh in this directory before submitting
-# this package. Otherwise the .spec and .changes for glibc-testsuite
-# and glibc-utils aren't updated.
-
# Run with osc --with=fast_build to have a shorter turnaround
# It will avoid building some parts of glibc
%bcond_with fast_build
%define crypt_bf_version 1.3
+%define build_snapshot 0
+
+%define flavor utils
Name: glibc-utils
-%define normal_build ("%{name}" == "glibc")
-%define utils_build ("%{name}" == "glibc-utils")
-%define testsuite_build ("%{name}" == "glibc-testsuite")
-Summary: Development utilities from GNU C library
+Summary: Development utilities from the GNU C Library
License: LGPL-2.1+
-Group: Development/Languages/C and C++
+Group: Development/Libraries/C and C++
+
+%bcond_with all
+%define build_main 1
+%define build_utils %{with all}
+%define build_testsuite %{with all}
+%if "%flavor" == "utils"
+%define build_main 0
+%define build_utils 1
+%define build_testsuite 0
+%endif
+%if "%flavor" == "testsuite"
+%define build_main 0
+%define build_utils 0
+%define build_testsuite 1
+%endif
+
BuildRequires: audit-devel
BuildRequires: fdupes
BuildRequires: libcap-devel
@@ -43,16 +53,21 @@ BuildRequires: makeinfo
BuildRequires: pwdutils
BuildRequires: systemd-rpm-macros
BuildRequires: xz
-%if %{testsuite_build}
+%if %{build_testsuite}
BuildRequires: gcc-c++
BuildRequires: gdb
BuildRequires: glibc-devel-static
BuildRequires: libstdc++-devel
BuildRequires: python-pexpect
%endif
-%if %{utils_build}
+%if %{build_utils}
BuildRequires: gd-devel
%endif
+%if "%flavor" == "i686"
+ExclusiveArch: i586 i686
+BuildArch: i686
+%global optflags %(echo "%optflags"|sed -e s/i586/i686/) -march=i686 -mtune=generic
+%endif
%define __filter_GLIBC_PRIVATE 1
%ifarch i686
@@ -62,7 +77,7 @@ BuildRequires: gd-devel
%define build_locales 1
%define build_html 0
%else
-%if %{with fast_build} || %{utils_build}
+%if %{with fast_build} || %{build_utils} && %{without all}
%define build_profile 0
%define build_locales 0
%define build_html 0
@@ -74,7 +89,7 @@ BuildRequires: gd-devel
%endif
%endif
-%define build_variants %{normal_build}
+%define build_variants %{build_main}
%define disable_assert 0
%define enable_stackguard_randomization 1
@@ -101,14 +116,23 @@ BuildRequires: gd-devel
%define powerpc_optimize_cpu_power7 0
%define powerpc_optimize_cpu_cell 0
%endif # ppc, ppc64
-# 3.0 is the SLES 11 SP3 kernel
-# 3.1 is the openSUSE 12.1 kernel
-%define enablekernel 3.0
+# glibc requires at least kernel 3.2
+%define enablekernel 3.2
+# some architectures need a newer kernel
+%ifarch ppc64le
+%define enablekernel 3.10
+%endif
+%ifarch aarch64
+%define enablekernel 3.7
+%endif
+%ifarch ia64
+%define enablekernel 3.2.18
+%endif
-Version: 2.25
+Version: 2.26
Release: 0
%if !%{build_snapshot}
-%define git_id db0242e30234
+%define git_id 1c9a5c270d8b
%define libversion %version
%else
%define git_id %(echo %version | sed 's/.*\.g//')
@@ -116,9 +140,11 @@ Release: 0
%endif
Url: http://www.gnu.org/software/libc/libc.html
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz
%if !%{build_snapshot}
+Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz
Source1: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz.sig
+%else
+Source: glibc-%{version}.tar.xz
%endif
Source2: http://savannah.gnu.org/project/memberlist-gpgkeys.php?group=libc&download=1#/glibc.keyring
Source3: noversion.tar.bz2
@@ -136,7 +162,7 @@ Source50: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}
# The sign key uses MD5 which is no longer accepted by gpg
#Source51: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz.sign
-%if %{normal_build}
+%if %{build_main}
# ngpt was used in 8.1 and SLES8
Obsoletes: ngpt < 2.2.2
Obsoletes: ngpt-devel < 2.2.2
@@ -158,8 +184,8 @@ Provides: ld-linux.so.3(GLIBC_2.4)
Requires(pre): filesystem
Recommends: glibc-extra
Provides: rtld(GNU_HASH)
-%endif # %{normal_build}
-%if %{utils_build}
+%endif
+%if %{build_utils}
Requires: glibc = %{version}
%endif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -205,8 +231,6 @@ Patch8: glibc-nscd.conf.patch
Patch9: glibc-nodate.patch
# PATCH-FIX-OPENSUSE -- add some extra information to version output - kukuk@suse.de
Patch10: glibc-version.diff
-# PATCH-FIX-OPENSUSE remove lfs test from testsuite aj@suse.de
-Patch11: glibc-testsuite.patch
# PATCH-FIX-OPENSUSE handle old glibc binaries
Patch12: glibc-2.3.90-noversion.diff
# PATCH-FIX-OPENSUSE -- Make --no-archive default for localedef - kukuk@suse.de
@@ -215,16 +239,16 @@ Patch13: glibc-2.3.2.no_archive.diff
Patch14: glibc-bindresvport-blacklist.diff
# PATCH-FIX-OPENSUSE prefer -lang rpm packages
Patch15: glibc-2.3.90-langpackdir.diff
-# PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de (XXX: Review)
-Patch18: glibc-cpusetsize.diff
# PATCH-FEATURE-SLE Use nscd user for nscd
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-FEATURE-SLE s390: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined
+Patch22: s390-elision-enable-envvar.patch
### Locale related patches
# PATCH-FIX-OPENSUSE Add additional locales
-Patch100: glibc-2.3.locales.diff.bz2
+Patch100: add-locales.patch
# PATCH-FIX-OPENSUSE -- Add no_NO back (XXX: Still needed?)
Patch102: glibc-2.4.90-no_NO.diff
# PATCH-FIX-OPENSUSE -- Renames for China
@@ -237,10 +261,6 @@ Patch105: glibc-disable-gettext-for-c-utf8.patch
### Broken patches in glibc that we revert for now:
### Network related patches
-# PATCH-FIX-OPENSUSE reload /etc/resolv.conf on change
-Patch300: glibc-resolv-reload.diff
-# PATCH-FIX-OPENSUSE Fix hangs in UDP RPC calls bso#5379 bnc#257745 aj@suse.de
-Patch301: glibc-2.2-sunrpc.diff
# PATCH-FIX-OPENSUSE Warn about usage of mdns in resolv.conv
Patch304: glibc-resolv-mdnshint.diff
# PATCH-FIX-OPENSUSE disable rewriting ::1 to 127.0.0.1 for /etc/hosts bnc#684534, bnc#706719
@@ -249,12 +269,6 @@ 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
-# PATCH-FIX-UPSTREAM Fix i686 memchr overflow calculation (BZ #21182)
-Patch1001: i686-memchr-sse.patch
-# PATCH-FIX-UPSTREAM Avoid use-after-free read access in clntudp_call (BZ #21115)
-Patch1002: sunrpc-use-after-free.patch
###
# Patches awaiting upstream approval
@@ -279,11 +293,22 @@ Patch2008: reinitialize-dl_load_write_lock.patch
Patch3000: manpages.patch
%description
+%if %build_main
+The GNU C Library provides the most important standard libraries used
+by nearly all programs: the standard C library, the standard math
+library, and the POSIX thread library. A system is not functional
+without these libraries.
+%endif
+%if %build_utils
The glibc-utils package contains mtrace, a memory leak tracer and
xtrace, a function call tracer which can be helpful during program
debugging.
-If you are unsure if you need this, don't install this package.
+If you are unsure if you need this, do not install this package.
+%endif
+%if %build_testsuite
+This package contains the testsuite results from the GNU C Library.
+%endif
%package info
Summary: Info Files for the GNU C Library
@@ -407,7 +432,7 @@ which is highly discouraged.
%package extra
Summary: Extra binaries from GNU C Library
License: LGPL-2.1+
-Group: Development/Languages/C and C++
+Group: Development/Libraries/C and C++
Requires: glibc = %{version}
%description extra
@@ -456,14 +481,13 @@ touch -r nscd/nscd_stat.c nscd/s-stamp
touch -r nscd/s-stamp nscd/nscd_stat.c
rm nscd/s-stamp
%patch10 -p1
-%patch11 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
-%patch18 -p1
%patch19 -p1
%patch21 -p1
+%patch22 -p1
%patch100 -p1
%patch102 -p1
@@ -471,15 +495,9 @@ rm nscd/s-stamp
%patch104 -p1
%patch105 -p1
-%patch300 -p1
-%patch301 -p1
%patch304 -p1
%patch306 -p1
-%patch1000 -p1
-%patch1001 -p1
-%patch1002 -p1
-
%patch2000 -p1
%patch2001 -p1
%patch2002 -p1
@@ -635,7 +653,7 @@ configure_and_build_glibc() {
$profile $elision \
"$@" \
--build=%{target} --host=%{target} \
-%ifarch armv7hl ppc ppc64 ppc64le %{ix86} x86_64 sparc sparc64 s390 s390x
+%ifarch armv7hl ppc ppc64 ppc64le i686 x86_64 sparc sparc64 s390 s390x
--enable-multi-arch \
%endif
%ifarch mipsel
@@ -651,7 +669,8 @@ configure_and_build_glibc() {
--enable-tunables \
--enable-kernel=%{enablekernel} \
--with-bugurl=http://bugs.opensuse.org \
- --enable-bind-now --enable-obsolete-rpc \
+ --enable-bind-now \
+ --enable-obsolete-rpc --enable-obsolete-nsl \
--disable-timezone-tools
# Should we enable --enable-systemtap?
# Should we enable --enable-nss-crypt to build use freebl3 hash functions?
@@ -750,7 +769,7 @@ popd
#######################################################################
%check
-%if %{testsuite_build}
+%if %{build_testsuite}
# The testsuite will fail if asneeded is used
export SUSE_ASNEEDED=0
# Increase timeout
@@ -792,7 +811,7 @@ make %{?_smp_mflags} -C cc-base check-abi
#######################################################################
%install
-%if %{normal_build}
+%if %{build_main}
# We don't want to strip the .symtab from our libraries in find-debuginfo.sh,
# certainly not from libpthread.so.* because it is used by libthread_db to find
# some non-exported symbols in order to detect if threading support
@@ -993,6 +1012,7 @@ ln -s ld-%{libversion}.so %{buildroot}/lib/ld-linux.so.3
mv %{buildroot}%{_bindir}/getconf %{buildroot}%{_libexecdir}/getconf/getconf
ln -s %{_libexecdir}/getconf/getconf %{buildroot}%{_bindir}/getconf
+%if !%{build_utils}
# Remove unwanted files (packaged in glibc-utils)
rm -f %{buildroot}/%{_lib}/libmemusage*
rm -f %{buildroot}/%{_lib}/libpcprofile*
@@ -1010,6 +1030,7 @@ rm -rf %{buildroot}%{_infodir} %{buildroot}%{_prefix}/share/i18n
rm -f %{buildroot}%{_bindir}/makedb %{buildroot}/var/lib/misc/Makefile
rm -f %{buildroot}%{_sbindir}/nscd
%endif # i686
+%endif # !utils
# LSB
%ifarch %ix86
@@ -1031,9 +1052,9 @@ ln -sf /%{_lib}/ld.so.1 $RPM_BUILD_ROOT/%{_lib}/ld-lsb-s390.so.3
ln -sf /%{_lib}/ld64.so.1 $RPM_BUILD_ROOT/%{_lib}/ld-lsb-s390x.so.3
%endif
-%endif # %{normal_build}
+%else # !main
-%if %{utils_build}
+%if %{build_utils}
make %{?_smp_mflags} install_root=%{buildroot} install -C cc-base \
subdirs='malloc debug elf'
@@ -1046,7 +1067,9 @@ rm -f %{buildroot}%{_bindir}/{catchsegv,ldd*,sprof}
rm -rf %{buildroot}%{_mandir}/man*
rm -rf %{buildroot}/sbin %{buildroot}%{_includedir}
-%endif # %{utils_build}
+%endif # utils
+
+%endif # !main
#######################################################################
###
@@ -1054,13 +1077,9 @@ rm -rf %{buildroot}/sbin %{buildroot}%{_includedir}
###
#######################################################################
-%if %{normal_build}
%post -p %{_sbindir}/glibc_post_upgrade
-
%postun -p /sbin/ldconfig
-%endif # %{normal_build}
-
%post locale
for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do
[ -d "$l.d" ] || continue
@@ -1085,7 +1104,7 @@ getent passwd nscd >/dev/null || %{_sbindir}/useradd -r -g nscd -c "User for nsc
%post -n nscd
%service_add_post nscd.service
-mkdir -p /run/nscd
+%tmpfiles_create /usr/lib/tmpfiles.d/nscd.conf
# Previously we had nscd.socket, remove it
test -x /usr/bin/systemctl && /usr/bin/systemctl stop nscd.socket 2>/dev/null || :
test -x /usr/bin/systemctl && /usr/bin/systemctl disable nscd.socket 2>/dev/null || :
@@ -1097,14 +1116,8 @@ exit 0
%service_del_postun nscd.service
exit 0
-%if %{normal_build}
%files
-#######################################################################
-###
-### FILES
-###
-#######################################################################
-
+%if %{build_main}
# glibc
%defattr(-,root,root)
%doc LICENSES
@@ -1380,10 +1393,9 @@ exit 0
/var/lib/misc/Makefile
%endif # !i686
-%endif # %{normal_build}
+%endif # main
-%if %{utils_build}
-%files
+%if %{build_utils}
%defattr(-,root,root)
/%{_lib}/libmemusage.so
/%{_lib}/libpcprofile.so
@@ -1396,6 +1408,6 @@ exit 0
%{_bindir}/sotruss
%{_bindir}/xtrace
%{_bindir}/pldd
-%endif # %{utils_build}
+%endif # utils
%changelog
diff --git a/glibc-utils.spec.in b/glibc-utils.spec.in
new file mode 100644
index 0000000..7dd5b57
--- /dev/null
+++ b/glibc-utils.spec.in
@@ -0,0 +1,6 @@
+%define flavor utils
+
+Name: glibc-utils
+Summary: Development utilities from the GNU C Library
+License: LGPL-2.1+
+Group: Development/Libraries/C and C++
diff --git a/glibc.changes b/glibc.changes
index 36fc946..0a38171 100644
--- a/glibc.changes
+++ b/glibc.changes
@@ -1,3 +1,110 @@
+-------------------------------------------------------------------
+Wed Aug 2 14:32:58 UTC 2017 - schwab@suse.de
+
+- Update to glibc 2.26
+ * A per-thread cache has been added to malloc
+ * Unicode 10.0.0 Support
+ * Improvements to the DNS stub resolver
+ * New function reallocarray, which resizes an allocated block (like
+ realloc) to the product of two sizes, with a guaranteed clean failure
+ upon integer overflow in the multiplication
+ * New wrappers for the Linux-specific system calls preadv2 and pwritev2
+ * posix_spawnattr_setflags now supports the flag POSIX_SPAWN_SETSID, to
+ create a new session ID for the spawned process
+ * errno.h is now safe to use from C-preprocessed assembly language on all
+ supported operating systems
+ * On ia64, powerpc64le, x86-32, and x86-64, the math library now implements
+ 128-bit floating point as defined by ISO/IEC/IEEE 60559:2011 (IEEE
+ 754-2008) and ISO/IEC TS 18661-3:2015
+ * The synchronization that pthread_spin_unlock performs has been changed to
+ now be equivalent to a C11 atomic store with release memory order to the
+ spin lock's memory location
+ * The DNS stub resolver no longer performs EDNS fallback
+ * res_mkquery and res_nmkquery no longer support the IQUERY opcode
+ * The _res_opcodes variable has been removed from libresolv
+ * no longer includes inline versions of any string functions,
+ as this kind of optimization is better done by the compiler
+ * The nonstandard header has been removed
+ * The obsolete header has been removed
+ * The obsolete signal constant SIGUNUSED is no longer defined by
+ * The obsolete function cfree has been removed
+ * The stack_t type no longer has the name struct sigaltstack
+ * The ucontext_t type no longer has the name struct ucontext
+ * On S/390 GNU/Linux, the constants defined by have been
+ synced with the kernel
+ * Linux kernel 3.2 or later is required at runtime, on all architectures
+ supported by that kernel
+ * The DNS stub resolver limits the advertised UDP buffer size to 1200 bytes,
+ to avoid fragmentation-based spoofing attacks (CVE-2017-12132)
+ * LD_LIBRARY_PATH is now ignored in binaries running in privileged
+ AT_SECURE mode to guard against local privilege escalation attacks
+ (CVE-2017-1000366)
+ * Avoid printing a backtrace from the __stack_chk_fail function since it
+ is called on a corrupt stack and a backtrace is unreliable on a
+ corrupt stack (CVE-2010-3192)
+ * A use-after-free vulnerability in clntudp_call in the Sun RPC system
+ has been fixed (CVE-2017-12133)
+ * fate#322258, fate#321513, fate#322453
+- fts-symbol-redirect.patch, glibc-resolv-reload.diff, glibc-2.2-sunrpc.diff,
+ i686-memchr-sse.patch, ld-hwcap-mask-suid.patch, ld-library-path-suid.patch,
+ sunrpc-use-after-free.patch, test-math-vector-sincos-aliasing.patch,
+ tunables-bigendian.patch: Removed
+
+-------------------------------------------------------------------
+Tue Jul 25 07:32:25 UTC 2017 - schwab@suse.de
+
+- Fix RPM group
+
+-------------------------------------------------------------------
+Thu Jul 20 12:17:21 UTC 2017 - schwab@suse.de
+
+- s390-elision-enable-envvar.patch: enable TLE only if
+ GLIBC_ELISION_ENABLE=yes is defined (fate#322271)
+
+-------------------------------------------------------------------
+Wed Jun 21 15:15:12 UTC 2017 - schwab@suse.de
+
+- ld-hwcap-mask-suid.patch: Ignore and remove LD_HWCAP_MASK for AT_SECURE
+ programs (BZ #21209)
+- ld-library-path-suid.patch: Completely ignore LD_LIBRARY_PATH for
+ AT_SECURE=1 programs (CVE-2017-1000366, bsc#1039357, BZ #21624)
+
+-------------------------------------------------------------------
+Wed Jun 14 12:22:21 UTC 2017 - schwab@suse.de
+
+- Remove glibc-cpusetsize.diff, no longer useful
+
+-------------------------------------------------------------------
+Wed May 31 10:35:31 UTC 2017 - schwab@suse.de
+
+- fts-symbol-redirect.patch: Fix symbol redirect for fts_set (bsc#1041123,
+ BZ #21289)
+
+-------------------------------------------------------------------
+Mon May 29 18:10:31 UTC 2017 - schwab@suse.de
+
+- test-math-vector-sincos-aliasing.patch: Fix test-math-vector-sincos.h
+ aliasing
+
+-------------------------------------------------------------------
+Mon May 29 10:24:22 UTC 2017 - schwab@suse.de
+
+- add-locales.patch: renamed from glibc-2.3.locales.diff.bz2, drop en_BE
+ locales (bsc#1039502)
+
+-------------------------------------------------------------------
+Tue May 23 09:54:08 UTC 2017 - schwab@suse.de
+
+- Remove glibc-testsuite.patch, no longer relevant
+
+-------------------------------------------------------------------
+Mon May 22 10:04:59 UTC 2017 - schwab@suse.de
+
+- Use multibuild feature
+- Remove obsolete check-build.sh
+- glibc.rpmlintrc: remove obsolete entries
+- Use %tmpfiles_create in nscd postin
+
-------------------------------------------------------------------
Wed Mar 29 13:09:49 UTC 2017 - schwab@suse.de
diff --git a/glibc.keyring b/glibc.keyring
index 3f66b81..f1e08d5 100644
Binary files a/glibc.keyring and b/glibc.keyring differ
diff --git a/glibc.rpmlintrc b/glibc.rpmlintrc
index 3c55cb4..daca217 100644
--- a/glibc.rpmlintrc
+++ b/glibc.rpmlintrc
@@ -1,25 +1,20 @@
-addFilter(".*glibc-profile.* devel-file-in-non-devel-package.*/usr/lib.*/lib.*_p.a")
-addFilter(".*glibc.* incorrect-fsf-address")
-# False positive - glibc implements gethostbyname
-addFilter(".*binary-or-shlib-calls-gethostbyname")
+# glibc-profile is a devel package
+addFilter("glibc-profile.* devel-file-in-non-devel-package.*/usr/lib.*/lib.*_p.a")
+# glibc is not a devel package
+addFilter("glibc\\..* non-devel-file-in-devel-package")
+# getent deliberately uses gethostbyname
+addFilter("binary-or-shlib-calls-gethostbyname /usr/bin/getent")
# We do need to keep the symtab (see comments in glibc.spec), so this is intented:
-addFilter(".*unstripped-binary-or-object.*")
-# The duplication is intented:
-addFilter(".*files-duplicate /usr/lib64/libbsd-compat.a /usr/lib.*/libg.a")
+addFilter("unstripped-binary-or-object")
# ld.so is special:
-addFilter(".*shared-lib-without-dependency-information /lib.*/ld-2.*.so")
+addFilter("shared-lib-without-dependency-information /lib.*/ld-2.*\\.so")
# Handled via glibc_post_upgrade:
-addFilter(".*permissions-missing-postin missing %set_permissions /usr/.*pt_chown in %post")
-# Do not require permissions, this will lead to a cycle (bnc#700925):
-addFilter("glibc\..*: permissions-missing-requires")
+addFilter("postin-without-ldconfig")
# We will not rename glibc to follow the shlib policy
addFilter("shlib-policy-missing-suffix")
-# The dynamic linker and libnsl call exit - this is fine
-addFilter(".*shared-lib-calls-exit.*")
+# libpthread and libnsl call exit - this is fine
+addFilter("shared-lib-calls-exit")
# The man-pages package contains a number of man pages for programs that come
# with glibc, therefore do not warn about them
-addFilter(".*glibc.*no-manual-page-for-binary getent")
-addFilter(".*glibc.*no-manual-page-for-binary iconv")
-addFilter(".*glibc.*no-manual-page-for-binary ldd")
-addFilter(".*glibc.*no-manual-page-for-binary ldconfig")
-addFilter(".*nscd.*no-manual-page-for-binary nscd")
+addFilter("glibc.*no-manual-page-for-binary (getent|iconv|ldd|ldconfig|locale)")
+addFilter("nscd.*no-manual-page-for-binary nscd")
diff --git a/glibc.spec b/glibc.spec
index 60003f1..4421561 100644
--- a/glibc.spec
+++ b/glibc.spec
@@ -16,27 +16,41 @@
#
-%define build_snapshot 0
-
-# PLEASE run pre_checkin.sh in this directory before submitting
-# this package. Otherwise the .spec and .changes for glibc-testsuite
-# and glibc-utils aren't updated.
-
# Run with osc --with=fast_build to have a shorter turnaround
# It will avoid building some parts of glibc
%bcond_with fast_build
%define crypt_bf_version 1.3
+%define build_snapshot 0
+
+# INCLUDE glibc$flavor.spec.in
+%ifarch i686
+%define flavor i686
+%else
+%define flavor %nil
+%endif
Name: glibc
-%define normal_build ("%{name}" == "glibc")
-%define utils_build ("%{name}" == "glibc-utils")
-%define testsuite_build ("%{name}" == "glibc-testsuite")
-# UTILS-SUMMARY-BEGIN
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
+# END INCLUDE glibc$flavor.spec.in
+
+%bcond_with all
+%define build_main 1
+%define build_utils %{with all}
+%define build_testsuite %{with all}
+%if "%flavor" == "utils"
+%define build_main 0
+%define build_utils 1
+%define build_testsuite 0
+%endif
+%if "%flavor" == "testsuite"
+%define build_main 0
+%define build_utils 0
+%define build_testsuite 1
+%endif
+
BuildRequires: audit-devel
BuildRequires: fdupes
BuildRequires: libcap-devel
@@ -45,16 +59,21 @@ BuildRequires: makeinfo
BuildRequires: pwdutils
BuildRequires: systemd-rpm-macros
BuildRequires: xz
-%if %{testsuite_build}
+%if %{build_testsuite}
BuildRequires: gcc-c++
BuildRequires: gdb
BuildRequires: glibc-devel-static
BuildRequires: libstdc++-devel
BuildRequires: python-pexpect
%endif
-%if %{utils_build}
+%if %{build_utils}
BuildRequires: gd-devel
%endif
+%if "%flavor" == "i686"
+ExclusiveArch: i586 i686
+BuildArch: i686
+%global optflags %(echo "%optflags"|sed -e s/i586/i686/) -march=i686 -mtune=generic
+%endif
%define __filter_GLIBC_PRIVATE 1
%ifarch i686
@@ -64,7 +83,7 @@ BuildRequires: gd-devel
%define build_locales 1
%define build_html 0
%else
-%if %{with fast_build} || %{utils_build}
+%if %{with fast_build} || %{build_utils} && %{without all}
%define build_profile 0
%define build_locales 0
%define build_html 0
@@ -76,7 +95,7 @@ BuildRequires: gd-devel
%endif
%endif
-%define build_variants %{normal_build}
+%define build_variants %{build_main}
%define disable_assert 0
%define enable_stackguard_randomization 1
@@ -103,14 +122,23 @@ BuildRequires: gd-devel
%define powerpc_optimize_cpu_power7 0
%define powerpc_optimize_cpu_cell 0
%endif # ppc, ppc64
-# 3.0 is the SLES 11 SP3 kernel
-# 3.1 is the openSUSE 12.1 kernel
-%define enablekernel 3.0
+# glibc requires at least kernel 3.2
+%define enablekernel 3.2
+# some architectures need a newer kernel
+%ifarch ppc64le
+%define enablekernel 3.10
+%endif
+%ifarch aarch64
+%define enablekernel 3.7
+%endif
+%ifarch ia64
+%define enablekernel 3.2.18
+%endif
-Version: 2.25
+Version: 2.26
Release: 0
%if !%{build_snapshot}
-%define git_id db0242e30234
+%define git_id 1c9a5c270d8b
%define libversion %version
%else
%define git_id %(echo %version | sed 's/.*\.g//')
@@ -118,9 +146,11 @@ Release: 0
%endif
Url: http://www.gnu.org/software/libc/libc.html
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz
%if !%{build_snapshot}
+Source: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz
Source1: http://ftp.gnu.org/pub/gnu/glibc/glibc-%{version}.tar.xz.sig
+%else
+Source: glibc-%{version}.tar.xz
%endif
Source2: http://savannah.gnu.org/project/memberlist-gpgkeys.php?group=libc&download=1#/glibc.keyring
Source3: noversion.tar.bz2
@@ -138,7 +168,7 @@ Source50: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}
# The sign key uses MD5 which is no longer accepted by gpg
#Source51: http://www.openwall.com/crypt/crypt_blowfish-%{crypt_bf_version}.tar.gz.sign
-%if %{normal_build}
+%if %{build_main}
# ngpt was used in 8.1 and SLES8
Obsoletes: ngpt < 2.2.2
Obsoletes: ngpt-devel < 2.2.2
@@ -160,8 +190,8 @@ Provides: ld-linux.so.3(GLIBC_2.4)
Requires(pre): filesystem
Recommends: glibc-extra
Provides: rtld(GNU_HASH)
-%endif # %{normal_build}
-%if %{utils_build}
+%endif
+%if %{build_utils}
Requires: glibc = %{version}
%endif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -207,8 +237,6 @@ Patch8: glibc-nscd.conf.patch
Patch9: glibc-nodate.patch
# PATCH-FIX-OPENSUSE -- add some extra information to version output - kukuk@suse.de
Patch10: glibc-version.diff
-# PATCH-FIX-OPENSUSE remove lfs test from testsuite aj@suse.de
-Patch11: glibc-testsuite.patch
# PATCH-FIX-OPENSUSE handle old glibc binaries
Patch12: glibc-2.3.90-noversion.diff
# PATCH-FIX-OPENSUSE -- Make --no-archive default for localedef - kukuk@suse.de
@@ -217,16 +245,16 @@ Patch13: glibc-2.3.2.no_archive.diff
Patch14: glibc-bindresvport-blacklist.diff
# PATCH-FIX-OPENSUSE prefer -lang rpm packages
Patch15: glibc-2.3.90-langpackdir.diff
-# PATCH-FEATURE-SLE increase cpusetsize to 4096, needs to be kept for compatibility kukuk@suse.de (XXX: Review)
-Patch18: glibc-cpusetsize.diff
# PATCH-FEATURE-SLE Use nscd user for nscd
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-FEATURE-SLE s390: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined
+Patch22: s390-elision-enable-envvar.patch
### Locale related patches
# PATCH-FIX-OPENSUSE Add additional locales
-Patch100: glibc-2.3.locales.diff.bz2
+Patch100: add-locales.patch
# PATCH-FIX-OPENSUSE -- Add no_NO back (XXX: Still needed?)
Patch102: glibc-2.4.90-no_NO.diff
# PATCH-FIX-OPENSUSE -- Renames for China
@@ -239,10 +267,6 @@ Patch105: glibc-disable-gettext-for-c-utf8.patch
### Broken patches in glibc that we revert for now:
### Network related patches
-# PATCH-FIX-OPENSUSE reload /etc/resolv.conf on change
-Patch300: glibc-resolv-reload.diff
-# PATCH-FIX-OPENSUSE Fix hangs in UDP RPC calls bso#5379 bnc#257745 aj@suse.de
-Patch301: glibc-2.2-sunrpc.diff
# PATCH-FIX-OPENSUSE Warn about usage of mdns in resolv.conv
Patch304: glibc-resolv-mdnshint.diff
# PATCH-FIX-OPENSUSE disable rewriting ::1 to 127.0.0.1 for /etc/hosts bnc#684534, bnc#706719
@@ -251,12 +275,6 @@ 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
-# PATCH-FIX-UPSTREAM Fix i686 memchr overflow calculation (BZ #21182)
-Patch1001: i686-memchr-sse.patch
-# PATCH-FIX-UPSTREAM Avoid use-after-free read access in clntudp_call (BZ #21115)
-Patch1002: sunrpc-use-after-free.patch
###
# Patches awaiting upstream approval
@@ -281,10 +299,22 @@ Patch2008: reinitialize-dl_load_write_lock.patch
Patch3000: manpages.patch
%description
+%if %build_main
The GNU C Library provides the most important standard libraries used
by nearly all programs: the standard C library, the standard math
library, and the POSIX thread library. A system is not functional
without these libraries.
+%endif
+%if %build_utils
+The glibc-utils package contains mtrace, a memory leak tracer and
+xtrace, a function call tracer which can be helpful during program
+debugging.
+
+If you are unsure if you need this, do not install this package.
+%endif
+%if %build_testsuite
+This package contains the testsuite results from the GNU C Library.
+%endif
%package info
Summary: Info Files for the GNU C Library
@@ -408,7 +438,7 @@ which is highly discouraged.
%package extra
Summary: Extra binaries from GNU C Library
License: LGPL-2.1+
-Group: Development/Languages/C and C++
+Group: Development/Libraries/C and C++
Requires: glibc = %{version}
%description extra
@@ -457,14 +487,13 @@ touch -r nscd/nscd_stat.c nscd/s-stamp
touch -r nscd/s-stamp nscd/nscd_stat.c
rm nscd/s-stamp
%patch10 -p1
-%patch11 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
-%patch18 -p1
%patch19 -p1
%patch21 -p1
+%patch22 -p1
%patch100 -p1
%patch102 -p1
@@ -472,15 +501,9 @@ rm nscd/s-stamp
%patch104 -p1
%patch105 -p1
-%patch300 -p1
-%patch301 -p1
%patch304 -p1
%patch306 -p1
-%patch1000 -p1
-%patch1001 -p1
-%patch1002 -p1
-
%patch2000 -p1
%patch2001 -p1
%patch2002 -p1
@@ -636,7 +659,7 @@ configure_and_build_glibc() {
$profile $elision \
"$@" \
--build=%{target} --host=%{target} \
-%ifarch armv7hl ppc ppc64 ppc64le %{ix86} x86_64 sparc sparc64 s390 s390x
+%ifarch armv7hl ppc ppc64 ppc64le i686 x86_64 sparc sparc64 s390 s390x
--enable-multi-arch \
%endif
%ifarch mipsel
@@ -652,7 +675,8 @@ configure_and_build_glibc() {
--enable-tunables \
--enable-kernel=%{enablekernel} \
--with-bugurl=http://bugs.opensuse.org \
- --enable-bind-now --enable-obsolete-rpc \
+ --enable-bind-now \
+ --enable-obsolete-rpc --enable-obsolete-nsl \
--disable-timezone-tools
# Should we enable --enable-systemtap?
# Should we enable --enable-nss-crypt to build use freebl3 hash functions?
@@ -751,7 +775,7 @@ popd
#######################################################################
%check
-%if %{testsuite_build}
+%if %{build_testsuite}
# The testsuite will fail if asneeded is used
export SUSE_ASNEEDED=0
# Increase timeout
@@ -793,7 +817,7 @@ make %{?_smp_mflags} -C cc-base check-abi
#######################################################################
%install
-%if %{normal_build}
+%if %{build_main}
# We don't want to strip the .symtab from our libraries in find-debuginfo.sh,
# certainly not from libpthread.so.* because it is used by libthread_db to find
# some non-exported symbols in order to detect if threading support
@@ -994,6 +1018,7 @@ ln -s ld-%{libversion}.so %{buildroot}/lib/ld-linux.so.3
mv %{buildroot}%{_bindir}/getconf %{buildroot}%{_libexecdir}/getconf/getconf
ln -s %{_libexecdir}/getconf/getconf %{buildroot}%{_bindir}/getconf
+%if !%{build_utils}
# Remove unwanted files (packaged in glibc-utils)
rm -f %{buildroot}/%{_lib}/libmemusage*
rm -f %{buildroot}/%{_lib}/libpcprofile*
@@ -1011,6 +1036,7 @@ rm -rf %{buildroot}%{_infodir} %{buildroot}%{_prefix}/share/i18n
rm -f %{buildroot}%{_bindir}/makedb %{buildroot}/var/lib/misc/Makefile
rm -f %{buildroot}%{_sbindir}/nscd
%endif # i686
+%endif # !utils
# LSB
%ifarch %ix86
@@ -1032,9 +1058,9 @@ ln -sf /%{_lib}/ld.so.1 $RPM_BUILD_ROOT/%{_lib}/ld-lsb-s390.so.3
ln -sf /%{_lib}/ld64.so.1 $RPM_BUILD_ROOT/%{_lib}/ld-lsb-s390x.so.3
%endif
-%endif # %{normal_build}
+%else # !main
-%if %{utils_build}
+%if %{build_utils}
make %{?_smp_mflags} install_root=%{buildroot} install -C cc-base \
subdirs='malloc debug elf'
@@ -1047,7 +1073,9 @@ rm -f %{buildroot}%{_bindir}/{catchsegv,ldd*,sprof}
rm -rf %{buildroot}%{_mandir}/man*
rm -rf %{buildroot}/sbin %{buildroot}%{_includedir}
-%endif # %{utils_build}
+%endif # utils
+
+%endif # !main
#######################################################################
###
@@ -1055,13 +1083,9 @@ rm -rf %{buildroot}/sbin %{buildroot}%{_includedir}
###
#######################################################################
-%if %{normal_build}
%post -p %{_sbindir}/glibc_post_upgrade
-
%postun -p /sbin/ldconfig
-%endif # %{normal_build}
-
%post locale
for l in /usr/share/locale/locale.alias %{_libdir}/gconv/gconv-modules; do
[ -d "$l.d" ] || continue
@@ -1086,7 +1110,7 @@ getent passwd nscd >/dev/null || %{_sbindir}/useradd -r -g nscd -c "User for nsc
%post -n nscd
%service_add_post nscd.service
-mkdir -p /run/nscd
+%tmpfiles_create /usr/lib/tmpfiles.d/nscd.conf
# Previously we had nscd.socket, remove it
test -x /usr/bin/systemctl && /usr/bin/systemctl stop nscd.socket 2>/dev/null || :
test -x /usr/bin/systemctl && /usr/bin/systemctl disable nscd.socket 2>/dev/null || :
@@ -1098,14 +1122,8 @@ exit 0
%service_del_postun nscd.service
exit 0
-%if %{normal_build}
%files
-#######################################################################
-###
-### FILES
-###
-#######################################################################
-
+%if %{build_main}
# glibc
%defattr(-,root,root)
%doc LICENSES
@@ -1381,10 +1399,9 @@ exit 0
/var/lib/misc/Makefile
%endif # !i686
-%endif # %{normal_build}
+%endif # main
-%if %{utils_build}
-%files
+%if %{build_utils}
%defattr(-,root,root)
/%{_lib}/libmemusage.so
/%{_lib}/libpcprofile.so
@@ -1397,6 +1414,6 @@ exit 0
%{_bindir}/sotruss
%{_bindir}/xtrace
%{_bindir}/pldd
-%endif # %{utils_build}
+%endif # utils
%changelog
diff --git a/i686-memchr-sse.patch b/i686-memchr-sse.patch
deleted file mode 100644
index a201f51..0000000
--- a/i686-memchr-sse.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-2017-03-29 Adhemerval Zanella
-
- [BZ# 21182]
- * string/test-memchr.c (do_test): Add BZ#21182 checks for address
- near end of a page.
- * sysdeps/i386/i686/multiarch/memchr-sse2.S (__memchr): Fix
- overflow calculation.
-
-Index: glibc-2.25/string/test-memchr.c
-===================================================================
---- glibc-2.25.orig/string/test-memchr.c
-+++ glibc-2.25/string/test-memchr.c
-@@ -208,6 +208,12 @@ test_main (void)
- do_test (0, i, i + 1, i + 1, 0);
- }
-
-+ /* BZ#21182 - wrong overflow calculation for i686 implementation
-+ with address near end of the page. */
-+ for (i = 2; i < 16; ++i)
-+ /* page_size is in fact getpagesize() * 2. */
-+ do_test (page_size / 2 - i, i, i, 1, 0x9B);
-+
- do_random_tests ();
- return ret;
- }
-Index: glibc-2.25/sysdeps/i386/i686/multiarch/memchr-sse2.S
-===================================================================
---- glibc-2.25.orig/sysdeps/i386/i686/multiarch/memchr-sse2.S
-+++ glibc-2.25/sysdeps/i386/i686/multiarch/memchr-sse2.S
-@@ -117,7 +117,6 @@ L(crosscache):
-
- # ifndef USE_AS_RAWMEMCHR
- jnz L(match_case2_prolog1)
-- lea -16(%edx), %edx
- /* Calculate the last acceptable address and check for possible
- addition overflow by using satured math:
- edx = ecx + edx
-@@ -125,6 +124,7 @@ L(crosscache):
- add %ecx, %edx
- sbb %eax, %eax
- or %eax, %edx
-+ sub $16, %edx
- jbe L(return_null)
- lea 16(%edi), %edi
- # else
diff --git a/pre_checkin.sh b/pre_checkin.sh
index 121f4b1..4dc225c 100644
--- a/pre_checkin.sh
+++ b/pre_checkin.sh
@@ -1,29 +1,8 @@
-#!/bin/bash
-# This script is called automatically during autobuild checkin.
-sed -e 's/^Name:.*glibc/&-testsuite/' glibc.spec > glibc-testsuite.spec
-cp glibc.changes glibc-testsuite.changes
-awk '/^Name:/{ $0 = $0 "-utils" }
-/UTILS-SUMMARY-BEGIN/ {
- ignore = 1
- print "\
-Summary: Development utilities from GNU C library\n\
-License: LGPL-2.1+\n\
-Group: Development/Languages/C and C++"
-}
-/UTILS-SUMMARY-END/ { ignore = 0; next }
-/^%description$/ {
- ignore = 1
- print "\
-%description\n\
-The glibc-utils package contains mtrace, a memory leak tracer and\n\
-xtrace, a function call tracer which can be helpful during program\n\
-debugging.\n\
-\n\
-If you are unsure if you need this, don'\''t install this package.\n"
-}
-/^%package/ { ignore = 0}
-!ignore { print }' glibc.spec > glibc-utils.spec
-cp glibc.changes glibc-utils.changes
-
-osc service localrun format_spec_file
-
+#!/bin/sh
+for flavor in utils testsuite; do
+ sed -e "/^# INCLUDE /r glibc-$flavor.spec.in" \
+ -e "/^# INCLUDE /,/^# END INCLUDE /d" \
+ glibc.spec > glibc-$flavor.spec
+ cp glibc.changes glibc-$flavor.changes
+done
+osc service lr format_spec_file
diff --git a/s390-elision-enable-envvar.patch b/s390-elision-enable-envvar.patch
new file mode 100644
index 0000000..e83b280
--- /dev/null
+++ b/s390-elision-enable-envvar.patch
@@ -0,0 +1,31 @@
+Index: glibc-2.25/sysdeps/unix/sysv/linux/s390/elision-conf.c
+===================================================================
+--- glibc-2.25.orig/sysdeps/unix/sysv/linux/s390/elision-conf.c
++++ glibc-2.25/sysdeps/unix/sysv/linux/s390/elision-conf.c
+@@ -21,6 +21,7 @@
+ #include
+ #include
+ #include
++#include
+
+ /* Reasonable initial tuning values, may be revised in the future.
+ This is a conservative initial value. */
+@@ -64,7 +65,17 @@ elision_init (int argc __attribute__ ((u
+ When false elision is never attempted. */
+ int elision_available = (GLRO (dl_hwcap) & HWCAP_S390_TE) ? 1 : 0;
+
+- __pthread_force_elision = __libc_enable_secure ? 0 : elision_available;
++ /* Scan the environment and conditionally enable TLE. */
++ if (elision_available != 0 && __libc_enable_secure == 0)
++ {
++ for ( ; *environ != NULL; environ++)
++ if (**environ == 'G'
++ && strcmp (*environ, "GLIBC_ELISION_ENABLE=yes") == 0)
++ {
++ __pthread_force_elision = elision_available;
++ break;
++ }
++ }
+ }
+
+ #ifdef SHARED
diff --git a/sunrpc-use-after-free.patch b/sunrpc-use-after-free.patch
deleted file mode 100644
index b1ddd22..0000000
--- a/sunrpc-use-after-free.patch
+++ /dev/null
@@ -1,111 +0,0 @@
-2017-02-27 Florian Weimer
-
- [BZ #21115]
- * sunrpc/clnt_udp.c (clntudp_call): Free ancillary data later.
- * sunrpc/Makefile (tests): Add tst-udp-error.
- (tst-udp-error): Link against libc.so explicitly.
- * sunrpc/tst-udp-error: New file.
-
-Index: glibc-2.25/sunrpc/Makefile
-===================================================================
---- glibc-2.25.orig/sunrpc/Makefile
-+++ glibc-2.25/sunrpc/Makefile
-@@ -93,7 +93,7 @@ rpcgen-objs = rpc_main.o rpc_hout.o rpc_
- extra-objs = $(rpcgen-objs) $(addprefix cross-,$(rpcgen-objs))
- others += rpcgen
-
--tests = tst-xdrmem tst-xdrmem2 test-rpcent
-+tests = tst-xdrmem tst-xdrmem2 test-rpcent tst-udp-error
- xtests := tst-getmyaddr
-
- ifeq ($(have-thread-library),yes)
-@@ -155,6 +155,7 @@ BUILD_CPPFLAGS += $(sunrpc-CPPFLAGS)
- $(objpfx)tst-getmyaddr: $(common-objpfx)linkobj/libc.so
- $(objpfx)tst-xdrmem: $(common-objpfx)linkobj/libc.so
- $(objpfx)tst-xdrmem2: $(common-objpfx)linkobj/libc.so
-+$(objpfx)tst-udp-error: $(common-objpfx)linkobj/libc.so
-
- $(objpfx)rpcgen: $(addprefix $(objpfx),$(rpcgen-objs))
-
-Index: glibc-2.25/sunrpc/clnt_udp.c
-===================================================================
---- glibc-2.25.orig/sunrpc/clnt_udp.c
-+++ glibc-2.25/sunrpc/clnt_udp.c
-@@ -424,9 +424,9 @@ send_again:
- cmsg = CMSG_NXTHDR (&msg, cmsg))
- if (cmsg->cmsg_level == SOL_IP && cmsg->cmsg_type == IP_RECVERR)
- {
-- free (cbuf);
- e = (struct sock_extended_err *) CMSG_DATA(cmsg);
- cu->cu_error.re_errno = e->ee_errno;
-+ free (cbuf);
- return (cu->cu_error.re_status = RPC_CANTRECV);
- }
- free (cbuf);
-Index: glibc-2.25/sunrpc/tst-udp-error.c
-===================================================================
---- /dev/null
-+++ glibc-2.25/sunrpc/tst-udp-error.c
-@@ -0,0 +1,62 @@
-+/* Check for use-after-free in clntudp_call (bug 21115).
-+ Copyright (C) 2017 Free Software Foundation, Inc.
-+ 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
-+ . */
-+
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+
-+static int
-+do_test (void)
-+{
-+ support_become_root ();
-+ support_enter_network_namespace ();
-+
-+ /* Obtain a likely-unused port number. */
-+ struct sockaddr_in sin =
-+ {
-+ .sin_family = AF_INET,
-+ .sin_addr.s_addr = htonl (INADDR_LOOPBACK),
-+ };
-+ {
-+ int fd = xsocket (AF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0);
-+ xbind (fd, (struct sockaddr *) &sin, sizeof (sin));
-+ socklen_t sinlen = sizeof (sin);
-+ xgetsockname (fd, (struct sockaddr *) &sin, &sinlen);
-+ /* Close the socket, so that we will receive an error below. */
-+ close (fd);
-+ }
-+
-+ int sock = RPC_ANYSOCK;
-+ CLIENT *clnt = clntudp_create
-+ (&sin, 1, 2, (struct timeval) { 1, 0 }, &sock);
-+ TEST_VERIFY_EXIT (clnt != NULL);
-+ TEST_VERIFY (clnt_call (clnt, 3,
-+ (xdrproc_t) xdr_void, NULL,
-+ (xdrproc_t) xdr_void, NULL,
-+ ((struct timeval) { 3, 0 }))
-+ == RPC_CANTRECV);
-+ clnt_destroy (clnt);
-+
-+ return 0;
-+}
-+
-+#include
diff --git a/tunables-bigendian.patch b/tunables-bigendian.patch
deleted file mode 100644
index f679c20..0000000
--- a/tunables-bigendian.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-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); \
- }
-