core/glibc to 2.20-2

This commit is contained in:
Kevin Mihelich 2014-09-16 01:42:39 +00:00
parent 533ae091d8
commit 20e70100bb
8 changed files with 84 additions and 151 deletions

View file

@ -15,47 +15,49 @@
noautobuild=1
pkgname=glibc
pkgver=2.19
pkgrel=5
pkgver=2.20
pkgrel=2
pkgdesc="GNU C Library"
arch=('i686' 'x86_64')
url="http://www.gnu.org/software/libc"
license=('GPL' 'LGPL')
groups=('base')
depends=('linux-api-headers>=3.13' 'tzdata' 'filesystem>=2013.01')
makedepends=('gcc>=4.8')
depends=('linux-api-headers>=3.16' 'tzdata' 'filesystem>=2013.01')
+makedepends=('gcc>=4.9')
backup=(etc/gai.conf
etc/locale.gen
etc/nscd.conf)
options=('!strip' 'staticlibs' '!distcc')
install=glibc.install
source=(http://ftp.gnu.org/gnu/libc/${pkgname}-${pkgver}.tar.xz{,.sig}
glibc-2.19-xattr_header.patch
glibc-2.19-fix-sign-in-bsloww1-input.patch
glibc-2.19-tzselect-default.patch
glibc-2.20-getifaddrs_internal-segfault.patch
glibc-2.20-linux-3.16-additions.patch
glibc-2.20-do_ftell_wide-memleak.patch
local-soname-hack.diff
locale.gen.txt
locale-gen)
md5sums=('e26b8cc666b162f999404b03970f14e4'
md5sums=('948a6e06419a01bd51e97206861595b0'
'SKIP'
'39a4876837789e07746f1d84cd8cb46a'
'755a1a9d7844a5e338eddaa9a5d974cd'
'c772dc99ddd8032ecbf43884ae0cf42e'
'1c5d5c2017445c75dbc5c6d0c1e45ddb'
'8f1059f431b842e54b12bde689620df8'
'b50feeab78fa6ce0a8cfb41ee8dc1fd8'
'905370139382428ef2b97b247c0970bf'
'07ac979b6ab5eeb778d55f041529d623'
'476e9113489f93b348b21e144b6a8fcf')
validpgpkeys=('F37CDAB708E65EA183FD1AF625EF0A436C2A4AFF') # Carlos O'Donell
prepare() {
cd ${srcdir}/${pkgname}-${pkgver}
# fix for {linux,sys}/xattr.h incompatibility - commit fdbe8eae
patch -p1 -i $srcdir/glibc-2.19-xattr_header.patch
# fix issues in sin/cos slow path calculation - commit ffe768a9
patch -p1 -i $srcdir/glibc-2.19-fix-sign-in-bsloww1-input.patch
# fix tzselect with missing TZDIR - commit 893b4f37/c72399fb
patch -p1 -i $srcdir/glibc-2.19-tzselect-default.patch
# fix segfault in getifaddrs_internal
# https://sourceware.org/ml/libc-alpha/2014-09/msg00312.html
patch -p1 -i $srcdir/glibc-2.20-getifaddrs_internal-segfault.patch
# linux 3.16 additions - commit 0bd72468
patch -p1 -i $srcdir/glibc-2.20-linux-3.16-additions.patch
# plug memory leak - commit 984c0ea9
patch -p1 -i $srcdir/glibc-2.20-do_ftell_wide-memleak.patch
# ALARM: patch for hard-float ld-linux soname
if [[ $CARCH == "armv6h" || $CARCH == "armv7h" ]]; then
@ -74,6 +76,7 @@ build() {
[[ $CARCH == "armv7h" ]] && CONFIGFLAG="--host=armv7l-unknown-linux-gnueabihf --build=armv7l-unknown-linux-gnueabihf"
echo "slibdir=/usr/lib" >> configparms
echo "rtlddir=/usr/lib" >> configparms
echo "sbindir=/usr/bin" >> configparms
echo "rootsbindir=/usr/bin" >> configparms
@ -88,7 +91,7 @@ build() {
--libdir=/usr/lib --libexecdir=/usr/lib \
--with-headers=/usr/include \
--with-bugurl=https://github.com/archlinuxarm/PKGBUILDs/issues \
--enable-add-ons=nptl,libidn,ports \
--enable-add-ons \
--enable-obsolete-rpc \
--enable-kernel=2.6.27 \
--enable-bind-now --disable-profile \
@ -107,7 +110,7 @@ build() {
make
# remove harding in preparation to run test-suite
sed -i '4,6d' configparms
sed -i '5,7d' configparms
}
check() {
@ -115,9 +118,9 @@ check() {
LDFLAGS=${LDFLAGS/--as-needed,/}
cd ${srcdir}/glibc-build
# only acceptable testsuite error is some small libm ulp failures on i686 with gcc-4.9
# TODO: fix upstream and provide patch
make -k check || true
# tst-cleanupx4 failure on i686 is "expected"
make check || true
}
package() {

View file

@ -1,71 +0,0 @@
From ffe768a90912f9bce43b70a82576b3dc99e3121c Mon Sep 17 00:00:00 2001
From: Siddhesh Poyarekar <siddhesh@redhat.com>
Date: Thu, 27 Feb 2014 21:29:16 +0530
Subject: [PATCH] Fix sign of input to bsloww1 (BZ #16623)
In 84ba214c, I removed some redundant sign computations and in the
process, I incorrectly got rid of a temporary variable, thus passing
the absolute value of the input to bsloww1. This caused #16623.
This fix undoes the incorrect change.
---
sysdeps/ieee754/dbl-64/s_sin.c | 16 ++++++++++------
3 files changed, 18 insertions(+), 7 deletions(-)
diff --git a/sysdeps/ieee754/dbl-64/s_sin.c b/sysdeps/ieee754/dbl-64/s_sin.c
index 6105e9f..50109b8 100644
--- a/sysdeps/ieee754/dbl-64/s_sin.c
+++ b/sysdeps/ieee754/dbl-64/s_sin.c
@@ -447,19 +447,21 @@ __sin (double x)
}
else
{
+ double t;
if (a > 0)
{
m = 1;
+ t = a;
db = da;
}
else
{
m = 0;
- a = -a;
+ t = -a;
db = -da;
}
- u.x = big + a;
- y = a - (u.x - big);
+ u.x = big + t;
+ y = t - (u.x - big);
res = do_sin (u, y, db, &cor);
cor = (cor > 0) ? 1.035 * cor + eps : 1.035 * cor - eps;
retval = ((res == res + cor) ? ((m) ? res : -res)
@@ -671,19 +673,21 @@ __cos (double x)
}
else
{
+ double t;
if (a > 0)
{
m = 1;
+ t = a;
db = da;
}
else
{
m = 0;
- a = -a;
+ t = -a;
db = -da;
}
- u.x = big + a;
- y = a - (u.x - big);
+ u.x = big + t;
+ y = t - (u.x - big);
res = do_sin (u, y, db, &cor);
cor = (cor > 0) ? 1.035 * cor + eps : 1.035 * cor - eps;
retval = ((res == res + cor) ? ((m) ? res : -res)
--
1.9.0

View file

@ -1,13 +0,0 @@
diff --git a/timezone/Makefile b/timezone/Makefile
index 998cd14..d5f647c 100644
--- a/timezone/Makefile
+++ b/timezone/Makefile
@@ -118,7 +118,7 @@ $(testdata)/Asia/Tokyo: asia $(zic-deps)
$(objpfx)tzselect: tzselect.ksh $(common-objpfx)config.make
sed -e 's|/bin/bash|$(KSH)|g' \
- -e '/TZDIR=/s|\$$(pwd)|$(zonedir)|' \
+ -e 's|TZDIR=[^}]*|TZDIR=$(zonedir)|' \
-e '/TZVERSION=/s|see_Makefile|"$(version)"|' \
-e '/PKGVERSION=/s|=.*|="$(PKGVERSION)"|' \
-e '/REPORT_BUGS_TO=/s|=.*|="$(REPORT_BUGS_TO)"|' \

View file

@ -1,42 +0,0 @@
From: Serge Hallyn <serge.hallyn@ubuntu.com>
Date: Tue, 11 Mar 2014 04:17:07 +0000 (-0500)
Subject: misc/sys/xattr.h: guard against linux uapi header inclusion
X-Git-Url: https://sourceware.org/git/?p=glibc.git;a=commitdiff_plain;h=fdbe8eae;hp=fede7a5ffa188c22c3789135bd5cf82e487dd3d0
misc/sys/xattr.h: guard against linux uapi header inclusion
If the glibc xattr.h header is included after the uapi header,
compilation fails due to an enum re-using a #define from the
uapi header. Protect against this by guarding the define and
enum inclusions against each other.
(A corresponding kernel patch has been sent here:
http://lkml.org/lkml/2014/3/7/331 )
(See https://lists.debian.org/debian-glibc/2014/03/msg00029.html
and https://sourceware.org/glibc/wiki/Synchronizing_Headers
for more information.)
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
---
diff --git a/misc/sys/xattr.h b/misc/sys/xattr.h
index 929cd87..796df90 100644
--- a/misc/sys/xattr.h
+++ b/misc/sys/xattr.h
@@ -26,6 +26,7 @@ __BEGIN_DECLS
/* The following constants should be used for the fifth parameter of
`*setxattr'. */
+#ifndef __USE_KERNEL_XATTR_DEFS
enum
{
XATTR_CREATE = 1, /* set value, fail if attr already exists. */
@@ -33,6 +34,7 @@ enum
XATTR_REPLACE = 2 /* set value, fail if attr does not exist. */
#define XATTR_REPLACE XATTR_REPLACE
};
+#endif
/* Set the attribute NAME of the file pointed to by PATH to VALUE (which
is SIZE bytes long). Return 0 on success, -1 for errors. */

View file

@ -0,0 +1,12 @@
diff --git a/libio/wfileops.c b/libio/wfileops.c
index f123add..ebc06e8 100644
--- a/libio/wfileops.c
+++ b/libio/wfileops.c
@@ -711,6 +711,7 @@ do_ftell_wide (_IO_FILE *fp)
return WEOF;
offset += outstop - out;
+ free (out);
}
/* We don't trust _IO_read_end to represent the current file offset

View file

@ -0,0 +1,29 @@
diff --git a/sysdeps/unix/sysv/linux/ifaddrs.c b/sysdeps/unix/sysv/linux/ifaddrs.c
index 2c04e17..a47b2ed 100644
--- a/sysdeps/unix/sysv/linux/ifaddrs.c
+++ b/sysdeps/unix/sysv/linux/ifaddrs.c
@@ -770,20 +770,17 @@ getifaddrs_internal (struct ifaddrs **ifap)
if (cp != NULL)
{
- char c;
unsigned int preflen;
- if ((max_prefixlen > 0) &&
- (ifam->ifa_prefixlen > max_prefixlen))
+ if (ifam->ifa_prefixlen > max_prefixlen)
preflen = max_prefixlen;
else
preflen = ifam->ifa_prefixlen;
- for (i = 0; i < ((preflen - 1) / 8); i++)
+ for (i = 0; i < preflen / 8; i++)
*cp++ = 0xff;
- c = 0xff;
- c <<= ((128 - preflen) % 8);
- *cp = c;
+ if (preflen % 8)
+ *cp = 0xff << (8 - preflen % 8);
}
}
}

View file

@ -0,0 +1,15 @@
diff --git a/sysdeps/gnu/netinet/udp.h b/sysdeps/gnu/netinet/udp.h
index 32159cd..8cc1c60 100644
--- a/sysdeps/gnu/netinet/udp.h
+++ b/sysdeps/gnu/netinet/udp.h
@@ -78,6 +78,10 @@ struct udphdr
#define UDP_CORK 1 /* Never send partially complete segments. */
#define UDP_ENCAP 100 /* Set the socket to accept
encapsulated packets. */
+#define UDP_NO_CHECK6_TX 101 /* Disable sending checksum for UDP
+ over IPv6. */
+#define UDP_NO_CHECK6_RX 102 /* Disable accepting checksum for UDP
+ over IPv6. */
/* UDP encapsulation types */
#define UDP_ENCAP_ESPINUDP_NON_IKE 1 /* draft-ietf-ipsec-nat-t-ike-00/01 */

View file

@ -4,7 +4,7 @@ filelist=(libc.info{,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11})
post_upgrade() {
ldconfig -r .
if [[ $(vercmp 2.19-2 $2) = 1 ]]; then
if [[ $(vercmp 2.20-2 $2) = 1 ]]; then
locale-gen
fi