Accepting request 514073 from Base:System

- Update to glibc 2.26 (forwarded request 514072 from Andreas_Schwab)

OBS-URL: https://build.opensuse.org/request/show/514073
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=210
This commit is contained in:
Dominique Leuenberger 2017-08-24 15:38:39 +00:00 committed by Git OBS Bridge
parent 0aeaace725
commit 77cf323ace
29 changed files with 688 additions and 804 deletions

View File

@ -1,15 +0,0 @@
<services>
<service name="obs_scm" mode="disabled">
<param name="versionformat">2.25.90.%cd.g%h</param>
<param name="url">git://sourceware.org/git/glibc</param>
<param name="scm">git</param>
</service>
<service name="tar" mode="disabled"/>
<service name="recompress" mode="disabled">
<param name="compression">xz</param>
<param name="file">*.tar</param>
</service>
<service name="set_version" mode="disabled">
<param name="basename">glibc</param>
</service>
</services>

View File

@ -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

29
add-locales.patch Normal file
View File

@ -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 \

View File

@ -1,32 +0,0 @@
#!/bin/bash
# Copyright (c) 2003, 2004, 2011,2012 SUSE Linux Products GmbH, Germany. All rights reserved.
#
# Authors: Thorsten Kukuk <kukuk@suse.de>
#
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

View File

@ -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

View File

@ -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);
}

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:067bd9bb3390e79aa45911537d13c3721f1d9d3769931a30c2681bfee66f23a0
size 13873900

View File

@ -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-----

3
glibc-2.26.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e54e0a934cd2bc94429be79da5e9385898d2306b9eaf3c92d5a77af96190f6bd
size 14682748

10
glibc-2.26.tar.xz.sig Normal file
View File

@ -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-----

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:88419776f97fb76adac25cec0540b5be19c90d7a745cd56512f79bb523b7da37
size 328722

View File

@ -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'. */

View File

@ -1,121 +0,0 @@
From libc-alpha-return-22754-pasky=ucw.cz@sourceware.org Tue Mar 16 00:47:00 2010
Return-Path: <libc-alpha-return-22754-pasky=ucw.cz@sourceware.org>
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 <pasky@pasky.or.cz>; 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 <pasky@kam.mff.cuni.cz>; 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 <pasky@ucw.cz>; 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 <seb@riot.org>
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: <libc-alpha.sourceware.org>
List-Unsubscribe: <mailto:libc-alpha-unsubscribe-pasky=ucw.cz@sourceware.org>
List-Subscribe: <mailto:libc-alpha-subscribe@sourceware.org>
List-Archive: <http://sourceware.org/ml/libc-alpha/>
List-Post: <mailto:libc-alpha@sourceware.org>
List-Help: <mailto:libc-alpha-help@sourceware.org>, <http://sourceware.org/ml/#faqs>
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 <arpa/nameser.h>
#include <resolv.h>
#include <libc-lock.h>
+#include <sys/stat.h>
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);

View File

@ -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
* <string.h> no longer includes inline versions of any string functions,
as this kind of optimization is better done by the compiler
* The nonstandard header <xlocale.h> has been removed
* The obsolete header <sys/ultrasound.h> has been removed
* The obsolete signal constant SIGUNUSED is no longer defined by <signal.h>
* 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 <sys/ptrace.h> 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

View File

@ -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 \

View File

@ -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

6
glibc-testsuite.spec.in Normal file
View File

@ -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++

View File

@ -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
* <string.h> no longer includes inline versions of any string functions,
as this kind of optimization is better done by the compiler
* The nonstandard header <xlocale.h> has been removed
* The obsolete header <sys/ultrasound.h> has been removed
* The obsolete signal constant SIGUNUSED is no longer defined by <signal.h>
* 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 <sys/ptrace.h> 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

View File

@ -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

6
glibc-utils.spec.in Normal file
View File

@ -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++

View File

@ -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
* <string.h> no longer includes inline versions of any string functions,
as this kind of optimization is better done by the compiler
* The nonstandard header <xlocale.h> has been removed
* The obsolete header <sys/ultrasound.h> has been removed
* The obsolete signal constant SIGUNUSED is no longer defined by <signal.h>
* 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 <sys/ptrace.h> 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

Binary file not shown.

View File

@ -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")

View File

@ -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

View File

@ -1,45 +0,0 @@
2017-03-29 Adhemerval Zanella <adhemerval.zanella@linaro.org>
[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

View File

@ -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

View File

@ -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 <elision-conf.h>
#include <unistd.h>
#include <dl-procinfo.h>
+#include <string.h>
/* 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

View File

@ -1,111 +0,0 @@
2017-02-27 Florian Weimer <fweimer@redhat.com>
[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
+ <http://www.gnu.org/licenses/>. */
+
+#include <netinet/in.h>
+#include <rpc/clnt.h>
+#include <rpc/svc.h>
+#include <support/check.h>
+#include <support/namespace.h>
+#include <support/xsocket.h>
+#include <unistd.h>
+
+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 <support/test-driver.c>

View File

@ -1,73 +0,0 @@
2017-02-08 Siddhesh Poyarekar <siddhesh@sourceware.org>
[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 <stddef.h>
-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); \
}