summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/conf/distro/include/tcmode-default.inc2
-rw-r--r--meta/recipes-core/glibc/cross-localedef-native_2.21.bb (renamed from meta/recipes-core/glibc/cross-localedef-native_2.20.bb)13
-rw-r--r--meta/recipes-core/glibc/glibc-initial_2.21.bb (renamed from meta/recipes-core/glibc/glibc-initial_2.20.bb)0
-rw-r--r--meta/recipes-core/glibc/glibc-locale_2.21.bb (renamed from meta/recipes-core/glibc/glibc-locale_2.20.bb)0
-rw-r--r--meta/recipes-core/glibc/glibc-mtrace_2.21.bb (renamed from meta/recipes-core/glibc/glibc-mtrace_2.20.bb)0
-rw-r--r--meta/recipes-core/glibc/glibc-scripts_2.21.bb (renamed from meta/recipes-core/glibc/glibc-scripts_2.20.bb)0
-rw-r--r--meta/recipes-core/glibc/glibc.inc4
-rw-r--r--meta/recipes-core/glibc/glibc/0001-Add-unused-attribute.patch36
-rw-r--r--meta/recipes-core/glibc/glibc/0001-When-disabling-SSE-also-make-sure-that-fpmath-is-not.patch32
-rw-r--r--meta/recipes-core/glibc/glibc/CVE-2012-3406-Stack-overflow-in-vfprintf-BZ-16617.patch339
-rw-r--r--meta/recipes-core/glibc/glibc/CVE-2014-7817-wordexp-fails-to-honour-WRDE_NOCMD.patch215
-rw-r--r--meta/recipes-core/glibc/glibc/CVE-2014-9402_endless-loop-in-getaddr_r.patch65
-rw-r--r--meta/recipes-core/glibc/glibc/eglibc-use-option-groups.patch1889
-rw-r--r--meta/recipes-core/glibc/glibc/fsl-ppc-no-fsqrt.patch100
-rw-r--r--meta/recipes-core/glibc/glibc/grok_gold.patch22
-rw-r--r--meta/recipes-core/glibc/glibc_2.21.bb (renamed from meta/recipes-core/glibc/glibc_2.20.bb)16
16 files changed, 1087 insertions, 1646 deletions
diff --git a/meta/conf/distro/include/tcmode-default.inc b/meta/conf/distro/include/tcmode-default.inc
index 7428aa99ff..9e25bf0225 100644
--- a/meta/conf/distro/include/tcmode-default.inc
+++ b/meta/conf/distro/include/tcmode-default.inc
@@ -25,7 +25,7 @@ PREFERRED_PROVIDER_virtual/gettext ??= "gettext"
25GCCVERSION ?= "4.9%" 25GCCVERSION ?= "4.9%"
26SDKGCCVERSION ?= "${GCCVERSION}" 26SDKGCCVERSION ?= "${GCCVERSION}"
27BINUVERSION ?= "2.24" 27BINUVERSION ?= "2.24"
28GLIBCVERSION ?= "2.20" 28GLIBCVERSION ?= "2.21"
29UCLIBCVERSION ?= "0.9.33+git%" 29UCLIBCVERSION ?= "0.9.33+git%"
30LINUXLIBCVERSION ?= "3.17.7" 30LINUXLIBCVERSION ?= "3.17.7"
31 31
diff --git a/meta/recipes-core/glibc/cross-localedef-native_2.20.bb b/meta/recipes-core/glibc/cross-localedef-native_2.21.bb
index 8aaa225706..814ae9df92 100644
--- a/meta/recipes-core/glibc/cross-localedef-native_2.20.bb
+++ b/meta/recipes-core/glibc/cross-localedef-native_2.21.bb
@@ -14,9 +14,10 @@ inherit autotools
14 14
15FILESEXTRAPATHS =. "${FILE_DIRNAME}/${PN}:${FILE_DIRNAME}/glibc:" 15FILESEXTRAPATHS =. "${FILE_DIRNAME}/${PN}:${FILE_DIRNAME}/glibc:"
16 16
17PV = "2.20" 17#BRANCH = "release/${PV}/master"
18BRANCH = "master"
18 19
19SRC_URI = "git://sourceware.org/git/glibc.git;branch=release/${PV}/master;name=glibc \ 20SRC_URI = "git://sourceware.org/git/glibc.git;branch=${BRANCH};name=glibc \
20 git://github.com/kraj/localedef;branch=master;name=localedef;destsuffix=git/localedef \ 21 git://github.com/kraj/localedef;branch=master;name=localedef;destsuffix=git/localedef \
21 file://fix_for_centos_5.8.patch \ 22 file://fix_for_centos_5.8.patch \
22 ${EGLIBCPATCHES} \ 23 ${EGLIBCPATCHES} \
@@ -33,17 +34,17 @@ EGLIBCPATCHES = "\
33 file://eglibc-use-option-groups.patch \ 34 file://eglibc-use-option-groups.patch \
34 " 35 "
35 36
36SRCREV_glibc = "b8079dd0d360648e4e8de48656c5c38972621072" 37SRCREV_glibc = "edac0a60c7514b8c9b59488cffdac6b22267e757"
37SRCREV_localedef = "c833367348d39dad7ba018990bfdaffaec8e9ed3" 38SRCREV_localedef = "c833367348d39dad7ba018990bfdaffaec8e9ed3"
38 39
39# Makes for a rather long rev (22 characters), but... 40# Makes for a rather long rev (22 characters), but...
40# 41#
41SRCREV_FORMAT = "glibc__localedef" 42SRCREV_FORMAT = "glibc_localedef"
42 43
43S = "${WORKDIR}/git" 44S = "${WORKDIR}/git"
44 45
45EXTRA_OECONF = "--with-glibc=${S}" 46EXTRA_OECONF = "--with-glibc=${S}"
46CFLAGS += "-DNOT_IN_libc=1" 47CFLAGS += "-fgnu89-inline -std=gnu99 -DIS_IN\(x\)='0'"
47 48
48do_configure () { 49do_configure () {
49 ${S}/localedef/configure ${EXTRA_OECONF} 50 ${S}/localedef/configure ${EXTRA_OECONF}
@@ -51,6 +52,6 @@ do_configure () {
51 52
52 53
53do_install() { 54do_install() {
54 install -d ${D}${bindir} 55 install -d ${D}${bindir}
55 install -m 0755 ${B}/localedef ${D}${bindir}/cross-localedef 56 install -m 0755 ${B}/localedef ${D}${bindir}/cross-localedef
56} 57}
diff --git a/meta/recipes-core/glibc/glibc-initial_2.20.bb b/meta/recipes-core/glibc/glibc-initial_2.21.bb
index 8ab01dc79d..8ab01dc79d 100644
--- a/meta/recipes-core/glibc/glibc-initial_2.20.bb
+++ b/meta/recipes-core/glibc/glibc-initial_2.21.bb
diff --git a/meta/recipes-core/glibc/glibc-locale_2.20.bb b/meta/recipes-core/glibc/glibc-locale_2.21.bb
index f7702e0358..f7702e0358 100644
--- a/meta/recipes-core/glibc/glibc-locale_2.20.bb
+++ b/meta/recipes-core/glibc/glibc-locale_2.21.bb
diff --git a/meta/recipes-core/glibc/glibc-mtrace_2.20.bb b/meta/recipes-core/glibc/glibc-mtrace_2.21.bb
index 0b69bad46a..0b69bad46a 100644
--- a/meta/recipes-core/glibc/glibc-mtrace_2.20.bb
+++ b/meta/recipes-core/glibc/glibc-mtrace_2.21.bb
diff --git a/meta/recipes-core/glibc/glibc-scripts_2.20.bb b/meta/recipes-core/glibc/glibc-scripts_2.21.bb
index 5a89bd8022..5a89bd8022 100644
--- a/meta/recipes-core/glibc/glibc-scripts_2.20.bb
+++ b/meta/recipes-core/glibc/glibc-scripts_2.21.bb
diff --git a/meta/recipes-core/glibc/glibc.inc b/meta/recipes-core/glibc/glibc.inc
index 8aa78dfb34..767d4b8b5b 100644
--- a/meta/recipes-core/glibc/glibc.inc
+++ b/meta/recipes-core/glibc/glibc.inc
@@ -20,7 +20,7 @@ def get_optimization(d):
20SELECTED_OPTIMIZATION := "${@get_optimization(d)}" 20SELECTED_OPTIMIZATION := "${@get_optimization(d)}"
21 21
22# siteconfig.bbclass runs configure which needs a working compiler 22# siteconfig.bbclass runs configure which needs a working compiler
23# For the compiler to work we need a working libc yet libc isn't 23# For the compiler to work we need a working libc yet libc isn't
24# in the sysroots directory at this point. This means the libc.so 24# in the sysroots directory at this point. This means the libc.so
25# linker script won't work as the --sysroot setting isn't correct. 25# linker script won't work as the --sysroot setting isn't correct.
26# Here we create a hacked up libc linker script and pass in the right 26# Here we create a hacked up libc linker script and pass in the right
@@ -71,7 +71,7 @@ EXTRA_OEMAKE += "${EGLIBCPARALLELISM}"
71PARALLEL_MAKE = "" 71PARALLEL_MAKE = ""
72 72
73# glibc make-syscalls.sh has a number of issues with /bin/dash and 73# glibc make-syscalls.sh has a number of issues with /bin/dash and
74# it's output which make calls via the SHELL also has issues, so 74# it's output which make calls via the SHELL also has issues, so
75# ensure make uses /bin/bash 75# ensure make uses /bin/bash
76EXTRA_OEMAKE += "SHELL=/bin/bash" 76EXTRA_OEMAKE += "SHELL=/bin/bash"
77 77
diff --git a/meta/recipes-core/glibc/glibc/0001-Add-unused-attribute.patch b/meta/recipes-core/glibc/glibc/0001-Add-unused-attribute.patch
new file mode 100644
index 0000000000..f51a0ccb22
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc/0001-Add-unused-attribute.patch
@@ -0,0 +1,36 @@
12015-02-18 Khem Raj <raj.khem@gmail.com>>
2
3 * iconv/gconv_charset.h (strip):
4 Add unused attribute.
5
6From 9c4a91cb331ff1e8cde2314dadee74559d8cb0dd Mon Sep 17 00:00:00 2001
7From: Khem Raj <raj.khem@gmail.com>
8Date: Wed, 18 Feb 2015 19:45:31 +0000
9Subject: [PATCH] Add unused attribute
10
11Helps in avoiding gcc warning when header is is included in
12a source file which does not use both functions
13
14Signed-off-by: Khem Raj <raj.khem@gmail.com>
15
16Upstream-Status: Pending
17---
18 iconv/gconv_charset.h | 2 +-
19 1 file changed, 1 insertion(+), 1 deletion(-)
20
21diff --git a/iconv/gconv_charset.h b/iconv/gconv_charset.h
22index 80290bc..7890a8e 100644
23--- a/iconv/gconv_charset.h
24+++ b/iconv/gconv_charset.h
25@@ -21,7 +21,7 @@
26 #include <locale.h>
27
28
29-static void
30+static void __attribute__ ((unused))
31 strip (char *wp, const char *s)
32 {
33 int slash_count = 0;
34--
352.1.4
36
diff --git a/meta/recipes-core/glibc/glibc/0001-When-disabling-SSE-also-make-sure-that-fpmath-is-not.patch b/meta/recipes-core/glibc/glibc/0001-When-disabling-SSE-also-make-sure-that-fpmath-is-not.patch
new file mode 100644
index 0000000000..a6395b77bc
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc/0001-When-disabling-SSE-also-make-sure-that-fpmath-is-not.patch
@@ -0,0 +1,32 @@
1From 6f5639f6405ff9a42e4f71e7b0f18bddb68d992a Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 19 Feb 2015 03:23:45 +0000
4Subject: [PATCH] When disabling SSE also make sure that fpmath is not set to
5 use SSE as well
6
7This fixes errors when we inject sse options through CFLAGS and now
8that we have -Werror turned on by default this warning turns to become
9error on x86
10
11Signed-off-by: Khem Raj <raj.khem@gmail.com>
12
13Upstream-Status: Pending
14---
15 sysdeps/x86/Makefile | 2 +-
16 1 file changed, 1 insertion(+), 1 deletion(-)
17
18diff --git a/sysdeps/x86/Makefile b/sysdeps/x86/Makefile
19index 19f5eca..827ea71 100644
20--- a/sysdeps/x86/Makefile
21+++ b/sysdeps/x86/Makefile
22@@ -1,6 +1,6 @@
23 ifeq ($(subdir),elf)
24 CFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),\
25- -mno-sse -mno-mmx)
26+ -mno-sse -mno-mmx -mfpmath=387)
27
28 tests-special += $(objpfx)tst-ld-sse-use.out
29 $(objpfx)tst-ld-sse-use.out: ../sysdeps/x86/tst-ld-sse-use.sh $(objpfx)ld.so
30--
312.1.4
32
diff --git a/meta/recipes-core/glibc/glibc/CVE-2012-3406-Stack-overflow-in-vfprintf-BZ-16617.patch b/meta/recipes-core/glibc/glibc/CVE-2012-3406-Stack-overflow-in-vfprintf-BZ-16617.patch
deleted file mode 100644
index 8cfdbeaa60..0000000000
--- a/meta/recipes-core/glibc/glibc/CVE-2012-3406-Stack-overflow-in-vfprintf-BZ-16617.patch
+++ /dev/null
@@ -1,339 +0,0 @@
1From a5357b7ce2a2982c5778435704bcdb55ce3667a0 Mon Sep 17 00:00:00 2001
2From: Jeff Law <law@redhat.com>
3Date: Mon, 15 Dec 2014 10:09:32 +0100
4Subject: [PATCH] CVE-2012-3406: Stack overflow in vfprintf [BZ #16617]
5
6A larger number of format specifiers coudld cause a stack overflow,
7potentially allowing to bypass _FORTIFY_SOURCE format string
8protection.
9---
10 ChangeLog | 9 +++++++
11 NEWS | 13 +++++----
12 stdio-common/Makefile | 2 +-
13 stdio-common/bug23-2.c | 70 +++++++++++++++++++++++++++++++++++++++++++++++++
14 stdio-common/bug23-3.c | 50 +++++++++++++++++++++++++++++++++++
15 stdio-common/bug23-4.c | 31 ++++++++++++++++++++++
16 stdio-common/vfprintf.c | 40 ++++++++++++++++++++++++++--
17 7 files changed, 207 insertions(+), 8 deletions(-)
18 create mode 100644 stdio-common/bug23-2.c
19 create mode 100644 stdio-common/bug23-3.c
20 create mode 100644 stdio-common/bug23-4.c
21
22Index: git/ChangeLog
23===================================================================
24--- git.orig/ChangeLog
25+++ git/ChangeLog
26@@ -1,3 +1,12 @@
27+2014-12-15 Jeff Law <law@redhat.com>
28+
29+ [BZ #16617]
30+ * stdio-common/vfprintf.c (vfprintf): Allocate large specs array
31+ on the heap. (CVE-2012-3406)
32+ * stdio-common/bug23-2.c, stdio-common/bug23-3.c: New file.
33+ * stdio-common/bug23-4.c: New file. Test case by Joseph Myers.
34+ * stdio-common/Makefile (tests): Add bug23-2, bug23-3, bug23-4.
35+
36 2014-11-19 Carlos O'Donell <carlos@redhat.com>
37 Florian Weimer <fweimer@redhat.com>
38 Joseph Myers <joseph@codesourcery.com>
39Index: git/NEWS
40===================================================================
41--- git.orig/NEWS
42+++ git/NEWS
43@@ -13,24 +13,28 @@ Version 2.20
44 15698, 15804, 15894, 15946, 16002, 16064, 16095, 16194, 16198, 16275,
45 16284, 16287, 16315, 16348, 16349, 16354, 16357, 16362, 16447, 16516,
46 16532, 16539, 16545, 16561, 16562, 16564, 16574, 16599, 16600, 16609,
47- 16610, 16611, 16613, 16619, 16623, 16629, 16632, 16634, 16639, 16642,
48- 16648, 16649, 16670, 16674, 16677, 16680, 16681, 16683, 16689, 16695,
49- 16701, 16706, 16707, 16712, 16713, 16714, 16724, 16731, 16739, 16740,
50- 16743, 16754, 16758, 16759, 16760, 16770, 16786, 16789, 16791, 16796,
51- 16799, 16800, 16815, 16823, 16824, 16831, 16838, 16839, 16849, 16854,
52- 16876, 16877, 16878, 16882, 16885, 16888, 16890, 16892, 16912, 16915,
53- 16916, 16917, 16918, 16922, 16927, 16928, 16932, 16943, 16958, 16965,
54- 16966, 16967, 16977, 16978, 16984, 16990, 16996, 17009, 17022, 17031,
55- 17042, 17048, 17050, 17058, 17061, 17062, 17069, 17075, 17078, 17079,
56- 17084, 17086, 17088, 17092, 17097, 17125, 17135, 17137, 17150, 17153,
57- 17187, 17213, 17259, 17261, 17262, 17263, 17319, 17325, 17354, 17625.
58-
59+ 16610, 16611, 16613, 16617, 16619, 16623, 16629, 16632, 16634, 16639,
60+ 16642, 16648, 16649, 16670, 16674, 16677, 16680, 16681, 16683, 16689,
61+ 16695, 16701, 16706, 16707, 16712, 16713, 16714, 16724, 16731, 16739,
62+ 16740, 16743, 16754, 16758, 16759, 16760, 16770, 16786, 16789, 16791,
63+ 16796, 16799, 16800, 16815, 16823, 16824, 16831, 16838, 16839, 16849,
64+ 16854, 16876, 16877, 16878, 16882, 16885, 16888, 16890, 16892, 16912,
65+ 16915, 16916, 16917, 16918, 16922, 16927, 16928, 16932, 16943, 16958,
66+ 16965, 16966, 16967, 16977, 16978, 16984, 16990, 16996, 17009, 17022,
67+ 17031, 17042, 17048, 17050, 17058, 17061, 17062, 17069, 17075, 17078,
68+ 17079, 17084, 17086, 17088, 17092, 17097, 17125, 17135, 17137, 17150,
69+ 17153, 17187, 17213, 17259, 17261, 17262, 17263, 17319, 17325, 17354,
70+ 17625.
71+
72 * CVE-2104-7817 The wordexp function could ignore the WRDE_NOCMD flag
73 under certain input conditions resulting in the execution of a shell for
74 command substitution when the applicaiton did not request it. The
75 implementation now checks WRDE_NOCMD immediately before executing the
76 shell and returns the error WRDE_CMDSUB as expected.
77
78+* CVE-2012-3406 printf-style functions could run into a stack overflow when
79+ processing format strings with a large number of format specifiers.
80+
81 * Reverted change of ABI data structures for s390 and s390x:
82 On s390 and s390x the size of struct ucontext and jmp_buf was increased in
83 2.19. This change is reverted in 2.20. The introduced 2.19 symbol versions
84Index: git/stdio-common/bug23-2.c
85===================================================================
86--- /dev/null
87+++ git/stdio-common/bug23-2.c
88@@ -0,0 +1,70 @@
89+#include <stdio.h>
90+#include <string.h>
91+#include <stdlib.h>
92+
93+static const char expected[] = "\
94+\n\
95+a\n\
96+abbcd55\
97+\n\
98+a\n\
99+abbcd55\
100+\n\
101+a\n\
102+abbcd55\
103+\n\
104+a\n\
105+abbcd55\
106+\n\
107+a\n\
108+abbcd55\
109+\n\
110+a\n\
111+abbcd55\
112+\n\
113+a\n\
114+abbcd55\
115+\n\
116+a\n\
117+abbcd55\
118+\n\
119+a\n\
120+abbcd55\
121+\n\
122+a\n\
123+abbcd55\
124+\n\
125+a\n\
126+abbcd55\
127+\n\
128+a\n\
129+abbcd55\
130+\n\
131+a\n\
132+abbcd55%%%%%%%%%%%%%%%%%%%%%%%%%%\n";
133+
134+static int
135+do_test (void)
136+{
137+ char *buf = malloc (strlen (expected) + 1);
138+ snprintf (buf, strlen (expected) + 1,
139+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
140+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
141+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
142+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
143+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
144+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
145+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
146+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
147+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
148+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
149+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
150+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
151+ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
152+ "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n",
153+ "a", "b", "c", "d", 5);
154+ return strcmp (buf, expected) != 0;
155+}
156+
157+#define TEST_FUNCTION do_test ()
158+#include "../test-skeleton.c"
159Index: git/stdio-common/bug23-3.c
160===================================================================
161--- /dev/null
162+++ git/stdio-common/bug23-3.c
163@@ -0,0 +1,50 @@
164+#include <stdio.h>
165+#include <string.h>
166+#include <stdlib.h>
167+
168+int
169+do_test (void)
170+{
171+ size_t instances = 16384;
172+#define X0 "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
173+ const char *item = "\na\nabbcd55";
174+#define X3 X0 X0 X0 X0 X0 X0 X0 X0
175+#define X6 X3 X3 X3 X3 X3 X3 X3 X3
176+#define X9 X6 X6 X6 X6 X6 X6 X6 X6
177+#define X12 X9 X9 X9 X9 X9 X9 X9 X9
178+#define X14 X12 X12 X12 X12
179+#define TRAILER "%%%%%%%%%%%%%%%%%%%%%%%%%%"
180+#define TRAILER2 TRAILER TRAILER
181+ size_t length = instances * strlen (item) + strlen (TRAILER) + 1;
182+
183+ char *buf = malloc (length + 1);
184+ snprintf (buf, length + 1,
185+ X14 TRAILER2 "\n",
186+ "a", "b", "c", "d", 5);
187+
188+ const char *p = buf;
189+ size_t i;
190+ for (i = 0; i < instances; ++i)
191+ {
192+ const char *expected;
193+ for (expected = item; *expected; ++expected)
194+ {
195+ if (*p != *expected)
196+ {
197+ printf ("mismatch at offset %zu (%zu): expected %d, got %d\n",
198+ (size_t) (p - buf), i, *expected & 0xFF, *p & 0xFF);
199+ return 1;
200+ }
201+ ++p;
202+ }
203+ }
204+ if (strcmp (p, TRAILER "\n") != 0)
205+ {
206+ printf ("mismatch at trailer: [%s]\n", p);
207+ return 1;
208+ }
209+ free (buf);
210+ return 0;
211+}
212+#define TEST_FUNCTION do_test ()
213+#include "../test-skeleton.c"
214Index: git/stdio-common/bug23-4.c
215===================================================================
216--- /dev/null
217+++ git/stdio-common/bug23-4.c
218@@ -0,0 +1,31 @@
219+#include <stdio.h>
220+#include <stdlib.h>
221+#include <string.h>
222+#include <sys/resource.h>
223+
224+#define LIMIT 1000000
225+
226+int
227+main (void)
228+{
229+ struct rlimit lim;
230+ getrlimit (RLIMIT_STACK, &lim);
231+ lim.rlim_cur = 1048576;
232+ setrlimit (RLIMIT_STACK, &lim);
233+ char *fmtstr = malloc (4 * LIMIT + 1);
234+ if (fmtstr == NULL)
235+ abort ();
236+ char *output = malloc (LIMIT + 1);
237+ if (output == NULL)
238+ abort ();
239+ for (size_t i = 0; i < LIMIT; i++)
240+ memcpy (fmtstr + 4 * i, "%1$d", 4);
241+ fmtstr[4 * LIMIT] = '\0';
242+ int ret = snprintf (output, LIMIT + 1, fmtstr, 0);
243+ if (ret != LIMIT)
244+ abort ();
245+ for (size_t i = 0; i < LIMIT; i++)
246+ if (output[i] != '0')
247+ abort ();
248+ return 0;
249+}
250Index: git/stdio-common/vfprintf.c
251===================================================================
252--- git.orig/stdio-common/vfprintf.c
253+++ git/stdio-common/vfprintf.c
254@@ -276,6 +276,12 @@ vfprintf (FILE *s, const CHAR_T *format,
255 /* For the argument descriptions, which may be allocated on the heap. */
256 void *args_malloced = NULL;
257
258+ /* For positional argument handling. */
259+ struct printf_spec *specs;
260+
261+ /* Track if we malloced the SPECS array and thus must free it. */
262+ bool specs_malloced = false;
263+
264 /* This table maps a character into a number representing a
265 class. In each step there is a destination label for each
266 class. */
267@@ -1699,8 +1705,8 @@ do_positional:
268 size_t nspecs = 0;
269 /* A more or less arbitrary start value. */
270 size_t nspecs_size = 32 * sizeof (struct printf_spec);
271- struct printf_spec *specs = alloca (nspecs_size);
272
273+ specs = alloca (nspecs_size);
274 /* The number of arguments the format string requests. This will
275 determine the size of the array needed to store the argument
276 attributes. */
277@@ -1743,11 +1749,39 @@ do_positional:
278 if (nspecs * sizeof (*specs) >= nspecs_size)
279 {
280 /* Extend the array of format specifiers. */
281+ if (nspecs_size * 2 < nspecs_size)
282+ {
283+ __set_errno (ENOMEM);
284+ done = -1;
285+ goto all_done;
286+ }
287 struct printf_spec *old = specs;
288- specs = extend_alloca (specs, nspecs_size, 2 * nspecs_size);
289+ if (__libc_use_alloca (2 * nspecs_size))
290+ specs = extend_alloca (specs, nspecs_size, 2 * nspecs_size);
291+ else
292+ {
293+ nspecs_size *= 2;
294+ specs = malloc (nspecs_size);
295+ if (specs == NULL)
296+ {
297+ __set_errno (ENOMEM);
298+ specs = old;
299+ done = -1;
300+ goto all_done;
301+ }
302+ }
303
304 /* Copy the old array's elements to the new space. */
305 memmove (specs, old, nspecs * sizeof (*specs));
306+
307+ /* If we had previously malloc'd space for SPECS, then
308+ release it after the copy is complete. */
309+ if (specs_malloced)
310+ free (old);
311+
312+ /* Now set SPECS_MALLOCED if needed. */
313+ if (!__libc_use_alloca (nspecs_size))
314+ specs_malloced = true;
315 }
316
317 /* Parse the format specifier. */
318@@ -2068,6 +2102,8 @@ do_positional:
319 }
320
321 all_done:
322+ if (specs_malloced)
323+ free (specs);
324 if (__glibc_unlikely (args_malloced != NULL))
325 free (args_malloced);
326 if (__glibc_unlikely (workstart != NULL))
327Index: git/stdio-common/Makefile
328===================================================================
329--- git.orig/stdio-common/Makefile
330+++ git/stdio-common/Makefile
331@@ -66,7 +66,7 @@ tests := tstscanf test_rdwr test-popen t
332 tst-fwrite bug16 bug17 tst-sprintf2 bug18 \
333 bug19 tst-popen2 scanf14 scanf15 bug21 bug22 scanf16 scanf17 \
334 tst-setvbuf1 bug23 bug24 bug-vfprintf-nargs tst-sprintf3 bug25 \
335- tst-printf-round bug26
336+ tst-printf-round bug23-2 bug23-3 bug23-4
337
338 tests-$(OPTION_EGLIBC_LOCALE_CODE) \
339 += tst-sscanf tst-swprintf test-vfprintf bug14 scanf13 tst-grouping
diff --git a/meta/recipes-core/glibc/glibc/CVE-2014-7817-wordexp-fails-to-honour-WRDE_NOCMD.patch b/meta/recipes-core/glibc/glibc/CVE-2014-7817-wordexp-fails-to-honour-WRDE_NOCMD.patch
deleted file mode 100644
index d95d182dc4..0000000000
--- a/meta/recipes-core/glibc/glibc/CVE-2014-7817-wordexp-fails-to-honour-WRDE_NOCMD.patch
+++ /dev/null
@@ -1,215 +0,0 @@
1From a39208bd7fb76c1b01c127b4c61f9bfd915bfe7c Mon Sep 17 00:00:00 2001
2From: Carlos O'Donell <carlos@redhat.com>
3Date: Wed, 19 Nov 2014 11:44:12 -0500
4Subject: [PATCH] CVE-2014-7817: wordexp fails to honour WRDE_NOCMD.
5
6The function wordexp() fails to properly handle the WRDE_NOCMD
7flag when processing arithmetic inputs in the form of "$((... ``))"
8where "..." can be anything valid. The backticks in the arithmetic
9epxression are evaluated by in a shell even if WRDE_NOCMD forbade
10command substitution. This allows an attacker to attempt to pass
11dangerous commands via constructs of the above form, and bypass
12the WRDE_NOCMD flag. This patch fixes this by checking for WRDE_NOCMD
13in exec_comm(), the only place that can execute a shell. All other
14checks for WRDE_NOCMD are superfluous and removed.
15
16We expand the testsuite and add 3 new regression tests of roughly
17the same form but with a couple of nested levels.
18
19On top of the 3 new tests we add fork validation to the WRDE_NOCMD
20testing. If any forks are detected during the execution of a wordexp()
21call with WRDE_NOCMD, the test is marked as failed. This is slightly
22heuristic since vfork might be used in the future, but it provides a
23higher level of assurance that no shells were executed as part of
24command substitution with WRDE_NOCMD in effect. In addition it doesn't
25require libpthread or libdl, instead we use the public implementation
26namespace function __register_atfork (already part of the public ABI
27for libpthread).
28
29Tested on x86_64 with no regressions.
30---
31 ChangeLog | 22 ++++++++++++++++++++++
32 NEWS | 8 +++++++-
33 posix/wordexp-test.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
34 posix/wordexp.c | 16 ++++------------
35 4 files changed, 77 insertions(+), 13 deletions(-)
36
37Index: git/ChangeLog
38===================================================================
39--- git.orig/ChangeLog
40+++ git/ChangeLog
41@@ -1,3 +1,24 @@
42+2014-11-19 Carlos O'Donell <carlos@redhat.com>
43+ Florian Weimer <fweimer@redhat.com>
44+ Joseph Myers <joseph@codesourcery.com>
45+ Adam Conrad <adconrad@0c3.net>
46+ Andreas Schwab <schwab@suse.de>
47+ Brooks <bmoses@google.com>
48+
49+ [BZ #17625]
50+ * wordexp-test.c (__dso_handle): Add prototype.
51+ (__register_atfork): Likewise.
52+ (__app_register_atfork): New function.
53+ (registered_forks): New global.
54+ (register_fork): New function.
55+ (test_case): Add 3 new tests for WRDE_CMDSUB.
56+ (main): Call __app_register_atfork.
57+ (testit): If WRDE_NOCMD set registered_forks to zero, run test, and if
58+ fork count is non-zero fail the test.
59+ * posix/wordexp.c (exec_comm): Return WRDE_CMDSUB if WRDE_NOCMD flag
60+ is set.
61+ (parse_dollars): Remove check for WRDE_NOCMD.
62+
63 2014-09-07 Allan McRae <allan@archlinux.org
64
65 * version.h (RELEASE): Set to "stable".
66Index: git/NEWS
67===================================================================
68--- git.orig/NEWS
69+++ git/NEWS
70@@ -23,7 +23,13 @@ Version 2.20
71 16966, 16967, 16977, 16978, 16984, 16990, 16996, 17009, 17022, 17031,
72 17042, 17048, 17050, 17058, 17061, 17062, 17069, 17075, 17078, 17079,
73 17084, 17086, 17088, 17092, 17097, 17125, 17135, 17137, 17150, 17153,
74- 17187, 17213, 17259, 17261, 17262, 17263, 17319, 17325, 17354.
75+ 17187, 17213, 17259, 17261, 17262, 17263, 17319, 17325, 17354, 17625.
76+
77+* CVE-2104-7817 The wordexp function could ignore the WRDE_NOCMD flag
78+ under certain input conditions resulting in the execution of a shell for
79+ command substitution when the applicaiton did not request it. The
80+ implementation now checks WRDE_NOCMD immediately before executing the
81+ shell and returns the error WRDE_CMDSUB as expected.
82
83 * Reverted change of ABI data structures for s390 and s390x:
84 On s390 and s390x the size of struct ucontext and jmp_buf was increased in
85Index: git/posix/wordexp-test.c
86===================================================================
87--- git.orig/posix/wordexp-test.c
88+++ git/posix/wordexp-test.c
89@@ -27,6 +27,25 @@
90
91 #define IFS " \n\t"
92
93+extern void *__dso_handle __attribute__ ((__weak__, __visibility__ ("hidden")));
94+extern int __register_atfork (void (*) (void), void (*) (void), void (*) (void), void *);
95+
96+static int __app_register_atfork (void (*prepare) (void), void (*parent) (void), void (*child) (void))
97+{
98+ return __register_atfork (prepare, parent, child,
99+ &__dso_handle == NULL ? NULL : __dso_handle);
100+}
101+
102+/* Number of forks seen. */
103+static int registered_forks;
104+
105+/* For each fork increment the fork count. */
106+static void
107+register_fork (void)
108+{
109+ registered_forks++;
110+}
111+
112 struct test_case_struct
113 {
114 int retval;
115@@ -206,6 +225,12 @@ struct test_case_struct
116 { WRDE_SYNTAX, NULL, "$((2+))", 0, 0, { NULL, }, IFS },
117 { WRDE_SYNTAX, NULL, "`", 0, 0, { NULL, }, IFS },
118 { WRDE_SYNTAX, NULL, "$((010+4+))", 0, 0, { NULL }, IFS },
119+ /* Test for CVE-2014-7817. We test 3 combinations of command
120+ substitution inside an arithmetic expression to make sure that
121+ no commands are executed and error is returned. */
122+ { WRDE_CMDSUB, NULL, "$((`echo 1`))", WRDE_NOCMD, 0, { NULL, }, IFS },
123+ { WRDE_CMDSUB, NULL, "$((1+`echo 1`))", WRDE_NOCMD, 0, { NULL, }, IFS },
124+ { WRDE_CMDSUB, NULL, "$((1+$((`echo 1`))))", WRDE_NOCMD, 0, { NULL, }, IFS },
125
126 { -1, NULL, NULL, 0, 0, { NULL, }, IFS },
127 };
128@@ -258,6 +283,15 @@ main (int argc, char *argv[])
129 return -1;
130 }
131
132+ /* If we are not allowed to do command substitution, we install
133+ fork handlers to verify that no forks happened. No forks should
134+ happen at all if command substitution is disabled. */
135+ if (__app_register_atfork (register_fork, NULL, NULL) != 0)
136+ {
137+ printf ("Failed to register fork handler.\n");
138+ return -1;
139+ }
140+
141 for (test = 0; test_case[test].retval != -1; test++)
142 if (testit (&test_case[test]))
143 ++fail;
144@@ -367,6 +401,9 @@ testit (struct test_case_struct *tc)
145
146 printf ("Test %d (%s): ", ++tests, tc->words);
147
148+ if (tc->flags & WRDE_NOCMD)
149+ registered_forks = 0;
150+
151 if (tc->flags & WRDE_APPEND)
152 {
153 /* initial wordexp() call, to be appended to */
154@@ -378,6 +415,13 @@ testit (struct test_case_struct *tc)
155 }
156 retval = wordexp (tc->words, &we, tc->flags);
157
158+ if ((tc->flags & WRDE_NOCMD)
159+ && (registered_forks > 0))
160+ {
161+ printf ("FAILED fork called for WRDE_NOCMD\n");
162+ return 1;
163+ }
164+
165 if (tc->flags & WRDE_DOOFFS)
166 start_offs = sav_we.we_offs;
167
168Index: git/posix/wordexp.c
169===================================================================
170--- git.orig/posix/wordexp.c
171+++ git/posix/wordexp.c
172@@ -893,6 +893,10 @@ exec_comm (char *comm, char **word, size
173 pid_t pid;
174 int noexec = 0;
175
176+ /* Do nothing if command substitution should not succeed. */
177+ if (flags & WRDE_NOCMD)
178+ return WRDE_CMDSUB;
179+
180 /* Don't fork() unless necessary */
181 if (!comm || !*comm)
182 return 0;
183@@ -2082,9 +2086,6 @@ parse_dollars (char **word, size_t *word
184 }
185 }
186
187- if (flags & WRDE_NOCMD)
188- return WRDE_CMDSUB;
189-
190 (*offset) += 2;
191 return parse_comm (word, word_length, max_length, words, offset, flags,
192 quoted? NULL : pwordexp, ifs, ifs_white);
193@@ -2196,9 +2197,6 @@ parse_dquote (char **word, size_t *word_
194 break;
195
196 case '`':
197- if (flags & WRDE_NOCMD)
198- return WRDE_CMDSUB;
199-
200 ++(*offset);
201 error = parse_backtick (word, word_length, max_length, words,
202 offset, flags, NULL, NULL, NULL);
203@@ -2357,12 +2355,6 @@ wordexp (const char *words, wordexp_t *p
204 break;
205
206 case '`':
207- if (flags & WRDE_NOCMD)
208- {
209- error = WRDE_CMDSUB;
210- goto do_error;
211- }
212-
213 ++words_offset;
214 error = parse_backtick (&word, &word_length, &max_length, words,
215 &words_offset, flags, pwordexp, ifs,
diff --git a/meta/recipes-core/glibc/glibc/CVE-2014-9402_endless-loop-in-getaddr_r.patch b/meta/recipes-core/glibc/glibc/CVE-2014-9402_endless-loop-in-getaddr_r.patch
deleted file mode 100644
index ba1da67b76..0000000000
--- a/meta/recipes-core/glibc/glibc/CVE-2014-9402_endless-loop-in-getaddr_r.patch
+++ /dev/null
@@ -1,65 +0,0 @@
1CVE-2014-9402 endless loop in getaddr_r
2
3
4https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commit;h=11e3417af6e354f1942c68a271ae51e892b2814d
5
6Upstream-Status: Backport
7
8Signed-off-by: Armin Kuster <akuster@mvista.com>
9
10From 11e3417af6e354f1942c68a271ae51e892b2814d Mon Sep 17 00:00:00 2001
11From: Florian Weimer <fweimer@redhat.com>
12Date: Mon, 15 Dec 2014 17:41:13 +0100
13Subject: [PATCH] Avoid infinite loop in nss_dns getnetbyname [BZ #17630]
14
15---
16 ChangeLog | 6 ++++++
17 NEWS | 7 +++++--
18 resolv/nss_dns/dns-network.c | 4 ++--
19 3 files changed, 13 insertions(+), 4 deletions(-)
20
21Index: git/NEWS
22===================================================================
23--- git.orig/NEWS
24+++ git/NEWS
25@@ -24,7 +24,10 @@ Version 2.20
26 17031, 17042, 17048, 17050, 17058, 17061, 17062, 17069, 17075, 17078,
27 17079, 17084, 17086, 17088, 17092, 17097, 17125, 17135, 17137, 17150,
28 17153, 17187, 17213, 17259, 17261, 17262, 17263, 17319, 17325, 17354,
29- 17625.
30+ 17625, 17630.
31+
32+* The nss_dns implementation of getnetbyname could run into an infinite loop
33+ if the DNS response contained a PTR record of an unexpected format.
34
35 * CVE-2104-7817 The wordexp function could ignore the WRDE_NOCMD flag
36 under certain input conditions resulting in the execution of a shell for
37Index: git/resolv/nss_dns/dns-network.c
38===================================================================
39--- git.orig/resolv/nss_dns/dns-network.c
40+++ git/resolv/nss_dns/dns-network.c
41@@ -398,8 +398,8 @@ getanswer_r (const querybuf *answer, int
42
43 case BYNAME:
44 {
45- char **ap = result->n_aliases++;
46- while (*ap != NULL)
47+ char **ap;
48+ for (ap = result->n_aliases; *ap != NULL; ++ap)
49 {
50 /* Check each alias name for being of the forms:
51 4.3.2.1.in-addr.arpa = net 1.2.3.4
52Index: git/ChangeLog
53===================================================================
54--- git.orig/ChangeLog
55+++ git/ChangeLog
56@@ -1,3 +1,9 @@
57+2014-12-16 Florian Weimer <fweimer@redhat.com>
58+
59+ [BZ #17630]
60+ * resolv/nss_dns/dns-network.c (getanswer_r): Iterate over alias
61+ names.
62+
63 2014-12-15 Jeff Law <law@redhat.com>
64
65 [BZ #16617]
diff --git a/meta/recipes-core/glibc/glibc/eglibc-use-option-groups.patch b/meta/recipes-core/glibc/glibc/eglibc-use-option-groups.patch
index 1910fccd3c..0fcaff9719 100644
--- a/meta/recipes-core/glibc/glibc/eglibc-use-option-groups.patch
+++ b/meta/recipes-core/glibc/glibc/eglibc-use-option-groups.patch
@@ -4,8 +4,8 @@ Upstream-Status: Pending
4 4
5Index: git/argp/argp-fmtstream.c 5Index: git/argp/argp-fmtstream.c
6=================================================================== 6===================================================================
7--- git.orig/argp/argp-fmtstream.c 2014-08-29 20:00:42.976070587 -0700 7--- git.orig/argp/argp-fmtstream.c
8+++ git/argp/argp-fmtstream.c 2014-08-29 20:01:15.188070587 -0700 8+++ git/argp/argp-fmtstream.c
9@@ -42,6 +42,7 @@ 9@@ -42,6 +42,7 @@
10 #ifdef _LIBC 10 #ifdef _LIBC
11 # include <wchar.h> 11 # include <wchar.h>
@@ -14,7 +14,7 @@ Index: git/argp/argp-fmtstream.c
14 # define __vsnprintf(s, l, f, a) _IO_vsnprintf (s, l, f, a) 14 # define __vsnprintf(s, l, f, a) _IO_vsnprintf (s, l, f, a)
15 #endif 15 #endif
16 16
17@@ -100,7 +101,11 @@ 17@@ -100,7 +101,11 @@ __argp_fmtstream_free (argp_fmtstream_t
18 __argp_fmtstream_update (fs); 18 __argp_fmtstream_update (fs);
19 if (fs->p > fs->buf) 19 if (fs->p > fs->buf)
20 { 20 {
@@ -26,7 +26,7 @@ Index: git/argp/argp-fmtstream.c
26 } 26 }
27 free (fs->buf); 27 free (fs->buf);
28 free (fs); 28 free (fs);
29@@ -145,9 +150,17 @@ 29@@ -145,9 +150,17 @@ __argp_fmtstream_update (argp_fmtstream_
30 size_t i; 30 size_t i;
31 for (i = 0; i < pad; i++) 31 for (i = 0; i < pad; i++)
32 { 32 {
@@ -45,7 +45,7 @@ Index: git/argp/argp-fmtstream.c
45 putc_unlocked (' ', fs->stream); 45 putc_unlocked (' ', fs->stream);
46 } 46 }
47 } 47 }
48@@ -308,9 +321,17 @@ 48@@ -308,9 +321,17 @@ __argp_fmtstream_update (argp_fmtstream_
49 *nl++ = ' '; 49 *nl++ = ' ';
50 else 50 else
51 for (i = 0; i < fs->wmargin; ++i) 51 for (i = 0; i < fs->wmargin; ++i)
@@ -66,9 +66,9 @@ Index: git/argp/argp-fmtstream.c
66 /* Copy the tail of the original buffer into the current buffer 66 /* Copy the tail of the original buffer into the current buffer
67Index: git/argp/argp-help.c 67Index: git/argp/argp-help.c
68=================================================================== 68===================================================================
69--- git.orig/argp/argp-help.c 2014-08-29 20:00:42.976070587 -0700 69--- git.orig/argp/argp-help.c
70+++ git/argp/argp-help.c 2014-08-29 20:01:15.188070587 -0700 70+++ git/argp/argp-help.c
71@@ -51,6 +51,7 @@ 71@@ -51,6 +51,7 @@ char *alloca ();
72 #ifdef _LIBC 72 #ifdef _LIBC
73 # include <../libio/libioP.h> 73 # include <../libio/libioP.h>
74 # include <wchar.h> 74 # include <wchar.h>
@@ -76,7 +76,7 @@ Index: git/argp/argp-help.c
76 #endif 76 #endif
77 77
78 #ifndef _ 78 #ifndef _
79@@ -1702,7 +1703,7 @@ 79@@ -1702,7 +1703,7 @@ char *__argp_basename (char *name)
80 } 80 }
81 81
82 char * 82 char *
@@ -85,7 +85,7 @@ Index: git/argp/argp-help.c
85 { 85 {
86 # if HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME 86 # if HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME
87 return program_invocation_short_name; 87 return program_invocation_short_name;
88@@ -1873,9 +1874,17 @@ 88@@ -1873,9 +1874,17 @@ __argp_failure (const struct argp_state
89 #endif 89 #endif
90 } 90 }
91 91
@@ -106,8 +106,8 @@ Index: git/argp/argp-help.c
106 #if _LIBC || (HAVE_FLOCKFILE && HAVE_FUNLOCKFILE) 106 #if _LIBC || (HAVE_FLOCKFILE && HAVE_FUNLOCKFILE)
107Index: git/argp/argp-namefrob.h 107Index: git/argp/argp-namefrob.h
108=================================================================== 108===================================================================
109--- git.orig/argp/argp-namefrob.h 2014-08-29 20:00:42.976070587 -0700 109--- git.orig/argp/argp-namefrob.h
110+++ git/argp/argp-namefrob.h 2014-08-29 20:01:15.192070587 -0700 110+++ git/argp/argp-namefrob.h
111@@ -76,10 +76,12 @@ 111@@ -76,10 +76,12 @@
112 #undef __argp_fmtstream_wmargin 112 #undef __argp_fmtstream_wmargin
113 #define __argp_fmtstream_wmargin argp_fmtstream_wmargin 113 #define __argp_fmtstream_wmargin argp_fmtstream_wmargin
@@ -123,8 +123,8 @@ Index: git/argp/argp-namefrob.h
123 #undef __flockfile 123 #undef __flockfile
124Index: git/argp/Makefile 124Index: git/argp/Makefile
125=================================================================== 125===================================================================
126--- git.orig/argp/Makefile 2014-08-29 20:00:42.976070587 -0700 126--- git.orig/argp/Makefile
127+++ git/argp/Makefile 2014-08-29 20:01:15.192070587 -0700 127+++ git/argp/Makefile
128@@ -18,6 +18,8 @@ 128@@ -18,6 +18,8 @@
129 # 129 #
130 # Makefile for argp. 130 # Makefile for argp.
@@ -136,9 +136,9 @@ Index: git/argp/Makefile
136 include ../Makeconfig 136 include ../Makeconfig
137Index: git/catgets/Makefile 137Index: git/catgets/Makefile
138=================================================================== 138===================================================================
139--- git.orig/catgets/Makefile 2014-08-29 20:00:43.008070587 -0700 139--- git.orig/catgets/Makefile
140+++ git/catgets/Makefile 2014-08-29 20:01:15.192070587 -0700 140+++ git/catgets/Makefile
141@@ -22,20 +22,23 @@ 141@@ -22,20 +22,23 @@ subdir := catgets
142 142
143 include ../Makeconfig 143 include ../Makeconfig
144 144
@@ -171,8 +171,8 @@ Index: git/catgets/Makefile
171 # To find xmalloc.c 171 # To find xmalloc.c
172Index: git/crypt/crypt-entry.c 172Index: git/crypt/crypt-entry.c
173=================================================================== 173===================================================================
174--- git.orig/crypt/crypt-entry.c 2014-08-29 20:00:43.028070587 -0700 174--- git.orig/crypt/crypt-entry.c
175+++ git/crypt/crypt-entry.c 2014-08-29 20:01:15.192070587 -0700 175+++ git/crypt/crypt-entry.c
176@@ -27,6 +27,7 @@ 176@@ -27,6 +27,7 @@
177 #include <stdio.h> 177 #include <stdio.h>
178 #endif 178 #endif
@@ -181,7 +181,7 @@ Index: git/crypt/crypt-entry.c
181 #include <errno.h> 181 #include <errno.h>
182 #include <fips-private.h> 182 #include <fips-private.h>
183 183
184@@ -76,9 +77,11 @@ 184@@ -76,9 +77,11 @@ __crypt_r (key, salt, data)
185 const char *salt; 185 const char *salt;
186 struct crypt_data * __restrict data; 186 struct crypt_data * __restrict data;
187 { 187 {
@@ -193,7 +193,7 @@ Index: git/crypt/crypt-entry.c
193 193
194 #ifdef _LIBC 194 #ifdef _LIBC
195 /* Try to find out whether we have to use MD5 encryption replacement. */ 195 /* Try to find out whether we have to use MD5 encryption replacement. */
196@@ -105,6 +108,7 @@ 196@@ -105,6 +108,7 @@ __crypt_r (key, salt, data)
197 sizeof (struct crypt_data)); 197 sizeof (struct crypt_data));
198 #endif 198 #endif
199 199
@@ -201,7 +201,7 @@ Index: git/crypt/crypt-entry.c
201 /* 201 /*
202 * Hack DES tables according to salt 202 * Hack DES tables according to salt
203 */ 203 */
204@@ -144,6 +148,10 @@ 204@@ -144,6 +148,10 @@ __crypt_r (key, salt, data)
205 */ 205 */
206 _ufc_output_conversion_r (res[0], res[1], salt, data); 206 _ufc_output_conversion_r (res[0], res[1], salt, data);
207 return data->crypt_3_buf; 207 return data->crypt_3_buf;
@@ -212,7 +212,7 @@ Index: git/crypt/crypt-entry.c
212 } 212 }
213 weak_alias (__crypt_r, crypt_r) 213 weak_alias (__crypt_r, crypt_r)
214 214
215@@ -168,7 +176,12 @@ 215@@ -168,7 +176,12 @@ crypt (key, salt)
216 return __sha512_crypt (key, salt); 216 return __sha512_crypt (key, salt);
217 #endif 217 #endif
218 218
@@ -227,8 +227,8 @@ Index: git/crypt/crypt-entry.c
227 227
228Index: git/crypt/Makefile 228Index: git/crypt/Makefile
229=================================================================== 229===================================================================
230--- git.orig/crypt/Makefile 2014-08-29 20:00:43.024070587 -0700 230--- git.orig/crypt/Makefile
231+++ git/crypt/Makefile 2014-08-29 20:01:15.192070587 -0700 231+++ git/crypt/Makefile
232@@ -18,21 +18,25 @@ 232@@ -18,21 +18,25 @@
233 # 233 #
234 # Sub-makefile for crypt() portion of the library. 234 # Sub-makefile for crypt() portion of the library.
@@ -261,7 +261,7 @@ Index: git/crypt/Makefile
261 routines += $(libcrypt-routines) 261 routines += $(libcrypt-routines)
262 endif 262 endif
263 263
264@@ -44,7 +48,7 @@ 264@@ -44,7 +48,7 @@ LDLIBS-crypt.so = -lfreebl3
265 else 265 else
266 libcrypt-routines += md5 sha256 sha512 266 libcrypt-routines += md5 sha256 sha512
267 267
@@ -270,7 +270,7 @@ Index: git/crypt/Makefile
270 270
271 # The test md5test-giant uses up to 400 MB of RSS and runs on a fast 271 # The test md5test-giant uses up to 400 MB of RSS and runs on a fast
272 # machine over a minute. 272 # machine over a minute.
273@@ -64,8 +68,10 @@ 273@@ -64,8 +68,10 @@ $(objpfx)sha256test: $(patsubst %, $(obj
274 $(objpfx)sha512test: $(patsubst %, $(objpfx)%.o,$(sha512-routines)) 274 $(objpfx)sha512test: $(patsubst %, $(objpfx)%.o,$(sha512-routines))
275 endif 275 endif
276 276
@@ -283,8 +283,8 @@ Index: git/crypt/Makefile
283+endif # eglibc: OPTION_EGLIBC_CRYPT 283+endif # eglibc: OPTION_EGLIBC_CRYPT
284Index: git/csu/Makefile 284Index: git/csu/Makefile
285=================================================================== 285===================================================================
286--- git.orig/csu/Makefile 2014-08-29 20:00:43.032070587 -0700 286--- git.orig/csu/Makefile
287+++ git/csu/Makefile 2014-08-29 20:01:15.192070587 -0700 287+++ git/csu/Makefile
288@@ -22,6 +22,8 @@ 288@@ -22,6 +22,8 @@
289 # crtn.o, special "initializer" and "finalizer" files used in the link 289 # crtn.o, special "initializer" and "finalizer" files used in the link
290 # to make the .init and .fini sections work right. 290 # to make the .init and .fini sections work right.
@@ -296,8 +296,8 @@ Index: git/csu/Makefile
296 include ../Makeconfig 296 include ../Makeconfig
297Index: git/debug/Makefile 297Index: git/debug/Makefile
298=================================================================== 298===================================================================
299--- git.orig/debug/Makefile 2014-08-29 20:00:43.036070587 -0700 299--- git.orig/debug/Makefile
300+++ git/debug/Makefile 2014-08-29 20:01:15.192070587 -0700 300+++ git/debug/Makefile
301@@ -18,6 +18,8 @@ 301@@ -18,6 +18,8 @@
302 # 302 #
303 # Sub-makefile for debug portion of the library. 303 # Sub-makefile for debug portion of the library.
@@ -307,7 +307,7 @@ Index: git/debug/Makefile
307 subdir := debug 307 subdir := debug
308 308
309 include ../Makeconfig 309 include ../Makeconfig
310@@ -27,7 +29,7 @@ 310@@ -27,7 +29,7 @@ headers := execinfo.h
311 # Note that ptsname_r_chk and getlogin_r are not here, but in 311 # Note that ptsname_r_chk and getlogin_r are not here, but in
312 # login/Makefile instead. If that subdir is omitted from the 312 # login/Makefile instead. If that subdir is omitted from the
313 # build, its _FORTIFY_SOURCE support will be too. 313 # build, its _FORTIFY_SOURCE support will be too.
@@ -316,7 +316,7 @@ Index: git/debug/Makefile
316 memcpy_chk memmove_chk mempcpy_chk memset_chk stpcpy_chk \ 316 memcpy_chk memmove_chk mempcpy_chk memset_chk stpcpy_chk \
317 strcat_chk strcpy_chk strncat_chk strncpy_chk stpncpy_chk \ 317 strcat_chk strcpy_chk strncat_chk strncpy_chk stpncpy_chk \
318 sprintf_chk vsprintf_chk snprintf_chk vsnprintf_chk \ 318 sprintf_chk vsprintf_chk snprintf_chk vsnprintf_chk \
319@@ -36,20 +38,27 @@ 319@@ -36,20 +38,27 @@ routines = backtrace backtracesyms back
320 read_chk pread_chk pread64_chk recv_chk recvfrom_chk \ 320 read_chk pread_chk pread64_chk recv_chk recvfrom_chk \
321 readlink_chk readlinkat_chk getwd_chk getcwd_chk \ 321 readlink_chk readlinkat_chk getwd_chk getcwd_chk \
322 realpath_chk fread_chk fread_u_chk \ 322 realpath_chk fread_chk fread_u_chk \
@@ -352,7 +352,7 @@ Index: git/debug/Makefile
352 static-only-routines := warning-nop stack_chk_fail_local 352 static-only-routines := warning-nop stack_chk_fail_local
353 353
354 CFLAGS-backtrace.c = -fno-omit-frame-pointer 354 CFLAGS-backtrace.c = -fno-omit-frame-pointer
355@@ -129,11 +138,15 @@ 355@@ -131,11 +140,15 @@ LDFLAGS-tst-backtrace4 = -rdynamic
356 LDFLAGS-tst-backtrace5 = -rdynamic 356 LDFLAGS-tst-backtrace5 = -rdynamic
357 LDFLAGS-tst-backtrace6 = -rdynamic 357 LDFLAGS-tst-backtrace6 = -rdynamic
358 358
@@ -371,12 +371,12 @@ Index: git/debug/Makefile
371+tests += tst-chk4 tst-chk5 tst-chk6 tst-lfschk4 tst-lfschk5 tst-lfschk6 371+tests += tst-chk4 tst-chk5 tst-chk6 tst-lfschk4 tst-lfschk5 tst-lfschk6
372+endif 372+endif
373 373
374 tests-ifunc := $(stpcpy_chk strcpy_chk:%=test-%-ifunc) 374 extra-libs = libSegFault libpcprofile
375 tests += $(tests-ifunc) 375 extra-libs-others = $(extra-libs)
376Index: git/debug/segfault.c 376Index: git/debug/segfault.c
377=================================================================== 377===================================================================
378--- git.orig/debug/segfault.c 2014-08-29 20:00:46.280070587 -0700 378--- git.orig/debug/segfault.c
379+++ git/debug/segfault.c 2014-08-29 20:01:15.192070587 -0700 379+++ git/debug/segfault.c
380@@ -30,6 +30,7 @@ 380@@ -30,6 +30,7 @@
381 #include <unistd.h> 381 #include <unistd.h>
382 #include <_itoa.h> 382 #include <_itoa.h>
@@ -385,7 +385,24 @@ Index: git/debug/segfault.c
385 385
386 /* This file defines macros to access the content of the sigcontext element 386 /* This file defines macros to access the content of the sigcontext element
387 passed up by the signal handler. */ 387 passed up by the signal handler. */
388@@ -91,6 +92,7 @@ 388@@ -68,11 +69,13 @@ write_strsignal (int fd, int signal)
389 static void
390 catch_segfault (int signal, SIGCONTEXT ctx)
391 {
392- int fd, cnt, i;
393- void **arr;
394+ int fd;
395 struct sigaction sa;
396+#if __OPTION_EGLIBC_BACKTRACE
397+ int cnt, i;
398+ void **arr;
399 uintptr_t pc;
400-
401+#endif
402 /* This is the name of the file we are writing to. If none is given
403 or we cannot write to this file write to stderr. */
404 fd = 2;
405@@ -91,6 +94,7 @@ catch_segfault (int signal, SIGCONTEXT c
389 REGISTER_DUMP; 406 REGISTER_DUMP;
390 #endif 407 #endif
391 408
@@ -393,7 +410,7 @@ Index: git/debug/segfault.c
393 WRITE_STRING ("\nBacktrace:\n"); 410 WRITE_STRING ("\nBacktrace:\n");
394 411
395 /* Get the backtrace. */ 412 /* Get the backtrace. */
396@@ -113,6 +115,7 @@ 413@@ -113,6 +117,7 @@ catch_segfault (int signal, SIGCONTEXT c
397 414
398 /* Now generate nicely formatted output. */ 415 /* Now generate nicely formatted output. */
399 __backtrace_symbols_fd (arr + i, cnt - i, fd); 416 __backtrace_symbols_fd (arr + i, cnt - i, fd);
@@ -403,8 +420,8 @@ Index: git/debug/segfault.c
403 /* Now the link map. */ 420 /* Now the link map. */
404Index: git/debug/tst-chk1.c 421Index: git/debug/tst-chk1.c
405=================================================================== 422===================================================================
406--- git.orig/debug/tst-chk1.c 2014-08-29 20:00:46.288070587 -0700 423--- git.orig/debug/tst-chk1.c
407+++ git/debug/tst-chk1.c 2014-08-29 20:01:15.192070587 -0700 424+++ git/debug/tst-chk1.c
408@@ -31,6 +31,7 @@ 425@@ -31,6 +31,7 @@
409 #include <sys/select.h> 426 #include <sys/select.h>
410 #include <sys/socket.h> 427 #include <sys/socket.h>
@@ -413,7 +430,7 @@ Index: git/debug/tst-chk1.c
413 430
414 431
415 #define obstack_chunk_alloc malloc 432 #define obstack_chunk_alloc malloc
416@@ -307,6 +308,7 @@ 433@@ -307,6 +308,7 @@ do_test (void)
417 snprintf (buf + 8, l0 + 3, "%d", num2); 434 snprintf (buf + 8, l0 + 3, "%d", num2);
418 CHK_FAIL_END 435 CHK_FAIL_END
419 436
@@ -421,7 +438,7 @@ Index: git/debug/tst-chk1.c
421 CHK_FAIL_START 438 CHK_FAIL_START
422 swprintf (wbuf + 8, 3, L"%d", num1); 439 swprintf (wbuf + 8, 3, L"%d", num1);
423 CHK_FAIL_END 440 CHK_FAIL_END
424@@ -314,6 +316,7 @@ 441@@ -314,6 +316,7 @@ do_test (void)
425 CHK_FAIL_START 442 CHK_FAIL_START
426 swprintf (wbuf + 8, l0 + 3, L"%d", num1); 443 swprintf (wbuf + 8, l0 + 3, L"%d", num1);
427 CHK_FAIL_END 444 CHK_FAIL_END
@@ -429,7 +446,7 @@ Index: git/debug/tst-chk1.c
429 # endif 446 # endif
430 447
431 memcpy (buf, str1 + 2, l0 + 9); 448 memcpy (buf, str1 + 2, l0 + 9);
432@@ -381,6 +384,7 @@ 449@@ -381,6 +384,7 @@ do_test (void)
433 CHK_FAIL_END 450 CHK_FAIL_END
434 #endif 451 #endif
435 452
@@ -437,7 +454,7 @@ Index: git/debug/tst-chk1.c
437 454
438 /* These ops can be done without runtime checking of object size. */ 455 /* These ops can be done without runtime checking of object size. */
439 wmemcpy (wbuf, L"abcdefghij", 10); 456 wmemcpy (wbuf, L"abcdefghij", 10);
440@@ -605,6 +609,7 @@ 457@@ -605,6 +609,7 @@ do_test (void)
441 CHK_FAIL_END 458 CHK_FAIL_END
442 #endif 459 #endif
443 460
@@ -445,7 +462,7 @@ Index: git/debug/tst-chk1.c
445 462
446 /* Now checks for %n protection. */ 463 /* Now checks for %n protection. */
447 464
448@@ -1192,6 +1197,7 @@ 465@@ -1192,6 +1197,7 @@ do_test (void)
449 # endif 466 # endif
450 #endif 467 #endif
451 468
@@ -453,7 +470,7 @@ Index: git/debug/tst-chk1.c
453 if (setlocale (LC_ALL, "de_DE.UTF-8") != NULL) 470 if (setlocale (LC_ALL, "de_DE.UTF-8") != NULL)
454 { 471 {
455 assert (MB_CUR_MAX <= 10); 472 assert (MB_CUR_MAX <= 10);
456@@ -1348,6 +1354,7 @@ 473@@ -1348,6 +1354,7 @@ do_test (void)
457 puts ("cannot set locale"); 474 puts ("cannot set locale");
458 ret = 1; 475 ret = 1;
459 } 476 }
@@ -463,8 +480,8 @@ Index: git/debug/tst-chk1.c
463 if (fd != -1) 480 if (fd != -1)
464Index: git/dlfcn/Makefile 481Index: git/dlfcn/Makefile
465=================================================================== 482===================================================================
466--- git.orig/dlfcn/Makefile 2014-08-29 20:00:46.312070587 -0700 483--- git.orig/dlfcn/Makefile
467+++ git/dlfcn/Makefile 2014-08-29 20:01:15.192070587 -0700 484+++ git/dlfcn/Makefile
468@@ -15,6 +15,8 @@ 485@@ -15,6 +15,8 @@
469 # License along with the GNU C Library; if not, see 486 # License along with the GNU C Library; if not, see
470 # <http://www.gnu.org/licenses/>. 487 # <http://www.gnu.org/licenses/>.
@@ -474,21 +491,23 @@ Index: git/dlfcn/Makefile
474 subdir := dlfcn 491 subdir := dlfcn
475 492
476 include ../Makeconfig 493 include ../Makeconfig
477@@ -36,7 +38,9 @@ 494@@ -36,8 +38,11 @@ endif
478 ifeq (yes,$(build-shared)) 495 ifeq (yes,$(build-shared))
479 tests = glrefmain failtest tst-dladdr default errmsg1 tstcxaatexit \ 496 tests = glrefmain failtest tst-dladdr default errmsg1 tstcxaatexit \
480 bug-dlopen1 bug-dlsym1 tst-dlinfo bug-atexit1 bug-atexit2 \ 497 bug-dlopen1 bug-dlsym1 tst-dlinfo bug-atexit1 bug-atexit2 \
481- bug-atexit3 tstatexit bug-dl-leaf 498- bug-atexit3 tstatexit bug-dl-leaf tst-rec-dlopen
482+ tstatexit bug-dl-leaf 499+ tstatexit bug-dl-leaf tst-rec-dlopen
500 endif
483+ 501+
484+tests-$(OPTION_EGLIBC_CXX_TESTS) += bug-atexit3 502+tests-$(OPTION_EGLIBC_CXX_TESTS) += bug-atexit3
485 endif 503+
486 modules-names = glreflib1 glreflib2 glreflib3 failtestmod defaultmod1 \ 504 modules-names = glreflib1 glreflib2 glreflib3 failtestmod defaultmod1 \
487 defaultmod2 errmsg1mod modatexit modcxaatexit \ 505 defaultmod2 errmsg1mod modatexit modcxaatexit \
506 bug-dlsym1-lib1 bug-dlsym1-lib2 bug-atexit1-lib \
488Index: git/elf/dl-support.c 507Index: git/elf/dl-support.c
489=================================================================== 508===================================================================
490--- git.orig/elf/dl-support.c 2014-08-29 20:00:46.384070587 -0700 509--- git.orig/elf/dl-support.c
491+++ git/elf/dl-support.c 2014-08-29 20:01:15.192070587 -0700 510+++ git/elf/dl-support.c
492@@ -19,6 +19,7 @@ 511@@ -19,6 +19,7 @@
493 /* This file defines some things that for the dynamic linker are defined in 512 /* This file defines some things that for the dynamic linker are defined in
494 rtld.c and dl-sysdep.c in ways appropriate to bootstrap dynamic linking. */ 513 rtld.c and dl-sysdep.c in ways appropriate to bootstrap dynamic linking. */
@@ -497,7 +516,7 @@ Index: git/elf/dl-support.c
497 #include <errno.h> 516 #include <errno.h>
498 #include <libintl.h> 517 #include <libintl.h>
499 #include <stdlib.h> 518 #include <stdlib.h>
500@@ -42,7 +43,9 @@ 519@@ -42,7 +43,9 @@ char **_dl_argv = &__progname; /* This i
501 const char *_dl_platform; 520 const char *_dl_platform;
502 size_t _dl_platformlen; 521 size_t _dl_platformlen;
503 522
@@ -509,8 +528,8 @@ Index: git/elf/dl-support.c
509 int _dl_dynamic_weak; 528 int _dl_dynamic_weak;
510Index: git/elf/rtld.c 529Index: git/elf/rtld.c
511=================================================================== 530===================================================================
512--- git.orig/elf/rtld.c 2014-08-29 20:01:14.708070587 -0700 531--- git.orig/elf/rtld.c
513+++ git/elf/rtld.c 2014-08-29 20:01:15.196070587 -0700 532+++ git/elf/rtld.c
514@@ -16,6 +16,7 @@ 533@@ -16,6 +16,7 @@
515 License along with the GNU C Library; if not, see 534 License along with the GNU C Library; if not, see
516 <http://www.gnu.org/licenses/>. */ 535 <http://www.gnu.org/licenses/>. */
@@ -519,7 +538,7 @@ Index: git/elf/rtld.c
519 #include <errno.h> 538 #include <errno.h>
520 #include <dlfcn.h> 539 #include <dlfcn.h>
521 #include <fcntl.h> 540 #include <fcntl.h>
522@@ -2200,6 +2201,7 @@ 541@@ -2200,6 +2201,7 @@ print_missing_version (int errcode __att
523 objname, errstring); 542 objname, errstring);
524 } 543 }
525 544
@@ -527,7 +546,7 @@ Index: git/elf/rtld.c
527 /* Nonzero if any of the debugging options is enabled. */ 546 /* Nonzero if any of the debugging options is enabled. */
528 static int any_debug attribute_relro; 547 static int any_debug attribute_relro;
529 548
530@@ -2309,6 +2311,7 @@ 549@@ -2309,6 +2311,7 @@ a filename can be specified using the LD
531 _exit (0); 550 _exit (0);
532 } 551 }
533 } 552 }
@@ -535,7 +554,18 @@ Index: git/elf/rtld.c
535 554
536 static void 555 static void
537 process_dl_audit (char *str) 556 process_dl_audit (char *str)
538@@ -2376,12 +2379,14 @@ 557@@ -2348,8 +2351,9 @@ process_envvars (enum mode *modep)
558 char **runp = _environ;
559 char *envline;
560 enum mode mode = normal;
561+#if __OPTION_EGLIBC_RTLD_DEBUG
562 char *debug_output = NULL;
563-
564+#endif
565 /* This is the default place for profiling data file. */
566 GLRO(dl_profile_output)
567 = &"/var/tmp\0/var/profile"[__libc_enable_secure ? 9 : 0];
568@@ -2376,12 +2380,14 @@ process_envvars (enum mode *modep)
539 break; 569 break;
540 570
541 case 5: 571 case 5:
@@ -550,7 +580,23 @@ Index: git/elf/rtld.c
550 if (memcmp (envline, "AUDIT", 5) == 0) 580 if (memcmp (envline, "AUDIT", 5) == 0)
551 process_dl_audit (&envline[6]); 581 process_dl_audit (&envline[6]);
552 break; 582 break;
553@@ -2490,7 +2495,9 @@ 583@@ -2447,13 +2453,14 @@ process_envvars (enum mode *modep)
584 break;
585 }
586
587+#if __OPTION_EGLIBC_RTLD_DEBUG
588 /* Where to place the profiling data file. */
589 if (memcmp (envline, "DEBUG_OUTPUT", 12) == 0)
590 {
591 debug_output = &envline[13];
592 break;
593 }
594-
595+#endif
596 if (!__libc_enable_secure
597 && memcmp (envline, "DYNAMIC_WEAK", 12) == 0)
598 GLRO(dl_dynamic_weak) = 1;
599@@ -2490,7 +2497,9 @@ process_envvars (enum mode *modep)
554 { 600 {
555 mode = trace; 601 mode = trace;
556 GLRO(dl_verbose) = 1; 602 GLRO(dl_verbose) = 1;
@@ -560,7 +606,7 @@ Index: git/elf/rtld.c
560 GLRO(dl_trace_prelink) = &envline[17]; 606 GLRO(dl_trace_prelink) = &envline[17];
561 } 607 }
562 break; 608 break;
563@@ -2537,12 +2544,15 @@ 609@@ -2537,12 +2546,15 @@ process_envvars (enum mode *modep)
564 if (__access ("/etc/suid-debug", F_OK) != 0) 610 if (__access ("/etc/suid-debug", F_OK) != 0)
565 { 611 {
566 unsetenv ("MALLOC_CHECK_"); 612 unsetenv ("MALLOC_CHECK_");
@@ -576,7 +622,7 @@ Index: git/elf/rtld.c
576 /* If we have to run the dynamic linker in debugging mode and the 622 /* If we have to run the dynamic linker in debugging mode and the
577 LD_DEBUG_OUTPUT environment variable is given, we write the debug 623 LD_DEBUG_OUTPUT environment variable is given, we write the debug
578 messages to this file. */ 624 messages to this file. */
579@@ -2567,6 +2577,7 @@ 625@@ -2567,6 +2579,7 @@ process_envvars (enum mode *modep)
580 /* We use standard output if opening the file failed. */ 626 /* We use standard output if opening the file failed. */
581 GLRO(dl_debug_fd) = STDOUT_FILENO; 627 GLRO(dl_debug_fd) = STDOUT_FILENO;
582 } 628 }
@@ -586,9 +632,9 @@ Index: git/elf/rtld.c
586 632
587Index: git/extra-lib.mk 633Index: git/extra-lib.mk
588=================================================================== 634===================================================================
589--- git.orig/extra-lib.mk 2014-08-29 20:00:46.544070587 -0700 635--- git.orig/extra-lib.mk
590+++ git/extra-lib.mk 2014-08-29 20:01:15.196070587 -0700 636+++ git/extra-lib.mk
591@@ -25,7 +25,9 @@ 637@@ -25,7 +25,9 @@ install-lib := $(install-lib)
592 extra-objs := $(extra-objs) 638 extra-objs := $(extra-objs)
593 639
594 # The modules that go in $(lib). 640 # The modules that go in $(lib).
@@ -599,7 +645,7 @@ Index: git/extra-lib.mk
599 645
600 # Add each flavor of library to the lists of things to build and install. 646 # Add each flavor of library to the lists of things to build and install.
601 install-lib += $(foreach o,$(object-suffixes-$(lib)),$(lib:lib%=$(libtype$o))) 647 install-lib += $(foreach o,$(object-suffixes-$(lib)),$(lib:lib%=$(libtype$o)))
602@@ -101,7 +103,7 @@ 648@@ -101,7 +103,7 @@ endif
603 endif 649 endif
604 650
605 # This will define `libof-ROUTINE := LIB' for each of the routines. 651 # This will define `libof-ROUTINE := LIB' for each of the routines.
@@ -610,8 +656,8 @@ Index: git/extra-lib.mk
610 endif 656 endif
611Index: git/grp/Makefile 657Index: git/grp/Makefile
612=================================================================== 658===================================================================
613--- git.orig/grp/Makefile 2014-08-29 20:00:46.556070587 -0700 659--- git.orig/grp/Makefile
614+++ git/grp/Makefile 2014-08-29 20:01:15.196070587 -0700 660+++ git/grp/Makefile
615@@ -18,6 +18,8 @@ 661@@ -18,6 +18,8 @@
616 # 662 #
617 # Sub-makefile for grp portion of the library. 663 # Sub-makefile for grp portion of the library.
@@ -621,7 +667,7 @@ Index: git/grp/Makefile
621 subdir := grp 667 subdir := grp
622 668
623 include ../Makeconfig 669 include ../Makeconfig
624@@ -29,6 +31,9 @@ 670@@ -29,6 +31,9 @@ routines := fgetgrent initgroups setgrou
625 getgrent_r getgrgid_r getgrnam_r fgetgrent_r 671 getgrent_r getgrgid_r getgrnam_r fgetgrent_r
626 672
627 tests := testgrp 673 tests := testgrp
@@ -633,8 +679,8 @@ Index: git/grp/Makefile
633 test-srcs := tst_fgetgrent 679 test-srcs := tst_fgetgrent
634Index: git/hesiod/Makefile 680Index: git/hesiod/Makefile
635=================================================================== 681===================================================================
636--- git.orig/hesiod/Makefile 2014-08-29 20:00:46.580070587 -0700 682--- git.orig/hesiod/Makefile
637+++ git/hesiod/Makefile 2014-08-29 20:01:15.196070587 -0700 683+++ git/hesiod/Makefile
638@@ -18,12 +18,14 @@ 684@@ -18,12 +18,14 @@
639 # 685 #
640 # Sub-makefile for hesiod portion of the library. 686 # Sub-makefile for hesiod portion of the library.
@@ -654,8 +700,8 @@ Index: git/hesiod/Makefile
654 vpath %.c nss_hesiod 700 vpath %.c nss_hesiod
655Index: git/iconv/gconv_db.c 701Index: git/iconv/gconv_db.c
656=================================================================== 702===================================================================
657--- git.orig/iconv/gconv_db.c 2014-08-29 20:00:46.604070587 -0700 703--- git.orig/iconv/gconv_db.c
658+++ git/iconv/gconv_db.c 2014-08-29 20:01:15.196070587 -0700 704+++ git/iconv/gconv_db.c
659@@ -25,6 +25,7 @@ 705@@ -25,6 +25,7 @@
660 #include <sys/param.h> 706 #include <sys/param.h>
661 #include <bits/libc-lock.h> 707 #include <bits/libc-lock.h>
@@ -664,7 +710,7 @@ Index: git/iconv/gconv_db.c
664 710
665 #include <dlfcn.h> 711 #include <dlfcn.h>
666 #include <gconv_int.h> 712 #include <gconv_int.h>
667@@ -828,9 +829,11 @@ 713@@ -828,9 +829,11 @@ free_modules_db (struct gconv_module *no
668 /* Free all resources if necessary. */ 714 /* Free all resources if necessary. */
669 libc_freeres_fn (free_mem) 715 libc_freeres_fn (free_mem)
670 { 716 {
@@ -678,8 +724,8 @@ Index: git/iconv/gconv_db.c
678 extern void _nl_finddomain_subfreeres (void) attribute_hidden; 724 extern void _nl_finddomain_subfreeres (void) attribute_hidden;
679Index: git/iconv/gconv_trans.c 725Index: git/iconv/gconv_trans.c
680=================================================================== 726===================================================================
681--- git.orig/iconv/gconv_trans.c 2014-08-29 20:00:46.612070587 -0700 727--- git.orig/iconv/gconv_trans.c
682+++ git/iconv/gconv_trans.c 2014-08-29 20:01:15.196070587 -0700 728+++ git/iconv/gconv_trans.c
683@@ -23,6 +23,7 @@ 729@@ -23,6 +23,7 @@
684 #include <stdint.h> 730 #include <stdint.h>
685 #include <string.h> 731 #include <string.h>
@@ -688,7 +734,27 @@ Index: git/iconv/gconv_trans.c
688 734
689 #include <bits/libc-lock.h> 735 #include <bits/libc-lock.h>
690 #include "gconv_int.h" 736 #include "gconv_int.h"
691@@ -59,6 +60,7 @@ 737@@ -38,15 +39,19 @@ __gconv_transliterate (struct __gconv_st
738 unsigned char **outbufstart, size_t *irreversible)
739 {
740 /* Find out about the locale's transliteration. */
741+#if __OPTION_EGLIBC_LOCALE_CODE
742 uint_fast32_t size;
743 const uint32_t *from_idx;
744 const uint32_t *from_tbl;
745 const uint32_t *to_idx;
746 const uint32_t *to_tbl;
747+#endif
748 const uint32_t *winbuf;
749 const uint32_t *winbufend;
750+#if __OPTION_EGLIBC_LOCALE_CODE
751 uint_fast32_t low;
752 uint_fast32_t high;
753+#endif
754
755 /* The input buffer. There are actually 4-byte values. */
756 winbuf = (const uint32_t *) *inbufp;
757@@ -58,6 +63,7 @@ __gconv_transliterate (struct __gconv_st
692 PTR_DEMANGLE (fct); 758 PTR_DEMANGLE (fct);
693 #endif 759 #endif
694 760
@@ -696,7 +762,7 @@ Index: git/iconv/gconv_trans.c
696 /* If there is no transliteration information in the locale don't do 762 /* If there is no transliteration information in the locale don't do
697 anything and return the error. */ 763 anything and return the error. */
698 size = _NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_TRANSLIT_TAB_SIZE); 764 size = _NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_TRANSLIT_TAB_SIZE);
699@@ -194,6 +196,7 @@ 765@@ -193,6 +199,7 @@ __gconv_transliterate (struct __gconv_st
700 sorted. */ 766 sorted. */
701 break; 767 break;
702 } 768 }
@@ -706,8 +772,8 @@ Index: git/iconv/gconv_trans.c
706 if (_NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_TRANSLIT_DEFAULT_MISSING_LEN) != 0) 772 if (_NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_TRANSLIT_DEFAULT_MISSING_LEN) != 0)
707Index: git/iconv/iconv_prog.c 773Index: git/iconv/iconv_prog.c
708=================================================================== 774===================================================================
709--- git.orig/iconv/iconv_prog.c 2014-08-29 20:00:46.612070587 -0700 775--- git.orig/iconv/iconv_prog.c
710+++ git/iconv/iconv_prog.c 2014-08-29 20:01:15.196070587 -0700 776+++ git/iconv/iconv_prog.c
711@@ -35,6 +35,7 @@ 777@@ -35,6 +35,7 @@
712 #ifdef _POSIX_MAPPED_FILES 778 #ifdef _POSIX_MAPPED_FILES
713 # include <sys/mman.h> 779 # include <sys/mman.h>
@@ -716,7 +782,7 @@ Index: git/iconv/iconv_prog.c
716 #include <charmap.h> 782 #include <charmap.h>
717 #include <gconv_int.h> 783 #include <gconv_int.h>
718 #include "iconv_prog.h" 784 #include "iconv_prog.h"
719@@ -221,10 +222,17 @@ 785@@ -221,10 +222,17 @@ main (int argc, char *argv[])
720 bool to_wrong = 786 bool to_wrong =
721 (iconv_open (to_code, "UTF-8") == (iconv_t) -1 787 (iconv_open (to_code, "UTF-8") == (iconv_t) -1
722 && errno == EINVAL); 788 && errno == EINVAL);
@@ -736,8 +802,8 @@ Index: git/iconv/iconv_prog.c
736 { 802 {
737Index: git/iconv/Makefile 803Index: git/iconv/Makefile
738=================================================================== 804===================================================================
739--- git.orig/iconv/Makefile 2014-08-29 20:00:46.600070587 -0700 805--- git.orig/iconv/Makefile
740+++ git/iconv/Makefile 2014-08-29 20:01:15.196070587 -0700 806+++ git/iconv/Makefile
741@@ -18,6 +18,8 @@ 807@@ -18,6 +18,8 @@
742 # 808 #
743 # Makefile for iconv. 809 # Makefile for iconv.
@@ -747,20 +813,22 @@ Index: git/iconv/Makefile
747 subdir := iconv 813 subdir := iconv
748 814
749 include ../Makeconfig 815 include ../Makeconfig
750@@ -57,6 +59,9 @@ 816@@ -39,6 +41,11 @@ CFLAGS-iconv_charmap.c = -I../locale/pro
751 CPPFLAGS-strtab = -DNOT_IN_libc 817 CFLAGS-dummy-repertoire.c = -I../locale/programs
752 CPPFLAGS-charmap = -DNOT_IN_libc 818 CFLAGS-charmap.c = -DCHARMAP_PATH='"$(i18ndir)/charmaps"' \
753 CPPFLAGS-charmap-dir = -DNOT_IN_libc 819 -DDEFAULT_CHARMAP=null_pointer -DNEED_NULL_POINTER
820+
754+ifneq (y,$(OPTION_EGLIBC_SPAWN)) 821+ifneq (y,$(OPTION_EGLIBC_SPAWN))
755+CPPFLAGS-charmap-dir.c += -DNO_UNCOMPRESS 822+CFLAGS-charmap-dir.c += -DNO_UNCOMPRESS
756+endif 823+endif
824+
825 CFLAGS-linereader.c = -DNO_TRANSLITERATION
826 CFLAGS-simple-hash.c = -I../locale
757 827
758 ifeq ($(run-built-tests),yes)
759 xtests-special += $(objpfx)test-iconvconfig.out
760Index: git/iconvdata/Makefile 828Index: git/iconvdata/Makefile
761=================================================================== 829===================================================================
762--- git.orig/iconvdata/Makefile 2014-08-29 20:00:46.628070587 -0700 830--- git.orig/iconvdata/Makefile
763+++ git/iconvdata/Makefile 2014-08-29 20:01:15.196070587 -0700 831+++ git/iconvdata/Makefile
764@@ -18,12 +18,15 @@ 832@@ -18,12 +18,15 @@
765 # 833 #
766 # Makefile for iconv data and code. 834 # Makefile for iconv data and code.
@@ -778,7 +846,7 @@ Index: git/iconvdata/Makefile
778 ISO8859-6 ISO8859-7 ISO8859-8 ISO8859-9 ISO8859-10 \ 846 ISO8859-6 ISO8859-7 ISO8859-8 ISO8859-9 ISO8859-10 \
779 ISO8859-11 ISO8859-13 ISO8859-14 ISO8859-15 ISO8859-16 \ 847 ISO8859-11 ISO8859-13 ISO8859-14 ISO8859-15 ISO8859-16 \
780 T.61 ISO_6937 SJIS KOI-8 HP-ROMAN8 HP-ROMAN9 EBCDIC-AT-DE \ 848 T.61 ISO_6937 SJIS KOI-8 HP-ROMAN8 HP-ROMAN9 EBCDIC-AT-DE \
781@@ -63,11 +66,13 @@ 849@@ -63,11 +66,13 @@ modules := ISO8859-1 ISO8859-2 ISO8859-3
782 MAC-CENTRALEUROPE KOI8-RU ISO8859-9E \ 850 MAC-CENTRALEUROPE KOI8-RU ISO8859-9E \
783 CP770 CP771 CP772 CP773 CP774 851 CP770 CP771 CP772 CP773 CP774
784 852
@@ -794,7 +862,7 @@ Index: git/iconvdata/Makefile
794 ifeq ($(have-thread-library),yes) 862 ifeq ($(have-thread-library),yes)
795 tests += bug-iconv3 863 tests += bug-iconv3
796 endif 864 endif
797@@ -130,13 +135,13 @@ 865@@ -127,13 +132,13 @@ ifeq (yes,$(build-shared))
798 # Rule to generate the shared objects. 866 # Rule to generate the shared objects.
799 charmaps = ../localedata/charmaps 867 charmaps = ../localedata/charmaps
800 -include $(objpfx)iconv-rules 868 -include $(objpfx)iconv-rules
@@ -811,7 +879,7 @@ Index: git/iconvdata/Makefile
811 879
812 # We can build the conversion tables for numerous charsets automatically. 880 # We can build the conversion tables for numerous charsets automatically.
813 881
814@@ -204,7 +209,7 @@ 882@@ -201,7 +206,7 @@ before-compile += $(addprefix $(objpfx),
815 ifndef avoid-generated 883 ifndef avoid-generated
816 $(objpfx)iconv-rules: Makefile 884 $(objpfx)iconv-rules: Makefile
817 $(make-target-directory) 885 $(make-target-directory)
@@ -820,7 +888,7 @@ Index: git/iconvdata/Makefile
820 echo 8bit $(gen-8bit-modules); \ 888 echo 8bit $(gen-8bit-modules); \
821 echo 8bit-gap $(gen-8bit-gap-modules); } | \ 889 echo 8bit-gap $(gen-8bit-gap-modules); } | \
822 LC_ALL=C \ 890 LC_ALL=C \
823@@ -247,7 +252,7 @@ 891@@ -245,7 +250,7 @@ $(addprefix $(inst_gconvdir)/, $(modules
824 $(do-install-program) 892 $(do-install-program)
825 $(inst_gconvdir)/gconv-modules: gconv-modules $(+force) 893 $(inst_gconvdir)/gconv-modules: gconv-modules $(+force)
826 $(do-install) 894 $(do-install)
@@ -829,7 +897,7 @@ Index: git/iconvdata/Makefile
829 # Update the $(prefix)/lib/gconv/gconv-modules.cache file. This is necessary 897 # Update the $(prefix)/lib/gconv/gconv-modules.cache file. This is necessary
830 # if this libc has more gconv modules than the previously installed one. 898 # if this libc has more gconv modules than the previously installed one.
831 if test -f "$(inst_gconvdir)/gconv-modules.cache"; then \ 899 if test -f "$(inst_gconvdir)/gconv-modules.cache"; then \
832@@ -256,9 +261,9 @@ 900@@ -254,9 +259,9 @@ ifeq (no,$(cross-compiling))
833 $(common-objpfx)iconv/iconvconfig \ 901 $(common-objpfx)iconv/iconvconfig \
834 $(addprefix --prefix=,$(install_root)); \ 902 $(addprefix --prefix=,$(install_root)); \
835 fi 903 fi
@@ -844,9 +912,9 @@ Index: git/iconvdata/Makefile
844 912
845Index: git/include/netdb.h 913Index: git/include/netdb.h
846=================================================================== 914===================================================================
847--- git.orig/include/netdb.h 2014-08-29 20:00:47.152070587 -0700 915--- git.orig/include/netdb.h
848+++ git/include/netdb.h 2014-08-29 20:01:15.196070587 -0700 916+++ git/include/netdb.h
849@@ -232,6 +232,10 @@ 917@@ -232,6 +232,10 @@ extern enum nss_status _nss_ ## service
850 (const char *name, int af, struct hostent *host, \ 918 (const char *name, int af, struct hostent *host, \
851 char *buffer, size_t buflen, int *errnop, \ 919 char *buffer, size_t buflen, int *errnop, \
852 int *h_errnop); \ 920 int *h_errnop); \
@@ -859,8 +927,8 @@ Index: git/include/netdb.h
859 size_t buflen, int *errnop, int *h_errnop); \ 927 size_t buflen, int *errnop, int *h_errnop); \
860Index: git/inet/Makefile 928Index: git/inet/Makefile
861=================================================================== 929===================================================================
862--- git.orig/inet/Makefile 2014-08-29 20:00:47.176070587 -0700 930--- git.orig/inet/Makefile
863+++ git/inet/Makefile 2014-08-29 20:01:15.200070587 -0700 931+++ git/inet/Makefile
864@@ -18,6 +18,8 @@ 932@@ -18,6 +18,8 @@
865 # 933 #
866 # Sub-makefile for inet portion of the library. 934 # Sub-makefile for inet portion of the library.
@@ -870,7 +938,7 @@ Index: git/inet/Makefile
870 subdir := inet 938 subdir := inet
871 939
872 include ../Makeconfig 940 include ../Makeconfig
873@@ -27,7 +29,8 @@ 941@@ -27,7 +29,8 @@ headers := netinet/ether.h netinet/in.h
874 netinet/tcp.h netinet/ip.h $(wildcard arpa/*.h protocols/*.h) \ 942 netinet/tcp.h netinet/ip.h $(wildcard arpa/*.h protocols/*.h) \
875 aliases.h ifaddrs.h netinet/ip6.h netinet/icmp6.h bits/in.h 943 aliases.h ifaddrs.h netinet/ip6.h netinet/icmp6.h bits/in.h
876 944
@@ -880,7 +948,7 @@ Index: git/inet/Makefile
880 inet_lnaof inet_mkadr \ 948 inet_lnaof inet_mkadr \
881 inet_netof inet_ntoa inet_net herrno herrno-loc \ 949 inet_netof inet_ntoa inet_net herrno herrno-loc \
882 gethstbyad gethstbyad_r gethstbynm gethstbynm2 gethstbynm2_r \ 950 gethstbyad gethstbyad_r gethstbynm gethstbynm2 gethstbynm2_r \
883@@ -41,18 +44,23 @@ 951@@ -41,18 +44,23 @@ routines := htonl htons \
884 getrpcent_r getrpcbyname_r getrpcbynumber_r \ 952 getrpcent_r getrpcbyname_r getrpcbynumber_r \
885 ether_aton ether_aton_r ether_hton ether_line \ 953 ether_aton ether_aton_r ether_hton ether_line \
886 ether_ntoa ether_ntoa_r ether_ntoh \ 954 ether_ntoa ether_ntoa_r ether_ntoh \
@@ -912,89 +980,112 @@ Index: git/inet/Makefile
912 980
913Index: git/intl/dcigettext.c 981Index: git/intl/dcigettext.c
914=================================================================== 982===================================================================
915--- git.orig/intl/dcigettext.c 2014-08-29 20:00:47.224070587 -0700 983--- git.orig/intl/dcigettext.c
916+++ git/intl/dcigettext.c 2014-08-29 20:01:15.200070587 -0700 984+++ git/intl/dcigettext.c
917@@ -77,6 +77,10 @@ 985@@ -100,11 +100,15 @@ extern int errno;
986 # include "libgnuintl.h"
918 #endif 987 #endif
919 #include "hash-string.h" 988 #include "hash-string.h"
920
921+#ifdef _LIBC 989+#ifdef _LIBC
922+# include <gnu/option-groups.h> 990+# include <gnu/option-groups.h>
923+#endif 991+#endif
924+ 992
925 /* Thread safetyness. */ 993 /* Handle multi-threaded applications. */
926 #ifdef _LIBC 994 #ifdef _LIBC
927 # include <bits/libc-lock.h> 995 # include <bits/libc-lock.h>
928@@ -449,9 +453,11 @@ 996 # define gl_rwlock_define_initialized __libc_rwlock_define_initialized
929 #endif 997+# define gl_rwlock_define __libc_rwlock_define
998 # define gl_rwlock_rdlock __libc_rwlock_rdlock
999 # define gl_rwlock_wrlock __libc_rwlock_wrlock
1000 # define gl_rwlock_unlock __libc_rwlock_unlock
1001@@ -523,8 +527,10 @@ DCIGETTEXT (const char *domainname, cons
1002 saved_errno = errno;
930 1003
931 #ifdef _LIBC 1004 #ifdef _LIBC
932+#if __OPTION_EGLIBC_LOCALE_CODE 1005- __libc_rwlock_define (extern, __libc_setlocale_lock attribute_hidden)
933 __libc_rwlock_define (extern, __libc_setlocale_lock attribute_hidden) 1006- __libc_rwlock_rdlock (__libc_setlocale_lock);
934 __libc_rwlock_rdlock (__libc_setlocale_lock); 1007+# if __OPTION_EGLIBC_LOCALE_CODE
1008+ gl_rwlock_define (extern, __libc_setlocale_lock attribute_hidden)
1009+ gl_rwlock_rdlock (__libc_setlocale_lock);
1010+# endif
935 #endif 1011 #endif
936+#endif
937
938 __libc_rwlock_rdlock (_nl_state_lock);
939 1012
940@@ -470,7 +476,11 @@ 1013 gl_rwlock_rdlock (_nl_state_lock);
941 search.category = category; 1014@@ -550,7 +556,11 @@ DCIGETTEXT (const char *domainname, cons
942 # ifdef HAVE_PER_THREAD_LOCALE 1015 #ifdef HAVE_PER_THREAD_LOCALE
1016 # ifndef IN_LIBGLOCALE
943 # ifdef _LIBC 1017 # ifdef _LIBC
1018- localename = strdupa (__current_locale_name (category));
944+# if __OPTION_EGLIBC_LOCALE_CODE 1019+# if __OPTION_EGLIBC_LOCALE_CODE
945 localename = strdupa (__current_locale_name (category)); 1020+ localename = strdupa (__current_locale_name (category));
946+# else 1021+# else
947+ localename = "C"; 1022+ localename = "C";
948+# endif 1023+# endif
949 # endif 1024 # else
950 search.localename = localename; 1025 categoryname = category_to_name (category);
951 # endif 1026 # define CATEGORYNAME_INITIALIZED
952@@ -494,7 +504,9 @@ 1027@@ -581,10 +591,12 @@ DCIGETTEXT (const char *domainname, cons
1028 else
953 retval = (char *) (*foundp)->translation; 1029 retval = (char *) (*foundp)->translation;
954 1030
1031- gl_rwlock_unlock (_nl_state_lock);
955 # ifdef _LIBC 1032 # ifdef _LIBC
956+#if __OPTION_EGLIBC_LOCALE_CODE 1033- __libc_rwlock_unlock (__libc_setlocale_lock);
957 __libc_rwlock_unlock (__libc_setlocale_lock); 1034+# if __OPTION_EGLIBC_LOCALE_CODE
958+#endif 1035+ gl_rwlock_unlock (__libc_setlocale_lock);
1036+# endif
959 # endif 1037 # endif
960 __libc_rwlock_unlock (_nl_state_lock); 1038+ gl_rwlock_unlock (_nl_state_lock);
1039 __set_errno (saved_errno);
961 return retval; 1040 return retval;
962@@ -611,7 +623,9 @@ 1041 }
963 { 1042@@ -838,10 +850,13 @@ DCIGETTEXT (const char *domainname, cons
964 no_translation:
965 FREE_BLOCKS (block_list);
966+#if __OPTION_EGLIBC_LOCALE_CODE
967 __libc_rwlock_unlock (__libc_setlocale_lock);
968+#endif
969 __libc_rwlock_unlock (_nl_state_lock);
970 __set_errno (saved_errno);
971 return (plural == 0
972@@ -730,7 +744,9 @@
973 if (plural) 1043 if (plural)
974 retval = plural_lookup (domain, n, retval, retlen); 1044 retval = plural_lookup (domain, n, retval, retlen);
975 1045
976+#if __OPTION_EGLIBC_LOCALE_CODE 1046- gl_rwlock_unlock (_nl_state_lock);
977 __libc_rwlock_unlock (__libc_setlocale_lock); 1047 #ifdef _LIBC
978+#endif 1048- __libc_rwlock_unlock (__libc_setlocale_lock);
979 __libc_rwlock_unlock (_nl_state_lock); 1049+# if __OPTION_EGLIBC_LOCALE_CODE
1050+
1051+ gl_rwlock_unlock (__libc_setlocale_lock);
1052+# endif
1053 #endif
1054+ gl_rwlock_unlock (_nl_state_lock);
980 return retval; 1055 return retval;
981 } 1056 }
982@@ -1361,7 +1377,11 @@ 1057 }
983 `LC_xxx', and `LANG'. On some systems this can be done by the 1058@@ -850,10 +865,12 @@ DCIGETTEXT (const char *domainname, cons
984 `setlocale' function itself. */ 1059 return_untranslated:
1060 /* Return the untranslated MSGID. */
1061 FREE_BLOCKS (block_list);
1062- gl_rwlock_unlock (_nl_state_lock);
985 #ifdef _LIBC 1063 #ifdef _LIBC
1064- __libc_rwlock_unlock (__libc_setlocale_lock);
986+# if __OPTION_EGLIBC_LOCALE_CODE 1065+# if __OPTION_EGLIBC_LOCALE_CODE
987 retval = __current_locale_name (category); 1066+ gl_rwlock_unlock (__libc_setlocale_lock);
988+# else
989+ retval = "C";
990+# endif 1067+# endif
991 #else
992 retval = _nl_locale_name (category, categoryname);
993 #endif 1068 #endif
1069+ gl_rwlock_unlock (_nl_state_lock);
1070 #ifndef _LIBC
1071 if (!ENABLE_SECURE)
1072 {
1073@@ -1550,7 +1567,11 @@ guess_category_value (int category, cons
1074 `LC_xxx', and `LANG'. On some systems this can be done by the
1075 `setlocale' function itself. */
1076 # ifdef _LIBC
1077+# if __OPTION_EGLIBC_LOCALE_CODE
1078 locale = __current_locale_name (category);
1079+# else
1080+ locale = "C";
1081+# endif
1082 # else
1083 locale_defaulted = 0;
1084 # if HAVE_USELOCALE
994Index: git/intl/Makefile 1085Index: git/intl/Makefile
995=================================================================== 1086===================================================================
996--- git.orig/intl/Makefile 2014-08-29 20:00:47.220070587 -0700 1087--- git.orig/intl/Makefile
997+++ git/intl/Makefile 2014-08-29 20:01:15.200070587 -0700 1088+++ git/intl/Makefile
998@@ -16,6 +16,7 @@ 1089@@ -16,6 +16,7 @@
999 # <http://www.gnu.org/licenses/>. 1090 # <http://www.gnu.org/licenses/>.
1000 1091
@@ -1003,7 +1094,7 @@ Index: git/intl/Makefile
1003 1094
1004 subdir = intl 1095 subdir = intl
1005 1096
1006@@ -48,7 +49,7 @@ 1097@@ -48,7 +49,7 @@ endif
1007 $(objpfx)plural.o: plural.c 1098 $(objpfx)plural.o: plural.c
1008 1099
1009 ifeq ($(run-built-tests),yes) 1100 ifeq ($(run-built-tests),yes)
@@ -1014,8 +1105,8 @@ Index: git/intl/Makefile
1014 $(objpfx)tst-gettext2.out $(objpfx)tst-codeset.out \ 1105 $(objpfx)tst-gettext2.out $(objpfx)tst-codeset.out \
1015Index: git/io/Makefile 1106Index: git/io/Makefile
1016=================================================================== 1107===================================================================
1017--- git.orig/io/Makefile 2014-08-29 20:00:47.244070587 -0700 1108--- git.orig/io/Makefile
1018+++ git/io/Makefile 2014-08-29 20:01:15.200070587 -0700 1109+++ git/io/Makefile
1019@@ -18,6 +18,8 @@ 1110@@ -18,6 +18,8 @@
1020 # 1111 #
1021 # Sub-makefile for I/O portion of the library. 1112 # Sub-makefile for I/O portion of the library.
@@ -1025,7 +1116,7 @@ Index: git/io/Makefile
1025 subdir := io 1116 subdir := io
1026 1117
1027 include ../Makeconfig 1118 include ../Makeconfig
1028@@ -36,7 +38,7 @@ 1119@@ -36,7 +38,7 @@ routines := \
1029 fxstatat fxstatat64 \ 1120 fxstatat fxstatat64 \
1030 statfs fstatfs statfs64 fstatfs64 \ 1121 statfs fstatfs statfs64 fstatfs64 \
1031 statvfs fstatvfs statvfs64 fstatvfs64 \ 1122 statvfs fstatvfs statvfs64 fstatvfs64 \
@@ -1034,7 +1125,7 @@ Index: git/io/Makefile
1034 mkdir mkdirat \ 1125 mkdir mkdirat \
1035 open open_2 open64 open64_2 openat openat_2 openat64 openat64_2 \ 1126 open open_2 open64 open64_2 openat openat_2 openat64 openat64_2 \
1036 read write lseek lseek64 access euidaccess faccessat \ 1127 read write lseek lseek64 access euidaccess faccessat \
1037@@ -49,11 +51,13 @@ 1128@@ -49,11 +51,13 @@ routines := \
1038 ttyname ttyname_r isatty \ 1129 ttyname ttyname_r isatty \
1039 link linkat symlink symlinkat readlink readlinkat \ 1130 link linkat symlink symlinkat readlink readlinkat \
1040 unlink unlinkat rmdir \ 1131 unlink unlinkat rmdir \
@@ -1049,7 +1140,7 @@ Index: git/io/Makefile
1049 1140
1050 aux := have_o_cloexec 1141 aux := have_o_cloexec
1051 1142
1052@@ -64,18 +68,22 @@ 1143@@ -64,18 +68,22 @@ static-only-routines = stat fstat lstat
1053 fstatat fstatat64 mknod mknodat 1144 fstatat fstatat64 mknod mknodat
1054 1145
1055 others := pwd 1146 others := pwd
@@ -1077,8 +1168,8 @@ Index: git/io/Makefile
1077 1168
1078Index: git/libidn/Makefile 1169Index: git/libidn/Makefile
1079=================================================================== 1170===================================================================
1080--- git.orig/libidn/Makefile 2014-08-29 20:00:47.316070587 -0700 1171--- git.orig/libidn/Makefile
1081+++ git/libidn/Makefile 2014-08-29 20:01:15.200070587 -0700 1172+++ git/libidn/Makefile
1082@@ -16,6 +16,7 @@ 1173@@ -16,6 +16,7 @@
1083 # <http://www.gnu.org/licenses/>. 1174 # <http://www.gnu.org/licenses/>.
1084 1175
@@ -1087,7 +1178,7 @@ Index: git/libidn/Makefile
1087 1178
1088 subdir := libidn 1179 subdir := libidn
1089 1180
1090@@ -23,8 +24,8 @@ 1181@@ -23,8 +24,8 @@ include ../Makeconfig
1091 1182
1092 routines = idn-stub 1183 routines = idn-stub
1093 1184
@@ -1100,8 +1191,8 @@ Index: git/libidn/Makefile
1100 iconvme 1191 iconvme
1101Index: git/libidn/toutf8.c 1192Index: git/libidn/toutf8.c
1102=================================================================== 1193===================================================================
1103--- git.orig/libidn/toutf8.c 2014-08-29 20:00:47.332070587 -0700 1194--- git.orig/libidn/toutf8.c
1104+++ git/libidn/toutf8.c 2014-08-29 20:01:15.200070587 -0700 1195+++ git/libidn/toutf8.c
1105@@ -33,6 +33,11 @@ 1196@@ -33,6 +33,11 @@
1106 /* Get strlen. */ 1197 /* Get strlen. */
1107 #include <string.h> 1198 #include <string.h>
@@ -1129,8 +1220,8 @@ Index: git/libidn/toutf8.c
1129 * stringprep_locale_charset - return charset used in current locale 1220 * stringprep_locale_charset - return charset used in current locale
1130Index: git/libio/fileops.c 1221Index: git/libio/fileops.c
1131=================================================================== 1222===================================================================
1132--- git.orig/libio/fileops.c 2014-08-29 20:00:47.352070587 -0700 1223--- git.orig/libio/fileops.c
1133+++ git/libio/fileops.c 2014-08-29 20:01:15.200070587 -0700 1224+++ git/libio/fileops.c
1134@@ -38,6 +38,7 @@ 1225@@ -38,6 +38,7 @@
1135 #include <string.h> 1226 #include <string.h>
1136 #include <errno.h> 1227 #include <errno.h>
@@ -1139,7 +1230,7 @@ Index: git/libio/fileops.c
1139 #include <stdlib.h> 1230 #include <stdlib.h>
1140 #if _LIBC 1231 #if _LIBC
1141 # include "../wcsmbs/wcsmbsload.h" 1232 # include "../wcsmbs/wcsmbsload.h"
1142@@ -174,7 +175,7 @@ 1233@@ -172,7 +173,7 @@ _IO_new_file_close_it (_IO_FILE *fp)
1143 1234
1144 /* Free buffer. */ 1235 /* Free buffer. */
1145 #if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T 1236 #if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T
@@ -1148,7 +1239,7 @@ Index: git/libio/fileops.c
1148 { 1239 {
1149 if (_IO_have_wbackup (fp)) 1240 if (_IO_have_wbackup (fp))
1150 _IO_free_wbackup_area (fp); 1241 _IO_free_wbackup_area (fp);
1151@@ -359,6 +360,7 @@ 1242@@ -347,6 +348,7 @@ _IO_new_file_fopen (_IO_FILE *fp, const
1152 cs = strstr (last_recognized + 1, ",ccs="); 1243 cs = strstr (last_recognized + 1, ",ccs=");
1153 if (cs != NULL) 1244 if (cs != NULL)
1154 { 1245 {
@@ -1156,7 +1247,7 @@ Index: git/libio/fileops.c
1156 /* Yep. Load the appropriate conversions and set the orientation 1247 /* Yep. Load the appropriate conversions and set the orientation
1157 to wide. */ 1248 to wide. */
1158 struct gconv_fcts fcts; 1249 struct gconv_fcts fcts;
1159@@ -423,6 +425,12 @@ 1250@@ -406,6 +408,12 @@ _IO_new_file_fopen (_IO_FILE *fp, const
1160 1251
1161 /* Set the mode now. */ 1252 /* Set the mode now. */
1162 result->_mode = 1; 1253 result->_mode = 1;
@@ -1171,8 +1262,8 @@ Index: git/libio/fileops.c
1171 1262
1172Index: git/libio/__fpurge.c 1263Index: git/libio/__fpurge.c
1173=================================================================== 1264===================================================================
1174--- git.orig/libio/__fpurge.c 2014-08-29 20:00:47.336070587 -0700 1265--- git.orig/libio/__fpurge.c
1175+++ git/libio/__fpurge.c 2014-08-29 20:01:15.200070587 -0700 1266+++ git/libio/__fpurge.c
1176@@ -21,7 +21,7 @@ 1267@@ -21,7 +21,7 @@
1177 void 1268 void
1178 __fpurge (FILE *fp) 1269 __fpurge (FILE *fp)
@@ -1184,8 +1275,8 @@ Index: git/libio/__fpurge.c
1184 if (_IO_in_backup (fp)) 1275 if (_IO_in_backup (fp))
1185Index: git/libio/iofwide.c 1276Index: git/libio/iofwide.c
1186=================================================================== 1277===================================================================
1187--- git.orig/libio/iofwide.c 2014-08-29 20:00:47.360070587 -0700 1278--- git.orig/libio/iofwide.c
1188+++ git/libio/iofwide.c 2014-08-29 20:01:15.200070587 -0700 1279+++ git/libio/iofwide.c
1189@@ -26,6 +26,7 @@ 1280@@ -26,6 +26,7 @@
1190 1281
1191 #include <libioP.h> 1282 #include <libioP.h>
@@ -1203,7 +1294,7 @@ Index: git/libio/iofwide.c
1203 /* Prototypes of libio's codecvt functions. */ 1294 /* Prototypes of libio's codecvt functions. */
1204 static enum __codecvt_result do_out (struct _IO_codecvt *codecvt, 1295 static enum __codecvt_result do_out (struct _IO_codecvt *codecvt,
1205 __mbstate_t *statep, 1296 __mbstate_t *statep,
1206@@ -513,3 +516,26 @@ 1297@@ -499,3 +502,26 @@ do_max_length (struct _IO_codecvt *codec
1207 return MB_CUR_MAX; 1298 return MB_CUR_MAX;
1208 #endif 1299 #endif
1209 } 1300 }
@@ -1232,9 +1323,9 @@ Index: git/libio/iofwide.c
1232+#endif 1323+#endif
1233Index: git/libio/ioseekoff.c 1324Index: git/libio/ioseekoff.c
1234=================================================================== 1325===================================================================
1235--- git.orig/libio/ioseekoff.c 2014-08-29 20:00:47.364070587 -0700 1326--- git.orig/libio/ioseekoff.c
1236+++ git/libio/ioseekoff.c 2014-08-29 20:01:15.200070587 -0700 1327+++ git/libio/ioseekoff.c
1237@@ -60,7 +60,7 @@ 1328@@ -60,7 +60,7 @@ _IO_seekoff_unlocked (fp, offset, dir, m
1238 else 1329 else
1239 abort (); 1330 abort ();
1240 } 1331 }
@@ -1245,9 +1336,9 @@ Index: git/libio/ioseekoff.c
1245 _IO_free_wbackup_area (fp); 1336 _IO_free_wbackup_area (fp);
1246Index: git/libio/ioseekpos.c 1337Index: git/libio/ioseekpos.c
1247=================================================================== 1338===================================================================
1248--- git.orig/libio/ioseekpos.c 2014-08-29 20:00:47.364070587 -0700 1339--- git.orig/libio/ioseekpos.c
1249+++ git/libio/ioseekpos.c 2014-08-29 20:01:15.200070587 -0700 1340+++ git/libio/ioseekpos.c
1250@@ -35,7 +35,7 @@ 1341@@ -35,7 +35,7 @@ _IO_seekpos_unlocked (fp, pos, mode)
1251 /* If we have a backup buffer, get rid of it, since the __seekoff 1342 /* If we have a backup buffer, get rid of it, since the __seekoff
1252 callback may not know to do the right thing about it. 1343 callback may not know to do the right thing about it.
1253 This may be over-kill, but it'll do for now. TODO */ 1344 This may be over-kill, but it'll do for now. TODO */
@@ -1258,8 +1349,8 @@ Index: git/libio/ioseekpos.c
1258 _IO_free_backup_area (fp); 1349 _IO_free_backup_area (fp);
1259Index: git/libio/iosetbuffer.c 1350Index: git/libio/iosetbuffer.c
1260=================================================================== 1351===================================================================
1261--- git.orig/libio/iosetbuffer.c 2014-08-29 20:00:47.364070587 -0700 1352--- git.orig/libio/iosetbuffer.c
1262+++ git/libio/iosetbuffer.c 2014-08-29 20:01:15.204070587 -0700 1353+++ git/libio/iosetbuffer.c
1263@@ -24,6 +24,8 @@ 1354@@ -24,6 +24,8 @@
1264 This exception applies to code released by its copyright holders 1355 This exception applies to code released by its copyright holders
1265 in files containing the exception. */ 1356 in files containing the exception. */
@@ -1269,7 +1360,7 @@ Index: git/libio/iosetbuffer.c
1269 #include "libioP.h" 1360 #include "libioP.h"
1270 1361
1271 void 1362 void
1272@@ -38,9 +40,11 @@ 1363@@ -38,9 +40,11 @@ _IO_setbuffer (fp, buf, size)
1273 if (!buf) 1364 if (!buf)
1274 size = 0; 1365 size = 0;
1275 (void) _IO_SETBUF (fp, buf, size); 1366 (void) _IO_SETBUF (fp, buf, size);
@@ -1283,8 +1374,8 @@ Index: git/libio/iosetbuffer.c
1283 libc_hidden_def (_IO_setbuffer) 1374 libc_hidden_def (_IO_setbuffer)
1284Index: git/libio/libioP.h 1375Index: git/libio/libioP.h
1285=================================================================== 1376===================================================================
1286--- git.orig/libio/libioP.h 2014-08-29 20:00:47.372070587 -0700 1377--- git.orig/libio/libioP.h
1287+++ git/libio/libioP.h 2014-08-29 20:01:15.204070587 -0700 1378+++ git/libio/libioP.h
1288@@ -42,6 +42,10 @@ 1379@@ -42,6 +42,10 @@
1289 /*# include <comthread.h>*/ 1380 /*# include <comthread.h>*/
1290 #endif 1381 #endif
@@ -1296,7 +1387,7 @@ Index: git/libio/libioP.h
1296 #include <math_ldbl_opt.h> 1387 #include <math_ldbl_opt.h>
1297 1388
1298 #include "iolibio.h" 1389 #include "iolibio.h"
1299@@ -508,8 +512,20 @@ 1390@@ -508,8 +512,20 @@ extern void _IO_old_init (_IO_FILE *fp,
1300 1391
1301 1392
1302 #if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T 1393 #if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T
@@ -1320,8 +1411,8 @@ Index: git/libio/libioP.h
1320 : _IO_wdo_write(_f, (_f)->_wide_data->_IO_write_base, \ 1411 : _IO_wdo_write(_f, (_f)->_wide_data->_IO_write_base, \
1321Index: git/libio/Makefile 1412Index: git/libio/Makefile
1322=================================================================== 1413===================================================================
1323--- git.orig/libio/Makefile 2014-08-29 20:00:47.332070587 -0700 1414--- git.orig/libio/Makefile
1324+++ git/libio/Makefile 2014-08-29 20:01:15.204070587 -0700 1415+++ git/libio/Makefile
1325@@ -18,6 +18,8 @@ 1416@@ -18,6 +18,8 @@
1326 # 1417 #
1327 # Specific makefile for libio. 1418 # Specific makefile for libio.
@@ -1331,7 +1422,7 @@ Index: git/libio/Makefile
1331 subdir := libio 1422 subdir := libio
1332 1423
1333 include ../Makeconfig 1424 include ../Makeconfig
1334@@ -27,16 +29,13 @@ 1425@@ -27,16 +29,13 @@ headers := stdio.h libio.h _G_config.h b
1335 1426
1336 routines := \ 1427 routines := \
1337 filedoalloc iofclose iofdopen iofflush iofgetpos iofgets iofopen \ 1428 filedoalloc iofclose iofdopen iofflush iofgetpos iofgets iofopen \
@@ -1351,63 +1442,61 @@ Index: git/libio/Makefile
1351 \ 1442 \
1352 clearerr feof ferror fileno fputc freopen fseek getc getchar \ 1443 clearerr feof ferror fileno fputc freopen fseek getc getchar \
1353 memstream pclose putc putchar rewind setbuf setlinebuf vasprintf \ 1444 memstream pclose putc putchar rewind setbuf setlinebuf vasprintf \
1354@@ -47,25 +46,48 @@ 1445@@ -48,24 +47,49 @@ routines := \
1355 __fpurge __fpending __fsetlocking \
1356 \ 1446 \
1357 libc_fatal fmemopen 1447 libc_fatal fmemopen
1358- 1448
1359-tests = tst_swprintf tst_wprintf tst_swscanf tst_wscanf tst_getwc tst_putwc \ 1449-tests = tst_swprintf tst_wprintf tst_swscanf tst_wscanf tst_getwc tst_putwc \
1360- tst_wprintf2 tst-widetext test-fmemopen tst-ext tst-ext2 \ 1450- tst_wprintf2 tst-widetext test-fmemopen tst-ext tst-ext2 \
1361- tst-fgetws tst-ungetwc1 tst-ungetwc2 tst-swscanf tst-sscanf \ 1451- tst-fgetws tst-ungetwc1 tst-ungetwc2 tst-swscanf tst-sscanf \
1362- tst-mmap-setvbuf bug-ungetwc1 bug-ungetwc2 tst-atime tst-eof \ 1452- tst-mmap-setvbuf bug-ungetwc1 bug-ungetwc2 tst-atime tst-eof \
1363- tst-freopen bug-rewind bug-rewind2 bug-ungetc bug-fseek \ 1453- tst-freopen bug-rewind bug-rewind2 bug-ungetc bug-fseek \
1364- tst-mmap-eofsync tst-mmap-fflushsync bug-mmap-fflush \
1365- tst-mmap2-eofsync tst-mmap-offend bug-fopena+ bug-wfflush \
1366- bug-ungetc2 bug-ftell bug-ungetc3 bug-ungetc4 tst-fopenloc2 \
1367- tst-memstream1 tst-memstream2 \
1368- tst-wmemstream1 tst-wmemstream2 \
1369- bug-memstream1 bug-wmemstream1 \
1370- tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos tst-fseek \
1371- tst-fwrite-error tst-ftell-partial-wide tst-ftell-active-handler \
1372- tst-ftell-append
1373+routines-$(OPTION_POSIX_C_LANG_WIDE_CHAR) += \ 1454+routines-$(OPTION_POSIX_C_LANG_WIDE_CHAR) += \
1374+ wfiledoalloc \ 1455+ wfiledoalloc \
1375+ iowpadn \ 1456+ iowpadn \
1376+ swprintf \ 1457+ swprintf \
1377+ vswprintf iovswscanf swscanf wgenops \ 1458+ vswprintf iovswscanf swscanf wgenops \
1378+ wstrops wfileops wmemstream 1459+ wstrops wfileops wmemstream
1379+routines-$(call option-disabled, OPTION_POSIX_C_LANG_WIDE_CHAR) += \ 1460+routines-$(call option-disabled, OPTION_POSIX_C_LANG_WIDE_CHAR) += \
1380+ wdummyfileops 1461+ wdummyfileops
1381+routines-$(OPTION_POSIX_WIDE_CHAR_DEVICE_IO) += \ 1462+routines-$(OPTION_POSIX_WIDE_CHAR_DEVICE_IO) += \
1382+ fputwc fputwc_u getwc getwc_u getwchar getwchar_u iofgetws iofgetws_u \ 1463+ fputwc fputwc_u getwc getwc_u getwchar getwchar_u iofgetws iofgetws_u \
1383+ iofputws iofputws_u iogetwline ioungetwc putwc putwc_u \ 1464+ iofputws iofputws_u iogetwline ioungetwc putwc putwc_u \
1384+ putwchar putwchar_u fwprintf vwprintf \ 1465+ putwchar putwchar_u fwprintf vwprintf \
1385+ wprintf wscanf fwscanf vwscanf \ 1466+ wprintf wscanf fwscanf vwscanf \
1386+ fwide 1467+ fwide
1387+ 1468+
1388+tests = test-fmemopen tst-ext tst-ext2 \ 1469+tests = test-fmemopen tst-ext tst-ext2 \
1389+ tst-mmap-setvbuf tst-atime tst-eof \ 1470+ tst-mmap-setvbuf tst-atime tst-eof \
1390+ tst-freopen bug-ungetc bug-fseek \ 1471+ tst-freopen bug-ungetc bug-fseek \
1391+ tst-mmap-eofsync tst-mmap-fflushsync bug-mmap-fflush \ 1472 tst-mmap-eofsync tst-mmap-fflushsync bug-mmap-fflush \
1392+ tst-mmap2-eofsync tst-mmap-offend bug-fopena+ \ 1473- tst-mmap2-eofsync tst-mmap-offend bug-fopena+ bug-wfflush \
1393+ bug-ungetc2 bug-ungetc3 bug-ungetc4 \ 1474- bug-ungetc2 bug-ftell bug-ungetc3 bug-ungetc4 tst-fopenloc2 \
1394+ tst-memstream1 tst-memstream2 \ 1475+ tst-mmap2-eofsync tst-mmap-offend bug-fopena+ \
1395+ bug-memstream1 tst-popen1 tst-fwrite-error \ 1476+ bug-ungetc2 bug-ungetc3 bug-ungetc4 \
1477 tst-memstream1 tst-memstream2 \
1478- tst-wmemstream1 tst-wmemstream2 \
1479- bug-memstream1 bug-wmemstream1 \
1480- tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos tst-fseek \
1481- tst-fwrite-error tst-ftell-partial-wide tst-ftell-active-handler \
1482- tst-ftell-append tst-fputws
1483+ bug-memstream1 tst-popen1 tst-fwrite-error \
1396+ tst-ftell-active-handler tst-ftell-append 1484+ tst-ftell-active-handler tst-ftell-append
1397+tests-$(OPTION_EGLIBC_LOCALE_CODE) \ 1485+tests-$(OPTION_EGLIBC_LOCALE_CODE) \
1398+ += tst-swscanf tst-fgetws tst-setvbuf1 \ 1486+ += tst-swscanf tst-fgetws tst-setvbuf1 \
1399+ tst-ungetwc1 tst-ungetwc2 bug-ftell bug-ungetwc2 \ 1487+ tst-ungetwc1 tst-ungetwc2 bug-ftell bug-ungetwc2 \
1400+ tst-widetext 1488+ tst-widetext tst-fputws
1401+tests-$(OPTION_POSIX_WIDE_CHAR_DEVICE_IO) \ 1489+tests-$(OPTION_POSIX_WIDE_CHAR_DEVICE_IO) \
1402+ += bug-rewind bug-rewind2 bug-ungetwc1 \ 1490+ += bug-rewind bug-rewind2 bug-ungetwc1 \
1403+ bug-wfflush bug-wmemstream1 tst-fopenloc2 \ 1491+ bug-wfflush bug-wmemstream1 tst-fopenloc2 \
1404+ tst_getwc \ 1492+ tst_getwc \
1405+ tst_putwc tst_wprintf tst_wprintf2 tst_wscanf \ 1493+ tst_putwc tst_wprintf tst_wprintf2 tst_wscanf \
1406+ tst-fgetwc bug-wsetpos tst-fseek tst-ftell-partial-wide 1494+ tst-fgetwc bug-wsetpos tst-fseek tst-ftell-partial-wide
1407+tests-$(OPTION_POSIX_C_LANG_WIDE_CHAR) \ 1495+tests-$(OPTION_POSIX_C_LANG_WIDE_CHAR) \
1408+ += tst_swprintf tst_swscanf \ 1496+ += tst_swprintf tst_swscanf \
1409+ tst-sscanf \ 1497+ tst-sscanf \
1410+ tst-wmemstream1 tst-wmemstream2 1498+ tst-wmemstream1 tst-wmemstream2
1499+
1411 ifeq (yes,$(build-shared)) 1500 ifeq (yes,$(build-shared))
1412 # Add test-fopenloc only if shared library is enabled since it depends on 1501 # Add test-fopenloc only if shared library is enabled since it depends on
1413 # shared localedata objects. 1502 # shared localedata objects.
@@ -1416,7 +1505,7 @@ Index: git/libio/Makefile
1416 endif 1505 endif
1417 test-srcs = test-freopen 1506 test-srcs = test-freopen
1418 1507
1419@@ -164,13 +186,17 @@ 1508@@ -164,13 +188,17 @@ shared-only-routines = oldiofopen oldiof
1420 oldiofsetpos64 1509 oldiofsetpos64
1421 1510
1422 ifeq ($(run-built-tests),yes) 1511 ifeq ($(run-built-tests),yes)
@@ -1436,8 +1525,8 @@ Index: git/libio/Makefile
1436 1525
1437Index: git/libio/wdummyfileops.c 1526Index: git/libio/wdummyfileops.c
1438=================================================================== 1527===================================================================
1439--- /dev/null 1970-01-01 00:00:00.000000000 +0000 1528--- /dev/null
1440+++ git/libio/wdummyfileops.c 2014-08-29 20:01:15.204070587 -0700 1529+++ git/libio/wdummyfileops.c
1441@@ -0,0 +1,161 @@ 1530@@ -0,0 +1,161 @@
1442+/* Copyright (C) 2007 Free Software Foundation, Inc. 1531+/* Copyright (C) 2007 Free Software Foundation, Inc.
1443+ This file is part of the GNU C Library. 1532+ This file is part of the GNU C Library.
@@ -1602,8 +1691,8 @@ Index: git/libio/wdummyfileops.c
1602+strong_alias (_IO_wfile_jumps_disabled, _IO_wfile_jumps_maybe_mmap) 1691+strong_alias (_IO_wfile_jumps_disabled, _IO_wfile_jumps_maybe_mmap)
1603Index: git/locale/catnames.c 1692Index: git/locale/catnames.c
1604=================================================================== 1693===================================================================
1605--- /dev/null 1970-01-01 00:00:00.000000000 +0000 1694--- /dev/null
1606+++ git/locale/catnames.c 2014-08-29 20:01:15.204070587 -0700 1695+++ git/locale/catnames.c
1607@@ -0,0 +1,48 @@ 1696@@ -0,0 +1,48 @@
1608+/* Copyright (C) 2006 Free Software Foundation, Inc. 1697+/* Copyright (C) 2006 Free Software Foundation, Inc.
1609+ This file is part of the GNU C Library. 1698+ This file is part of the GNU C Library.
@@ -1655,8 +1744,8 @@ Index: git/locale/catnames.c
1655+ }; 1744+ };
1656Index: git/locale/C-ctype.c 1745Index: git/locale/C-ctype.c
1657=================================================================== 1746===================================================================
1658--- git.orig/locale/C-ctype.c 2014-08-29 20:00:47.396070587 -0700 1747--- git.orig/locale/C-ctype.c
1659+++ git/locale/C-ctype.c 2014-08-29 20:01:15.204070587 -0700 1748+++ git/locale/C-ctype.c
1660@@ -19,8 +19,11 @@ 1749@@ -19,8 +19,11 @@
1661 #include "localeinfo.h" 1750 #include "localeinfo.h"
1662 #include <endian.h> 1751 #include <endian.h>
@@ -1669,7 +1758,7 @@ Index: git/locale/C-ctype.c
1669 1758
1670 /* This table's entries are taken from POSIX.2 Table 2-6 1759 /* This table's entries are taken from POSIX.2 Table 2-6
1671 ``LC_CTYPE Category Definition in the POSIX Locale''. 1760 ``LC_CTYPE Category Definition in the POSIX Locale''.
1672@@ -647,6 +650,7 @@ 1761@@ -647,6 +650,7 @@ const struct __locale_data _nl_C_LC_CTYP
1673 { .word = L'7' }, 1762 { .word = L'7' },
1674 { .word = L'8' }, 1763 { .word = L'8' },
1675 { .word = L'9' }, 1764 { .word = L'9' },
@@ -1677,7 +1766,7 @@ Index: git/locale/C-ctype.c
1677 /* _NL_CTYPE_TRANSLIT_TAB_SIZE */ 1766 /* _NL_CTYPE_TRANSLIT_TAB_SIZE */
1678 { .word = NTRANSLIT }, 1767 { .word = NTRANSLIT },
1679 /* _NL_CTYPE_TRANSLIT_FROM_IDX */ 1768 /* _NL_CTYPE_TRANSLIT_FROM_IDX */
1680@@ -657,6 +661,22 @@ 1769@@ -657,6 +661,22 @@ const struct __locale_data _nl_C_LC_CTYP
1681 { .wstr = translit_to_idx }, 1770 { .wstr = translit_to_idx },
1682 /* _NL_CTYPE_TRANSLIT_TO_TBL */ 1771 /* _NL_CTYPE_TRANSLIT_TO_TBL */
1683 { .wstr = (uint32_t *) translit_to_tbl }, 1772 { .wstr = (uint32_t *) translit_to_tbl },
@@ -1702,8 +1791,8 @@ Index: git/locale/C-ctype.c
1702 /* _NL_CTYPE_TRANSLIT_DEFAULT_MISSING */ 1791 /* _NL_CTYPE_TRANSLIT_DEFAULT_MISSING */
1703Index: git/locale/dummy-setlocale.c 1792Index: git/locale/dummy-setlocale.c
1704=================================================================== 1793===================================================================
1705--- /dev/null 1970-01-01 00:00:00.000000000 +0000 1794--- /dev/null
1706+++ git/locale/dummy-setlocale.c 2014-08-29 20:01:15.204070587 -0700 1795+++ git/locale/dummy-setlocale.c
1707@@ -0,0 +1,33 @@ 1796@@ -0,0 +1,33 @@
1708+/* Copyright (C) 2006 Free Software Foundation, Inc. 1797+/* Copyright (C) 2006 Free Software Foundation, Inc.
1709+ This file is part of the GNU C Library. 1798+ This file is part of the GNU C Library.
@@ -1740,9 +1829,9 @@ Index: git/locale/dummy-setlocale.c
1740+libc_hidden_def (setlocale) 1829+libc_hidden_def (setlocale)
1741Index: git/locale/localeinfo.h 1830Index: git/locale/localeinfo.h
1742=================================================================== 1831===================================================================
1743--- git.orig/locale/localeinfo.h 2014-08-29 20:00:47.404070587 -0700 1832--- git.orig/locale/localeinfo.h
1744+++ git/locale/localeinfo.h 2014-08-29 20:01:15.204070587 -0700 1833+++ git/locale/localeinfo.h
1745@@ -224,7 +224,7 @@ 1834@@ -224,7 +224,7 @@ __libc_tsd_define (extern, __locale_t, L
1746 unused. We can manage this playing some tricks with weak references. 1835 unused. We can manage this playing some tricks with weak references.
1747 But with thread-local locale settings, it becomes quite ungainly unless 1836 But with thread-local locale settings, it becomes quite ungainly unless
1748 we can use __thread variables. So only in that case do we attempt this. */ 1837 we can use __thread variables. So only in that case do we attempt this. */
@@ -1753,8 +1842,8 @@ Index: git/locale/localeinfo.h
1753 #endif 1842 #endif
1754Index: git/locale/Makefile 1843Index: git/locale/Makefile
1755=================================================================== 1844===================================================================
1756--- git.orig/locale/Makefile 2014-08-29 20:00:47.400070587 -0700 1845--- git.orig/locale/Makefile
1757+++ git/locale/Makefile 2014-08-29 20:01:15.204070587 -0700 1846+++ git/locale/Makefile
1758@@ -18,27 +18,43 @@ 1847@@ -18,27 +18,43 @@
1759 # 1848 #
1760 # Makefile for locales. 1849 # Makefile for locales.
@@ -1810,7 +1899,7 @@ Index: git/locale/Makefile
1810 1899
1811 libBrokenLocale-routines = broken_cur_max 1900 libBrokenLocale-routines = broken_cur_max
1812 1901
1813@@ -94,6 +110,9 @@ 1902@@ -93,6 +109,9 @@ CPPFLAGS-locale-programs = -DLOCALE_PATH
1814 CFLAGS-charmap.c = -Wno-write-strings -Wno-char-subscripts 1903 CFLAGS-charmap.c = -Wno-write-strings -Wno-char-subscripts
1815 CFLAGS-locfile.c = -Wno-write-strings -Wno-char-subscripts 1904 CFLAGS-locfile.c = -Wno-write-strings -Wno-char-subscripts
1816 CFLAGS-charmap-dir.c = -Wno-write-strings 1905 CFLAGS-charmap-dir.c = -Wno-write-strings
@@ -1818,12 +1907,12 @@ Index: git/locale/Makefile
1818+CFLAGS-charmap-dir.c += -DNO_UNCOMPRESS 1907+CFLAGS-charmap-dir.c += -DNO_UNCOMPRESS
1819+endif 1908+endif
1820 1909
1821 # This makes sure -DNOT_IN_libc et al are passed for all these modules. 1910 # Set libof-* for each routine.
1822 cpp-srcs-left := $(addsuffix .c,$(localedef-modules) $(localedef-aux) \ 1911 cpp-srcs-left := $(localedef-modules) $(localedef-aux) $(locale-modules) \
1823Index: git/locale/programs/charmap-dir.c 1912Index: git/locale/programs/charmap-dir.c
1824=================================================================== 1913===================================================================
1825--- git.orig/locale/programs/charmap-dir.c 2014-08-29 20:00:47.408070587 -0700 1914--- git.orig/locale/programs/charmap-dir.c
1826+++ git/locale/programs/charmap-dir.c 2014-08-29 20:01:15.204070587 -0700 1915+++ git/locale/programs/charmap-dir.c
1827@@ -19,7 +19,9 @@ 1916@@ -19,7 +19,9 @@
1828 #include <error.h> 1917 #include <error.h>
1829 #include <fcntl.h> 1918 #include <fcntl.h>
@@ -1834,7 +1923,7 @@ Index: git/locale/programs/charmap-dir.c
1834 #include <stdio.h> 1923 #include <stdio.h>
1835 #include <stdlib.h> 1924 #include <stdlib.h>
1836 #include <string.h> 1925 #include <string.h>
1837@@ -156,6 +158,7 @@ 1926@@ -156,6 +158,7 @@ charmap_closedir (CHARMAP_DIR *cdir)
1838 return closedir (dir); 1927 return closedir (dir);
1839 } 1928 }
1840 1929
@@ -1842,7 +1931,7 @@ Index: git/locale/programs/charmap-dir.c
1842 /* Creates a subprocess decompressing the given pathname, and returns 1931 /* Creates a subprocess decompressing the given pathname, and returns
1843 a stream reading its output (the decompressed data). */ 1932 a stream reading its output (the decompressed data). */
1844 static 1933 static
1845@@ -204,6 +207,7 @@ 1934@@ -204,6 +207,7 @@ fopen_uncompressed (const char *pathname
1846 } 1935 }
1847 return NULL; 1936 return NULL;
1848 } 1937 }
@@ -1850,7 +1939,7 @@ Index: git/locale/programs/charmap-dir.c
1850 1939
1851 /* Opens a charmap for reading, given its name (not an alias name). */ 1940 /* Opens a charmap for reading, given its name (not an alias name). */
1852 FILE * 1941 FILE *
1853@@ -226,6 +230,7 @@ 1942@@ -226,6 +230,7 @@ charmap_open (const char *directory, con
1854 if (stream != NULL) 1943 if (stream != NULL)
1855 return stream; 1944 return stream;
1856 1945
@@ -1858,7 +1947,7 @@ Index: git/locale/programs/charmap-dir.c
1858 memcpy (p, ".gz", 4); 1947 memcpy (p, ".gz", 4);
1859 stream = fopen_uncompressed (pathname, "gzip"); 1948 stream = fopen_uncompressed (pathname, "gzip");
1860 if (stream != NULL) 1949 if (stream != NULL)
1861@@ -235,6 +240,7 @@ 1950@@ -235,6 +240,7 @@ charmap_open (const char *directory, con
1862 stream = fopen_uncompressed (pathname, "bzip2"); 1951 stream = fopen_uncompressed (pathname, "bzip2");
1863 if (stream != NULL) 1952 if (stream != NULL)
1864 return stream; 1953 return stream;
@@ -1866,22 +1955,11 @@ Index: git/locale/programs/charmap-dir.c
1866 1955
1867 return NULL; 1956 return NULL;
1868 } 1957 }
1869@@ -263,8 +269,8 @@
1870 char *alias = NULL;
1871 char junk[BUFSIZ];
1872
1873- if (fscanf (stream, " <code_set_name> %ms", &alias) == 1
1874- || fscanf (stream, "%% alias %ms", &alias) == 1)
1875+ if (fscanf (stream, " <code_set_name> %as", &alias) == 1
1876+ || fscanf (stream, "%% alias %as", &alias) == 1)
1877 {
1878 aliases = (char **) xrealloc (aliases,
1879 (naliases + 2) * sizeof (char *));
1880Index: git/locale/programs/ld-collate.c 1958Index: git/locale/programs/ld-collate.c
1881=================================================================== 1959===================================================================
1882--- git.orig/locale/programs/ld-collate.c 2014-08-29 20:00:47.408070587 -0700 1960--- git.orig/locale/programs/ld-collate.c
1883+++ git/locale/programs/ld-collate.c 2014-08-29 20:01:15.208070587 -0700 1961+++ git/locale/programs/ld-collate.c
1884@@ -350,7 +350,7 @@ 1962@@ -350,7 +350,7 @@ new_element (struct locale_collate_t *co
1885 } 1963 }
1886 if (wcs != NULL) 1964 if (wcs != NULL)
1887 { 1965 {
@@ -1890,7 +1968,7 @@ Index: git/locale/programs/ld-collate.c
1890 uint32_t zero = 0; 1968 uint32_t zero = 0;
1891 /* Handle <U0000> as a single character. */ 1969 /* Handle <U0000> as a single character. */
1892 if (nwcs == 0) 1970 if (nwcs == 0)
1893@@ -1776,8 +1776,7 @@ 1971@@ -1776,8 +1776,7 @@ symbol `%s' has the same encoding as"),
1894 1972
1895 if ((*eptr)->nwcs == runp->nwcs) 1973 if ((*eptr)->nwcs == runp->nwcs)
1896 { 1974 {
@@ -1900,7 +1978,7 @@ Index: git/locale/programs/ld-collate.c
1900 1978
1901 if (c == 0) 1979 if (c == 0)
1902 { 1980 {
1903@@ -2010,9 +2009,9 @@ 1981@@ -2010,9 +2009,9 @@ add_to_tablewc (uint32_t ch, struct elem
1904 one consecutive entry. */ 1982 one consecutive entry. */
1905 if (runp->wcnext != NULL 1983 if (runp->wcnext != NULL
1906 && runp->nwcs == runp->wcnext->nwcs 1984 && runp->nwcs == runp->wcnext->nwcs
@@ -1913,7 +1991,7 @@ Index: git/locale/programs/ld-collate.c
1913 && (runp->wcs[runp->nwcs - 1] 1991 && (runp->wcs[runp->nwcs - 1]
1914 == runp->wcnext->wcs[runp->nwcs - 1] + 1)) 1992 == runp->wcnext->wcs[runp->nwcs - 1] + 1))
1915 { 1993 {
1916@@ -2036,9 +2035,9 @@ 1994@@ -2036,9 +2035,9 @@ add_to_tablewc (uint32_t ch, struct elem
1917 runp = runp->wcnext; 1995 runp = runp->wcnext;
1918 while (runp->wcnext != NULL 1996 while (runp->wcnext != NULL
1919 && runp->nwcs == runp->wcnext->nwcs 1997 && runp->nwcs == runp->wcnext->nwcs
@@ -1928,9 +2006,9 @@ Index: git/locale/programs/ld-collate.c
1928 2006
1929Index: git/locale/programs/ld-ctype.c 2007Index: git/locale/programs/ld-ctype.c
1930=================================================================== 2008===================================================================
1931--- git.orig/locale/programs/ld-ctype.c 2014-08-29 20:00:47.408070587 -0700 2009--- git.orig/locale/programs/ld-ctype.c
1932+++ git/locale/programs/ld-ctype.c 2014-08-29 20:01:15.208070587 -0700 2010+++ git/locale/programs/ld-ctype.c
1933@@ -957,7 +957,7 @@ 2011@@ -960,7 +960,7 @@ ctype_output (struct localedef_t *locale
1934 allocate_arrays (ctype, charmap, ctype->repertoire); 2012 allocate_arrays (ctype, charmap, ctype->repertoire);
1935 2013
1936 default_missing_len = (ctype->default_missing 2014 default_missing_len = (ctype->default_missing
@@ -1939,7 +2017,7 @@ Index: git/locale/programs/ld-ctype.c
1939 : 0); 2017 : 0);
1940 2018
1941 init_locale_data (&file, nelems); 2019 init_locale_data (&file, nelems);
1942@@ -1968,7 +1968,7 @@ 2020@@ -1971,7 +1971,7 @@ read_translit_entry (struct linereader *
1943 ignore = 1; 2021 ignore = 1;
1944 else 2022 else
1945 /* This value is usable. */ 2023 /* This value is usable. */
@@ -1948,7 +2026,7 @@ Index: git/locale/programs/ld-ctype.c
1948 2026
1949 first = 0; 2027 first = 0;
1950 } 2028 }
1951@@ -2516,8 +2516,8 @@ 2029@@ -2519,8 +2519,8 @@ with character code range values one mus
1952 } 2030 }
1953 2031
1954 handle_tok_digit: 2032 handle_tok_digit:
@@ -1959,7 +2037,7 @@ Index: git/locale/programs/ld-ctype.c
1959 handle_digits = 1; 2037 handle_digits = 1;
1960 goto read_charclass; 2038 goto read_charclass;
1961 2039
1962@@ -4001,8 +4001,7 @@ 2040@@ -4002,8 +4002,7 @@ allocate_arrays (struct locale_ctype_t *
1963 2041
1964 while (idx < number) 2042 while (idx < number)
1965 { 2043 {
@@ -1969,8 +2047,8 @@ Index: git/locale/programs/ld-ctype.c
1969 if (res == 0) 2047 if (res == 0)
1970 { 2048 {
1971 replace = 1; 2049 replace = 1;
1972@@ -4039,11 +4038,11 @@ 2050@@ -4040,11 +4039,11 @@ allocate_arrays (struct locale_ctype_t *
1973 for (cnt = 0; cnt < number; ++cnt) 2051 for (size_t cnt = 0; cnt < number; ++cnt)
1974 { 2052 {
1975 struct translit_to_t *srunp; 2053 struct translit_to_t *srunp;
1976- from_len += wcslen ((const wchar_t *) sorted[cnt]->from) + 1; 2054- from_len += wcslen ((const wchar_t *) sorted[cnt]->from) + 1;
@@ -1983,7 +2061,7 @@ Index: git/locale/programs/ld-ctype.c
1983 srunp = srunp->next; 2061 srunp = srunp->next;
1984 } 2062 }
1985 /* Plus one for the extra NUL character marking the end of 2063 /* Plus one for the extra NUL character marking the end of
1986@@ -4067,18 +4066,18 @@ 2064@@ -4068,18 +4067,18 @@ allocate_arrays (struct locale_ctype_t *
1987 ctype->translit_from_idx[cnt] = from_len; 2065 ctype->translit_from_idx[cnt] = from_len;
1988 ctype->translit_to_idx[cnt] = to_len; 2066 ctype->translit_to_idx[cnt] = to_len;
1989 2067
@@ -2010,8 +2088,8 @@ Index: git/locale/programs/ld-ctype.c
2010 } 2088 }
2011Index: git/locale/programs/ld-messages.c 2089Index: git/locale/programs/ld-messages.c
2012=================================================================== 2090===================================================================
2013--- git.orig/locale/programs/ld-messages.c 2014-08-29 20:00:47.412070587 -0700 2091--- git.orig/locale/programs/ld-messages.c
2014+++ git/locale/programs/ld-messages.c 2014-08-29 20:01:15.208070587 -0700 2092+++ git/locale/programs/ld-messages.c
2015@@ -25,6 +25,7 @@ 2093@@ -25,6 +25,7 @@
2016 #include <string.h> 2094 #include <string.h>
2017 #include <stdint.h> 2095 #include <stdint.h>
@@ -2020,7 +2098,7 @@ Index: git/locale/programs/ld-messages.c
2020 2098
2021 #include <assert.h> 2099 #include <assert.h>
2022 2100
2023@@ -124,6 +125,7 @@ 2101@@ -124,6 +125,7 @@ No definition for %s category found"), "
2024 } 2102 }
2025 else 2103 else
2026 { 2104 {
@@ -2028,7 +2106,7 @@ Index: git/locale/programs/ld-messages.c
2028 int result; 2106 int result;
2029 regex_t re; 2107 regex_t re;
2030 2108
2031@@ -140,6 +142,7 @@ 2109@@ -140,6 +142,7 @@ No definition for %s category found"), "
2032 } 2110 }
2033 else if (result != 0) 2111 else if (result != 0)
2034 regfree (&re); 2112 regfree (&re);
@@ -2036,7 +2114,7 @@ Index: git/locale/programs/ld-messages.c
2036 } 2114 }
2037 2115
2038 if (messages->noexpr == NULL) 2116 if (messages->noexpr == NULL)
2039@@ -158,6 +161,7 @@ 2117@@ -158,6 +161,7 @@ No definition for %s category found"), "
2040 } 2118 }
2041 else 2119 else
2042 { 2120 {
@@ -2044,7 +2122,7 @@ Index: git/locale/programs/ld-messages.c
2044 int result; 2122 int result;
2045 regex_t re; 2123 regex_t re;
2046 2124
2047@@ -174,6 +178,7 @@ 2125@@ -174,6 +178,7 @@ No definition for %s category found"), "
2048 } 2126 }
2049 else if (result != 0) 2127 else if (result != 0)
2050 regfree (&re); 2128 regfree (&re);
@@ -2054,9 +2132,9 @@ Index: git/locale/programs/ld-messages.c
2054 2132
2055Index: git/locale/programs/ld-time.c 2133Index: git/locale/programs/ld-time.c
2056=================================================================== 2134===================================================================
2057--- git.orig/locale/programs/ld-time.c 2014-08-29 20:00:47.412070587 -0700 2135--- git.orig/locale/programs/ld-time.c
2058+++ git/locale/programs/ld-time.c 2014-08-29 20:01:15.208070587 -0700 2136+++ git/locale/programs/ld-time.c
2059@@ -215,8 +215,10 @@ 2137@@ -215,8 +215,10 @@ No definition for %s category found"), "
2060 } 2138 }
2061 else 2139 else
2062 { 2140 {
@@ -2068,7 +2146,7 @@ Index: git/locale/programs/ld-time.c
2068 } 2146 }
2069 } 2147 }
2070 2148
2071@@ -226,7 +228,7 @@ 2149@@ -226,7 +228,7 @@ No definition for %s category found"), "
2072 const int days_per_month[12] = { 31, 29, 31, 30, 31, 30, 2150 const int days_per_month[12] = { 31, 29, 31, 30, 31, 30,
2073 31, 31, 30, 31 ,30, 31 }; 2151 31, 31, 30, 31 ,30, 31 };
2074 size_t idx; 2152 size_t idx;
@@ -2077,7 +2155,7 @@ Index: git/locale/programs/ld-time.c
2077 2155
2078 time->era_entries = 2156 time->era_entries =
2079 (struct era_data *) xmalloc (time->num_era 2157 (struct era_data *) xmalloc (time->num_era
2080@@ -464,18 +466,18 @@ 2158@@ -464,18 +466,18 @@ No definition for %s category found"), "
2081 } 2159 }
2082 2160
2083 /* Now generate the wide character name and format. */ 2161 /* Now generate the wide character name and format. */
@@ -2103,7 +2181,7 @@ Index: git/locale/programs/ld-time.c
2103 } 2181 }
2104 else 2182 else
2105 time->era_entries[idx].wname = 2183 time->era_entries[idx].wname =
2106@@ -530,7 +532,16 @@ 2184@@ -530,7 +532,16 @@ No definition for %s category found"), "
2107 if (time->date_fmt == NULL) 2185 if (time->date_fmt == NULL)
2108 time->date_fmt = "%a %b %e %H:%M:%S %Z %Y"; 2186 time->date_fmt = "%a %b %e %H:%M:%S %Z %Y";
2109 if (time->wdate_fmt == NULL) 2187 if (time->wdate_fmt == NULL)
@@ -2123,9 +2201,9 @@ Index: git/locale/programs/ld-time.c
2123 2201
2124Index: git/locale/programs/linereader.c 2202Index: git/locale/programs/linereader.c
2125=================================================================== 2203===================================================================
2126--- git.orig/locale/programs/linereader.c 2014-08-29 20:00:47.412070587 -0700 2204--- git.orig/locale/programs/linereader.c
2127+++ git/locale/programs/linereader.c 2014-08-29 20:01:15.208070587 -0700 2205+++ git/locale/programs/linereader.c
2128@@ -595,7 +595,7 @@ 2206@@ -595,7 +595,7 @@ get_string (struct linereader *lr, const
2129 { 2207 {
2130 int return_widestr = lr->return_widestr; 2208 int return_widestr = lr->return_widestr;
2131 char *buf; 2209 char *buf;
@@ -2136,9 +2214,9 @@ Index: git/locale/programs/linereader.c
2136 2214
2137Index: git/locale/programs/localedef.c 2215Index: git/locale/programs/localedef.c
2138=================================================================== 2216===================================================================
2139--- git.orig/locale/programs/localedef.c 2014-08-29 20:00:47.416070587 -0700 2217--- git.orig/locale/programs/localedef.c
2140+++ git/locale/programs/localedef.c 2014-08-29 20:01:15.208070587 -0700 2218+++ git/locale/programs/localedef.c
2141@@ -114,6 +114,7 @@ 2219@@ -114,6 +114,7 @@ void (*argp_program_version_hook) (FILE
2142 #define OPT_LIST_ARCHIVE 309 2220 #define OPT_LIST_ARCHIVE 309
2143 #define OPT_LITTLE_ENDIAN 400 2221 #define OPT_LITTLE_ENDIAN 400
2144 #define OPT_BIG_ENDIAN 401 2222 #define OPT_BIG_ENDIAN 401
@@ -2146,7 +2224,7 @@ Index: git/locale/programs/localedef.c
2146 2224
2147 /* Definitions of arguments for argp functions. */ 2225 /* Definitions of arguments for argp functions. */
2148 static const struct argp_option options[] = 2226 static const struct argp_option options[] =
2149@@ -150,6 +151,8 @@ 2227@@ -150,6 +151,8 @@ static const struct argp_option options[
2150 N_("Generate little-endian output") }, 2228 N_("Generate little-endian output") },
2151 { "big-endian", OPT_BIG_ENDIAN, NULL, 0, 2229 { "big-endian", OPT_BIG_ENDIAN, NULL, 0,
2152 N_("Generate big-endian output") }, 2230 N_("Generate big-endian output") },
@@ -2155,7 +2233,7 @@ Index: git/locale/programs/localedef.c
2155 { NULL, 0, NULL, 0, NULL } 2233 { NULL, 0, NULL, 0, NULL }
2156 }; 2234 };
2157 2235
2158@@ -239,12 +242,14 @@ 2236@@ -239,12 +242,14 @@ main (int argc, char *argv[])
2159 ctype locale. (P1003.2 4.35.5.2) */ 2237 ctype locale. (P1003.2 4.35.5.2) */
2160 setlocale (LC_CTYPE, "POSIX"); 2238 setlocale (LC_CTYPE, "POSIX");
2161 2239
@@ -2170,7 +2248,7 @@ Index: git/locale/programs/localedef.c
2170 2248
2171 /* Process charmap file. */ 2249 /* Process charmap file. */
2172 charmap = charmap_read (charmap_file, verbose, 1, be_quiet, 1); 2250 charmap = charmap_read (charmap_file, verbose, 1, be_quiet, 1);
2173@@ -338,6 +343,9 @@ 2251@@ -338,6 +343,9 @@ parse_opt (int key, char *arg, struct ar
2174 case OPT_BIG_ENDIAN: 2252 case OPT_BIG_ENDIAN:
2175 set_big_endian (true); 2253 set_big_endian (true);
2176 break; 2254 break;
@@ -2182,9 +2260,9 @@ Index: git/locale/programs/localedef.c
2182 break; 2260 break;
2183Index: git/locale/programs/locfile.c 2261Index: git/locale/programs/locfile.c
2184=================================================================== 2262===================================================================
2185--- git.orig/locale/programs/locfile.c 2014-08-29 20:00:47.432070587 -0700 2263--- git.orig/locale/programs/locfile.c
2186+++ git/locale/programs/locfile.c 2014-08-29 20:01:15.208070587 -0700 2264+++ git/locale/programs/locfile.c
2187@@ -544,6 +544,9 @@ 2265@@ -544,6 +544,9 @@ compare_files (const char *filename1, co
2188 machine running localedef. */ 2266 machine running localedef. */
2189 bool swap_endianness_p; 2267 bool swap_endianness_p;
2190 2268
@@ -2194,7 +2272,7 @@ Index: git/locale/programs/locfile.c
2194 /* When called outside a start_locale_structure/end_locale_structure 2272 /* When called outside a start_locale_structure/end_locale_structure
2195 or start_locale_prelude/end_locale_prelude block, record that the 2273 or start_locale_prelude/end_locale_prelude block, record that the
2196 next byte in FILE's obstack will be the first byte of a new element. 2274 next byte in FILE's obstack will be the first byte of a new element.
2197@@ -621,7 +624,7 @@ 2275@@ -621,7 +624,7 @@ add_locale_string (struct locale_file *f
2198 void 2276 void
2199 add_locale_wstring (struct locale_file *file, const uint32_t *string) 2277 add_locale_wstring (struct locale_file *file, const uint32_t *string)
2200 { 2278 {
@@ -2205,9 +2283,9 @@ Index: git/locale/programs/locfile.c
2205 /* Record that FILE's next element is the 32-bit integer VALUE. */ 2283 /* Record that FILE's next element is the 32-bit integer VALUE. */
2206Index: git/locale/programs/locfile.h 2284Index: git/locale/programs/locfile.h
2207=================================================================== 2285===================================================================
2208--- git.orig/locale/programs/locfile.h 2014-08-29 20:00:47.432070587 -0700 2286--- git.orig/locale/programs/locfile.h
2209+++ git/locale/programs/locfile.h 2014-08-29 20:01:15.208070587 -0700 2287+++ git/locale/programs/locfile.h
2210@@ -71,6 +71,8 @@ 2288@@ -71,6 +71,8 @@ extern void write_all_categories (struct
2211 2289
2212 extern bool swap_endianness_p; 2290 extern bool swap_endianness_p;
2213 2291
@@ -2216,7 +2294,7 @@ Index: git/locale/programs/locfile.h
2216 /* Change the output to be big-endian if BIG_ENDIAN is true and 2294 /* Change the output to be big-endian if BIG_ENDIAN is true and
2217 little-endian otherwise. */ 2295 little-endian otherwise. */
2218 static inline void 2296 static inline void
2219@@ -275,4 +277,49 @@ 2297@@ -276,4 +278,49 @@ extern void identification_output (struc
2220 const struct charmap_t *charmap, 2298 const struct charmap_t *charmap,
2221 const char *output_path); 2299 const char *output_path);
2222 2300
@@ -2268,9 +2346,9 @@ Index: git/locale/programs/locfile.h
2268 #endif /* locfile.h */ 2346 #endif /* locfile.h */
2269Index: git/locale/setlocale.c 2347Index: git/locale/setlocale.c
2270=================================================================== 2348===================================================================
2271--- git.orig/locale/setlocale.c 2014-08-29 20:00:47.432070587 -0700 2349--- git.orig/locale/setlocale.c
2272+++ git/locale/setlocale.c 2014-08-29 20:01:15.208070587 -0700 2350+++ git/locale/setlocale.c
2273@@ -64,36 +64,6 @@ 2351@@ -64,36 +64,6 @@ static char *const _nl_current_used[] =
2274 #endif 2352 #endif
2275 2353
2276 2354
@@ -2309,8 +2387,8 @@ Index: git/locale/setlocale.c
2309 #else 2387 #else
2310Index: git/locale/xlocale.c 2388Index: git/locale/xlocale.c
2311=================================================================== 2389===================================================================
2312--- git.orig/locale/xlocale.c 2014-08-29 20:00:47.436070587 -0700 2390--- git.orig/locale/xlocale.c
2313+++ git/locale/xlocale.c 2014-08-29 20:01:15.208070587 -0700 2391+++ git/locale/xlocale.c
2314@@ -18,6 +18,7 @@ 2392@@ -18,6 +18,7 @@
2315 <http://www.gnu.org/licenses/>. */ 2393 <http://www.gnu.org/licenses/>. */
2316 2394
@@ -2319,7 +2397,7 @@ Index: git/locale/xlocale.c
2319 #include "localeinfo.h" 2397 #include "localeinfo.h"
2320 2398
2321 #define DEFINE_CATEGORY(category, category_name, items, a) \ 2399 #define DEFINE_CATEGORY(category, category_name, items, a) \
2322@@ -25,6 +26,19 @@ 2400@@ -25,6 +26,19 @@ extern struct __locale_data _nl_C_##cate
2323 #include "categories.def" 2401 #include "categories.def"
2324 #undef DEFINE_CATEGORY 2402 #undef DEFINE_CATEGORY
2325 2403
@@ -2339,7 +2417,7 @@ Index: git/locale/xlocale.c
2339 /* Defined in locale/C-ctype.c. */ 2417 /* Defined in locale/C-ctype.c. */
2340 extern const char _nl_C_LC_CTYPE_class[] attribute_hidden; 2418 extern const char _nl_C_LC_CTYPE_class[] attribute_hidden;
2341 extern const char _nl_C_LC_CTYPE_toupper[] attribute_hidden; 2419 extern const char _nl_C_LC_CTYPE_toupper[] attribute_hidden;
2342@@ -52,3 +66,26 @@ 2420@@ -52,3 +66,26 @@ const struct __locale_struct _nl_C_locob
2343 .__ctype_tolower = (const int *) _nl_C_LC_CTYPE_tolower + 128, 2421 .__ctype_tolower = (const int *) _nl_C_LC_CTYPE_tolower + 128,
2344 .__ctype_toupper = (const int *) _nl_C_LC_CTYPE_toupper + 128 2422 .__ctype_toupper = (const int *) _nl_C_LC_CTYPE_toupper + 128
2345 }; 2423 };
@@ -2368,9 +2446,9 @@ Index: git/locale/xlocale.c
2368+#endif /* __OPTION_EGLIBC_LOCALE_CODE */ 2446+#endif /* __OPTION_EGLIBC_LOCALE_CODE */
2369Index: git/localedata/Makefile 2447Index: git/localedata/Makefile
2370=================================================================== 2448===================================================================
2371--- git.orig/localedata/Makefile 2014-08-29 20:00:47.444070587 -0700 2449--- git.orig/localedata/Makefile
2372+++ git/localedata/Makefile 2014-08-29 20:01:15.212070587 -0700 2450+++ git/localedata/Makefile
2373@@ -21,12 +21,22 @@ 2451@@ -21,12 +21,22 @@ subdir := localedata
2374 2452
2375 include ../Makeconfig 2453 include ../Makeconfig
2376 2454
@@ -2396,7 +2474,7 @@ Index: git/localedata/Makefile
2396 2474
2397 subdir-dirs = tests-mbwc 2475 subdir-dirs = tests-mbwc
2398 vpath %.c tests-mbwc 2476 vpath %.c tests-mbwc
2399@@ -71,14 +81,20 @@ 2477@@ -71,14 +81,20 @@ locale_test_suite := tst_iswalnum tst_is
2400 tst_wcsxfrm tst_wctob tst_wctomb tst_wctrans \ 2478 tst_wcsxfrm tst_wctob tst_wctomb tst_wctrans \
2401 tst_wctype tst_wcwidth 2479 tst_wctype tst_wcwidth
2402 2480
@@ -2419,22 +2497,23 @@ Index: git/localedata/Makefile
2419 ifneq (no,$(PERL)) 2497 ifneq (no,$(PERL))
2420 tests-special += $(objpfx)mtrace-tst-leaks.out 2498 tests-special += $(objpfx)mtrace-tst-leaks.out
2421 endif 2499 endif
2422@@ -92,12 +108,14 @@ 2500@@ -95,6 +111,7 @@ tests: $(objdir)/iconvdata/gconv-modules
2423 2501 tests-static += tst-langinfo-static
2424 tests: $(objdir)/iconvdata/gconv-modules
2425 2502
2503 ifeq ($(run-built-tests),yes)
2426+ifeq (y,$(OPTION_EGLIBC_LOCALE_CODE)) 2504+ifeq (y,$(OPTION_EGLIBC_LOCALE_CODE))
2427 tests-special += $(objpfx)sort-test.out $(objpfx)tst-fmon.out \ 2505 tests-special += $(objpfx)sort-test.out $(objpfx)tst-fmon.out \
2428 $(objpfx)tst-locale.out $(objpfx)tst-rpmatch.out \ 2506 $(objpfx)tst-locale.out $(objpfx)tst-rpmatch.out \
2429 $(objpfx)tst-trans.out $(objpfx)tst-ctype.out \ 2507 $(objpfx)tst-trans.out $(objpfx)tst-ctype.out \
2430 $(objpfx)tst-langinfo.out $(objpfx)tst-langinfo-static.out \ 2508@@ -113,6 +130,7 @@ CHARMAPS := $(shell echo "$(LOCALES)" |
2431 $(objpfx)tst-numeric.out 2509 CTYPE_FILES = $(addsuffix /LC_CTYPE,$(LOCALES))
2432 tests-static += tst-langinfo-static 2510 tests-special += $(addprefix $(objpfx),$(CTYPE_FILES))
2511 endif
2433+endif 2512+endif
2434 2513
2435 ifeq ($(run-built-tests),yes) 2514 include ../Rules
2436 # We have to generate locales 2515
2437@@ -213,6 +231,11 @@ 2516@@ -205,6 +223,11 @@ endif
2438 2517
2439 include SUPPORTED 2518 include SUPPORTED
2440 2519
@@ -2448,8 +2527,8 @@ Index: git/localedata/Makefile
2448 # Sometimes the whole collection of locale files should be installed. 2527 # Sometimes the whole collection of locale files should be installed.
2449Index: git/login/Makefile 2528Index: git/login/Makefile
2450=================================================================== 2529===================================================================
2451--- git.orig/login/Makefile 2014-08-29 20:00:47.736070587 -0700 2530--- git.orig/login/Makefile
2452+++ git/login/Makefile 2014-08-29 20:01:15.212070587 -0700 2531+++ git/login/Makefile
2453@@ -18,6 +18,7 @@ 2532@@ -18,6 +18,7 @@
2454 # 2533 #
2455 # Sub-makefile for login portion of the library. 2534 # Sub-makefile for login portion of the library.
@@ -2458,7 +2537,7 @@ Index: git/login/Makefile
2458 2537
2459 subdir := login 2538 subdir := login
2460 2539
2461@@ -25,14 +26,16 @@ 2540@@ -25,14 +26,16 @@ include ../Makeconfig
2462 2541
2463 headers := utmp.h bits/utmp.h lastlog.h pty.h 2542 headers := utmp.h bits/utmp.h lastlog.h pty.h
2464 2543
@@ -2480,7 +2559,7 @@ Index: git/login/Makefile
2480 2559
2481 ifeq (yes,$(build-pt-chown)) 2560 ifeq (yes,$(build-pt-chown))
2482 others += pt_chown 2561 others += pt_chown
2483@@ -46,8 +49,8 @@ 2562@@ -46,8 +49,8 @@ vpath %.c programs
2484 tests := tst-utmp tst-utmpx tst-grantpt tst-ptsname 2563 tests := tst-utmp tst-utmpx tst-grantpt tst-ptsname
2485 2564
2486 # Build the -lutil library with these extra functions. 2565 # Build the -lutil library with these extra functions.
@@ -2493,9 +2572,9 @@ Index: git/login/Makefile
2493 2572
2494Index: git/Makeconfig 2573Index: git/Makeconfig
2495=================================================================== 2574===================================================================
2496--- git.orig/Makeconfig 2014-08-29 20:00:42.956070587 -0700 2575--- git.orig/Makeconfig
2497+++ git/Makeconfig 2014-08-29 20:01:15.212070587 -0700 2576+++ git/Makeconfig
2498@@ -582,7 +582,7 @@ 2577@@ -582,7 +582,7 @@ elf-objpfx = $(common-objpfx)elf/
2499 # and run on the build system, causes that program with those 2578 # and run on the build system, causes that program with those
2500 # arguments to be run on the host for which the library is built. 2579 # arguments to be run on the host for which the library is built.
2501 ifndef test-wrapper 2580 ifndef test-wrapper
@@ -2504,7 +2583,7 @@ Index: git/Makeconfig
2504 endif 2583 endif
2505 # Likewise, but the name of the program is preceded by 2584 # Likewise, but the name of the program is preceded by
2506 # <variable>=<value> assignments for environment variables. 2585 # <variable>=<value> assignments for environment variables.
2507@@ -1057,6 +1057,24 @@ 2586@@ -1055,6 +1055,24 @@ else
2508 libm = $(common-objpfx)math/libm.a 2587 libm = $(common-objpfx)math/libm.a
2509 endif 2588 endif
2510 2589
@@ -2531,9 +2610,9 @@ Index: git/Makeconfig
2531 # dependencies. 2610 # dependencies.
2532Index: git/Makerules 2611Index: git/Makerules
2533=================================================================== 2612===================================================================
2534--- git.orig/Makerules 2014-08-29 20:00:42.960070587 -0700 2613--- git.orig/Makerules
2535+++ git/Makerules 2014-08-29 20:01:15.212070587 -0700 2614+++ git/Makerules
2536@@ -379,6 +379,25 @@ 2615@@ -446,6 +446,25 @@ define sed-remove-objpfx
2537 endef 2616 endef
2538 endif 2617 endif
2539 2618
@@ -2561,8 +2640,8 @@ Index: git/Makerules
2561 ifeq (yes,$(build-shared)) 2640 ifeq (yes,$(build-shared))
2562Index: git/malloc/Makefile 2641Index: git/malloc/Makefile
2563=================================================================== 2642===================================================================
2564--- git.orig/malloc/Makefile 2014-08-29 20:00:47.760070587 -0700 2643--- git.orig/malloc/Makefile
2565+++ git/malloc/Makefile 2014-08-29 20:01:15.212070587 -0700 2644+++ git/malloc/Makefile
2566@@ -18,6 +18,8 @@ 2645@@ -18,6 +18,8 @@
2567 # 2646 #
2568 # Makefile for malloc routines 2647 # Makefile for malloc routines
@@ -2572,7 +2651,7 @@ Index: git/malloc/Makefile
2572 subdir := malloc 2651 subdir := malloc
2573 2652
2574 include ../Makeconfig 2653 include ../Makeconfig
2575@@ -36,9 +38,15 @@ 2654@@ -36,9 +38,15 @@ install-lib := libmcheck.a
2576 non-lib.a := libmcheck.a 2655 non-lib.a := libmcheck.a
2577 2656
2578 # Additional library. 2657 # Additional library.
@@ -2588,7 +2667,7 @@ Index: git/malloc/Makefile
2588 libmemusage-routines = memusage 2667 libmemusage-routines = memusage
2589 libmemusage-inhibit-o = $(filter-out .os,$(object-suffixes)) 2668 libmemusage-inhibit-o = $(filter-out .os,$(object-suffixes))
2590 2669
2591@@ -67,7 +75,7 @@ 2670@@ -65,7 +73,7 @@ endif
2592 # Unless we get a test for the availability of libgd which also works 2671 # Unless we get a test for the availability of libgd which also works
2593 # for cross-compiling we disable the memusagestat generation in this 2672 # for cross-compiling we disable the memusagestat generation in this
2594 # situation. 2673 # situation.
@@ -2599,8 +2678,8 @@ Index: git/malloc/Makefile
2599 others: $(objpfx)memusage 2678 others: $(objpfx)memusage
2600Index: git/malloc/memusage.c 2679Index: git/malloc/memusage.c
2601=================================================================== 2680===================================================================
2602--- git.orig/malloc/memusage.c 2014-08-29 20:00:47.768070587 -0700 2681--- git.orig/malloc/memusage.c
2603+++ git/malloc/memusage.c 2014-08-29 20:01:15.212070587 -0700 2682+++ git/malloc/memusage.c
2604@@ -33,6 +33,7 @@ 2683@@ -33,6 +33,7 @@
2605 #include <stdint.h> 2684 #include <stdint.h>
2606 #include <sys/mman.h> 2685 #include <sys/mman.h>
@@ -2609,7 +2688,7 @@ Index: git/malloc/memusage.c
2609 2688
2610 #include <memusage.h> 2689 #include <memusage.h>
2611 2690
2612@@ -93,7 +94,11 @@ 2691@@ -93,7 +94,11 @@ static __thread uintptr_t start_sp;
2613 #define peak_stack peak_use[1] 2692 #define peak_stack peak_use[1]
2614 #define peak_total peak_use[2] 2693 #define peak_total peak_use[2]
2615 2694
@@ -2624,9 +2703,9 @@ Index: git/malloc/memusage.c
2624 static int fd = -1; 2703 static int fd = -1;
2625Index: git/malloc/memusage.sh 2704Index: git/malloc/memusage.sh
2626=================================================================== 2705===================================================================
2627--- git.orig/malloc/memusage.sh 2014-08-29 20:00:47.768070587 -0700 2706--- git.orig/malloc/memusage.sh
2628+++ git/malloc/memusage.sh 2014-08-29 20:01:15.212070587 -0700 2707+++ git/malloc/memusage.sh
2629@@ -35,7 +35,7 @@ 2708@@ -35,7 +35,7 @@ do_missing_arg() {
2630 2709
2631 # Print help message 2710 # Print help message
2632 do_help() { 2711 do_help() {
@@ -2637,9 +2716,9 @@ Index: git/malloc/memusage.sh
2637 -n,--progname=NAME Name of the program file to profile 2716 -n,--progname=NAME Name of the program file to profile
2638Index: git/math/Makefile 2717Index: git/math/Makefile
2639=================================================================== 2718===================================================================
2640--- git.orig/math/Makefile 2014-08-29 20:00:47.836070587 -0700 2719--- git.orig/math/Makefile
2641+++ git/math/Makefile 2014-08-29 20:01:15.212070587 -0700 2720+++ git/math/Makefile
2642@@ -21,6 +21,8 @@ 2721@@ -21,6 +21,8 @@ subdir := math
2643 2722
2644 include ../Makeconfig 2723 include ../Makeconfig
2645 2724
@@ -2648,7 +2727,7 @@ Index: git/math/Makefile
2648 # Installed header files. 2727 # Installed header files.
2649 headers := math.h bits/mathcalls.h bits/mathinline.h bits/huge_val.h \ 2728 headers := math.h bits/mathcalls.h bits/mathinline.h bits/huge_val.h \
2650 bits/huge_valf.h bits/huge_vall.h bits/inf.h bits/nan.h \ 2729 bits/huge_valf.h bits/huge_vall.h bits/inf.h bits/nan.h \
2651@@ -33,8 +35,8 @@ 2730@@ -33,8 +35,8 @@ aux := setfpucw fpu_control
2652 2731
2653 # Build the -lm library. 2732 # Build the -lm library.
2654 2733
@@ -2657,12 +2736,12 @@ Index: git/math/Makefile
2657+extra-libs-$(OPTION_EGLIBC_LIBM) := libm 2736+extra-libs-$(OPTION_EGLIBC_LIBM) := libm
2658+extra-libs-others-$(OPTION_EGLIBC_LIBM) = $(extra-libs-$(OPTION_EGLIBC_LIBM)) 2737+extra-libs-others-$(OPTION_EGLIBC_LIBM) = $(extra-libs-$(OPTION_EGLIBC_LIBM))
2659 2738
2660 libm-support = k_standard s_lib_version s_matherr s_signgam \ 2739 libm-support = s_lib_version s_matherr s_signgam \
2661 fclrexcpt fgetexcptflg fraiseexcpt fsetexcptflg \ 2740 fclrexcpt fgetexcptflg fraiseexcpt fsetexcptflg \
2662Index: git/misc/err.c 2741Index: git/misc/err.c
2663=================================================================== 2742===================================================================
2664--- git.orig/misc/err.c 2014-08-29 20:00:48.232070587 -0700 2743--- git.orig/misc/err.c
2665+++ git/misc/err.c 2014-08-29 20:01:15.212070587 -0700 2744+++ git/misc/err.c
2666@@ -22,6 +22,7 @@ 2745@@ -22,6 +22,7 @@
2667 #include <errno.h> 2746 #include <errno.h>
2668 #include <string.h> 2747 #include <string.h>
@@ -2671,7 +2750,7 @@ Index: git/misc/err.c
2671 2750
2672 #include <wchar.h> 2751 #include <wchar.h>
2673 #define flockfile(s) _IO_flockfile (s) 2752 #define flockfile(s) _IO_flockfile (s)
2674@@ -37,6 +38,7 @@ 2753@@ -37,6 +38,7 @@ extern char *__progname;
2675 va_end (ap); \ 2754 va_end (ap); \
2676 } 2755 }
2677 2756
@@ -2679,7 +2758,7 @@ Index: git/misc/err.c
2679 static void 2758 static void
2680 convert_and_print (const char *format, __gnuc_va_list ap) 2759 convert_and_print (const char *format, __gnuc_va_list ap)
2681 { 2760 {
2682@@ -81,6 +83,7 @@ 2761@@ -81,6 +83,7 @@ convert_and_print (const char *format, _
2683 2762
2684 __vfwprintf (stderr, wformat, ap); 2763 __vfwprintf (stderr, wformat, ap);
2685 } 2764 }
@@ -2687,7 +2766,7 @@ Index: git/misc/err.c
2687 2766
2688 void 2767 void
2689 vwarnx (const char *format, __gnuc_va_list ap) 2768 vwarnx (const char *format, __gnuc_va_list ap)
2690@@ -88,9 +91,13 @@ 2769@@ -88,9 +91,13 @@ vwarnx (const char *format, __gnuc_va_li
2691 flockfile (stderr); 2770 flockfile (stderr);
2692 if (_IO_fwide (stderr, 0) > 0) 2771 if (_IO_fwide (stderr, 0) > 0)
2693 { 2772 {
@@ -2701,7 +2780,7 @@ Index: git/misc/err.c
2701 } 2780 }
2702 else 2781 else
2703 { 2782 {
2704@@ -111,6 +118,7 @@ 2783@@ -111,6 +118,7 @@ vwarn (const char *format, __gnuc_va_lis
2705 flockfile (stderr); 2784 flockfile (stderr);
2706 if (_IO_fwide (stderr, 0) > 0) 2785 if (_IO_fwide (stderr, 0) > 0)
2707 { 2786 {
@@ -2709,7 +2788,7 @@ Index: git/misc/err.c
2709 __fwprintf (stderr, L"%s: ", __progname); 2788 __fwprintf (stderr, L"%s: ", __progname);
2710 if (format) 2789 if (format)
2711 { 2790 {
2712@@ -119,6 +127,9 @@ 2791@@ -119,6 +127,9 @@ vwarn (const char *format, __gnuc_va_lis
2713 } 2792 }
2714 __set_errno (error); 2793 __set_errno (error);
2715 __fwprintf (stderr, L"%m\n"); 2794 __fwprintf (stderr, L"%m\n");
@@ -2721,8 +2800,8 @@ Index: git/misc/err.c
2721 { 2800 {
2722Index: git/misc/error.c 2801Index: git/misc/error.c
2723=================================================================== 2802===================================================================
2724--- git.orig/misc/error.c 2014-08-29 20:00:48.232070587 -0700 2803--- git.orig/misc/error.c
2725+++ git/misc/error.c 2014-08-29 20:01:15.212070587 -0700 2804+++ git/misc/error.c
2726@@ -35,6 +35,7 @@ 2805@@ -35,6 +35,7 @@
2727 #endif 2806 #endif
2728 2807
@@ -2731,7 +2810,7 @@ Index: git/misc/error.c
2731 # include <libintl.h> 2810 # include <libintl.h>
2732 # include <stdbool.h> 2811 # include <stdbool.h>
2733 # include <stdint.h> 2812 # include <stdint.h>
2734@@ -205,6 +206,7 @@ 2813@@ -205,6 +206,7 @@ error_tail (int status, int errnum, cons
2735 #if _LIBC 2814 #if _LIBC
2736 if (_IO_fwide (stderr, 0) > 0) 2815 if (_IO_fwide (stderr, 0) > 0)
2737 { 2816 {
@@ -2739,7 +2818,7 @@ Index: git/misc/error.c
2739 size_t len = strlen (message) + 1; 2818 size_t len = strlen (message) + 1;
2740 wchar_t *wmessage = NULL; 2819 wchar_t *wmessage = NULL;
2741 mbstate_t st; 2820 mbstate_t st;
2742@@ -265,6 +267,9 @@ 2821@@ -265,6 +267,9 @@ error_tail (int status, int errnum, cons
2743 2822
2744 if (use_malloc) 2823 if (use_malloc)
2745 free (wmessage); 2824 free (wmessage);
@@ -2751,8 +2830,8 @@ Index: git/misc/error.c
2751 #endif 2830 #endif
2752Index: git/misc/Makefile 2831Index: git/misc/Makefile
2753=================================================================== 2832===================================================================
2754--- git.orig/misc/Makefile 2014-08-29 20:00:48.232070587 -0700 2833--- git.orig/misc/Makefile
2755+++ git/misc/Makefile 2014-08-29 20:01:15.212070587 -0700 2834+++ git/misc/Makefile
2756@@ -19,6 +19,10 @@ 2835@@ -19,6 +19,10 @@
2757 # Sub-makefile for misc portion of the library. 2836 # Sub-makefile for misc portion of the library.
2758 # 2837 #
@@ -2764,7 +2843,7 @@ Index: git/misc/Makefile
2764 subdir := misc 2843 subdir := misc
2765 2844
2766 include ../Makeconfig 2845 include ../Makeconfig
2767@@ -46,40 +50,47 @@ 2846@@ -46,40 +50,47 @@ routines := brk sbrk sstk ioctl \
2768 select pselect \ 2847 select pselect \
2769 acct chroot fsync sync fdatasync syncfs reboot \ 2848 acct chroot fsync sync fdatasync syncfs reboot \
2770 gethostid sethostid \ 2849 gethostid sethostid \
@@ -2821,9 +2900,9 @@ Index: git/misc/Makefile
2821 CFLAGS-tsearch.c = $(uses-callbacks) 2900 CFLAGS-tsearch.c = $(uses-callbacks)
2822Index: git/misc/tst-efgcvt.c 2901Index: git/misc/tst-efgcvt.c
2823=================================================================== 2902===================================================================
2824--- git.orig/misc/tst-efgcvt.c 2014-08-29 20:00:52.652070587 -0700 2903--- git.orig/misc/tst-efgcvt.c
2825+++ git/misc/tst-efgcvt.c 2014-08-29 20:01:15.216070587 -0700 2904+++ git/misc/tst-efgcvt.c
2826@@ -59,7 +59,7 @@ 2905@@ -59,7 +59,7 @@ static testcase ecvt_tests[] =
2827 { 123.01, -4, 3, "" }, 2906 { 123.01, -4, 3, "" },
2828 { 126.71, -4, 3, "" }, 2907 { 126.71, -4, 3, "" },
2829 { 0.0, 4, 1, "0000" }, 2908 { 0.0, 4, 1, "0000" },
@@ -2834,8 +2913,8 @@ Index: git/misc/tst-efgcvt.c
2834 #endif 2913 #endif
2835Index: git/nis/Makefile 2914Index: git/nis/Makefile
2836=================================================================== 2915===================================================================
2837--- git.orig/nis/Makefile 2014-08-29 20:00:52.660070587 -0700 2916--- git.orig/nis/Makefile
2838+++ git/nis/Makefile 2014-08-29 20:01:15.216070587 -0700 2917+++ git/nis/Makefile
2839@@ -18,6 +18,8 @@ 2918@@ -18,6 +18,8 @@
2840 # 2919 #
2841 # Makefile for NIS/NIS+ part. 2920 # Makefile for NIS/NIS+ part.
@@ -2845,7 +2924,7 @@ Index: git/nis/Makefile
2845 subdir := nis 2924 subdir := nis
2846 2925
2847 include ../Makeconfig 2926 include ../Makeconfig
2848@@ -30,19 +32,26 @@ 2927@@ -30,19 +32,26 @@ endif
2849 2928
2850 # These are the databases available for the nis (and perhaps later nisplus) 2929 # These are the databases available for the nis (and perhaps later nisplus)
2851 # service. This must be a superset of the services in nss. 2930 # service. This must be a superset of the services in nss.
@@ -2878,7 +2957,7 @@ Index: git/nis/Makefile
2878 vpath %.c $(subdir-dirs) 2957 vpath %.c $(subdir-dirs)
2879 2958
2880 libnsl-routines = yp_xdr ypclnt ypupdate_xdr \ 2959 libnsl-routines = yp_xdr ypclnt ypupdate_xdr \
2881@@ -60,11 +69,11 @@ 2960@@ -60,11 +69,11 @@ libnsl-routines = yp_xdr ypclnt ypupdate
2882 libnss_compat-routines := $(addprefix compat-,grp pwd spwd initgroups) 2961 libnss_compat-routines := $(addprefix compat-,grp pwd spwd initgroups)
2883 libnss_compat-inhibit-o = $(filter-out .os,$(object-suffixes)) 2962 libnss_compat-inhibit-o = $(filter-out .os,$(object-suffixes))
2884 2963
@@ -2892,7 +2971,7 @@ Index: git/nis/Makefile
2892 nss-nisplus nisplus-initgroups 2971 nss-nisplus nisplus-initgroups
2893 libnss_nisplus-inhibit-o = $(filter-out .os,$(object-suffixes)) 2972 libnss_nisplus-inhibit-o = $(filter-out .os,$(object-suffixes))
2894 2973
2895@@ -80,12 +89,12 @@ 2974@@ -80,12 +89,12 @@ libnsl-libc = $(common-objpfx)linkobj/li
2896 # Target-specific variable setting to link objects using deprecated 2975 # Target-specific variable setting to link objects using deprecated
2897 # RPC interfaces with the version of libc.so that makes them available 2976 # RPC interfaces with the version of libc.so that makes them available
2898 # for new links: 2977 # for new links:
@@ -2910,8 +2989,8 @@ Index: git/nis/Makefile
2910 endif 2989 endif
2911Index: git/nptl/Makefile 2990Index: git/nptl/Makefile
2912=================================================================== 2991===================================================================
2913--- git.orig/nptl/Makefile 2014-08-29 20:00:52.704070587 -0700 2992--- git.orig/nptl/Makefile
2914+++ git/nptl/Makefile 2014-08-29 20:01:15.216070587 -0700 2993+++ git/nptl/Makefile
2915@@ -18,6 +18,8 @@ 2994@@ -18,6 +18,8 @@
2916 # 2995 #
2917 # Sub-makefile for NPTL portion of the library. 2996 # Sub-makefile for NPTL portion of the library.
@@ -2921,7 +3000,7 @@ Index: git/nptl/Makefile
2921 subdir := nptl 3000 subdir := nptl
2922 3001
2923 include ../Makeconfig 3002 include ../Makeconfig
2924@@ -116,7 +118,7 @@ 3003@@ -117,7 +119,7 @@ libpthread-routines = nptl-init vars eve
2925 pt-raise pt-system \ 3004 pt-raise pt-system \
2926 flockfile ftrylockfile funlockfile \ 3005 flockfile ftrylockfile funlockfile \
2927 sigaction \ 3006 sigaction \
@@ -2930,7 +3009,7 @@ Index: git/nptl/Makefile
2930 pthread_kill_other_threads \ 3009 pthread_kill_other_threads \
2931 pthread_getaffinity pthread_setaffinity \ 3010 pthread_getaffinity pthread_setaffinity \
2932 pthread_attr_getaffinity pthread_attr_setaffinity \ 3011 pthread_attr_getaffinity pthread_attr_setaffinity \
2933@@ -136,6 +138,8 @@ 3012@@ -137,6 +139,8 @@ libpthread-routines = nptl-init vars eve
2934 # pthread_setgid pthread_setegid pthread_setregid \ 3013 # pthread_setgid pthread_setegid pthread_setregid \
2935 # pthread_setresgid 3014 # pthread_setresgid
2936 3015
@@ -2939,7 +3018,7 @@ Index: git/nptl/Makefile
2939 libpthread-shared-only-routines = version pt-allocrtsig unwind-forcedunwind 3018 libpthread-shared-only-routines = version pt-allocrtsig unwind-forcedunwind
2940 libpthread-static-only-routines = pthread_atfork 3019 libpthread-static-only-routines = pthread_atfork
2941 3020
2942@@ -210,7 +214,7 @@ 3021@@ -211,7 +215,7 @@ tests = tst-typesizes \
2943 tst-mutexpi1 tst-mutexpi2 tst-mutexpi3 tst-mutexpi4 tst-mutexpi5 \ 3022 tst-mutexpi1 tst-mutexpi2 tst-mutexpi3 tst-mutexpi4 tst-mutexpi5 \
2944 tst-mutexpi5a tst-mutexpi6 tst-mutexpi7 tst-mutexpi7a tst-mutexpi8 \ 3023 tst-mutexpi5a tst-mutexpi6 tst-mutexpi7 tst-mutexpi7a tst-mutexpi8 \
2945 tst-mutexpi9 \ 3024 tst-mutexpi9 \
@@ -2948,7 +3027,7 @@ Index: git/nptl/Makefile
2948 tst-cond1 tst-cond2 tst-cond3 tst-cond4 tst-cond5 tst-cond6 tst-cond7 \ 3027 tst-cond1 tst-cond2 tst-cond3 tst-cond4 tst-cond5 tst-cond6 tst-cond7 \
2949 tst-cond8 tst-cond9 tst-cond10 tst-cond11 tst-cond12 tst-cond13 \ 3028 tst-cond8 tst-cond9 tst-cond10 tst-cond11 tst-cond12 tst-cond13 \
2950 tst-cond14 tst-cond15 tst-cond16 tst-cond17 tst-cond18 tst-cond19 \ 3029 tst-cond14 tst-cond15 tst-cond16 tst-cond17 tst-cond18 tst-cond19 \
2951@@ -244,14 +248,14 @@ 3030@@ -245,14 +249,14 @@ tests = tst-typesizes \
2952 tst-cancel6 tst-cancel7 tst-cancel8 tst-cancel9 tst-cancel10 \ 3031 tst-cancel6 tst-cancel7 tst-cancel8 tst-cancel9 tst-cancel10 \
2953 tst-cancel11 tst-cancel12 tst-cancel13 tst-cancel14 tst-cancel15 \ 3032 tst-cancel11 tst-cancel12 tst-cancel13 tst-cancel14 tst-cancel15 \
2954 tst-cancel16 tst-cancel17 tst-cancel18 tst-cancel19 tst-cancel20 \ 3033 tst-cancel16 tst-cancel17 tst-cancel18 tst-cancel19 tst-cancel20 \
@@ -2964,8 +3043,8 @@ Index: git/nptl/Makefile
2964+ tst-exec2 tst-exec3 tst-exec4 \ 3043+ tst-exec2 tst-exec3 tst-exec4 \
2965 tst-exit1 tst-exit2 tst-exit3 \ 3044 tst-exit1 tst-exit2 tst-exit3 \
2966 tst-stdio1 tst-stdio2 \ 3045 tst-stdio1 tst-stdio2 \
2967 tst-stack1 tst-stack2 tst-stack3 tst-pthread-getattr \ 3046 tst-stack1 tst-stack2 tst-stack3 tst-stack4 tst-pthread-getattr \
2968@@ -259,13 +263,12 @@ 3047@@ -260,13 +264,12 @@ tests = tst-typesizes \
2969 tst-unload \ 3048 tst-unload \
2970 tst-dlsym1 \ 3049 tst-dlsym1 \
2971 tst-sysconf \ 3050 tst-sysconf \
@@ -2980,7 +3059,7 @@ Index: git/nptl/Makefile
2980 tst-abstime \ 3059 tst-abstime \
2981 tst-vfork1 tst-vfork2 tst-vfork1x tst-vfork2x \ 3060 tst-vfork1 tst-vfork2 tst-vfork1x tst-vfork2x \
2982 tst-getpid1 tst-getpid2 tst-getpid3 \ 3061 tst-getpid1 tst-getpid2 tst-getpid3 \
2983@@ -275,6 +278,17 @@ 3062@@ -277,6 +280,17 @@ xtests = tst-setuid1 tst-setuid1-static
2984 tst-mutexpp1 tst-mutexpp6 tst-mutexpp10 3063 tst-mutexpp1 tst-mutexpp6 tst-mutexpp10
2985 test-srcs = tst-oddstacklimit 3064 test-srcs = tst-oddstacklimit
2986 3065
@@ -3000,17 +3079,17 @@ Index: git/nptl/Makefile
3000 3079
3001Index: git/nptl/pthread_create.c 3080Index: git/nptl/pthread_create.c
3002=================================================================== 3081===================================================================
3003--- git.orig/nptl/pthread_create.c 2014-08-29 20:00:52.764070587 -0700 3082--- git.orig/nptl/pthread_create.c
3004+++ git/nptl/pthread_create.c 2014-08-29 20:01:15.216070587 -0700 3083+++ git/nptl/pthread_create.c
3005@@ -31,6 +31,7 @@ 3084@@ -32,6 +32,7 @@
3006 #include <kernel-features.h>
3007 #include <exit-thread.h> 3085 #include <exit-thread.h>
3086 #include <default-sched.h>
3008 3087
3009+#include <gnu/option-groups.h> 3088+#include <gnu/option-groups.h>
3010 #include <shlib-compat.h> 3089 #include <shlib-compat.h>
3011 3090
3012 #include <stap-probe.h> 3091 #include <stap-probe.h>
3013@@ -240,8 +241,10 @@ 3092@@ -261,8 +262,10 @@ START_THREAD_DEFN
3014 THREAD_SETMEM (pd, cpuclock_offset, now); 3093 THREAD_SETMEM (pd, cpuclock_offset, now);
3015 #endif 3094 #endif
3016 3095
@@ -3021,7 +3100,7 @@ Index: git/nptl/pthread_create.c
3021 3100
3022 /* Initialize pointers to locale data. */ 3101 /* Initialize pointers to locale data. */
3023 __ctype_init (); 3102 __ctype_init ();
3024@@ -322,8 +325,10 @@ 3103@@ -345,8 +348,10 @@ START_THREAD_DEFN
3025 /* Run the destructor for the thread-local data. */ 3104 /* Run the destructor for the thread-local data. */
3026 __nptl_deallocate_tsd (); 3105 __nptl_deallocate_tsd ();
3027 3106
@@ -3034,8 +3113,8 @@ Index: git/nptl/pthread_create.c
3034 do not notify the debugger, it might just irritate it if there 3113 do not notify the debugger, it might just irritate it if there
3035Index: git/nscd/Makefile 3114Index: git/nscd/Makefile
3036=================================================================== 3115===================================================================
3037--- git.orig/nscd/Makefile 2014-08-29 20:00:52.948070587 -0700 3116--- git.orig/nscd/Makefile
3038+++ git/nscd/Makefile 2014-08-29 20:01:15.216070587 -0700 3117+++ git/nscd/Makefile
3039@@ -18,14 +18,17 @@ 3118@@ -18,14 +18,17 @@
3040 # 3119 #
3041 # Sub-makefile for nscd portion of the library. 3120 # Sub-makefile for nscd portion of the library.
@@ -3056,7 +3135,7 @@ Index: git/nscd/Makefile
3056 endif 3135 endif
3057 3136
3058 # To find xmalloc.c 3137 # To find xmalloc.c
3059@@ -37,14 +40,18 @@ 3138@@ -37,14 +40,18 @@ nscd-modules := nscd connections pwdcach
3060 dbg_log nscd_conf nscd_stat cache mem nscd_setup_thread \ 3139 dbg_log nscd_conf nscd_stat cache mem nscd_setup_thread \
3061 xmalloc xstrdup aicache initgrcache gai res_hconf \ 3140 xmalloc xstrdup aicache initgrcache gai res_hconf \
3062 netgroupcache 3141 netgroupcache
@@ -3080,7 +3159,7 @@ Index: git/nscd/Makefile
3080 3159
3081 endif 3160 endif
3082 3161
3083@@ -101,7 +108,15 @@ 3162@@ -100,7 +107,15 @@ include $(patsubst %,$(..)cppflags-itera
3084 $(objpfx)nscd: $(nscd-modules:%=$(objpfx)%.o) 3163 $(objpfx)nscd: $(nscd-modules:%=$(objpfx)%.o)
3085 3164
3086 ifeq ($(build-shared),yes) 3165 ifeq ($(build-shared),yes)
@@ -3100,16 +3179,16 @@ Index: git/nscd/Makefile
3100 endif 3179 endif
3101Index: git/nscd/nis_hash.c 3180Index: git/nscd/nis_hash.c
3102=================================================================== 3181===================================================================
3103--- /dev/null 1970-01-01 00:00:00.000000000 +0000 3182--- /dev/null
3104+++ git/nscd/nis_hash.c 2014-08-29 20:01:15.216070587 -0700 3183+++ git/nscd/nis_hash.c
3105@@ -0,0 +1,3 @@ 3184@@ -0,0 +1,3 @@
3106+/* If OPTION_EGLIBC_NIS is disabled, nscd can't get this from libnsl.so; 3185+/* If OPTION_EGLIBC_NIS is disabled, nscd can't get this from libnsl.so;
3107+ we need our own copy. */ 3186+ we need our own copy. */
3108+#include "../nis/nis_hash.c" 3187+#include "../nis/nis_hash.c"
3109Index: git/nss/fixed-nsswitch.conf 3188Index: git/nss/fixed-nsswitch.conf
3110=================================================================== 3189===================================================================
3111--- /dev/null 1970-01-01 00:00:00.000000000 +0000 3190--- /dev/null
3112+++ git/nss/fixed-nsswitch.conf 2014-08-29 20:01:15.216070587 -0700 3191+++ git/nss/fixed-nsswitch.conf
3113@@ -0,0 +1,22 @@ 3192@@ -0,0 +1,22 @@
3114+# /etc/nsswitch.conf 3193+# /etc/nsswitch.conf
3115+# 3194+#
@@ -3135,8 +3214,8 @@ Index: git/nss/fixed-nsswitch.conf
3135+netgroup: files 3214+netgroup: files
3136Index: git/nss/fixed-nsswitch.functions 3215Index: git/nss/fixed-nsswitch.functions
3137=================================================================== 3216===================================================================
3138--- /dev/null 1970-01-01 00:00:00.000000000 +0000 3217--- /dev/null
3139+++ git/nss/fixed-nsswitch.functions 2014-08-29 20:01:15.216070587 -0700 3218+++ git/nss/fixed-nsswitch.functions
3140@@ -0,0 +1,121 @@ 3219@@ -0,0 +1,121 @@
3141+/* List of functions defined for fixed NSS in GNU C Library. 3220+/* List of functions defined for fixed NSS in GNU C Library.
3142+ Copyright (C) 1996, 1997, 1998, 2005 Free Software Foundation, Inc. 3221+ Copyright (C) 1996, 1997, 1998, 2005 Free Software Foundation, Inc.
@@ -3261,8 +3340,8 @@ Index: git/nss/fixed-nsswitch.functions
3261+DEFINE_GET (shadow, files, spnam) 3340+DEFINE_GET (shadow, files, spnam)
3262Index: git/nss/gen-fixed-nsswitch.c 3341Index: git/nss/gen-fixed-nsswitch.c
3263=================================================================== 3342===================================================================
3264--- /dev/null 1970-01-01 00:00:00.000000000 +0000 3343--- /dev/null
3265+++ git/nss/gen-fixed-nsswitch.c 2014-08-29 20:01:15.216070587 -0700 3344+++ git/nss/gen-fixed-nsswitch.c
3266@@ -0,0 +1,803 @@ 3345@@ -0,0 +1,803 @@
3267+/* gen-fixed-nsswitch.c --- generate fixed name service data structures 3346+/* gen-fixed-nsswitch.c --- generate fixed name service data structures
3268+ Copyright (C) 1996-1999, 2001-2006, 2007 Free Software Foundation, Inc. 3347+ Copyright (C) 1996-1999, 2001-2006, 2007 Free Software Foundation, Inc.
@@ -4069,8 +4148,8 @@ Index: git/nss/gen-fixed-nsswitch.c
4069+} 4148+}
4070Index: git/nss/getent.c 4149Index: git/nss/getent.c
4071=================================================================== 4150===================================================================
4072--- git.orig/nss/getent.c 2014-08-29 20:00:52.976070587 -0700 4151--- git.orig/nss/getent.c
4073+++ git/nss/getent.c 2014-08-29 20:01:15.216070587 -0700 4152+++ git/nss/getent.c
4074@@ -39,6 +39,7 @@ 4153@@ -39,6 +39,7 @@
4075 #include <netinet/ether.h> 4154 #include <netinet/ether.h>
4076 #include <netinet/in.h> 4155 #include <netinet/in.h>
@@ -4079,7 +4158,7 @@ Index: git/nss/getent.c
4079 4158
4080 /* Get libc version number. */ 4159 /* Get libc version number. */
4081 #include <version.h> 4160 #include <version.h>
4082@@ -91,6 +92,7 @@ 4161@@ -91,6 +92,7 @@ warranty; not even for MERCHANTABILITY o
4083 fprintf (stream, gettext ("Written by %s.\n"), "Thorsten Kukuk"); 4162 fprintf (stream, gettext ("Written by %s.\n"), "Thorsten Kukuk");
4084 } 4163 }
4085 4164
@@ -4087,7 +4166,7 @@ Index: git/nss/getent.c
4087 /* This is for aliases */ 4166 /* This is for aliases */
4088 static void 4167 static void
4089 print_aliases (struct aliasent *alias) 4168 print_aliases (struct aliasent *alias)
4090@@ -135,7 +137,9 @@ 4169@@ -135,7 +137,9 @@ aliases_keys (int number, char *key[])
4091 4170
4092 return result; 4171 return result;
4093 } 4172 }
@@ -4097,7 +4176,7 @@ Index: git/nss/getent.c
4097 /* This is for ethers */ 4176 /* This is for ethers */
4098 static int 4177 static int
4099 ethers_keys (int number, char *key[]) 4178 ethers_keys (int number, char *key[])
4100@@ -179,6 +183,7 @@ 4179@@ -179,6 +183,7 @@ ethers_keys (int number, char *key[])
4101 4180
4102 return result; 4181 return result;
4103 } 4182 }
@@ -4105,7 +4184,7 @@ Index: git/nss/getent.c
4105 4184
4106 /* This is for group */ 4185 /* This is for group */
4107 static void 4186 static void
4108@@ -301,6 +306,7 @@ 4187@@ -301,6 +306,7 @@ gshadow_keys (int number, char *key[])
4109 return result; 4188 return result;
4110 } 4189 }
4111 4190
@@ -4113,7 +4192,7 @@ Index: git/nss/getent.c
4113 /* This is for hosts */ 4192 /* This is for hosts */
4114 static void 4193 static void
4115 print_hosts (struct hostent *host) 4194 print_hosts (struct hostent *host)
4116@@ -598,6 +604,7 @@ 4195@@ -598,6 +604,7 @@ networks_keys (int number, char *key[])
4117 4196
4118 return result; 4197 return result;
4119 } 4198 }
@@ -4121,7 +4200,7 @@ Index: git/nss/getent.c
4121 4200
4122 /* Now is all for passwd */ 4201 /* Now is all for passwd */
4123 static void 4202 static void
4124@@ -650,6 +657,7 @@ 4203@@ -650,6 +657,7 @@ passwd_keys (int number, char *key[])
4125 return result; 4204 return result;
4126 } 4205 }
4127 4206
@@ -4129,7 +4208,7 @@ Index: git/nss/getent.c
4129 /* This is for protocols */ 4208 /* This is for protocols */
4130 static void 4209 static void
4131 print_protocols (struct protoent *proto) 4210 print_protocols (struct protoent *proto)
4132@@ -805,6 +813,7 @@ 4211@@ -805,6 +813,7 @@ services_keys (int number, char *key[])
4133 4212
4134 return result; 4213 return result;
4135 } 4214 }
@@ -4137,7 +4216,7 @@ Index: git/nss/getent.c
4137 4216
4138 /* This is for shadow */ 4217 /* This is for shadow */
4139 static void 4218 static void
4140@@ -871,21 +880,34 @@ 4219@@ -871,21 +880,34 @@ struct
4141 } databases[] = 4220 } databases[] =
4142 { 4221 {
4143 #define D(name) { #name, name ## _keys }, 4222 #define D(name) { #name, name ## _keys },
@@ -4167,11 +4246,11 @@ Index: git/nss/getent.c
4167 D(group) 4246 D(group)
4168 D(gshadow) 4247 D(gshadow)
4169-D(hosts) 4248-D(hosts)
4170+DN(hosts)
4171-D(initgroups) 4249-D(initgroups)
4172+DN(initgroups)
4173-D(netgroup) 4250-D(netgroup)
4174-D(networks) 4251-D(networks)
4252+DN(hosts)
4253+DN(initgroups)
4175+DN(netgroup) 4254+DN(netgroup)
4176+DN(networks) 4255+DN(networks)
4177 D(passwd) 4256 D(passwd)
@@ -4186,8 +4265,8 @@ Index: git/nss/getent.c
4186 { NULL, NULL } 4265 { NULL, NULL }
4187Index: git/nss/getnssent_r.c 4266Index: git/nss/getnssent_r.c
4188=================================================================== 4267===================================================================
4189--- git.orig/nss/getnssent_r.c 2014-08-29 20:00:52.976070587 -0700 4268--- git.orig/nss/getnssent_r.c
4190+++ git/nss/getnssent_r.c 2014-08-29 20:01:15.220070587 -0700 4269+++ git/nss/getnssent_r.c
4191@@ -16,6 +16,7 @@ 4270@@ -16,6 +16,7 @@
4192 <http://www.gnu.org/licenses/>. */ 4271 <http://www.gnu.org/licenses/>. */
4193 4272
@@ -4196,7 +4275,7 @@ Index: git/nss/getnssent_r.c
4196 #include <netdb.h> 4275 #include <netdb.h>
4197 #include "nsswitch.h" 4276 #include "nsswitch.h"
4198 4277
4199@@ -59,11 +60,13 @@ 4278@@ -59,11 +60,13 @@ __nss_setent (const char *func_name, db_
4200 } fct; 4279 } fct;
4201 int no_more; 4280 int no_more;
4202 4281
@@ -4210,7 +4289,7 @@ Index: git/nss/getnssent_r.c
4210 4289
4211 /* Cycle through the services and run their `setXXent' functions until 4290 /* Cycle through the services and run their `setXXent' functions until
4212 we find an available service. */ 4291 we find an available service. */
4213@@ -101,11 +104,13 @@ 4292@@ -101,11 +104,13 @@ __nss_endent (const char *func_name, db_
4214 } fct; 4293 } fct;
4215 int no_more; 4294 int no_more;
4216 4295
@@ -4224,7 +4303,7 @@ Index: git/nss/getnssent_r.c
4224 4303
4225 /* Cycle through all the services and run their endXXent functions. */ 4304 /* Cycle through all the services and run their endXXent functions. */
4226 no_more = setup (func_name, lookup_fct, &fct.ptr, nip, startp, 1); 4305 no_more = setup (func_name, lookup_fct, &fct.ptr, nip, startp, 1);
4227@@ -141,12 +146,14 @@ 4306@@ -141,12 +146,14 @@ __nss_getent_r (const char *getent_func_
4228 int no_more; 4307 int no_more;
4229 enum nss_status status; 4308 enum nss_status status;
4230 4309
@@ -4239,7 +4318,7 @@ Index: git/nss/getnssent_r.c
4239 4318
4240 /* Initialize status to return if no more functions are found. */ 4319 /* Initialize status to return if no more functions are found. */
4241 status = NSS_STATUS_NOTFOUND; 4320 status = NSS_STATUS_NOTFOUND;
4242@@ -161,7 +168,7 @@ 4321@@ -161,7 +168,7 @@ __nss_getent_r (const char *getent_func_
4243 int is_last_nip = *nip == *last_nip; 4322 int is_last_nip = *nip == *last_nip;
4244 4323
4245 status = DL_CALL_FCT (fct.f, 4324 status = DL_CALL_FCT (fct.f,
@@ -4250,8 +4329,8 @@ Index: git/nss/getnssent_r.c
4250 provided buffer is too small. In this case we should give 4329 provided buffer is too small. In this case we should give
4251Index: git/nss/Makefile 4330Index: git/nss/Makefile
4252=================================================================== 4331===================================================================
4253--- git.orig/nss/Makefile 2014-08-29 20:00:52.972070587 -0700 4332--- git.orig/nss/Makefile
4254+++ git/nss/Makefile 2014-08-29 20:01:15.220070587 -0700 4333+++ git/nss/Makefile
4255@@ -18,29 +18,36 @@ 4334@@ -18,29 +18,36 @@
4256 # 4335 #
4257 # Makefile for name service switch. 4336 # Makefile for name service switch.
@@ -4297,7 +4376,7 @@ Index: git/nss/Makefile
4297 4376
4298 # Specify rules for the nss_* modules. We have some services. 4377 # Specify rules for the nss_* modules. We have some services.
4299 services := files db 4378 services := files db
4300@@ -55,7 +62,7 @@ 4379@@ -55,7 +62,7 @@ subdir-dirs = $(services:%=nss_%)
4301 vpath %.c $(subdir-dirs) ../locale/programs ../intl 4380 vpath %.c $(subdir-dirs) ../locale/programs ../intl
4302 4381
4303 4382
@@ -4306,7 +4385,7 @@ Index: git/nss/Makefile
4306 files-initgroups files-have_o_cloexec files-init 4385 files-initgroups files-have_o_cloexec files-init
4307 4386
4308 libnss_db-dbs := $(addprefix db-,\ 4387 libnss_db-dbs := $(addprefix db-,\
4309@@ -78,6 +85,45 @@ 4388@@ -78,6 +85,45 @@ tests-static = tst-nss-static
4310 tests += $(tests-static) 4389 tests += $(tests-static)
4311 endif 4390 endif
4312 4391
@@ -4354,8 +4433,8 @@ Index: git/nss/Makefile
4354 ifeq (yes,$(have-selinux)) 4433 ifeq (yes,$(have-selinux))
4355Index: git/nss/nsswitch.c 4434Index: git/nss/nsswitch.c
4356=================================================================== 4435===================================================================
4357--- git.orig/nss/nsswitch.c 2014-08-29 20:00:53.004070587 -0700 4436--- git.orig/nss/nsswitch.c
4358+++ git/nss/nsswitch.c 2014-08-29 20:01:15.220070587 -0700 4437+++ git/nss/nsswitch.c
4359@@ -26,6 +26,7 @@ 4438@@ -26,6 +26,7 @@
4360 #include <stdio_ext.h> 4439 #include <stdio_ext.h>
4361 #include <stdlib.h> 4440 #include <stdlib.h>
@@ -4380,7 +4459,7 @@ Index: git/nss/nsswitch.c
4380 /* Prototypes for the local functions. */ 4459 /* Prototypes for the local functions. */
4381 static name_database *nss_parse_file (const char *fname) internal_function; 4460 static name_database *nss_parse_file (const char *fname) internal_function;
4382 static name_database_entry *nss_getline (char *line) internal_function; 4461 static name_database_entry *nss_getline (char *line) internal_function;
4383@@ -79,6 +89,9 @@ 4462@@ -79,6 +89,9 @@ bool __nss_database_custom[NSS_DBSIDX_ma
4384 4463
4385 __libc_lock_define_initialized (static, lock) 4464 __libc_lock_define_initialized (static, lock)
4386 4465
@@ -4390,7 +4469,7 @@ Index: git/nss/nsswitch.c
4390 #if !defined DO_STATIC_NSS || defined SHARED 4469 #if !defined DO_STATIC_NSS || defined SHARED
4391 /* String with revision number of the shared object files. */ 4470 /* String with revision number of the shared object files. */
4392 static const char *const __nss_shlib_revision = LIBNSS_FILES_SO + 15; 4471 static const char *const __nss_shlib_revision = LIBNSS_FILES_SO + 15;
4393@@ -93,6 +106,20 @@ 4472@@ -93,6 +106,20 @@ static name_database *service_table;
4394 __libc_freeres. */ 4473 __libc_freeres. */
4395 static name_database_entry *defconfig_entries; 4474 static name_database_entry *defconfig_entries;
4396 4475
@@ -4411,7 +4490,7 @@ Index: git/nss/nsswitch.c
4411 4490
4412 #ifdef USE_NSCD 4491 #ifdef USE_NSCD
4413 /* Nonzero if this is the nscd process. */ 4492 /* Nonzero if this is the nscd process. */
4414@@ -109,20 +136,22 @@ 4493@@ -109,20 +136,22 @@ __nss_database_lookup (const char *datab
4415 const char *defconfig, service_user **ni) 4494 const char *defconfig, service_user **ni)
4416 { 4495 {
4417 /* Prevent multiple threads to change the service table. */ 4496 /* Prevent multiple threads to change the service table. */
@@ -4436,7 +4515,7 @@ Index: git/nss/nsswitch.c
4436 4515
4437 /* Test whether configuration data is available. */ 4516 /* Test whether configuration data is available. */
4438 if (service_table != NULL) 4517 if (service_table != NULL)
4439@@ -144,6 +173,7 @@ 4518@@ -144,6 +173,7 @@ __nss_database_lookup (const char *datab
4440 *ni = entry->service; 4519 *ni = entry->service;
4441 } 4520 }
4442 4521
@@ -4444,7 +4523,7 @@ Index: git/nss/nsswitch.c
4444 /* No configuration data is available, either because nsswitch.conf 4523 /* No configuration data is available, either because nsswitch.conf
4445 doesn't exist or because it doesn't have a line for this database. 4524 doesn't exist or because it doesn't have a line for this database.
4446 4525
4447@@ -166,13 +196,23 @@ 4526@@ -166,13 +196,23 @@ __nss_database_lookup (const char *datab
4448 { 4527 {
4449 entry->next = defconfig_entries; 4528 entry->next = defconfig_entries;
4450 entry->service = *ni; 4529 entry->service = *ni;
@@ -4470,7 +4549,7 @@ Index: git/nss/nsswitch.c
4470 4549
4471 return *ni != NULL ? 0 : -1; 4550 return *ni != NULL ? 0 : -1;
4472 } 4551 }
4473@@ -252,6 +292,7 @@ 4552@@ -252,6 +292,7 @@ __nss_next2 (service_user **ni, const ch
4474 libc_hidden_def (__nss_next2) 4553 libc_hidden_def (__nss_next2)
4475 4554
4476 4555
@@ -4478,7 +4557,7 @@ Index: git/nss/nsswitch.c
4478 int 4557 int
4479 attribute_compat_text_section 4558 attribute_compat_text_section
4480 __nss_next (service_user **ni, const char *fct_name, void **fctp, int status, 4559 __nss_next (service_user **ni, const char *fct_name, void **fctp, int status,
4481@@ -300,13 +341,13 @@ 4560@@ -300,13 +341,13 @@ __nss_configure_lookup (const char *dbna
4482 } 4561 }
4483 4562
4484 /* Prevent multiple threads to change the service table. */ 4563 /* Prevent multiple threads to change the service table. */
@@ -4494,7 +4573,7 @@ Index: git/nss/nsswitch.c
4494 4573
4495 return 0; 4574 return 0;
4496 } 4575 }
4497@@ -402,7 +443,7 @@ 4576@@ -402,7 +443,7 @@ __nss_lookup_function (service_user *ni,
4498 void **found, *result; 4577 void **found, *result;
4499 4578
4500 /* We now modify global data. Protect it. */ 4579 /* We now modify global data. Protect it. */
@@ -4503,7 +4582,7 @@ Index: git/nss/nsswitch.c
4503 4582
4504 /* Search the tree of functions previously requested. Data in the 4583 /* Search the tree of functions previously requested. Data in the
4505 tree are `known_function' structures, whose first member is a 4584 tree are `known_function' structures, whose first member is a
4506@@ -413,7 +454,7 @@ 4585@@ -413,7 +454,7 @@ __nss_lookup_function (service_user *ni,
4507 enough to a pointer to our structure to use as a lookup key that 4586 enough to a pointer to our structure to use as a lookup key that
4508 will be passed to `known_compare' (above). */ 4587 will be passed to `known_compare' (above). */
4509 4588
@@ -4512,7 +4591,7 @@ Index: git/nss/nsswitch.c
4512 if (found == NULL) 4591 if (found == NULL)
4513 /* This means out-of-memory. */ 4592 /* This means out-of-memory. */
4514 result = NULL; 4593 result = NULL;
4515@@ -440,7 +481,7 @@ 4594@@ -440,7 +481,7 @@ __nss_lookup_function (service_user *ni,
4516 #endif 4595 #endif
4517 /* Oops. We can't instantiate this node properly. 4596 /* Oops. We can't instantiate this node properly.
4518 Remove it from the tree. */ 4597 Remove it from the tree. */
@@ -4521,7 +4600,7 @@ Index: git/nss/nsswitch.c
4521 free (known); 4600 free (known);
4522 result = NULL; 4601 result = NULL;
4523 } 4602 }
4524@@ -520,13 +561,43 @@ 4603@@ -520,13 +561,43 @@ __nss_lookup_function (service_user *ni,
4525 } 4604 }
4526 4605
4527 /* Remove the lock. */ 4606 /* Remove the lock. */
@@ -4566,7 +4645,7 @@ Index: git/nss/nsswitch.c
4566 static name_database * 4645 static name_database *
4567 internal_function 4646 internal_function
4568 nss_parse_file (const char *fname) 4647 nss_parse_file (const char *fname)
4569@@ -632,8 +703,10 @@ 4648@@ -632,8 +703,10 @@ nss_parse_service_list (const char *line
4570 + (line - name + 1)); 4649 + (line - name + 1));
4571 if (new_service == NULL) 4650 if (new_service == NULL)
4572 return result; 4651 return result;
@@ -4578,7 +4657,7 @@ Index: git/nss/nsswitch.c
4578 4657
4579 /* Set default actions. */ 4658 /* Set default actions. */
4580 new_service->actions[2 + NSS_STATUS_TRYAGAIN] = NSS_ACTION_CONTINUE; 4659 new_service->actions[2 + NSS_STATUS_TRYAGAIN] = NSS_ACTION_CONTINUE;
4581@@ -642,7 +715,7 @@ 4660@@ -642,7 +715,7 @@ nss_parse_service_list (const char *line
4582 new_service->actions[2 + NSS_STATUS_SUCCESS] = NSS_ACTION_RETURN; 4661 new_service->actions[2 + NSS_STATUS_SUCCESS] = NSS_ACTION_RETURN;
4583 new_service->actions[2 + NSS_STATUS_RETURN] = NSS_ACTION_RETURN; 4662 new_service->actions[2 + NSS_STATUS_RETURN] = NSS_ACTION_RETURN;
4584 new_service->library = NULL; 4663 new_service->library = NULL;
@@ -4587,7 +4666,7 @@ Index: git/nss/nsswitch.c
4587 new_service->next = NULL; 4666 new_service->next = NULL;
4588 4667
4589 while (isspace (line[0])) 4668 while (isspace (line[0]))
4590@@ -778,9 +851,10 @@ 4669@@ -778,9 +851,10 @@ nss_getline (char *line)
4591 result = (name_database_entry *) malloc (sizeof (name_database_entry) + len); 4670 result = (name_database_entry *) malloc (sizeof (name_database_entry) + len);
4592 if (result == NULL) 4671 if (result == NULL)
4593 return NULL; 4672 return NULL;
@@ -4599,7 +4678,7 @@ Index: git/nss/nsswitch.c
4599 4678
4600 /* Parse the list of services. */ 4679 /* Parse the list of services. */
4601 result->service = nss_parse_service_list (line); 4680 result->service = nss_parse_service_list (line);
4602@@ -816,6 +890,7 @@ 4681@@ -816,6 +890,7 @@ nss_new_service (name_database *database
4603 return *currentp; 4682 return *currentp;
4604 } 4683 }
4605 #endif 4684 #endif
@@ -4607,7 +4686,7 @@ Index: git/nss/nsswitch.c
4607 4686
4608 4687
4609 #if defined SHARED && defined USE_NSCD 4688 #if defined SHARED && defined USE_NSCD
4610@@ -834,6 +909,7 @@ 4689@@ -834,6 +909,7 @@ nss_load_all_libraries (const char *serv
4611 } 4690 }
4612 4691
4613 4692
@@ -4615,7 +4694,7 @@ Index: git/nss/nsswitch.c
4615 /* Called by nscd and nscd alone. */ 4694 /* Called by nscd and nscd alone. */
4616 void 4695 void
4617 __nss_disable_nscd (void (*cb) (size_t, struct traced_file *)) 4696 __nss_disable_nscd (void (*cb) (size_t, struct traced_file *))
4618@@ -857,8 +933,10 @@ 4697@@ -857,8 +933,10 @@ __nss_disable_nscd (void (*cb) (size_t,
4619 __nss_not_use_nscd_services = -1; 4698 __nss_not_use_nscd_services = -1;
4620 __nss_not_use_nscd_netgroup = -1; 4699 __nss_not_use_nscd_netgroup = -1;
4621 } 4700 }
@@ -4626,7 +4705,7 @@ Index: git/nss/nsswitch.c
4626 static void 4705 static void
4627 free_database_entries (name_database_entry *entry) 4706 free_database_entries (name_database_entry *entry)
4628 { 4707 {
4629@@ -871,8 +949,8 @@ 4708@@ -871,8 +949,8 @@ free_database_entries (name_database_ent
4630 { 4709 {
4631 service_user *olds = service; 4710 service_user *olds = service;
4632 4711
@@ -4637,16 +4716,16 @@ Index: git/nss/nsswitch.c
4637 4716
4638 service = service->next; 4717 service = service->next;
4639 free (olds); 4718 free (olds);
4640@@ -926,3 +1004,4 @@ 4719@@ -926,3 +1004,4 @@ libc_freeres_fn (free_mem)
4641 4720
4642 free (top); 4721 free (top);
4643 } 4722 }
4644+#endif /* __OPTION_EGLIBC_NSSWITCH */ 4723+#endif /* __OPTION_EGLIBC_NSSWITCH */
4645Index: git/nss/nsswitch.h 4724Index: git/nss/nsswitch.h
4646=================================================================== 4725===================================================================
4647--- git.orig/nss/nsswitch.h 2014-08-29 20:00:53.012070587 -0700 4726--- git.orig/nss/nsswitch.h
4648+++ git/nss/nsswitch.h 2014-08-29 20:01:15.220070587 -0700 4727+++ git/nss/nsswitch.h
4649@@ -65,10 +65,20 @@ 4728@@ -65,10 +65,20 @@ typedef struct service_user
4650 lookup_actions actions[5]; 4729 lookup_actions actions[5];
4651 /* Link to the underlying library object. */ 4730 /* Link to the underlying library object. */
4652 service_library *library; 4731 service_library *library;
@@ -4670,7 +4749,7 @@ Index: git/nss/nsswitch.h
4670 } service_user; 4749 } service_user;
4671 4750
4672 /* To access the action based on the status value use this macro. */ 4751 /* To access the action based on the status value use this macro. */
4673@@ -82,7 +92,7 @@ 4752@@ -82,7 +92,7 @@ typedef struct name_database_entry
4674 /* List of service to be used. */ 4753 /* List of service to be used. */
4675 service_user *service; 4754 service_user *service;
4676 /* Name of the database. */ 4755 /* Name of the database. */
@@ -4681,8 +4760,8 @@ Index: git/nss/nsswitch.h
4681 4760
4682Index: git/posix/bug-regex1.c 4761Index: git/posix/bug-regex1.c
4683=================================================================== 4762===================================================================
4684--- git.orig/posix/bug-regex1.c 2014-08-29 20:00:53.184070587 -0700 4763--- git.orig/posix/bug-regex1.c
4685+++ git/posix/bug-regex1.c 2014-08-29 20:01:15.220070587 -0700 4764+++ git/posix/bug-regex1.c
4686@@ -4,6 +4,7 @@ 4765@@ -4,6 +4,7 @@
4687 #include <string.h> 4766 #include <string.h>
4688 #include <regex.h> 4767 #include <regex.h>
@@ -4691,7 +4770,7 @@ Index: git/posix/bug-regex1.c
4691 4770
4692 int 4771 int
4693 main (void) 4772 main (void)
4694@@ -17,7 +18,9 @@ 4773@@ -17,7 +18,9 @@ main (void)
4695 memset (&regex, '\0', sizeof (regex)); 4774 memset (&regex, '\0', sizeof (regex));
4696 4775
4697 setlocale (LC_ALL, "de_DE.ISO-8859-1"); 4776 setlocale (LC_ALL, "de_DE.ISO-8859-1");
@@ -4703,8 +4782,8 @@ Index: git/posix/bug-regex1.c
4703 4782
4704Index: git/posix/bug-regex6.c 4783Index: git/posix/bug-regex6.c
4705=================================================================== 4784===================================================================
4706--- git.orig/posix/bug-regex6.c 2014-08-29 20:00:53.204070587 -0700 4785--- git.orig/posix/bug-regex6.c
4707+++ git/posix/bug-regex6.c 2014-08-29 20:01:15.220070587 -0700 4786+++ git/posix/bug-regex6.c
4708@@ -22,6 +22,7 @@ 4787@@ -22,6 +22,7 @@
4709 #include <string.h> 4788 #include <string.h>
4710 #include <sys/types.h> 4789 #include <sys/types.h>
@@ -4713,7 +4792,7 @@ Index: git/posix/bug-regex6.c
4713 4792
4714 4793
4715 int 4794 int
4716@@ -30,7 +31,12 @@ 4795@@ -30,7 +31,12 @@ main (int argc, char *argv[])
4717 regex_t re; 4796 regex_t re;
4718 regmatch_t mat[10]; 4797 regmatch_t mat[10];
4719 int i, j, ret = 0; 4798 int i, j, ret = 0;
@@ -4729,8 +4808,8 @@ Index: git/posix/bug-regex6.c
4729 { 0, 48 }, { 0, 5 }, { 0, 4 }, { 5, 20 }, { 7, 20 }, { 20, 42 }, 4808 { 0, 48 }, { 0, 5 }, { 0, 4 }, { 5, 20 }, { 7, 20 }, { 20, 42 },
4730Index: git/posix/fnmatch.c 4809Index: git/posix/fnmatch.c
4731=================================================================== 4810===================================================================
4732--- git.orig/posix/fnmatch.c 2014-08-29 20:00:53.208070587 -0700 4811--- git.orig/posix/fnmatch.c
4733+++ git/posix/fnmatch.c 2014-08-29 20:01:15.220070587 -0700 4812+++ git/posix/fnmatch.c
4734@@ -30,6 +30,10 @@ 4813@@ -30,6 +30,10 @@
4735 #include <ctype.h> 4814 #include <ctype.h>
4736 #include <string.h> 4815 #include <string.h>
@@ -4742,7 +4821,7 @@ Index: git/posix/fnmatch.c
4742 #if defined STDC_HEADERS || defined _LIBC 4821 #if defined STDC_HEADERS || defined _LIBC
4743 # include <stdlib.h> 4822 # include <stdlib.h>
4744 #endif 4823 #endif
4745@@ -131,7 +135,7 @@ 4824@@ -131,7 +135,7 @@ extern int fnmatch (const char *pattern,
4746 # define ISWCTYPE(WC, WT) iswctype (WC, WT) 4825 # define ISWCTYPE(WC, WT) iswctype (WC, WT)
4747 # endif 4826 # endif
4748 4827
@@ -4753,8 +4832,8 @@ Index: git/posix/fnmatch.c
4753 # endif 4832 # endif
4754Index: git/posix/fnmatch_loop.c 4833Index: git/posix/fnmatch_loop.c
4755=================================================================== 4834===================================================================
4756--- git.orig/posix/fnmatch_loop.c 2014-08-29 20:00:53.220070587 -0700 4835--- git.orig/posix/fnmatch_loop.c
4757+++ git/posix/fnmatch_loop.c 2014-08-29 20:01:15.220070587 -0700 4836+++ git/posix/fnmatch_loop.c
4758@@ -15,6 +15,8 @@ 4837@@ -15,6 +15,8 @@
4759 License along with the GNU C Library; if not, see 4838 License along with the GNU C Library; if not, see
4760 <http://www.gnu.org/licenses/>. */ 4839 <http://www.gnu.org/licenses/>. */
@@ -4764,7 +4843,7 @@ Index: git/posix/fnmatch_loop.c
4764 #include <stdint.h> 4843 #include <stdint.h>
4765 4844
4766 struct STRUCT 4845 struct STRUCT
4767@@ -54,10 +56,15 @@ 4846@@ -54,10 +56,15 @@ FCT (pattern, string, string_end, no_lea
4768 const char *collseq = (const char *) 4847 const char *collseq = (const char *)
4769 _NL_CURRENT(LC_COLLATE, _NL_COLLATE_COLLSEQWC); 4848 _NL_CURRENT(LC_COLLATE, _NL_COLLATE_COLLSEQWC);
4770 # else 4849 # else
@@ -4782,7 +4861,7 @@ Index: git/posix/fnmatch_loop.c
4782 4861
4783 while ((c = *p++) != L('\0')) 4862 while ((c = *p++) != L('\0'))
4784 { 4863 {
4785@@ -277,7 +284,7 @@ 4864@@ -277,7 +284,7 @@ FCT (pattern, string, string_end, no_lea
4786 /* Leave room for the null. */ 4865 /* Leave room for the null. */
4787 CHAR str[CHAR_CLASS_MAX_LENGTH + 1]; 4866 CHAR str[CHAR_CLASS_MAX_LENGTH + 1];
4788 size_t c1 = 0; 4867 size_t c1 = 0;
@@ -4791,7 +4870,7 @@ Index: git/posix/fnmatch_loop.c
4791 wctype_t wt; 4870 wctype_t wt;
4792 #endif 4871 #endif
4793 const CHAR *startp = p; 4872 const CHAR *startp = p;
4794@@ -307,7 +314,7 @@ 4873@@ -307,7 +314,7 @@ FCT (pattern, string, string_end, no_lea
4795 } 4874 }
4796 str[c1] = L('\0'); 4875 str[c1] = L('\0');
4797 4876
@@ -4800,7 +4879,7 @@ Index: git/posix/fnmatch_loop.c
4800 wt = IS_CHAR_CLASS (str); 4879 wt = IS_CHAR_CLASS (str);
4801 if (wt == 0) 4880 if (wt == 0)
4802 /* Invalid character class name. */ 4881 /* Invalid character class name. */
4803@@ -681,8 +688,10 @@ 4882@@ -680,8 +687,10 @@ FCT (pattern, string, string_end, no_lea
4804 else 4883 else
4805 lcollseq = __collseq_table_lookup (collseq, cold); 4884 lcollseq = __collseq_table_lookup (collseq, cold);
4806 # else 4885 # else
@@ -4813,7 +4892,7 @@ Index: git/posix/fnmatch_loop.c
4813 # endif 4892 # endif
4814 4893
4815 is_seqval = 0; 4894 is_seqval = 0;
4816@@ -858,7 +867,7 @@ 4895@@ -857,7 +866,7 @@ FCT (pattern, string, string_end, no_lea
4817 goto matched; 4896 goto matched;
4818 } 4897 }
4819 # else 4898 # else
@@ -4824,8 +4903,8 @@ Index: git/posix/fnmatch_loop.c
4824 4903
4825Index: git/posix/glob.c 4904Index: git/posix/glob.c
4826=================================================================== 4905===================================================================
4827--- git.orig/posix/glob.c 2014-08-29 20:00:53.232070587 -0700 4906--- git.orig/posix/glob.c
4828+++ git/posix/glob.c 2014-08-29 20:01:15.220070587 -0700 4907+++ git/posix/glob.c
4829@@ -25,6 +25,9 @@ 4908@@ -25,6 +25,9 @@
4830 #include <sys/types.h> 4909 #include <sys/types.h>
4831 #include <sys/stat.h> 4910 #include <sys/stat.h>
@@ -4836,7 +4915,7 @@ Index: git/posix/glob.c
4836 4915
4837 /* Outcomment the following line for production quality code. */ 4916 /* Outcomment the following line for production quality code. */
4838 /* #define NDEBUG 1 */ 4917 /* #define NDEBUG 1 */
4839@@ -607,6 +610,7 @@ 4918@@ -607,6 +610,7 @@ glob (pattern, flags, errfunc, pglob)
4840 if (home_dir == NULL || home_dir[0] == '\0') 4919 if (home_dir == NULL || home_dir[0] == '\0')
4841 home_dir = "c:/users/default"; /* poor default */ 4920 home_dir = "c:/users/default"; /* poor default */
4842 # else 4921 # else
@@ -4844,7 +4923,7 @@ Index: git/posix/glob.c
4844 if (home_dir == NULL || home_dir[0] == '\0') 4923 if (home_dir == NULL || home_dir[0] == '\0')
4845 { 4924 {
4846 int success; 4925 int success;
4847@@ -623,19 +627,19 @@ 4926@@ -623,19 +627,19 @@ glob (pattern, flags, errfunc, pglob)
4848 if (success) 4927 if (success)
4849 { 4928 {
4850 struct passwd *p; 4929 struct passwd *p;
@@ -4867,7 +4946,7 @@ Index: git/posix/glob.c
4867 if (__libc_use_alloca (alloca_used + pwbuflen)) 4946 if (__libc_use_alloca (alloca_used + pwbuflen))
4868 pwtmpbuf = alloca_account (pwbuflen, alloca_used); 4947 pwtmpbuf = alloca_account (pwbuflen, alloca_used);
4869 else 4948 else
4870@@ -682,9 +686,9 @@ 4949@@ -682,9 +686,9 @@ glob (pattern, flags, errfunc, pglob)
4871 } 4950 }
4872 __set_errno (save); 4951 __set_errno (save);
4873 } 4952 }
@@ -4879,7 +4958,7 @@ Index: git/posix/glob.c
4879 if (p != NULL) 4958 if (p != NULL)
4880 { 4959 {
4881 if (!malloc_pwtmpbuf) 4960 if (!malloc_pwtmpbuf)
4882@@ -713,6 +717,7 @@ 4961@@ -713,6 +717,7 @@ glob (pattern, flags, errfunc, pglob)
4883 } 4962 }
4884 } 4963 }
4885 } 4964 }
@@ -4889,8 +4968,8 @@ Index: git/posix/glob.c
4889 if (flags & GLOB_TILDE_CHECK) 4968 if (flags & GLOB_TILDE_CHECK)
4890Index: git/posix/Makefile 4969Index: git/posix/Makefile
4891=================================================================== 4970===================================================================
4892--- git.orig/posix/Makefile 2014-08-29 20:00:53.160070587 -0700 4971--- git.orig/posix/Makefile
4893+++ git/posix/Makefile 2014-08-29 20:01:15.220070587 -0700 4972+++ git/posix/Makefile
4894@@ -18,6 +18,8 @@ 4973@@ -18,6 +18,8 @@
4895 # 4974 #
4896 # Sub-makefile for POSIX portion of the library. 4975 # Sub-makefile for POSIX portion of the library.
@@ -4900,7 +4979,7 @@ Index: git/posix/Makefile
4900 subdir := posix 4979 subdir := posix
4901 4980
4902 include ../Makeconfig 4981 include ../Makeconfig
4903@@ -43,13 +45,24 @@ 4982@@ -43,13 +45,24 @@ routines := \
4904 getpgid setpgid getpgrp bsd-getpgrp setpgrp getsid setsid \ 4983 getpgid setpgid getpgrp bsd-getpgrp setpgrp getsid setsid \
4905 getresuid getresgid setresuid setresgid \ 4984 getresuid getresgid setresuid setresgid \
4906 pathconf sysconf fpathconf \ 4985 pathconf sysconf fpathconf \
@@ -4927,19 +5006,15 @@ Index: git/posix/Makefile
4927 spawn_faction_init spawn_faction_destroy spawn_faction_addclose \ 5006 spawn_faction_init spawn_faction_destroy spawn_faction_addclose \
4928 spawn_faction_addopen spawn_faction_adddup2 \ 5007 spawn_faction_addopen spawn_faction_adddup2 \
4929 spawnattr_init spawnattr_destroy \ 5008 spawnattr_init spawnattr_destroy \
4930@@ -57,41 +70,53 @@ 5009@@ -61,37 +74,53 @@ routines := \
4931 spawnattr_getflags spawnattr_setflags \ 5010 posix_madvise \
4932 spawnattr_getpgroup spawnattr_setpgroup spawn spawnp spawni \ 5011 get_child_max sched_cpucount sched_cpualloc sched_cpufree
4933 spawnattr_getsigmask spawnattr_getschedpolicy spawnattr_getschedparam \
4934- spawnattr_setsigmask spawnattr_setschedpolicy spawnattr_setschedparam \
4935- posix_madvise \
4936- get_child_max sched_cpucount sched_cpualloc sched_cpufree
4937+ spawnattr_setsigmask spawnattr_setschedpolicy spawnattr_setschedparam
4938+routines-$(OPTION_EGLIBC_WORDEXP) += wordexp
4939 5012
5013+routines-$(OPTION_EGLIBC_WORDEXP) += wordexp
5014+
4940 aux := init-posix environ 5015 aux := init-posix environ
4941-tests := tstgetopt testfnm runtests runptests \ 5016-tests := tstgetopt testfnm runtests runptests \
4942+tests := tstgetopt testfnm runtests \ 5017+tests := tstgetopt testfnm runtests \
4943 tst-preadwrite tst-preadwrite64 test-vfork regexbug1 \ 5018 tst-preadwrite tst-preadwrite64 test-vfork regexbug1 \
4944- tst-getlogin tst-mmap tst-getaddrinfo tst-truncate \ 5019- tst-getlogin tst-mmap tst-getaddrinfo tst-truncate \
4945- tst-truncate64 tst-fork tst-fnmatch tst-regexloc tst-dir \ 5020- tst-truncate64 tst-fork tst-fnmatch tst-regexloc tst-dir \
@@ -4962,8 +5037,8 @@ Index: git/posix/Makefile
4962+ bug-regex8 bug-regex9 bug-regex10 bug-regex12 \ 5037+ bug-regex8 bug-regex9 bug-regex10 bug-regex12 \
4963+ bug-regex14 bug-regex15 \ 5038+ bug-regex14 bug-regex15 \
4964+ bug-regex21 bug-regex24 \ 5039+ bug-regex21 bug-regex24 \
4965+ bug-regex27 bug-regex28 bug-regex29 bug-regex30 \ 5040+ bug-regex27 bug-regex28 \
4966+ bug-regex31 \ 5041+ bug-regex29 bug-regex30 bug-regex31 \
4967+ tst-nice tst-nanosleep \ 5042+ tst-nice tst-nanosleep \
4968+ transbug \ 5043+ transbug \
4969+ tst-vfork1 tst-vfork2 tst-vfork3 tst-waitid \ 5044+ tst-vfork1 tst-vfork2 tst-vfork3 tst-waitid \
@@ -4979,22 +5054,23 @@ Index: git/posix/Makefile
4979 bug-getopt1 bug-getopt2 bug-getopt3 bug-getopt4 \ 5054 bug-getopt1 bug-getopt2 bug-getopt3 bug-getopt4 \
4980 bug-getopt5 tst-getopt_long1 bug-regex34 bug-regex35 \ 5055 bug-getopt5 tst-getopt_long1 bug-regex34 bug-regex35 \
4981 tst-pathconf tst-getaddrinfo4 tst-rxspencer-no-utf8 \ 5056 tst-pathconf tst-getaddrinfo4 tst-rxspencer-no-utf8 \
4982 tst-fnmatch3 bug-regex36 5057 tst-fnmatch3 bug-regex36 tst-getaddrinfo5
4983-xtests := bug-ga2 5058-xtests := bug-ga2
4984+tests-$(OPTION_EGLIBC_LOCALE_CODE) \ 5059+tests-$(OPTION_EGLIBC_LOCALE_CODE) \
4985+ += tst-fnmatch tst-regexloc bug-regex1 bug-regex5 \ 5060+ += tst-fnmatch tst-regexloc bug-regex1 bug-regex5 \
4986+ bug-regex23 bug-regex25 bug-regex32 bug-regex33 5061+ bug-regex23 bug-regex25 bug-regex32 bug-regex33
4987+tests-$(OPTION_EGLIBC_INET) \ 5062+tests-$(OPTION_EGLIBC_INET) \
4988+ += tst-getaddrinfo bug-ga1 tst-getaddrinfo2 \ 5063+ += tst-getaddrinfo bug-ga1 tst-getaddrinfo2 \
4989+ tst-rfc3484 tst-rfc3484-2 tst-rfc3484-3 tst-getaddrinfo3 5064+ tst-rfc3484 tst-rfc3484-2 tst-rfc3484-3 tst-getaddrinfo3
4990+tests-$(OPTION_POSIX_REGEXP_GLIBC) \ 5065+tests-$(OPTION_POSIX_REGEXP_GLIBC) \
4991+ += runptests bug-regex11 bug-regex13 bug-regex16 \ 5066+ += runptests bug-regex11 bug-regex13 bug-regex16 \
4992+ tst-regex2 tst-rxspencer tst-pcre tst-boost 5067+ tst-regex2 tst-rxspencer tst-pcre tst-boost
4993+ifeq (yy,$(OPTION_EGLIBC_LOCALE_CODE)$(OPTION_POSIX_REGEXP_GLIBC)) 5068+ifeq (yy,$(OPTION_EGLIBC_LOCALE_CODE)$(OPTION_POSIX_REGEXP_GLIBC))
4994+tests += tst-regex bug-regex17 bug-regex18 bug-regex19 bug-regex20 \ 5069+tests += tst-regex bug-regex17 bug-regex18 bug-regex19 bug-regex20 \
4995+ bug-regex22 bug-regex26 5070+ bug-regex22 bug-regex26
4996+endif 5071+endif
4997+xtests-$(OPTION_EGLIBC_INET) += bug-ga2 5072+xtests-$(OPTION_EGLIBC_INET) += bug-ga2
5073+
4998 ifeq (yes,$(build-shared)) 5074 ifeq (yes,$(build-shared))
4999 test-srcs := globtest 5075 test-srcs := globtest
5000-tests += wordexp-test tst-exec tst-spawn 5076-tests += wordexp-test tst-exec tst-spawn
@@ -5004,7 +5080,7 @@ Index: git/posix/Makefile
5004 endif 5080 endif
5005 tests-static = tst-exec-static tst-spawn-static 5081 tests-static = tst-exec-static tst-spawn-static
5006 tests += $(tests-static) 5082 tests += $(tests-static)
5007@@ -117,7 +142,10 @@ 5083@@ -117,7 +146,10 @@ generated += $(addprefix wordexp-test-re
5008 5084
5009 ifeq ($(run-built-tests),yes) 5085 ifeq ($(run-built-tests),yes)
5010 ifeq (yes,$(build-shared)) 5086 ifeq (yes,$(build-shared))
@@ -5016,7 +5092,7 @@ Index: git/posix/Makefile
5016 endif 5092 endif
5017 endif 5093 endif
5018 5094
5019@@ -125,12 +153,16 @@ 5095@@ -125,12 +157,16 @@ endif
5020 # XXX Please note that for now we ignore the result of this test. 5096 # XXX Please note that for now we ignore the result of this test.
5021 tests-special += $(objpfx)annexc.out 5097 tests-special += $(objpfx)annexc.out
5022 ifeq ($(run-built-tests),yes) 5098 ifeq ($(run-built-tests),yes)
@@ -5036,7 +5112,7 @@ Index: git/posix/Makefile
5036 xtests-special += $(objpfx)bug-ga2-mem.out 5112 xtests-special += $(objpfx)bug-ga2-mem.out
5037 endif 5113 endif
5038 5114
5039@@ -143,6 +175,8 @@ 5115@@ -143,6 +179,8 @@ $(objpfx)globtest.out: globtest.sh $(obj
5040 $(SHELL) $< $(common-objpfx) '$(test-via-rtld-prefix)' \ 5116 $(SHELL) $< $(common-objpfx) '$(test-via-rtld-prefix)' \
5041 '$(test-program-prefix)' '$(test-wrapper-env)'; \ 5117 '$(test-program-prefix)' '$(test-wrapper-env)'; \
5042 $(evaluate-test) 5118 $(evaluate-test)
@@ -5045,7 +5121,7 @@ Index: git/posix/Makefile
5045 $(objpfx)wordexp-tst.out: wordexp-tst.sh $(objpfx)wordexp-test 5121 $(objpfx)wordexp-tst.out: wordexp-tst.sh $(objpfx)wordexp-test
5046 $(SHELL) $< $(common-objpfx) '$(test-program-prefix-before-env)' \ 5122 $(SHELL) $< $(common-objpfx) '$(test-program-prefix-before-env)' \
5047 '$(run-program-env)' '$(test-program-prefix-after-env)'; \ 5123 '$(run-program-env)' '$(test-program-prefix-after-env)'; \
5048@@ -205,7 +239,10 @@ 5124@@ -205,7 +243,10 @@ tst-dir-ARGS = `pwd` `cd $(common-objdir
5049 tst-chmod-ARGS = $(objdir) 5125 tst-chmod-ARGS = $(objdir)
5050 tst-vfork3-ARGS = --test-dir=$(objpfx) 5126 tst-vfork3-ARGS = --test-dir=$(objpfx)
5051 5127
@@ -5059,17 +5135,17 @@ Index: git/posix/Makefile
5059 tst-boost-ARGS = BOOST.tests 5135 tst-boost-ARGS = BOOST.tests
5060Index: git/posix/regcomp.c 5136Index: git/posix/regcomp.c
5061=================================================================== 5137===================================================================
5062--- git.orig/posix/regcomp.c 2014-08-29 20:00:53.264070587 -0700 5138--- git.orig/posix/regcomp.c
5063+++ git/posix/regcomp.c 2014-08-29 20:01:15.224070587 -0700 5139+++ git/posix/regcomp.c
5064@@ -18,6 +18,7 @@ 5140@@ -18,6 +18,7 @@
5065 <http://www.gnu.org/licenses/>. */ 5141 <http://www.gnu.org/licenses/>. */
5066 5142
5067 #include <stdint.h> 5143 #include <stdint.h>
5068+#include <gnu/option-groups.h> 5144+#include <gnu/option-groups.h>
5069 5145
5070 static reg_errcode_t re_compile_internal (regex_t *preg, const char * pattern, 5146 #ifdef _LIBC
5071 size_t length, reg_syntax_t syntax); 5147 # include <locale/weight.h>
5072@@ -305,7 +306,7 @@ 5148@@ -309,7 +310,7 @@ re_compile_fastmap_iter (regex_t *bufp,
5073 { 5149 {
5074 re_dfa_t *dfa = (re_dfa_t *) bufp->buffer; 5150 re_dfa_t *dfa = (re_dfa_t *) bufp->buffer;
5075 int node_cnt; 5151 int node_cnt;
@@ -5078,7 +5154,7 @@ Index: git/posix/regcomp.c
5078 for (node_cnt = 0; node_cnt < init_state->nodes.nelem; ++node_cnt) 5154 for (node_cnt = 0; node_cnt < init_state->nodes.nelem; ++node_cnt)
5079 { 5155 {
5080 int node = init_state->nodes.elems[node_cnt]; 5156 int node = init_state->nodes.elems[node_cnt];
5081@@ -315,9 +316,9 @@ 5157@@ -319,9 +320,9 @@ re_compile_fastmap_iter (regex_t *bufp,
5082 { 5158 {
5083 re_set_fastmap (fastmap, icase, dfa->nodes[node].opr.c); 5159 re_set_fastmap (fastmap, icase, dfa->nodes[node].opr.c);
5084 #ifdef RE_ENABLE_I18N 5160 #ifdef RE_ENABLE_I18N
@@ -5090,7 +5166,7 @@ Index: git/posix/regcomp.c
5090 wchar_t wc; 5166 wchar_t wc;
5091 mbstate_t state; 5167 mbstate_t state;
5092 5168
5093@@ -348,7 +349,11 @@ 5169@@ -352,7 +353,11 @@ re_compile_fastmap_iter (regex_t *bufp,
5094 re_set_fastmap (fastmap, icase, ch); 5170 re_set_fastmap (fastmap, icase, ch);
5095 } 5171 }
5096 } 5172 }
@@ -5103,7 +5179,7 @@ Index: git/posix/regcomp.c
5103 else if (type == COMPLEX_BRACKET) 5179 else if (type == COMPLEX_BRACKET)
5104 { 5180 {
5105 re_charset_t *cset = dfa->nodes[node].opr.mbcset; 5181 re_charset_t *cset = dfa->nodes[node].opr.mbcset;
5106@@ -376,7 +381,7 @@ 5182@@ -380,7 +385,7 @@ re_compile_fastmap_iter (regex_t *bufp,
5107 i.e. where we would not find an invalid sequence. This only 5183 i.e. where we would not find an invalid sequence. This only
5108 applies to multibyte character sets; for single byte character 5184 applies to multibyte character sets; for single byte character
5109 sets, the SIMPLE_BRACKET again suffices. */ 5185 sets, the SIMPLE_BRACKET again suffices. */
@@ -5112,7 +5188,7 @@ Index: git/posix/regcomp.c
5112 && (cset->nchar_classes || cset->non_match || cset->nranges 5188 && (cset->nchar_classes || cset->non_match || cset->nranges
5113 # ifdef _LIBC 5189 # ifdef _LIBC
5114 || cset->nequiv_classes 5190 || cset->nequiv_classes
5115@@ -404,7 +409,7 @@ 5191@@ -408,7 +413,7 @@ re_compile_fastmap_iter (regex_t *bufp,
5116 memset (&state, '\0', sizeof (state)); 5192 memset (&state, '\0', sizeof (state));
5117 if (__wcrtomb (buf, cset->mbchars[i], &state) != (size_t) -1) 5193 if (__wcrtomb (buf, cset->mbchars[i], &state) != (size_t) -1)
5118 re_set_fastmap (fastmap, icase, *(unsigned char *) buf); 5194 re_set_fastmap (fastmap, icase, *(unsigned char *) buf);
@@ -5121,7 +5197,7 @@ Index: git/posix/regcomp.c
5121 { 5197 {
5122 if (__wcrtomb (buf, towlower (cset->mbchars[i]), &state) 5198 if (__wcrtomb (buf, towlower (cset->mbchars[i]), &state)
5123 != (size_t) -1) 5199 != (size_t) -1)
5124@@ -413,7 +418,7 @@ 5200@@ -417,7 +422,7 @@ re_compile_fastmap_iter (regex_t *bufp,
5125 } 5201 }
5126 } 5202 }
5127 } 5203 }
@@ -5130,7 +5206,7 @@ Index: git/posix/regcomp.c
5130 else if (type == OP_PERIOD 5206 else if (type == OP_PERIOD
5131 #ifdef RE_ENABLE_I18N 5207 #ifdef RE_ENABLE_I18N
5132 || type == OP_UTF8_PERIOD 5208 || type == OP_UTF8_PERIOD
5133@@ -856,11 +861,15 @@ 5209@@ -860,11 +865,15 @@ init_dfa (re_dfa_t *dfa, size_t pat_len)
5134 5210
5135 dfa->mb_cur_max = MB_CUR_MAX; 5211 dfa->mb_cur_max = MB_CUR_MAX;
5136 #ifdef _LIBC 5212 #ifdef _LIBC
@@ -5147,7 +5223,7 @@ Index: git/posix/regcomp.c
5147 #else 5223 #else
5148 # ifdef HAVE_LANGINFO_CODESET 5224 # ifdef HAVE_LANGINFO_CODESET
5149 codeset_name = nl_langinfo (CODESET); 5225 codeset_name = nl_langinfo (CODESET);
5150@@ -886,7 +895,7 @@ 5226@@ -890,7 +899,7 @@ init_dfa (re_dfa_t *dfa, size_t pat_len)
5151 #endif 5227 #endif
5152 5228
5153 #ifdef RE_ENABLE_I18N 5229 #ifdef RE_ENABLE_I18N
@@ -5156,7 +5232,7 @@ Index: git/posix/regcomp.c
5156 { 5232 {
5157 if (dfa->is_utf8) 5233 if (dfa->is_utf8)
5158 dfa->sb_char = (re_bitset_ptr_t) utf8_sb_map; 5234 dfa->sb_char = (re_bitset_ptr_t) utf8_sb_map;
5159@@ -1784,7 +1793,7 @@ 5235@@ -1788,7 +1797,7 @@ peek_token (re_token_t *token, re_string
5160 token->word_char = 0; 5236 token->word_char = 0;
5161 #ifdef RE_ENABLE_I18N 5237 #ifdef RE_ENABLE_I18N
5162 token->mb_partial = 0; 5238 token->mb_partial = 0;
@@ -5165,7 +5241,7 @@ Index: git/posix/regcomp.c
5165 !re_string_first_byte (input, re_string_cur_idx (input))) 5241 !re_string_first_byte (input, re_string_cur_idx (input)))
5166 { 5242 {
5167 token->type = CHARACTER; 5243 token->type = CHARACTER;
5168@@ -1805,7 +1814,7 @@ 5244@@ -1809,7 +1818,7 @@ peek_token (re_token_t *token, re_string
5169 token->opr.c = c2; 5245 token->opr.c = c2;
5170 token->type = CHARACTER; 5246 token->type = CHARACTER;
5171 #ifdef RE_ENABLE_I18N 5247 #ifdef RE_ENABLE_I18N
@@ -5174,7 +5250,7 @@ Index: git/posix/regcomp.c
5174 { 5250 {
5175 wint_t wc = re_string_wchar_at (input, 5251 wint_t wc = re_string_wchar_at (input,
5176 re_string_cur_idx (input) + 1); 5252 re_string_cur_idx (input) + 1);
5177@@ -1919,7 +1928,7 @@ 5253@@ -1923,7 +1932,7 @@ peek_token (re_token_t *token, re_string
5178 5254
5179 token->type = CHARACTER; 5255 token->type = CHARACTER;
5180 #ifdef RE_ENABLE_I18N 5256 #ifdef RE_ENABLE_I18N
@@ -5183,7 +5259,7 @@ Index: git/posix/regcomp.c
5183 { 5259 {
5184 wint_t wc = re_string_wchar_at (input, re_string_cur_idx (input)); 5260 wint_t wc = re_string_wchar_at (input, re_string_cur_idx (input));
5185 token->word_char = IS_WIDE_WORD_CHAR (wc) != 0; 5261 token->word_char = IS_WIDE_WORD_CHAR (wc) != 0;
5186@@ -2019,7 +2028,7 @@ 5262@@ -2023,7 +2032,7 @@ peek_token_bracket (re_token_t *token, r
5187 token->opr.c = c; 5263 token->opr.c = c;
5188 5264
5189 #ifdef RE_ENABLE_I18N 5265 #ifdef RE_ENABLE_I18N
@@ -5192,7 +5268,7 @@ Index: git/posix/regcomp.c
5192 !re_string_first_byte (input, re_string_cur_idx (input))) 5268 !re_string_first_byte (input, re_string_cur_idx (input)))
5193 { 5269 {
5194 token->type = CHARACTER; 5270 token->type = CHARACTER;
5195@@ -2242,7 +2251,7 @@ 5271@@ -2246,7 +2255,7 @@ parse_expression (re_string_t *regexp, r
5196 return NULL; 5272 return NULL;
5197 } 5273 }
5198 #ifdef RE_ENABLE_I18N 5274 #ifdef RE_ENABLE_I18N
@@ -5201,7 +5277,7 @@ Index: git/posix/regcomp.c
5201 { 5277 {
5202 while (!re_string_eoi (regexp) 5278 while (!re_string_eoi (regexp)
5203 && !re_string_first_byte (regexp, re_string_cur_idx (regexp))) 5279 && !re_string_first_byte (regexp, re_string_cur_idx (regexp)))
5204@@ -2380,7 +2389,7 @@ 5280@@ -2384,7 +2393,7 @@ parse_expression (re_string_t *regexp, r
5205 *err = REG_ESPACE; 5281 *err = REG_ESPACE;
5206 return NULL; 5282 return NULL;
5207 } 5283 }
@@ -5210,7 +5286,7 @@ Index: git/posix/regcomp.c
5210 dfa->has_mb_node = 1; 5286 dfa->has_mb_node = 1;
5211 break; 5287 break;
5212 case OP_WORD: 5288 case OP_WORD:
5213@@ -2686,7 +2695,7 @@ 5289@@ -2690,7 +2699,7 @@ build_range_exp (bitset_t sbcset, bracke
5214 However, for !_LIBC we have no collation elements: if the 5290 However, for !_LIBC we have no collation elements: if the
5215 character set is single byte, the single byte character set 5291 character set is single byte, the single byte character set
5216 that we build below suffices. parse_bracket_exp passes 5292 that we build below suffices. parse_bracket_exp passes
@@ -5219,7 +5295,7 @@ Index: git/posix/regcomp.c
5219 if (mbcset) 5295 if (mbcset)
5220 { 5296 {
5221 /* Check the space of the arrays. */ 5297 /* Check the space of the arrays. */
5222@@ -2782,7 +2791,13 @@ 5298@@ -2786,7 +2795,13 @@ parse_bracket_exp (re_string_t *regexp,
5223 reg_syntax_t syntax, reg_errcode_t *err) 5299 reg_syntax_t syntax, reg_errcode_t *err)
5224 { 5300 {
5225 #ifdef _LIBC 5301 #ifdef _LIBC
@@ -5233,7 +5309,7 @@ Index: git/posix/regcomp.c
5233 const char *collseqwc; 5309 const char *collseqwc;
5234 uint32_t nrules; 5310 uint32_t nrules;
5235 int32_t table_size; 5311 int32_t table_size;
5236@@ -2830,18 +2845,20 @@ 5312@@ -2834,18 +2849,20 @@ parse_bracket_exp (re_string_t *regexp,
5237 if (MB_CUR_MAX == 1) 5313 if (MB_CUR_MAX == 1)
5238 */ 5314 */
5239 if (nrules == 0) 5315 if (nrules == 0)
@@ -5255,7 +5331,7 @@ Index: git/posix/regcomp.c
5255 else if (br_elem->type == COLL_SYM) 5331 else if (br_elem->type == COLL_SYM)
5256 { 5332 {
5257 size_t sym_name_len = strlen ((char *) br_elem->opr.name); 5333 size_t sym_name_len = strlen ((char *) br_elem->opr.name);
5258@@ -2872,11 +2889,11 @@ 5334@@ -2876,11 +2893,11 @@ parse_bracket_exp (re_string_t *regexp,
5259 { 5335 {
5260 /* No valid character. Match it as a single byte 5336 /* No valid character. Match it as a single byte
5261 character. */ 5337 character. */
@@ -5269,7 +5345,7 @@ Index: git/posix/regcomp.c
5269 } 5345 }
5270 return UINT_MAX; 5346 return UINT_MAX;
5271 } 5347 }
5272@@ -2916,7 +2933,7 @@ 5348@@ -2920,7 +2937,7 @@ parse_bracket_exp (re_string_t *regexp,
5273 However, if we have no collation elements, and the character set 5349 However, if we have no collation elements, and the character set
5274 is single byte, the single byte character set that we 5350 is single byte, the single byte character set that we
5275 build below suffices. */ 5351 build below suffices. */
@@ -5278,7 +5354,7 @@ Index: git/posix/regcomp.c
5278 { 5354 {
5279 /* Check the space of the arrays. */ 5355 /* Check the space of the arrays. */
5280 if (BE (*range_alloc == mbcset->nranges, 0)) 5356 if (BE (*range_alloc == mbcset->nranges, 0))
5281@@ -2953,7 +2970,7 @@ 5357@@ -2957,7 +2974,7 @@ parse_bracket_exp (re_string_t *regexp,
5282 if (MB_CUR_MAX == 1) 5358 if (MB_CUR_MAX == 1)
5283 */ 5359 */
5284 if (nrules == 0) 5360 if (nrules == 0)
@@ -5287,7 +5363,7 @@ Index: git/posix/regcomp.c
5287 else 5363 else
5288 ch_collseq = __collseq_table_lookup (collseqwc, __btowc (ch)); 5364 ch_collseq = __collseq_table_lookup (collseqwc, __btowc (ch));
5289 if (start_collseq <= ch_collseq && ch_collseq <= end_collseq) 5365 if (start_collseq <= ch_collseq && ch_collseq <= end_collseq)
5290@@ -3031,7 +3048,10 @@ 5366@@ -3035,7 +3052,10 @@ parse_bracket_exp (re_string_t *regexp,
5291 re_bitset_ptr_t sbcset; 5367 re_bitset_ptr_t sbcset;
5292 #ifdef RE_ENABLE_I18N 5368 #ifdef RE_ENABLE_I18N
5293 re_charset_t *mbcset; 5369 re_charset_t *mbcset;
@@ -5299,7 +5375,7 @@ Index: git/posix/regcomp.c
5299 int equiv_class_alloc = 0, char_class_alloc = 0; 5375 int equiv_class_alloc = 0, char_class_alloc = 0;
5300 #endif /* not RE_ENABLE_I18N */ 5376 #endif /* not RE_ENABLE_I18N */
5301 int non_match = 0; 5377 int non_match = 0;
5302@@ -3039,9 +3059,15 @@ 5378@@ -3043,9 +3063,15 @@ parse_bracket_exp (re_string_t *regexp,
5303 int token_len; 5379 int token_len;
5304 int first_round = 1; 5380 int first_round = 1;
5305 #ifdef _LIBC 5381 #ifdef _LIBC
@@ -5315,7 +5391,7 @@ Index: git/posix/regcomp.c
5315 if (nrules) 5391 if (nrules)
5316 { 5392 {
5317 /* 5393 /*
5318@@ -3169,7 +3195,7 @@ 5394@@ -3175,7 +3201,7 @@ parse_bracket_exp (re_string_t *regexp,
5319 #else 5395 #else
5320 # ifdef RE_ENABLE_I18N 5396 # ifdef RE_ENABLE_I18N
5321 *err = build_range_exp (sbcset, 5397 *err = build_range_exp (sbcset,
@@ -5324,7 +5400,7 @@ Index: git/posix/regcomp.c
5324 &range_alloc, &start_elem, &end_elem); 5400 &range_alloc, &start_elem, &end_elem);
5325 # else 5401 # else
5326 *err = build_range_exp (sbcset, &start_elem, &end_elem); 5402 *err = build_range_exp (sbcset, &start_elem, &end_elem);
5327@@ -3185,7 +3211,7 @@ 5403@@ -3191,7 +3217,7 @@ parse_bracket_exp (re_string_t *regexp,
5328 case SB_CHAR: 5404 case SB_CHAR:
5329 bitset_set (sbcset, start_elem.opr.ch); 5405 bitset_set (sbcset, start_elem.opr.ch);
5330 break; 5406 break;
@@ -5333,7 +5409,7 @@ Index: git/posix/regcomp.c
5333 case MB_CHAR: 5409 case MB_CHAR:
5334 /* Check whether the array has enough space. */ 5410 /* Check whether the array has enough space. */
5335 if (BE (mbchar_alloc == mbcset->nmbchars, 0)) 5411 if (BE (mbchar_alloc == mbcset->nmbchars, 0))
5336@@ -3203,7 +3229,7 @@ 5412@@ -3209,7 +3235,7 @@ parse_bracket_exp (re_string_t *regexp,
5337 } 5413 }
5338 mbcset->mbchars[mbcset->nmbchars++] = start_elem.opr.wch; 5414 mbcset->mbchars[mbcset->nmbchars++] = start_elem.opr.wch;
5339 break; 5415 break;
@@ -5342,7 +5418,7 @@ Index: git/posix/regcomp.c
5342 case EQUIV_CLASS: 5418 case EQUIV_CLASS:
5343 *err = build_equiv_class (sbcset, 5419 *err = build_equiv_class (sbcset,
5344 #ifdef RE_ENABLE_I18N 5420 #ifdef RE_ENABLE_I18N
5345@@ -3253,11 +3279,11 @@ 5421@@ -3259,11 +3285,11 @@ parse_bracket_exp (re_string_t *regexp,
5346 5422
5347 #ifdef RE_ENABLE_I18N 5423 #ifdef RE_ENABLE_I18N
5348 /* Ensure only single byte characters are set. */ 5424 /* Ensure only single byte characters are set. */
@@ -5356,7 +5432,7 @@ Index: git/posix/regcomp.c
5356 || mbcset->non_match))) 5432 || mbcset->non_match)))
5357 { 5433 {
5358 bin_tree_t *mbc_tree; 5434 bin_tree_t *mbc_tree;
5359@@ -3326,7 +3352,7 @@ 5435@@ -3332,7 +3358,7 @@ parse_bracket_element (bracket_elem_t *e
5360 re_token_t *token, int token_len, re_dfa_t *dfa, 5436 re_token_t *token, int token_len, re_dfa_t *dfa,
5361 reg_syntax_t syntax, int accept_hyphen) 5437 reg_syntax_t syntax, int accept_hyphen)
5362 { 5438 {
@@ -5365,7 +5441,7 @@ Index: git/posix/regcomp.c
5365 int cur_char_size; 5441 int cur_char_size;
5366 cur_char_size = re_string_char_size_at (regexp, re_string_cur_idx (regexp)); 5442 cur_char_size = re_string_char_size_at (regexp, re_string_cur_idx (regexp));
5367 if (cur_char_size > 1) 5443 if (cur_char_size > 1)
5368@@ -3336,7 +3362,7 @@ 5444@@ -3342,7 +3368,7 @@ parse_bracket_element (bracket_elem_t *e
5369 re_string_skip_bytes (regexp, cur_char_size); 5445 re_string_skip_bytes (regexp, cur_char_size);
5370 return REG_NOERROR; 5446 return REG_NOERROR;
5371 } 5447 }
@@ -5374,7 +5450,7 @@ Index: git/posix/regcomp.c
5374 re_string_skip_bytes (regexp, token_len); /* Skip a token. */ 5450 re_string_skip_bytes (regexp, token_len); /* Skip a token. */
5375 if (token->type == OP_OPEN_COLL_ELEM || token->type == OP_OPEN_CHAR_CLASS 5451 if (token->type == OP_OPEN_COLL_ELEM || token->type == OP_OPEN_CHAR_CLASS
5376 || token->type == OP_OPEN_EQUIV_CLASS) 5452 || token->type == OP_OPEN_EQUIV_CLASS)
5377@@ -3416,7 +3442,9 @@ 5453@@ -3422,7 +3448,9 @@ build_equiv_class (bitset_t sbcset, re_c
5378 build_equiv_class (bitset_t sbcset, const unsigned char *name) 5454 build_equiv_class (bitset_t sbcset, const unsigned char *name)
5379 #endif /* not RE_ENABLE_I18N */ 5455 #endif /* not RE_ENABLE_I18N */
5380 { 5456 {
@@ -5385,7 +5461,7 @@ Index: git/posix/regcomp.c
5385 uint32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); 5461 uint32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
5386 if (nrules != 0) 5462 if (nrules != 0)
5387 { 5463 {
5388@@ -3488,7 +3516,7 @@ 5464@@ -3492,7 +3520,7 @@ build_equiv_class (bitset_t sbcset, cons
5389 mbcset->equiv_classes[mbcset->nequiv_classes++] = idx1; 5465 mbcset->equiv_classes[mbcset->nequiv_classes++] = idx1;
5390 } 5466 }
5391 else 5467 else
@@ -5394,7 +5470,7 @@ Index: git/posix/regcomp.c
5394 { 5470 {
5395 if (BE (strlen ((const char *) name) != 1, 0)) 5471 if (BE (strlen ((const char *) name) != 1, 0))
5396 return REG_ECOLLATE; 5472 return REG_ECOLLATE;
5397@@ -3522,7 +3550,7 @@ 5473@@ -3526,7 +3554,7 @@ build_charclass (RE_TRANSLATE_TYPE trans
5398 && (strcmp (name, "upper") == 0 || strcmp (name, "lower") == 0)) 5474 && (strcmp (name, "upper") == 0 || strcmp (name, "lower") == 0))
5399 name = "alpha"; 5475 name = "alpha";
5400 5476
@@ -5403,7 +5479,7 @@ Index: git/posix/regcomp.c
5403 /* Check the space of the arrays. */ 5479 /* Check the space of the arrays. */
5404 if (BE (*char_class_alloc == mbcset->nchar_classes, 0)) 5480 if (BE (*char_class_alloc == mbcset->nchar_classes, 0))
5405 { 5481 {
5406@@ -3538,7 +3566,7 @@ 5482@@ -3542,7 +3570,7 @@ build_charclass (RE_TRANSLATE_TYPE trans
5407 *char_class_alloc = new_char_class_alloc; 5483 *char_class_alloc = new_char_class_alloc;
5408 } 5484 }
5409 mbcset->char_classes[mbcset->nchar_classes++] = __wctype (name); 5485 mbcset->char_classes[mbcset->nchar_classes++] = __wctype (name);
@@ -5412,7 +5488,7 @@ Index: git/posix/regcomp.c
5412 5488
5413 #define BUILD_CHARCLASS_LOOP(ctype_func) \ 5489 #define BUILD_CHARCLASS_LOOP(ctype_func) \
5414 do { \ 5490 do { \
5415@@ -3649,7 +3677,7 @@ 5491@@ -3653,7 +3681,7 @@ build_charclass_op (re_dfa_t *dfa, RE_TR
5416 5492
5417 #ifdef RE_ENABLE_I18N 5493 #ifdef RE_ENABLE_I18N
5418 /* Ensure only single byte characters are set. */ 5494 /* Ensure only single byte characters are set. */
@@ -5421,7 +5497,7 @@ Index: git/posix/regcomp.c
5421 bitset_mask (sbcset, dfa->sb_char); 5497 bitset_mask (sbcset, dfa->sb_char);
5422 #endif 5498 #endif
5423 5499
5424@@ -3661,7 +3689,7 @@ 5500@@ -3665,7 +3693,7 @@ build_charclass_op (re_dfa_t *dfa, RE_TR
5425 goto build_word_op_espace; 5501 goto build_word_op_espace;
5426 5502
5427 #ifdef RE_ENABLE_I18N 5503 #ifdef RE_ENABLE_I18N
@@ -5432,8 +5508,8 @@ Index: git/posix/regcomp.c
5432 /* Build a tree for complex bracket. */ 5508 /* Build a tree for complex bracket. */
5433Index: git/posix/regexec.c 5509Index: git/posix/regexec.c
5434=================================================================== 5510===================================================================
5435--- git.orig/posix/regexec.c 2014-08-29 20:00:53.268070587 -0700 5511--- git.orig/posix/regexec.c
5436+++ git/posix/regexec.c 2014-08-29 20:01:15.224070587 -0700 5512+++ git/posix/regexec.c
5437@@ -18,6 +18,7 @@ 5513@@ -18,6 +18,7 @@
5438 <http://www.gnu.org/licenses/>. */ 5514 <http://www.gnu.org/licenses/>. */
5439 5515
@@ -5442,7 +5518,7 @@ Index: git/posix/regexec.c
5442 5518
5443 static reg_errcode_t match_ctx_init (re_match_context_t *cache, int eflags, 5519 static reg_errcode_t match_ctx_init (re_match_context_t *cache, int eflags,
5444 int n) internal_function; 5520 int n) internal_function;
5445@@ -186,11 +187,11 @@ 5521@@ -186,11 +187,11 @@ static int build_trtable (const re_dfa_t
5446 static int check_node_accept_bytes (const re_dfa_t *dfa, int node_idx, 5522 static int check_node_accept_bytes (const re_dfa_t *dfa, int node_idx,
5447 const re_string_t *input, int idx) 5523 const re_string_t *input, int idx)
5448 internal_function; 5524 internal_function;
@@ -5456,7 +5532,7 @@ Index: git/posix/regexec.c
5456 #endif /* RE_ENABLE_I18N */ 5532 #endif /* RE_ENABLE_I18N */
5457 static int group_nodes_into_DFAstates (const re_dfa_t *dfa, 5533 static int group_nodes_into_DFAstates (const re_dfa_t *dfa,
5458 const re_dfastate_t *state, 5534 const re_dfastate_t *state,
5459@@ -255,25 +256,9 @@ 5535@@ -255,25 +256,9 @@ regexec (preg, string, nmatch, pmatch, e
5460 return err != REG_NOERROR; 5536 return err != REG_NOERROR;
5461 } 5537 }
5462 5538
@@ -5485,7 +5561,7 @@ Index: git/posix/regexec.c
5485 5561
5486 /* Entry points for GNU code. */ 5562 /* Entry points for GNU code. */
5487 5563
5488@@ -728,7 +713,7 @@ 5564@@ -728,7 +713,7 @@ re_search_internal (preg, string, length
5489 incr = (range < 0) ? -1 : 1; 5565 incr = (range < 0) ? -1 : 1;
5490 left_lim = (range < 0) ? start + range : start; 5566 left_lim = (range < 0) ? start + range : start;
5491 right_lim = (range < 0) ? start : start + range; 5567 right_lim = (range < 0) ? start : start + range;
@@ -5494,7 +5570,7 @@ Index: git/posix/regexec.c
5494 match_kind = 5570 match_kind =
5495 (fastmap 5571 (fastmap
5496 ? ((sb || !(preg->syntax & RE_ICASE || t) ? 4 : 0) 5572 ? ((sb || !(preg->syntax & RE_ICASE || t) ? 4 : 0)
5497@@ -3448,7 +3433,7 @@ 5573@@ -3448,7 +3433,7 @@ out_free:
5498 if (BE (dest_states_word[i] == NULL && err != REG_NOERROR, 0)) 5574 if (BE (dest_states_word[i] == NULL && err != REG_NOERROR, 0))
5499 goto out_free; 5575 goto out_free;
5500 5576
@@ -5503,7 +5579,7 @@ Index: git/posix/regexec.c
5503 need_word_trtable = 1; 5579 need_word_trtable = 1;
5504 5580
5505 dest_states_nl[i] = re_acquire_state_context (&err, dfa, &follows, 5581 dest_states_nl[i] = re_acquire_state_context (&err, dfa, &follows,
5506@@ -3590,7 +3575,7 @@ 5582@@ -3590,7 +3575,7 @@ group_nodes_into_DFAstates (const re_dfa
5507 else if (type == OP_PERIOD) 5583 else if (type == OP_PERIOD)
5508 { 5584 {
5509 #ifdef RE_ENABLE_I18N 5585 #ifdef RE_ENABLE_I18N
@@ -5512,7 +5588,7 @@ Index: git/posix/regexec.c
5512 bitset_merge (accepts, dfa->sb_char); 5588 bitset_merge (accepts, dfa->sb_char);
5513 else 5589 else
5514 #endif 5590 #endif
5515@@ -3641,7 +3626,7 @@ 5591@@ -3641,7 +3626,7 @@ group_nodes_into_DFAstates (const re_dfa
5516 continue; 5592 continue;
5517 } 5593 }
5518 #ifdef RE_ENABLE_I18N 5594 #ifdef RE_ENABLE_I18N
@@ -5521,7 +5597,7 @@ Index: git/posix/regexec.c
5521 for (j = 0; j < BITSET_WORDS; ++j) 5597 for (j = 0; j < BITSET_WORDS; ++j)
5522 any_set |= (accepts[j] &= (dfa->word_char[j] | ~dfa->sb_char[j])); 5598 any_set |= (accepts[j] &= (dfa->word_char[j] | ~dfa->sb_char[j]));
5523 else 5599 else
5524@@ -3660,7 +3645,7 @@ 5600@@ -3660,7 +3645,7 @@ group_nodes_into_DFAstates (const re_dfa
5525 continue; 5601 continue;
5526 } 5602 }
5527 #ifdef RE_ENABLE_I18N 5603 #ifdef RE_ENABLE_I18N
@@ -5530,7 +5606,7 @@ Index: git/posix/regexec.c
5530 for (j = 0; j < BITSET_WORDS; ++j) 5606 for (j = 0; j < BITSET_WORDS; ++j)
5531 any_set |= (accepts[j] &= ~(dfa->word_char[j] & dfa->sb_char[j])); 5607 any_set |= (accepts[j] &= ~(dfa->word_char[j] & dfa->sb_char[j]));
5532 else 5608 else
5533@@ -3832,12 +3817,6 @@ 5609@@ -3836,12 +3821,6 @@ check_node_accept_bytes (const re_dfa_t
5534 if (node->type == COMPLEX_BRACKET) 5610 if (node->type == COMPLEX_BRACKET)
5535 { 5611 {
5536 const re_charset_t *cset = node->opr.mbcset; 5612 const re_charset_t *cset = node->opr.mbcset;
@@ -5543,7 +5619,7 @@ Index: git/posix/regexec.c
5543 int match_len = 0; 5619 int match_len = 0;
5544 wchar_t wc = ((cset->nranges || cset->nchar_classes || cset->nmbchars) 5620 wchar_t wc = ((cset->nranges || cset->nchar_classes || cset->nmbchars)
5545 ? re_string_wchar_at (input, str_idx) : 0); 5621 ? re_string_wchar_at (input, str_idx) : 0);
5546@@ -3849,6 +3828,7 @@ 5622@@ -3853,6 +3832,7 @@ check_node_accept_bytes (const re_dfa_t
5547 match_len = char_len; 5623 match_len = char_len;
5548 goto check_node_accept_bytes_match; 5624 goto check_node_accept_bytes_match;
5549 } 5625 }
@@ -5551,7 +5627,7 @@ Index: git/posix/regexec.c
5551 /* match with character_class? */ 5627 /* match with character_class? */
5552 for (i = 0; i < cset->nchar_classes; ++i) 5628 for (i = 0; i < cset->nchar_classes; ++i)
5553 { 5629 {
5554@@ -3859,8 +3839,16 @@ 5630@@ -3863,8 +3843,16 @@ check_node_accept_bytes (const re_dfa_t
5555 goto check_node_accept_bytes_match; 5631 goto check_node_accept_bytes_match;
5556 } 5632 }
5557 } 5633 }
@@ -5569,7 +5645,7 @@ Index: git/posix/regexec.c
5569 nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); 5645 nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
5570 if (nrules != 0) 5646 if (nrules != 0)
5571 { 5647 {
5572@@ -3953,8 +3941,12 @@ 5648@@ -3955,8 +3943,12 @@ check_node_accept_bytes (const re_dfa_t
5573 } 5649 }
5574 } 5650 }
5575 else 5651 else
@@ -5583,7 +5659,7 @@ Index: git/posix/regexec.c
5583 /* match with range expression? */ 5659 /* match with range expression? */
5584 #if __GNUC__ >= 2 5660 #if __GNUC__ >= 2
5585 wchar_t cmp_buf[] = {L'\0', L'\0', wc, L'\0', L'\0', L'\0'}; 5661 wchar_t cmp_buf[] = {L'\0', L'\0', wc, L'\0', L'\0', L'\0'};
5586@@ -3973,6 +3965,7 @@ 5662@@ -3975,6 +3967,7 @@ check_node_accept_bytes (const re_dfa_t
5587 goto check_node_accept_bytes_match; 5663 goto check_node_accept_bytes_match;
5588 } 5664 }
5589 } 5665 }
@@ -5591,7 +5667,7 @@ Index: git/posix/regexec.c
5591 } 5667 }
5592 check_node_accept_bytes_match: 5668 check_node_accept_bytes_match:
5593 if (!cset->non_match) 5669 if (!cset->non_match)
5594@@ -3988,7 +3981,7 @@ 5670@@ -3990,7 +3983,7 @@ check_node_accept_bytes (const re_dfa_t
5595 return 0; 5671 return 0;
5596 } 5672 }
5597 5673
@@ -5600,7 +5676,7 @@ Index: git/posix/regexec.c
5600 static unsigned int 5676 static unsigned int
5601 internal_function 5677 internal_function
5602 find_collation_sequence_value (const unsigned char *mbs, size_t mbs_len) 5678 find_collation_sequence_value (const unsigned char *mbs, size_t mbs_len)
5603@@ -4046,7 +4039,7 @@ 5679@@ -4048,7 +4041,7 @@ find_collation_sequence_value (const uns
5604 return UINT_MAX; 5680 return UINT_MAX;
5605 } 5681 }
5606 } 5682 }
@@ -5609,7 +5685,7 @@ Index: git/posix/regexec.c
5609 #endif /* RE_ENABLE_I18N */ 5685 #endif /* RE_ENABLE_I18N */
5610 5686
5611 /* Check whether the node accepts the byte which is IDX-th 5687 /* Check whether the node accepts the byte which is IDX-th
5612@@ -4137,7 +4130,7 @@ 5688@@ -4139,7 +4132,7 @@ extend_buffers (re_match_context_t *mctx
5613 if (pstr->icase) 5689 if (pstr->icase)
5614 { 5690 {
5615 #ifdef RE_ENABLE_I18N 5691 #ifdef RE_ENABLE_I18N
@@ -5618,7 +5694,7 @@ Index: git/posix/regexec.c
5618 { 5694 {
5619 ret = build_wcs_upper_buffer (pstr); 5695 ret = build_wcs_upper_buffer (pstr);
5620 if (BE (ret != REG_NOERROR, 0)) 5696 if (BE (ret != REG_NOERROR, 0))
5621@@ -4150,7 +4143,7 @@ 5697@@ -4152,7 +4145,7 @@ extend_buffers (re_match_context_t *mctx
5622 else 5698 else
5623 { 5699 {
5624 #ifdef RE_ENABLE_I18N 5700 #ifdef RE_ENABLE_I18N
@@ -5629,8 +5705,8 @@ Index: git/posix/regexec.c
5629 #endif /* RE_ENABLE_I18N */ 5705 #endif /* RE_ENABLE_I18N */
5630Index: git/posix/regexec-compat.c 5706Index: git/posix/regexec-compat.c
5631=================================================================== 5707===================================================================
5632--- /dev/null 1970-01-01 00:00:00.000000000 +0000 5708--- /dev/null
5633+++ git/posix/regexec-compat.c 2014-08-29 20:01:15.224070587 -0700 5709+++ git/posix/regexec-compat.c
5634@@ -0,0 +1,39 @@ 5710@@ -0,0 +1,39 @@
5635+/* Extended regular expression matching and search library. 5711+/* Extended regular expression matching and search library.
5636+ Copyright (C) 2008 Free Software Foundation, Inc. 5712+ Copyright (C) 2008 Free Software Foundation, Inc.
@@ -5673,8 +5749,8 @@ Index: git/posix/regexec-compat.c
5673+#endif 5749+#endif
5674Index: git/posix/regex.h 5750Index: git/posix/regex.h
5675=================================================================== 5751===================================================================
5676--- git.orig/posix/regex.h 2014-08-29 20:00:53.264070587 -0700 5752--- git.orig/posix/regex.h
5677+++ git/posix/regex.h 2014-08-29 20:01:15.224070587 -0700 5753+++ git/posix/regex.h
5678@@ -21,6 +21,7 @@ 5754@@ -21,6 +21,7 @@
5679 #define _REGEX_H 1 5755 #define _REGEX_H 1
5680 5756
@@ -5683,7 +5759,7 @@ Index: git/posix/regex.h
5683 5759
5684 /* Allow the use in C++ code. */ 5760 /* Allow the use in C++ code. */
5685 #ifdef __cplusplus 5761 #ifdef __cplusplus
5686@@ -156,6 +157,8 @@ 5762@@ -156,6 +157,8 @@ typedef unsigned long int reg_syntax_t;
5687 treated as 'a\{1'. */ 5763 treated as 'a\{1'. */
5688 # define RE_INVALID_INTERVAL_ORD (RE_DEBUG << 1) 5764 # define RE_INVALID_INTERVAL_ORD (RE_DEBUG << 1)
5689 5765
@@ -5692,7 +5768,7 @@ Index: git/posix/regex.h
5692 /* If this bit is set, then ignore case when matching. 5768 /* If this bit is set, then ignore case when matching.
5693 If not set, then case is significant. */ 5769 If not set, then case is significant. */
5694 # define RE_ICASE (RE_INVALID_INTERVAL_ORD << 1) 5770 # define RE_ICASE (RE_INVALID_INTERVAL_ORD << 1)
5695@@ -172,6 +175,7 @@ 5771@@ -172,6 +175,7 @@ typedef unsigned long int reg_syntax_t;
5696 /* If this bit is set, then no_sub will be set to 1 during 5772 /* If this bit is set, then no_sub will be set to 1 during
5697 re_compile_pattern. */ 5773 re_compile_pattern. */
5698 # define RE_NO_SUB (RE_CONTEXT_INVALID_DUP << 1) 5774 # define RE_NO_SUB (RE_CONTEXT_INVALID_DUP << 1)
@@ -5700,7 +5776,7 @@ Index: git/posix/regex.h
5700 #endif 5776 #endif
5701 5777
5702 /* This global variable defines the particular regexp syntax to use (for 5778 /* This global variable defines the particular regexp syntax to use (for
5703@@ -231,8 +235,13 @@ 5779@@ -231,8 +235,13 @@ extern reg_syntax_t re_syntax_options;
5704 (RE_CHAR_CLASSES | RE_DOT_NEWLINE | RE_DOT_NOT_NULL \ 5780 (RE_CHAR_CLASSES | RE_DOT_NEWLINE | RE_DOT_NOT_NULL \
5705 | RE_INTERVALS | RE_NO_EMPTY_RANGES) 5781 | RE_INTERVALS | RE_NO_EMPTY_RANGES)
5706 5782
@@ -5714,7 +5790,7 @@ Index: git/posix/regex.h
5714 5790
5715 /* Differs from ..._POSIX_BASIC only in that RE_BK_PLUS_QM becomes 5791 /* Differs from ..._POSIX_BASIC only in that RE_BK_PLUS_QM becomes
5716 RE_LIMITED_OPS, i.e., \? \+ \| are not recognized. Actually, this 5792 RE_LIMITED_OPS, i.e., \? \+ \| are not recognized. Actually, this
5717@@ -298,9 +307,11 @@ 5793@@ -298,9 +307,11 @@ extern reg_syntax_t re_syntax_options;
5718 /* Like REG_NOTBOL, except for the end-of-line. */ 5794 /* Like REG_NOTBOL, except for the end-of-line. */
5719 #define REG_NOTEOL (1 << 1) 5795 #define REG_NOTEOL (1 << 1)
5720 5796
@@ -5728,9 +5804,9 @@ Index: git/posix/regex.h
5728 /* If any error codes are removed, changed, or added, update the 5804 /* If any error codes are removed, changed, or added, update the
5729Index: git/posix/regex_internal.c 5805Index: git/posix/regex_internal.c
5730=================================================================== 5806===================================================================
5731--- git.orig/posix/regex_internal.c 2014-08-29 20:00:53.264070587 -0700 5807--- git.orig/posix/regex_internal.c
5732+++ git/posix/regex_internal.c 2014-08-29 20:01:15.224070587 -0700 5808+++ git/posix/regex_internal.c
5733@@ -43,8 +43,8 @@ 5809@@ -43,8 +43,8 @@ re_string_allocate (re_string_t *pstr, c
5734 int init_buf_len; 5810 int init_buf_len;
5735 5811
5736 /* Ensure at least one character fits into the buffers. */ 5812 /* Ensure at least one character fits into the buffers. */
@@ -5741,7 +5817,7 @@ Index: git/posix/regex_internal.c
5741 init_buf_len = (len + 1 < init_len) ? len + 1: init_len; 5817 init_buf_len = (len + 1 < init_len) ? len + 1: init_len;
5742 re_string_construct_common (str, len, pstr, trans, icase, dfa); 5818 re_string_construct_common (str, len, pstr, trans, icase, dfa);
5743 5819
5744@@ -55,7 +55,7 @@ 5820@@ -55,7 +55,7 @@ re_string_allocate (re_string_t *pstr, c
5745 pstr->word_char = dfa->word_char; 5821 pstr->word_char = dfa->word_char;
5746 pstr->word_ops_used = dfa->word_ops_used; 5822 pstr->word_ops_used = dfa->word_ops_used;
5747 pstr->mbs = pstr->mbs_allocated ? pstr->mbs : (unsigned char *) str; 5823 pstr->mbs = pstr->mbs_allocated ? pstr->mbs : (unsigned char *) str;
@@ -5750,7 +5826,7 @@ Index: git/posix/regex_internal.c
5750 pstr->valid_raw_len = pstr->valid_len; 5826 pstr->valid_raw_len = pstr->valid_len;
5751 return REG_NOERROR; 5827 return REG_NOERROR;
5752 } 5828 }
5753@@ -82,7 +82,7 @@ 5829@@ -82,7 +82,7 @@ re_string_construct (re_string_t *pstr,
5754 if (icase) 5830 if (icase)
5755 { 5831 {
5756 #ifdef RE_ENABLE_I18N 5832 #ifdef RE_ENABLE_I18N
@@ -5759,7 +5835,7 @@ Index: git/posix/regex_internal.c
5759 { 5835 {
5760 while (1) 5836 while (1)
5761 { 5837 {
5762@@ -91,7 +91,7 @@ 5838@@ -91,7 +91,7 @@ re_string_construct (re_string_t *pstr,
5763 return ret; 5839 return ret;
5764 if (pstr->valid_raw_len >= len) 5840 if (pstr->valid_raw_len >= len)
5765 break; 5841 break;
@@ -5768,7 +5844,7 @@ Index: git/posix/regex_internal.c
5768 break; 5844 break;
5769 ret = re_string_realloc_buffers (pstr, pstr->bufs_len * 2); 5845 ret = re_string_realloc_buffers (pstr, pstr->bufs_len * 2);
5770 if (BE (ret != REG_NOERROR, 0)) 5846 if (BE (ret != REG_NOERROR, 0))
5771@@ -105,7 +105,7 @@ 5847@@ -105,7 +105,7 @@ re_string_construct (re_string_t *pstr,
5772 else 5848 else
5773 { 5849 {
5774 #ifdef RE_ENABLE_I18N 5850 #ifdef RE_ENABLE_I18N
@@ -5777,7 +5853,7 @@ Index: git/posix/regex_internal.c
5777 build_wcs_buffer (pstr); 5853 build_wcs_buffer (pstr);
5778 else 5854 else
5779 #endif /* RE_ENABLE_I18N */ 5855 #endif /* RE_ENABLE_I18N */
5780@@ -130,7 +130,7 @@ 5856@@ -130,7 +130,7 @@ internal_function __attribute_warn_unuse
5781 re_string_realloc_buffers (re_string_t *pstr, int new_buf_len) 5857 re_string_realloc_buffers (re_string_t *pstr, int new_buf_len)
5782 { 5858 {
5783 #ifdef RE_ENABLE_I18N 5859 #ifdef RE_ENABLE_I18N
@@ -5786,7 +5862,7 @@ Index: git/posix/regex_internal.c
5786 { 5862 {
5787 wint_t *new_wcs; 5863 wint_t *new_wcs;
5788 5864
5789@@ -177,7 +177,7 @@ 5865@@ -177,7 +177,7 @@ re_string_construct_common (const char *
5790 pstr->trans = trans; 5866 pstr->trans = trans;
5791 pstr->icase = icase ? 1 : 0; 5867 pstr->icase = icase ? 1 : 0;
5792 pstr->mbs_allocated = (trans != NULL || icase); 5868 pstr->mbs_allocated = (trans != NULL || icase);
@@ -5795,7 +5871,7 @@ Index: git/posix/regex_internal.c
5795 pstr->is_utf8 = dfa->is_utf8; 5871 pstr->is_utf8 = dfa->is_utf8;
5796 pstr->map_notascii = dfa->map_notascii; 5872 pstr->map_notascii = dfa->map_notascii;
5797 pstr->stop = pstr->len; 5873 pstr->stop = pstr->len;
5798@@ -203,7 +203,7 @@ 5874@@ -203,7 +203,7 @@ build_wcs_buffer (re_string_t *pstr)
5799 { 5875 {
5800 #ifdef _LIBC 5876 #ifdef _LIBC
5801 unsigned char buf[MB_LEN_MAX]; 5877 unsigned char buf[MB_LEN_MAX];
@@ -5804,7 +5880,7 @@ Index: git/posix/regex_internal.c
5804 #else 5880 #else
5805 unsigned char buf[64]; 5881 unsigned char buf[64];
5806 #endif 5882 #endif
5807@@ -226,7 +226,7 @@ 5883@@ -226,7 +226,7 @@ build_wcs_buffer (re_string_t *pstr)
5808 { 5884 {
5809 int i, ch; 5885 int i, ch;
5810 5886
@@ -5813,7 +5889,7 @@ Index: git/posix/regex_internal.c
5813 { 5889 {
5814 ch = pstr->raw_mbs [pstr->raw_mbs_idx + byte_idx + i]; 5890 ch = pstr->raw_mbs [pstr->raw_mbs_idx + byte_idx + i];
5815 buf[i] = pstr->mbs[byte_idx + i] = pstr->trans[ch]; 5891 buf[i] = pstr->mbs[byte_idx + i] = pstr->trans[ch];
5816@@ -275,7 +275,7 @@ 5892@@ -275,7 +275,7 @@ build_wcs_upper_buffer (re_string_t *pst
5817 size_t mbclen; 5893 size_t mbclen;
5818 #ifdef _LIBC 5894 #ifdef _LIBC
5819 char buf[MB_LEN_MAX]; 5895 char buf[MB_LEN_MAX];
@@ -5822,7 +5898,7 @@ Index: git/posix/regex_internal.c
5822 #else 5898 #else
5823 char buf[64]; 5899 char buf[64];
5824 #endif 5900 #endif
5825@@ -369,7 +369,7 @@ 5901@@ -369,7 +369,7 @@ build_wcs_upper_buffer (re_string_t *pst
5826 { 5902 {
5827 int i, ch; 5903 int i, ch;
5828 5904
@@ -5831,7 +5907,7 @@ Index: git/posix/regex_internal.c
5831 { 5907 {
5832 ch = pstr->raw_mbs [pstr->raw_mbs_idx + src_idx + i]; 5908 ch = pstr->raw_mbs [pstr->raw_mbs_idx + src_idx + i];
5833 buf[i] = pstr->trans[ch]; 5909 buf[i] = pstr->trans[ch];
5834@@ -567,8 +567,9 @@ 5910@@ -567,8 +567,9 @@ re_string_translate_buffer (re_string_t
5835 } 5911 }
5836 5912
5837 /* This function re-construct the buffers. 5913 /* This function re-construct the buffers.
@@ -5843,7 +5919,7 @@ Index: git/posix/regex_internal.c
5843 5919
5844 static reg_errcode_t 5920 static reg_errcode_t
5845 internal_function __attribute_warn_unused_result__ 5921 internal_function __attribute_warn_unused_result__
5846@@ -579,7 +580,7 @@ 5922@@ -579,7 +580,7 @@ re_string_reconstruct (re_string_t *pstr
5847 { 5923 {
5848 /* Reset buffer. */ 5924 /* Reset buffer. */
5849 #ifdef RE_ENABLE_I18N 5925 #ifdef RE_ENABLE_I18N
@@ -5852,7 +5928,7 @@ Index: git/posix/regex_internal.c
5852 memset (&pstr->cur_state, '\0', sizeof (mbstate_t)); 5928 memset (&pstr->cur_state, '\0', sizeof (mbstate_t));
5853 #endif /* RE_ENABLE_I18N */ 5929 #endif /* RE_ENABLE_I18N */
5854 pstr->len = pstr->raw_len; 5930 pstr->len = pstr->raw_len;
5855@@ -670,7 +671,7 @@ 5931@@ -670,7 +671,7 @@ re_string_reconstruct (re_string_t *pstr
5856 pstr->tip_context = re_string_context_at (pstr, offset - 1, 5932 pstr->tip_context = re_string_context_at (pstr, offset - 1,
5857 eflags); 5933 eflags);
5858 #ifdef RE_ENABLE_I18N 5934 #ifdef RE_ENABLE_I18N
@@ -5861,7 +5937,7 @@ Index: git/posix/regex_internal.c
5861 memmove (pstr->wcs, pstr->wcs + offset, 5937 memmove (pstr->wcs, pstr->wcs + offset,
5862 (pstr->valid_len - offset) * sizeof (wint_t)); 5938 (pstr->valid_len - offset) * sizeof (wint_t));
5863 #endif /* RE_ENABLE_I18N */ 5939 #endif /* RE_ENABLE_I18N */
5864@@ -699,7 +700,7 @@ 5940@@ -699,7 +700,7 @@ re_string_reconstruct (re_string_t *pstr
5865 #endif 5941 #endif
5866 pstr->valid_len = 0; 5942 pstr->valid_len = 0;
5867 #ifdef RE_ENABLE_I18N 5943 #ifdef RE_ENABLE_I18N
@@ -5870,7 +5946,7 @@ Index: git/posix/regex_internal.c
5870 { 5946 {
5871 int wcs_idx; 5947 int wcs_idx;
5872 wint_t wc = WEOF; 5948 wint_t wc = WEOF;
5873@@ -711,7 +712,7 @@ 5949@@ -711,7 +712,7 @@ re_string_reconstruct (re_string_t *pstr
5874 /* Special case UTF-8. Multi-byte chars start with any 5950 /* Special case UTF-8. Multi-byte chars start with any
5875 byte other than 0x80 - 0xbf. */ 5951 byte other than 0x80 - 0xbf. */
5876 raw = pstr->raw_mbs + pstr->raw_mbs_idx; 5952 raw = pstr->raw_mbs + pstr->raw_mbs_idx;
@@ -5879,7 +5955,7 @@ Index: git/posix/regex_internal.c
5879 if (end < pstr->raw_mbs) 5955 if (end < pstr->raw_mbs)
5880 end = pstr->raw_mbs; 5956 end = pstr->raw_mbs;
5881 p = raw + offset - 1; 5957 p = raw + offset - 1;
5882@@ -803,7 +804,7 @@ 5958@@ -803,7 +804,7 @@ re_string_reconstruct (re_string_t *pstr
5883 5959
5884 /* Then build the buffers. */ 5960 /* Then build the buffers. */
5885 #ifdef RE_ENABLE_I18N 5961 #ifdef RE_ENABLE_I18N
@@ -5888,7 +5964,7 @@ Index: git/posix/regex_internal.c
5888 { 5964 {
5889 if (pstr->icase) 5965 if (pstr->icase)
5890 { 5966 {
5891@@ -841,7 +842,7 @@ 5967@@ -841,7 +842,7 @@ re_string_peek_byte_case (const re_strin
5892 return re_string_peek_byte (pstr, idx); 5968 return re_string_peek_byte (pstr, idx);
5893 5969
5894 #ifdef RE_ENABLE_I18N 5970 #ifdef RE_ENABLE_I18N
@@ -5897,7 +5973,7 @@ Index: git/posix/regex_internal.c
5897 && ! re_string_is_single_byte_char (pstr, pstr->cur_idx + idx)) 5973 && ! re_string_is_single_byte_char (pstr, pstr->cur_idx + idx))
5898 return re_string_peek_byte (pstr, idx); 5974 return re_string_peek_byte (pstr, idx);
5899 #endif 5975 #endif
5900@@ -930,7 +931,7 @@ 5976@@ -930,7 +931,7 @@ re_string_context_at (const re_string_t
5901 return ((eflags & REG_NOTEOL) ? CONTEXT_ENDBUF 5977 return ((eflags & REG_NOTEOL) ? CONTEXT_ENDBUF
5902 : CONTEXT_NEWLINE | CONTEXT_ENDBUF); 5978 : CONTEXT_NEWLINE | CONTEXT_ENDBUF);
5903 #ifdef RE_ENABLE_I18N 5979 #ifdef RE_ENABLE_I18N
@@ -5906,7 +5982,7 @@ Index: git/posix/regex_internal.c
5906 { 5982 {
5907 wint_t wc; 5983 wint_t wc;
5908 int wc_idx = idx; 5984 int wc_idx = idx;
5909@@ -1444,7 +1445,7 @@ 5985@@ -1444,7 +1445,7 @@ re_dfa_add_node (re_dfa_t *dfa, re_token
5910 dfa->nodes[dfa->nodes_len].constraint = 0; 5986 dfa->nodes[dfa->nodes_len].constraint = 0;
5911 #ifdef RE_ENABLE_I18N 5987 #ifdef RE_ENABLE_I18N
5912 dfa->nodes[dfa->nodes_len].accept_mb = 5988 dfa->nodes[dfa->nodes_len].accept_mb =
@@ -5917,8 +5993,8 @@ Index: git/posix/regex_internal.c
5917 re_node_set_init_empty (dfa->edests + dfa->nodes_len); 5993 re_node_set_init_empty (dfa->edests + dfa->nodes_len);
5918Index: git/posix/regex_internal.h 5994Index: git/posix/regex_internal.h
5919=================================================================== 5995===================================================================
5920--- git.orig/posix/regex_internal.h 2014-08-29 20:00:53.264070587 -0700 5996--- git.orig/posix/regex_internal.h
5921+++ git/posix/regex_internal.h 2014-08-29 20:01:15.224070587 -0700 5997+++ git/posix/regex_internal.h
5922@@ -26,6 +26,10 @@ 5998@@ -26,6 +26,10 @@
5923 #include <stdlib.h> 5999 #include <stdlib.h>
5924 #include <string.h> 6000 #include <string.h>
@@ -5930,7 +6006,7 @@ Index: git/posix/regex_internal.h
5930 #if defined HAVE_LANGINFO_H || defined HAVE_LANGINFO_CODESET || defined _LIBC 6006 #if defined HAVE_LANGINFO_H || defined HAVE_LANGINFO_CODESET || defined _LIBC
5931 # include <langinfo.h> 6007 # include <langinfo.h>
5932 #endif 6008 #endif
5933@@ -370,6 +374,13 @@ 6009@@ -369,6 +373,13 @@ struct re_string_t
5934 }; 6010 };
5935 typedef struct re_string_t re_string_t; 6011 typedef struct re_string_t re_string_t;
5936 6012
@@ -5944,7 +6020,7 @@ Index: git/posix/regex_internal.h
5944 6020
5945 struct re_dfa_t; 6021 struct re_dfa_t;
5946 typedef struct re_dfa_t re_dfa_t; 6022 typedef struct re_dfa_t re_dfa_t;
5947@@ -655,6 +666,14 @@ 6023@@ -654,6 +665,14 @@ struct re_dfa_t
5948 __libc_lock_define (, lock) 6024 __libc_lock_define (, lock)
5949 }; 6025 };
5950 6026
@@ -5959,7 +6035,7 @@ Index: git/posix/regex_internal.h
5959 #define re_node_set_init_empty(set) memset (set, '\0', sizeof (re_node_set)) 6035 #define re_node_set_init_empty(set) memset (set, '\0', sizeof (re_node_set))
5960 #define re_node_set_remove(set,id) \ 6036 #define re_node_set_remove(set,id) \
5961 (re_node_set_remove_at (set, re_node_set_contains (set, id) - 1)) 6037 (re_node_set_remove_at (set, re_node_set_contains (set, id) - 1))
5962@@ -715,7 +734,7 @@ 6038@@ -714,7 +733,7 @@ internal_function __attribute__ ((pure,
5963 re_string_char_size_at (const re_string_t *pstr, int idx) 6039 re_string_char_size_at (const re_string_t *pstr, int idx)
5964 { 6040 {
5965 int byte_idx; 6041 int byte_idx;
@@ -5968,7 +6044,7 @@ Index: git/posix/regex_internal.h
5968 return 1; 6044 return 1;
5969 for (byte_idx = 1; idx + byte_idx < pstr->valid_len; ++byte_idx) 6045 for (byte_idx = 1; idx + byte_idx < pstr->valid_len; ++byte_idx)
5970 if (pstr->wcs[idx + byte_idx] != WEOF) 6046 if (pstr->wcs[idx + byte_idx] != WEOF)
5971@@ -727,7 +746,7 @@ 6047@@ -726,7 +745,7 @@ static wint_t
5972 internal_function __attribute__ ((pure, unused)) 6048 internal_function __attribute__ ((pure, unused))
5973 re_string_wchar_at (const re_string_t *pstr, int idx) 6049 re_string_wchar_at (const re_string_t *pstr, int idx)
5974 { 6050 {
@@ -5979,9 +6055,9 @@ Index: git/posix/regex_internal.h
5979 } 6055 }
5980Index: git/posix/xregex.c 6056Index: git/posix/xregex.c
5981=================================================================== 6057===================================================================
5982--- /dev/null 1970-01-01 00:00:00.000000000 +0000 6058--- /dev/null
5983+++ git/posix/xregex.c 2014-08-29 20:01:15.228070587 -0700 6059+++ git/posix/xregex.c
5984@@ -0,0 +1,8212 @@ 6060@@ -0,0 +1,8215 @@
5985+/* Extended regular expression matching and search library, 6061+/* Extended regular expression matching and search library,
5986+ version 0.12. 6062+ version 0.12.
5987+ (Implements POSIX draft P1003.2/D11.2, except for some of the 6063+ (Implements POSIX draft P1003.2/D11.2, except for some of the
@@ -6022,6 +6098,7 @@ Index: git/posix/xregex.c
6022+ 6098+
6023+/*#include <ansidecl.h>*/ 6099+/*#include <ansidecl.h>*/
6024+ 6100+
6101+
6025+#ifndef INSIDE_RECURSION 6102+#ifndef INSIDE_RECURSION
6026+ 6103+
6027+# if defined STDC_HEADERS && !defined emacs 6104+# if defined STDC_HEADERS && !defined emacs
@@ -6031,8 +6108,11 @@ Index: git/posix/xregex.c
6031+# include <sys/types.h> 6108+# include <sys/types.h>
6032+# endif 6109+# endif
6033+ 6110+
6034+# define WIDE_CHAR_SUPPORT (HAVE_WCTYPE_H && HAVE_WCHAR_H && HAVE_BTOWC) 6111+# if (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H && defined HAVE_BTOWC)
6035+ 6112+# define WIDE_CHAR_SUPPORT (HAVE_WCTYPE_H && HAVE_WCHAR_H && HAVE_BTOWC)
6113+# else
6114+# define WIDE_CHAR_SUPPORT 0
6115+# endif
6036+/* For platform which support the ISO C amendement 1 functionality we 6116+/* For platform which support the ISO C amendement 1 functionality we
6037+ support user defined character classes. */ 6117+ support user defined character classes. */
6038+# if WIDE_CHAR_SUPPORT 6118+# if WIDE_CHAR_SUPPORT
@@ -6593,6 +6673,8 @@ Index: git/posix/xregex.c
6593+# define PREFIX(name) byte_##name 6673+# define PREFIX(name) byte_##name
6594+# define ARG_PREFIX(name) name 6674+# define ARG_PREFIX(name) name
6595+# define PUT_CHAR(c) putchar (c) 6675+# define PUT_CHAR(c) putchar (c)
6676+# include <locale/weight.h>
6677+# define FINDIDX findidx
6596+#else 6678+#else
6597+# ifdef WCHAR 6679+# ifdef WCHAR
6598+# define CHAR_T wchar_t 6680+# define CHAR_T wchar_t
@@ -6606,6 +6688,10 @@ Index: git/posix/xregex.c
6606+# define PUT_CHAR(c) printf ("%C", c); 6688+# define PUT_CHAR(c) printf ("%C", c);
6607+# define TRUE 1 6689+# define TRUE 1
6608+# define FALSE 0 6690+# define FALSE 0
6691+# define findidx findidxwc
6692+# include <locale/weightwc.h>
6693+# undef findidx
6694+# define FINDIDX findidxwc
6609+# else 6695+# else
6610+# ifdef MBS_SUPPORT 6696+# ifdef MBS_SUPPORT
6611+# define WCHAR 6697+# define WCHAR
@@ -8001,6 +8087,9 @@ Index: git/posix/xregex.c
8001+ reset the pointers that pointed into the old block to point to the 8087+ reset the pointers that pointed into the old block to point to the
8002+ correct places in the new one. If extending the buffer results in it 8088+ correct places in the new one. If extending the buffer results in it
8003+ being larger than MAX_BUF_SIZE, then flag memory exhausted. */ 8089+ being larger than MAX_BUF_SIZE, then flag memory exhausted. */
8090+# ifndef __BOUNDED_POINTERS__
8091+# define __BOUNDED_POINTERS__ 0
8092+# endif
8004+# if __BOUNDED_POINTERS__ 8093+# if __BOUNDED_POINTERS__
8005+# define SET_HIGH_BOUND(P) (__ptrhigh (P) = __ptrlow (P) + bufp->allocated) 8094+# define SET_HIGH_BOUND(P) (__ptrhigh (P) = __ptrlow (P) + bufp->allocated)
8006+# define MOVE_BUFFER_POINTER(P) \ 8095+# define MOVE_BUFFER_POINTER(P) \
@@ -8906,9 +8995,6 @@ Index: git/posix/xregex.c
8906+ const int32_t *indirect; 8995+ const int32_t *indirect;
8907+ wint_t *cp; 8996+ wint_t *cp;
8908+ 8997+
8909+ /* This #include defines a local function! */
8910+# include <locale/weightwc.h>
8911+
8912+ if(delim == '=') 8998+ if(delim == '=')
8913+ { 8999+ {
8914+ /* We push the index for equivalence class. */ 9000+ /* We push the index for equivalence class. */
@@ -8920,14 +9006,14 @@ Index: git/posix/xregex.c
8920+ weights = (const int32_t *) 9006+ weights = (const int32_t *)
8921+ _NL_CURRENT (LC_COLLATE, 9007+ _NL_CURRENT (LC_COLLATE,
8922+ _NL_COLLATE_WEIGHTWC); 9008+ _NL_COLLATE_WEIGHTWC);
8923+ extra = (const int32_t *) 9009+ extra = (const wint_t *)
8924+ _NL_CURRENT (LC_COLLATE, 9010+ _NL_CURRENT (LC_COLLATE,
8925+ _NL_COLLATE_EXTRAWC); 9011+ _NL_COLLATE_EXTRAWC);
8926+ indirect = (const int32_t *) 9012+ indirect = (const int32_t *)
8927+ _NL_CURRENT (LC_COLLATE, 9013+ _NL_CURRENT (LC_COLLATE,
8928+ _NL_COLLATE_INDIRECTWC); 9014+ _NL_COLLATE_INDIRECTWC);
8929+ 9015+
8930+ idx = findidx ((const wint_t**)&cp, c1); 9016+ idx = FINDIDX (table, indirect, extra, &cp, 1);
8931+ if (idx == 0 || cp < (wint_t*) str + c1) 9017+ if (idx == 0 || cp < (wint_t*) str + c1)
8932+ /* This is no valid character. */ 9018+ /* This is no valid character. */
8933+ FREE_STACK_RETURN (REG_ECOLLATE); 9019+ FREE_STACK_RETURN (REG_ECOLLATE);
@@ -9364,9 +9450,6 @@ Index: git/posix/xregex.c
9364+ const unsigned char *cp = str; 9450+ const unsigned char *cp = str;
9365+ int ch; 9451+ int ch;
9366+ 9452+
9367+ /* This #include defines a local function! */
9368+# include <locale/weight.h>
9369+
9370+ table = (const int32_t *) 9453+ table = (const int32_t *)
9371+ _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB); 9454+ _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB);
9372+ weights = (const unsigned char *) 9455+ weights = (const unsigned char *)
@@ -9375,8 +9458,7 @@ Index: git/posix/xregex.c
9375+ _NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAMB); 9458+ _NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAMB);
9376+ indirect = (const int32_t *) 9459+ indirect = (const int32_t *)
9377+ _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB); 9460+ _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB);
9378+ 9461+ idx = FINDIDX (table, indirect, extra, &cp, 1);
9379+ idx = findidx (&cp, c1);
9380+ if (idx == 0 || cp < str + c1) 9462+ if (idx == 0 || cp < str + c1)
9381+ /* This is no valid character. */ 9463+ /* This is no valid character. */
9382+ FREE_STACK_RETURN (REG_ECOLLATE); 9464+ FREE_STACK_RETURN (REG_ECOLLATE);
@@ -12319,9 +12401,6 @@ Index: git/posix/xregex.c
12319+ wint_t *cp; 12401+ wint_t *cp;
12320+ size_t len; 12402+ size_t len;
12321+ 12403+
12322+ /* This #include defines a local function! */
12323+# include <locale/weightwc.h>
12324+
12325+ table = (const int32_t *) 12404+ table = (const int32_t *)
12326+ _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEWC); 12405+ _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEWC);
12327+ weights = (const wint_t *) 12406+ weights = (const wint_t *)
@@ -12347,7 +12426,7 @@ Index: git/posix/xregex.c
12347+ } 12426+ }
12348+ str_buf[i] = TRANSLATE(*(d+i)); 12427+ str_buf[i] = TRANSLATE(*(d+i));
12349+ str_buf[i+1] = '\0'; /* sentinel */ 12428+ str_buf[i+1] = '\0'; /* sentinel */
12350+ idx2 = findidx ((const wint_t**)&cp, i); 12429+ idx2 = FINDIDX (table, indirect, extra, &cp, 1);
12351+ } 12430+ }
12352+ 12431+
12353+ /* Update d, however d will be incremented at 12432+ /* Update d, however d will be incremented at
@@ -13129,8 +13208,8 @@ Index: git/posix/xregex.c
13129+ register from the stack, since lowest will == highest in 13208+ register from the stack, since lowest will == highest in
13130+ `pop_failure_point'. */ 13209+ `pop_failure_point'. */
13131+ active_reg_t dummy_low_reg, dummy_high_reg; 13210+ active_reg_t dummy_low_reg, dummy_high_reg;
13132+ UCHAR_T *pdummy = NULL; 13211+ UCHAR_T *pdummy __attribute__ ((unused)) = NULL;
13133+ const CHAR_T *sdummy = NULL; 13212+ const CHAR_T *sdummy __attribute__ ((unused)) = NULL;
13134+ 13213+
13135+ DEBUG_PRINT1 ("EXECUTING pop_failure_jump.\n"); 13214+ DEBUG_PRINT1 ("EXECUTING pop_failure_jump.\n");
13136+ POP_FAILURE_POINT (sdummy, pdummy, 13215+ POP_FAILURE_POINT (sdummy, pdummy,
@@ -14196,8 +14275,8 @@ Index: git/posix/xregex.c
14196+# define DEFINED_ONCE 14275+# define DEFINED_ONCE
14197Index: git/pwd/Makefile 14276Index: git/pwd/Makefile
14198=================================================================== 14277===================================================================
14199--- git.orig/pwd/Makefile 2014-08-29 20:00:53.316070587 -0700 14278--- git.orig/pwd/Makefile
14200+++ git/pwd/Makefile 2014-08-29 20:01:15.232070587 -0700 14279+++ git/pwd/Makefile
14201@@ -18,6 +18,8 @@ 14280@@ -18,6 +18,8 @@
14202 # 14281 #
14203 # Sub-makefile for pwd portion of the library. 14282 # Sub-makefile for pwd portion of the library.
@@ -14209,8 +14288,8 @@ Index: git/pwd/Makefile
14209 include ../Makeconfig 14288 include ../Makeconfig
14210Index: git/resolv/Makefile 14289Index: git/resolv/Makefile
14211=================================================================== 14290===================================================================
14212--- git.orig/resolv/Makefile 2014-08-29 20:00:53.320070587 -0700 14291--- git.orig/resolv/Makefile
14213+++ git/resolv/Makefile 2014-08-29 20:01:15.232070587 -0700 14292+++ git/resolv/Makefile
14214@@ -18,6 +18,8 @@ 14293@@ -18,6 +18,8 @@
14215 # 14294 #
14216 # Sub-makefile for resolv portion of the library. 14295 # Sub-makefile for resolv portion of the library.
@@ -14220,7 +14299,7 @@ Index: git/resolv/Makefile
14220 subdir := resolv 14299 subdir := resolv
14221 14300
14222 include ../Makeconfig 14301 include ../Makeconfig
14223@@ -27,20 +29,21 @@ 14302@@ -27,20 +29,21 @@ headers := resolv.h \
14224 arpa/nameser.h arpa/nameser_compat.h \ 14303 arpa/nameser.h arpa/nameser_compat.h \
14225 sys/bitypes.h 14304 sys/bitypes.h
14226 14305
@@ -14250,7 +14329,7 @@ Index: git/resolv/Makefile
14250 libresolv-routines := gethnamaddr res_comp res_debug \ 14329 libresolv-routines := gethnamaddr res_comp res_debug \
14251 res_data res_mkquery res_query res_send \ 14330 res_data res_mkquery res_query res_send \
14252 inet_net_ntop inet_net_pton inet_neta base64 \ 14331 inet_net_ntop inet_net_pton inet_neta base64 \
14253@@ -60,7 +63,7 @@ 14332@@ -60,7 +63,7 @@ routines += $(libnss_dns-
14254 static-only-routines += $(libnss_dns-routines) $(libresolv-routines) 14333 static-only-routines += $(libnss_dns-routines) $(libresolv-routines)
14255 endif 14334 endif
14256 14335
@@ -14261,8 +14340,8 @@ Index: git/resolv/Makefile
14261 14340
14262Index: git/stdio-common/fxprintf.c 14341Index: git/stdio-common/fxprintf.c
14263=================================================================== 14342===================================================================
14264--- git.orig/stdio-common/fxprintf.c 2014-08-29 20:00:53.544070587 -0700 14343--- git.orig/stdio-common/fxprintf.c
14265+++ git/stdio-common/fxprintf.c 2014-08-29 20:01:15.232070587 -0700 14344+++ git/stdio-common/fxprintf.c
14266@@ -23,6 +23,7 @@ 14345@@ -23,6 +23,7 @@
14267 #include <wchar.h> 14346 #include <wchar.h>
14268 #include <string.h> 14347 #include <string.h>
@@ -14271,7 +14350,7 @@ Index: git/stdio-common/fxprintf.c
14271 14350
14272 14351
14273 int 14352 int
14274@@ -37,6 +38,7 @@ 14353@@ -37,6 +38,7 @@ __fxprintf (FILE *fp, const char *fmt, .
14275 int res; 14354 int res;
14276 if (_IO_fwide (fp, 0) > 0) 14355 if (_IO_fwide (fp, 0) > 0)
14277 { 14356 {
@@ -14279,7 +14358,7 @@ Index: git/stdio-common/fxprintf.c
14279 size_t len = strlen (fmt) + 1; 14358 size_t len = strlen (fmt) + 1;
14280 wchar_t wfmt[len]; 14359 wchar_t wfmt[len];
14281 for (size_t i = 0; i < len; ++i) 14360 for (size_t i = 0; i < len; ++i)
14282@@ -45,6 +47,9 @@ 14361@@ -45,6 +47,9 @@ __fxprintf (FILE *fp, const char *fmt, .
14283 wfmt[i] = fmt[i]; 14362 wfmt[i] = fmt[i];
14284 } 14363 }
14285 res = __vfwprintf (fp, wfmt, ap); 14364 res = __vfwprintf (fp, wfmt, ap);
@@ -14291,8 +14370,8 @@ Index: git/stdio-common/fxprintf.c
14291 res = _IO_vfprintf (fp, fmt, ap); 14370 res = _IO_vfprintf (fp, fmt, ap);
14292Index: git/stdio-common/_i18n_number.h 14371Index: git/stdio-common/_i18n_number.h
14293=================================================================== 14372===================================================================
14294--- git.orig/stdio-common/_i18n_number.h 2014-08-29 20:00:53.500070587 -0700 14373--- git.orig/stdio-common/_i18n_number.h
14295+++ git/stdio-common/_i18n_number.h 2014-08-29 20:01:15.232070587 -0700 14374+++ git/stdio-common/_i18n_number.h
14296@@ -19,10 +19,13 @@ 14375@@ -19,10 +19,13 @@
14297 #include <stdbool.h> 14376 #include <stdbool.h>
14298 #include <wchar.h> 14377 #include <wchar.h>
@@ -14307,7 +14386,7 @@ Index: git/stdio-common/_i18n_number.h
14307 static CHAR_T * 14386 static CHAR_T *
14308 _i18n_number_rewrite (CHAR_T *w, CHAR_T *rear_ptr, CHAR_T *end) 14387 _i18n_number_rewrite (CHAR_T *w, CHAR_T *rear_ptr, CHAR_T *end)
14309 { 14388 {
14310@@ -115,3 +118,13 @@ 14389@@ -115,3 +118,13 @@ _i18n_number_rewrite (CHAR_T *w, CHAR_T
14311 14390
14312 return w; 14391 return w;
14313 } 14392 }
@@ -14323,8 +14402,8 @@ Index: git/stdio-common/_i18n_number.h
14323+#endif 14402+#endif
14324Index: git/stdio-common/Makefile 14403Index: git/stdio-common/Makefile
14325=================================================================== 14404===================================================================
14326--- git.orig/stdio-common/Makefile 2014-08-29 20:00:53.500070587 -0700 14405--- git.orig/stdio-common/Makefile
14327+++ git/stdio-common/Makefile 2014-08-29 20:01:15.232070587 -0700 14406+++ git/stdio-common/Makefile
14328@@ -18,6 +18,8 @@ 14407@@ -18,6 +18,8 @@
14329 # 14408 #
14330 # Specific makefile for stdio-common. 14409 # Specific makefile for stdio-common.
@@ -14334,7 +14413,7 @@ Index: git/stdio-common/Makefile
14334 subdir := stdio-common 14413 subdir := stdio-common
14335 14414
14336 include ../Makeconfig 14415 include ../Makeconfig
14337@@ -30,7 +32,7 @@ 14416@@ -30,7 +32,7 @@ routines := \
14338 vfprintf vprintf printf_fp reg-printf printf-prs printf_fphex \ 14417 vfprintf vprintf printf_fp reg-printf printf-prs printf_fphex \
14339 reg-modifier reg-type \ 14418 reg-modifier reg-type \
14340 printf_size fprintf printf snprintf sprintf asprintf dprintf \ 14419 printf_size fprintf printf snprintf sprintf asprintf dprintf \
@@ -14343,7 +14422,7 @@ Index: git/stdio-common/Makefile
14343 fscanf scanf sscanf \ 14422 fscanf scanf sscanf \
14344 perror psignal \ 14423 perror psignal \
14345 tmpfile tmpfile64 tmpnam tmpnam_r tempnam tempname \ 14424 tmpfile tmpfile64 tmpnam tmpnam_r tempnam tempname \
14346@@ -41,23 +43,37 @@ 14425@@ -41,23 +43,36 @@ routines := \
14347 isoc99_vsscanf \ 14426 isoc99_vsscanf \
14348 psiginfo 14427 psiginfo
14349 14428
@@ -14351,10 +14430,10 @@ Index: git/stdio-common/Makefile
14351+# Ideally, _itowa and itowa-digits would be in this option group as 14430+# Ideally, _itowa and itowa-digits would be in this option group as
14352+# well, but it is used unconditionally by printf_fp and printf_fphex, 14431+# well, but it is used unconditionally by printf_fp and printf_fphex,
14353+# and it didn't seem straightforward to disentangle it. 14432+# and it didn't seem straightforward to disentangle it.
14354+routines-$(OPTION_POSIX_C_LANG_WIDE_CHAR) += \ 14433+routines-$(OPTION_POSIX_C_LANG_WIDE_CHAR) \
14355+ vfwprintf vfwscanf 14434+ += vfwprintf vfwscanf
14356+ 14435+
14357+aux := errlist siglist printf-parsemb fxprintf 14436+aux := errlist siglist printf-parsemb fxprintf
14358+aux-$(OPTION_POSIX_C_LANG_WIDE_CHAR) += printf-parsewc 14437+aux-$(OPTION_POSIX_C_LANG_WIDE_CHAR) += printf-parsewc
14359 14438
14360 tests := tstscanf test_rdwr test-popen tstgetln test-fseek \ 14439 tests := tstscanf test_rdwr test-popen tstgetln test-fseek \
@@ -14368,7 +14447,6 @@ Index: git/stdio-common/Makefile
14368- tst-swprintf tst-fseek tst-fmemopen test-vfprintf tst-gets \ 14447- tst-swprintf tst-fseek tst-fmemopen test-vfprintf tst-gets \
14369- tst-perror tst-sprintf tst-rndseek tst-fdopen tst-fphex bug14 \ 14448- tst-perror tst-sprintf tst-rndseek tst-fdopen tst-fphex bug14 \
14370+ scanf11 scanf12 tst-tmpnam tst-cookie tst-obprintf \ 14449+ scanf11 scanf12 tst-tmpnam tst-cookie tst-obprintf \
14371+ scanf11 scanf12 tst-tmpnam tst-cookie tst-obprintf \
14372+ tst-fseek tst-fmemopen tst-gets \ 14450+ tst-fseek tst-fmemopen tst-gets \
14373+ tst-sprintf tst-rndseek tst-fdopen tst-fphex \ 14451+ tst-sprintf tst-rndseek tst-fdopen tst-fphex \
14374 tst-popen tst-unlockedio tst-fmemopen2 tst-put-error tst-fgets \ 14452 tst-popen tst-unlockedio tst-fmemopen2 tst-put-error tst-fgets \
@@ -14376,25 +14454,24 @@ Index: git/stdio-common/Makefile
14376- bug19 bug19a tst-popen2 scanf13 scanf14 scanf15 bug20 bug21 bug22 \ 14454- bug19 bug19a tst-popen2 scanf13 scanf14 scanf15 bug20 bug21 bug22 \
14377- scanf16 scanf17 tst-setvbuf1 tst-grouping bug23 bug24 \ 14455- scanf16 scanf17 tst-setvbuf1 tst-grouping bug23 bug24 \
14378- bug-vfprintf-nargs tst-long-dbl-fphex tst-fphex-wide tst-sprintf3 \ 14456- bug-vfprintf-nargs tst-long-dbl-fphex tst-fphex-wide tst-sprintf3 \
14379- bug25 tst-printf-round bug26
14380+ tst-fwrite bug16 bug17 tst-sprintf2 bug18 \ 14457+ tst-fwrite bug16 bug17 tst-sprintf2 bug18 \
14381+ bug19 tst-popen2 scanf14 scanf15 bug21 bug22 scanf16 scanf17 \ 14458+ bug19 tst-popen2 scanf14 scanf15 bug21 bug22 \
14382+ tst-setvbuf1 bug23 bug24 bug-vfprintf-nargs tst-sprintf3 bug25 \ 14459+ scanf16 scanf17 tst-setvbuf1 bug23 bug24 \
14383+ tst-printf-round bug26 14460+ bug-vfprintf-nargs tst-sprintf3 \
14384+ 14461 bug25 tst-printf-round bug23-2 bug23-3 bug23-4 bug26
14385+tests-$(OPTION_EGLIBC_LOCALE_CODE) \ 14462+tests-$(OPTION_EGLIBC_LOCALE_CODE) \
14386+ += tst-sscanf tst-swprintf test-vfprintf bug14 scanf13 tst-grouping 14463+ += tst-sscanf tst-swprintf test-vfprintf bug14 scanf13 tst-grouping
14387+tests-$(OPTION_POSIX_WIDE_CHAR_DEVICE_IO) \ 14464+tests-$(OPTION_POSIX_WIDE_CHAR_DEVICE_IO) \
14388+ += tst-perror bug19a bug20 tst-long-dbl-fphex tst-fphex-wide 14465+ += tst-perror bug19a bug20 tst-long-dbl-fphex tst-fphex-wide
14389+tests-$(OPTION_POSIX_C_LANG_WIDE_CHAR) \ 14466+tests-$(OPTION_POSIX_C_LANG_WIDE_CHAR) \
14390+ += bug18a tst-swscanf tst-wc-printf 14467+ += bug18a tst-swscanf tst-wc-printf
14391 14468
14392 test-srcs = tst-unbputc tst-printf 14469 test-srcs = tst-unbputc tst-printf
14393 14470
14394Index: git/stdio-common/printf_fp.c 14471Index: git/stdio-common/printf_fp.c
14395=================================================================== 14472===================================================================
14396--- git.orig/stdio-common/printf_fp.c 2014-08-29 20:00:53.548070587 -0700 14473--- git.orig/stdio-common/printf_fp.c
14397+++ git/stdio-common/printf_fp.c 2014-08-29 20:01:15.232070587 -0700 14474+++ git/stdio-common/printf_fp.c
14398@@ -39,6 +39,7 @@ 14475@@ -39,6 +39,7 @@
14399 #include <unistd.h> 14476 #include <unistd.h>
14400 #include <stdlib.h> 14477 #include <stdlib.h>
@@ -14403,18 +14480,18 @@ Index: git/stdio-common/printf_fp.c
14403 #include <stdbool.h> 14480 #include <stdbool.h>
14404 #include <rounding-mode.h> 14481 #include <rounding-mode.h>
14405 14482
14406@@ -148,6 +149,10 @@ 14483@@ -142,6 +143,10 @@ extern mp_size_t __mpn_extract_long_doub
14407 wchar_t thousands_sep, int ngroups) 14484 extern unsigned int __guess_grouping (unsigned int intdig_max,
14408 internal_function; 14485 const char *grouping);
14409 14486
14410+/* Ideally, when OPTION_EGLIBC_LOCALE_CODE is disabled, this should do 14487+/* Ideally, when OPTION_EGLIBC_LOCALE_CODE is disabled, this should do
14411+ all its work in ordinary characters, rather than doing it in wide 14488+ all its work in ordinary characters, rather than doing it in wide
14412+ characters and then converting at the end. But that is a challenge 14489+ characters and then converting at the end. But that is a challenge
14413+ for another day. */ 14490+ for another day. */
14414 14491
14415 int 14492 static wchar_t *group_number (wchar_t *buf, wchar_t *bufend,
14416 ___printf_fp (FILE *fp, 14493 unsigned int intdig_no, const char *grouping,
14417@@ -206,7 +211,14 @@ 14494@@ -251,7 +256,14 @@ ___printf_fp (FILE *fp,
14418 mp_limb_t cy; 14495 mp_limb_t cy;
14419 14496
14420 /* Nonzero if this is output on a wide character stream. */ 14497 /* Nonzero if this is output on a wide character stream. */
@@ -14429,15 +14506,15 @@ Index: git/stdio-common/printf_fp.c
14429 14506
14430 /* Buffer in which we produce the output. */ 14507 /* Buffer in which we produce the output. */
14431 wchar_t *wbuffer = NULL; 14508 wchar_t *wbuffer = NULL;
14432@@ -258,6 +270,7 @@ 14509@@ -261,6 +273,7 @@ ___printf_fp (FILE *fp,
14433 14510 p.expsign = 0;
14434 14511
14435 /* Figure out the decimal point character. */ 14512 /* Figure out the decimal point character. */
14436+#if __OPTION_EGLIBC_LOCALE_CODE 14513+#if __OPTION_EGLIBC_LOCALE_CODE
14437 if (info->extra == 0) 14514 if (info->extra == 0)
14438 { 14515 {
14439 decimal = _NL_CURRENT (LC_NUMERIC, DECIMAL_POINT); 14516 decimal = _NL_CURRENT (LC_NUMERIC, DECIMAL_POINT);
14440@@ -277,7 +290,13 @@ 14517@@ -280,7 +293,13 @@ ___printf_fp (FILE *fp,
14441 /* The decimal point character must not be zero. */ 14518 /* The decimal point character must not be zero. */
14442 assert (*decimal != '\0'); 14519 assert (*decimal != '\0');
14443 assert (decimalwc != L'\0'); 14520 assert (decimalwc != L'\0');
@@ -14451,7 +14528,7 @@ Index: git/stdio-common/printf_fp.c
14451 if (info->group) 14528 if (info->group)
14452 { 14529 {
14453 if (info->extra == 0) 14530 if (info->extra == 0)
14454@@ -321,6 +340,9 @@ 14531@@ -324,6 +343,9 @@ ___printf_fp (FILE *fp,
14455 } 14532 }
14456 else 14533 else
14457 grouping = NULL; 14534 grouping = NULL;
@@ -14463,8 +14540,8 @@ Index: git/stdio-common/printf_fp.c
14463 #ifndef __NO_LONG_DOUBLE_MATH 14540 #ifndef __NO_LONG_DOUBLE_MATH
14464Index: git/stdio-common/printf_fphex.c 14541Index: git/stdio-common/printf_fphex.c
14465=================================================================== 14542===================================================================
14466--- git.orig/stdio-common/printf_fphex.c 2014-08-29 20:00:53.548070587 -0700 14543--- git.orig/stdio-common/printf_fphex.c
14467+++ git/stdio-common/printf_fphex.c 2014-08-29 20:01:15.232070587 -0700 14544+++ git/stdio-common/printf_fphex.c
14468@@ -28,6 +28,7 @@ 14545@@ -28,6 +28,7 @@
14469 #include <_itoa.h> 14546 #include <_itoa.h>
14470 #include <_itowa.h> 14547 #include <_itowa.h>
@@ -14473,7 +14550,7 @@ Index: git/stdio-common/printf_fphex.c
14473 #include <stdbool.h> 14550 #include <stdbool.h>
14474 #include <rounding-mode.h> 14551 #include <rounding-mode.h>
14475 14552
14476@@ -139,10 +140,18 @@ 14553@@ -139,10 +140,18 @@ __printf_fphex (FILE *fp,
14477 int done = 0; 14554 int done = 0;
14478 14555
14479 /* Nonzero if this is output on a wide character stream. */ 14556 /* Nonzero if this is output on a wide character stream. */
@@ -14492,7 +14569,7 @@ Index: git/stdio-common/printf_fphex.c
14492 if (info->extra == 0) 14569 if (info->extra == 0)
14493 { 14570 {
14494 decimal = _NL_CURRENT (LC_NUMERIC, DECIMAL_POINT); 14571 decimal = _NL_CURRENT (LC_NUMERIC, DECIMAL_POINT);
14495@@ -156,6 +165,10 @@ 14572@@ -156,6 +165,10 @@ __printf_fphex (FILE *fp,
14496 } 14573 }
14497 /* The decimal point character must never be zero. */ 14574 /* The decimal point character must never be zero. */
14498 assert (*decimal != '\0' && decimalwc != L'\0'); 14575 assert (*decimal != '\0' && decimalwc != L'\0');
@@ -14505,8 +14582,8 @@ Index: git/stdio-common/printf_fphex.c
14505 /* Fetch the argument value. */ 14582 /* Fetch the argument value. */
14506Index: git/stdio-common/printf_size.c 14583Index: git/stdio-common/printf_size.c
14507=================================================================== 14584===================================================================
14508--- git.orig/stdio-common/printf_size.c 2014-08-29 20:00:53.548070587 -0700 14585--- git.orig/stdio-common/printf_size.c
14509+++ git/stdio-common/printf_size.c 2014-08-29 20:01:15.232070587 -0700 14586+++ git/stdio-common/printf_size.c
14510@@ -23,6 +23,7 @@ 14587@@ -23,6 +23,7 @@
14511 #include <math.h> 14588 #include <math.h>
14512 #include <printf.h> 14589 #include <printf.h>
@@ -14515,7 +14592,7 @@ Index: git/stdio-common/printf_size.c
14515 14592
14516 14593
14517 /* This defines make it possible to use the same code for GNU C library and 14594 /* This defines make it possible to use the same code for GNU C library and
14518@@ -116,7 +117,14 @@ 14595@@ -116,7 +117,14 @@ __printf_size (FILE *fp, const struct pr
14519 14596
14520 struct printf_info fp_info; 14597 struct printf_info fp_info;
14521 int done = 0; 14598 int done = 0;
@@ -14532,25 +14609,25 @@ Index: git/stdio-common/printf_size.c
14532 /* Fetch the argument value. */ 14609 /* Fetch the argument value. */
14533Index: git/stdio-common/scanf14.c 14610Index: git/stdio-common/scanf14.c
14534=================================================================== 14611===================================================================
14535--- git.orig/stdio-common/scanf14.c 2014-08-29 20:00:53.548070587 -0700 14612--- git.orig/stdio-common/scanf14.c
14536+++ git/stdio-common/scanf14.c 2014-08-29 20:01:15.232070587 -0700 14613+++ git/stdio-common/scanf14.c
14537@@ -2,6 +2,7 @@ 14614@@ -3,6 +3,7 @@
14538 #include <stdlib.h>
14539 #include <string.h> 14615 #include <string.h>
14540 #include <wchar.h> 14616 #include <wchar.h>
14617 #include <libc-internal.h>
14541+#include <gnu/option-groups.h> 14618+#include <gnu/option-groups.h>
14542 14619
14543 #define FAIL() \ 14620 #define FAIL() \
14544 do { \ 14621 do { \
14545@@ -36,6 +37,7 @@ 14622@@ -48,6 +49,7 @@ main (void)
14546 FAIL (); 14623 /* See explanation above. */
14547 else if (d != 2.25 || memcmp (c, " x", 2) != 0) 14624 DIAG_PUSH_NEEDS_COMMENT;
14548 FAIL (); 14625 DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat");
14549+#if __OPTION_EGLIBC_LOCALE_CODE 14626+#if __OPTION_EGLIBC_LOCALE_CODE
14550 if (sscanf (" 3.25S x", "%4aS%3c", &lsp, c) != 2) 14627 if (sscanf (" 3.25S x", "%4aS%3c", &lsp, c) != 2)
14551 FAIL (); 14628 FAIL ();
14552 else 14629 else
14553@@ -45,6 +47,7 @@ 14630@@ -57,6 +59,7 @@ main (void)
14554 memset (lsp, 'x', sizeof L"3.25"); 14631 memset (lsp, 'x', sizeof L"3.25");
14555 free (lsp); 14632 free (lsp);
14556 } 14633 }
@@ -14560,17 +14637,17 @@ Index: git/stdio-common/scanf14.c
14560 else 14637 else
14561Index: git/stdio-common/tstdiomisc.c 14638Index: git/stdio-common/tstdiomisc.c
14562=================================================================== 14639===================================================================
14563--- git.orig/stdio-common/tstdiomisc.c 2014-08-29 20:00:53.584070587 -0700 14640--- git.orig/stdio-common/tstdiomisc.c
14564+++ git/stdio-common/tstdiomisc.c 2014-08-29 20:01:15.232070587 -0700 14641+++ git/stdio-common/tstdiomisc.c
14565@@ -3,6 +3,7 @@ 14642@@ -4,6 +4,7 @@
14566 #include <stdio.h>
14567 #include <string.h> 14643 #include <string.h>
14568 #include <wchar.h> 14644 #include <wchar.h>
14645 #include <libc-internal.h>
14569+#include <gnu/option-groups.h> 14646+#include <gnu/option-groups.h>
14570 14647
14571 static int 14648 static int
14572 t1 (void) 14649 t1 (void)
14573@@ -125,6 +126,7 @@ 14650@@ -134,6 +135,7 @@ F (void)
14574 printf ("expected \"-inf -INF -inf -INF -inf -INF -inf -INF\", got \"%s\"\n", 14651 printf ("expected \"-inf -INF -inf -INF -inf -INF -inf -INF\", got \"%s\"\n",
14575 buf); 14652 buf);
14576 14653
@@ -14578,7 +14655,7 @@ Index: git/stdio-common/tstdiomisc.c
14578 swprintf (wbuf, sizeof wbuf / sizeof (wbuf[0]), L"%a %A %e %E %f %F %g %G", 14655 swprintf (wbuf, sizeof wbuf / sizeof (wbuf[0]), L"%a %A %e %E %f %F %g %G",
14579 qnanval, qnanval, qnanval, qnanval, 14656 qnanval, qnanval, qnanval, qnanval,
14580 qnanval, qnanval, qnanval, qnanval); 14657 qnanval, qnanval, qnanval, qnanval);
14581@@ -162,6 +164,7 @@ 14658@@ -171,6 +173,7 @@ F (void)
14582 result |= wcscmp (wbuf, L"-inf -INF -inf -INF -inf -INF -inf -INF") != 0; 14659 result |= wcscmp (wbuf, L"-inf -INF -inf -INF -inf -INF -inf -INF") != 0;
14583 printf ("expected L\"-inf -INF -inf -INF -inf -INF -inf -INF\", got L\"%S\"\n", 14660 printf ("expected L\"-inf -INF -inf -INF -inf -INF -inf -INF\", got L\"%S\"\n",
14584 wbuf); 14661 wbuf);
@@ -14586,7 +14663,7 @@ Index: git/stdio-common/tstdiomisc.c
14586 14663
14587 lqnanval = NAN; 14664 lqnanval = NAN;
14588 14665
14589@@ -206,6 +209,7 @@ 14666@@ -215,6 +218,7 @@ F (void)
14590 printf ("expected \"-inf -INF -inf -INF -inf -INF -inf -INF\", got \"%s\"\n", 14667 printf ("expected \"-inf -INF -inf -INF -inf -INF -inf -INF\", got \"%s\"\n",
14591 buf); 14668 buf);
14592 14669
@@ -14594,7 +14671,7 @@ Index: git/stdio-common/tstdiomisc.c
14594 swprintf (wbuf, sizeof wbuf / sizeof (wbuf[0]), 14671 swprintf (wbuf, sizeof wbuf / sizeof (wbuf[0]),
14595 L"%La %LA %Le %LE %Lf %LF %Lg %LG", 14672 L"%La %LA %Le %LE %Lf %LF %Lg %LG",
14596 lqnanval, lqnanval, lqnanval, lqnanval, 14673 lqnanval, lqnanval, lqnanval, lqnanval,
14597@@ -250,6 +254,7 @@ 14674@@ -259,6 +263,7 @@ F (void)
14598 result |= wcscmp (wbuf, L"-inf -INF -inf -INF -inf -INF -inf -INF") != 0; 14675 result |= wcscmp (wbuf, L"-inf -INF -inf -INF -inf -INF -inf -INF") != 0;
14599 printf ("expected L\"-inf -INF -inf -INF -inf -INF -inf -INF\", got L\"%S\"\n", 14676 printf ("expected L\"-inf -INF -inf -INF -inf -INF -inf -INF\", got L\"%S\"\n",
14600 wbuf); 14677 wbuf);
@@ -14604,8 +14681,8 @@ Index: git/stdio-common/tstdiomisc.c
14604 } 14681 }
14605Index: git/stdio-common/tst-popen.c 14682Index: git/stdio-common/tst-popen.c
14606=================================================================== 14683===================================================================
14607--- git.orig/stdio-common/tst-popen.c 2014-08-29 20:00:53.576070587 -0700 14684--- git.orig/stdio-common/tst-popen.c
14608+++ git/stdio-common/tst-popen.c 2014-08-29 20:01:15.232070587 -0700 14685+++ git/stdio-common/tst-popen.c
14609@@ -19,6 +19,7 @@ 14686@@ -19,6 +19,7 @@
14610 #include <stdio.h> 14687 #include <stdio.h>
14611 #include <string.h> 14688 #include <string.h>
@@ -14614,7 +14691,7 @@ Index: git/stdio-common/tst-popen.c
14614 14691
14615 static int 14692 static int
14616 do_test (void) 14693 do_test (void)
14617@@ -34,12 +35,14 @@ 14694@@ -34,12 +35,14 @@ do_test (void)
14618 return 1; 14695 return 1;
14619 } 14696 }
14620 14697
@@ -14631,17 +14708,18 @@ Index: git/stdio-common/tst-popen.c
14631 { 14708 {
14632Index: git/stdio-common/tst-sprintf.c 14709Index: git/stdio-common/tst-sprintf.c
14633=================================================================== 14710===================================================================
14634--- git.orig/stdio-common/tst-sprintf.c 2014-08-29 20:00:53.580070587 -0700 14711--- git.orig/stdio-common/tst-sprintf.c
14635+++ git/stdio-common/tst-sprintf.c 2014-08-29 20:01:15.236070587 -0700 14712+++ git/stdio-common/tst-sprintf.c
14636@@ -2,6 +2,7 @@ 14713@@ -3,7 +3,7 @@
14637 #include <stdlib.h>
14638 #include <locale.h> 14714 #include <locale.h>
14639 #include <string.h> 14715 #include <string.h>
14716 #include <libc-internal.h>
14717-
14640+#include <gnu/option-groups.h> 14718+#include <gnu/option-groups.h>
14641 14719
14642 14720 static int
14643 int 14721 do_test (void)
14644@@ -10,12 +11,14 @@ 14722@@ -11,12 +11,14 @@ do_test (void)
14645 char buf[100]; 14723 char buf[100];
14646 int result = 0; 14724 int result = 0;
14647 14725
@@ -14658,8 +14736,8 @@ Index: git/stdio-common/tst-sprintf.c
14658 #define STR(x) #x 14736 #define STR(x) #x
14659Index: git/stdio-common/vfprintf.c 14737Index: git/stdio-common/vfprintf.c
14660=================================================================== 14738===================================================================
14661--- git.orig/stdio-common/vfprintf.c 2014-08-29 20:00:53.588070587 -0700 14739--- git.orig/stdio-common/vfprintf.c
14662+++ git/stdio-common/vfprintf.c 2014-08-29 20:01:15.236070587 -0700 14740+++ git/stdio-common/vfprintf.c
14663@@ -29,6 +29,7 @@ 14741@@ -29,6 +29,7 @@
14664 #include <_itoa.h> 14742 #include <_itoa.h>
14665 #include <locale/localeinfo.h> 14743 #include <locale/localeinfo.h>
@@ -14687,7 +14765,7 @@ Index: git/stdio-common/vfprintf.c
14687 #include "_i18n_number.h" 14765 #include "_i18n_number.h"
14688 14766
14689 /* Include the shared code for parsing the format string. */ 14767 /* Include the shared code for parsing the format string. */
14690@@ -1123,8 +1136,11 @@ 14768@@ -1129,8 +1142,11 @@ vfprintf (FILE *s, const CHAR_T *format,
14691 # define process_string_arg(fspec) \ 14769 # define process_string_arg(fspec) \
14692 LABEL (form_character): \ 14770 LABEL (form_character): \
14693 /* Character. */ \ 14771 /* Character. */ \
@@ -14701,7 +14779,7 @@ Index: git/stdio-common/vfprintf.c
14701 --width; /* Account for the character itself. */ \ 14779 --width; /* Account for the character itself. */ \
14702 if (!left) \ 14780 if (!left) \
14703 PAD (' '); \ 14781 PAD (' '); \
14704@@ -1137,6 +1153,7 @@ 14782@@ -1143,6 +1159,7 @@ vfprintf (FILE *s, const CHAR_T *format,
14705 break; \ 14783 break; \
14706 \ 14784 \
14707 LABEL (form_wcharacter): \ 14785 LABEL (form_wcharacter): \
@@ -14709,7 +14787,7 @@ Index: git/stdio-common/vfprintf.c
14709 { \ 14787 { \
14710 /* Wide character. */ \ 14788 /* Wide character. */ \
14711 char buf[MB_CUR_MAX]; \ 14789 char buf[MB_CUR_MAX]; \
14712@@ -1203,6 +1220,7 @@ 14790@@ -1209,6 +1226,7 @@ vfprintf (FILE *s, const CHAR_T *format,
14713 } \ 14791 } \
14714 else \ 14792 else \
14715 { \ 14793 { \
@@ -14717,7 +14795,7 @@ Index: git/stdio-common/vfprintf.c
14717 const wchar_t *s2 = (const wchar_t *) string; \ 14795 const wchar_t *s2 = (const wchar_t *) string; \
14718 mbstate_t mbstate; \ 14796 mbstate_t mbstate; \
14719 \ 14797 \
14720@@ -1403,7 +1421,9 @@ 14798@@ -1409,7 +1427,9 @@ vfprintf (FILE *s, const CHAR_T *format,
14721 LABEL (flag_quote): 14799 LABEL (flag_quote):
14722 group = 1; 14800 group = 1;
14723 14801
@@ -14728,7 +14806,7 @@ Index: git/stdio-common/vfprintf.c
14728 { 14806 {
14729 #ifdef COMPILE_WPRINTF 14807 #ifdef COMPILE_WPRINTF
14730 thousands_sep = _NL_CURRENT_WORD (LC_NUMERIC, 14808 thousands_sep = _NL_CURRENT_WORD (LC_NUMERIC,
14731@@ -1702,7 +1722,9 @@ 14809@@ -1708,7 +1728,9 @@ do_positional:
14732 free (workstart); 14810 free (workstart);
14733 workstart = NULL; 14811 workstart = NULL;
14734 14812
@@ -14741,8 +14819,8 @@ Index: git/stdio-common/vfprintf.c
14741 thousands_sep = _NL_CURRENT_WORD (LC_NUMERIC, 14819 thousands_sep = _NL_CURRENT_WORD (LC_NUMERIC,
14742Index: git/stdio-common/vfscanf.c 14820Index: git/stdio-common/vfscanf.c
14743=================================================================== 14821===================================================================
14744--- git.orig/stdio-common/vfscanf.c 2014-08-29 20:00:53.588070587 -0700 14822--- git.orig/stdio-common/vfscanf.c
14745+++ git/stdio-common/vfscanf.c 2014-08-29 20:01:15.236070587 -0700 14823+++ git/stdio-common/vfscanf.c
14746@@ -29,6 +29,7 @@ 14824@@ -29,6 +29,7 @@
14747 #include <wctype.h> 14825 #include <wctype.h>
14748 #include <bits/libc-lock.h> 14826 #include <bits/libc-lock.h>
@@ -14764,7 +14842,7 @@ Index: git/stdio-common/vfscanf.c
14764 #define encode_error() do { \ 14842 #define encode_error() do { \
14765 errval = 4; \ 14843 errval = 4; \
14766 __set_errno (EILSEQ); \ 14844 __set_errno (EILSEQ); \
14767@@ -316,24 +323,35 @@ 14845@@ -316,24 +323,35 @@ _IO_vfscanf_internal (_IO_FILE *s, const
14768 ARGCHECK (s, format); 14846 ARGCHECK (s, format);
14769 14847
14770 { 14848 {
@@ -14807,7 +14885,7 @@ Index: git/stdio-common/vfscanf.c
14807 } 14885 }
14808 14886
14809 /* Lock the stream. */ 14887 /* Lock the stream. */
14810@@ -385,6 +403,8 @@ 14888@@ -385,6 +403,8 @@ _IO_vfscanf_internal (_IO_FILE *s, const
14811 #ifndef COMPILE_WSCANF 14889 #ifndef COMPILE_WSCANF
14812 if (!isascii ((unsigned char) *f)) 14890 if (!isascii ((unsigned char) *f))
14813 { 14891 {
@@ -14816,7 +14894,7 @@ Index: git/stdio-common/vfscanf.c
14816 /* Non-ASCII, may be a multibyte. */ 14894 /* Non-ASCII, may be a multibyte. */
14817 int len = __mbrlen (f, strlen (f), &state); 14895 int len = __mbrlen (f, strlen (f), &state);
14818 if (len > 0) 14896 if (len > 0)
14819@@ -830,6 +850,8 @@ 14897@@ -830,6 +850,8 @@ _IO_vfscanf_internal (_IO_FILE *s, const
14820 } 14898 }
14821 /* FALLTHROUGH */ 14899 /* FALLTHROUGH */
14822 case L_('C'): 14900 case L_('C'):
@@ -14825,7 +14903,7 @@ Index: git/stdio-common/vfscanf.c
14825 if (width == -1) 14903 if (width == -1)
14826 width = 1; 14904 width = 1;
14827 14905
14828@@ -1172,6 +1194,8 @@ 14906@@ -1172,6 +1194,8 @@ _IO_vfscanf_internal (_IO_FILE *s, const
14829 /* FALLTHROUGH */ 14907 /* FALLTHROUGH */
14830 14908
14831 case L_('S'): 14909 case L_('S'):
@@ -14834,7 +14912,7 @@ Index: git/stdio-common/vfscanf.c
14834 { 14912 {
14835 #ifndef COMPILE_WSCANF 14913 #ifndef COMPILE_WSCANF
14836 mbstate_t cstate; 14914 mbstate_t cstate;
14837@@ -1419,10 +1443,17 @@ 14915@@ -1419,10 +1443,17 @@ _IO_vfscanf_internal (_IO_FILE *s, const
14838 const char *mbdigits[10]; 14916 const char *mbdigits[10];
14839 const char *mbdigits_extended[10]; 14917 const char *mbdigits_extended[10];
14840 #endif 14918 #endif
@@ -14852,7 +14930,7 @@ Index: git/stdio-common/vfscanf.c
14852 int n; 14930 int n;
14853 14931
14854 from_level = 0; 14932 from_level = 0;
14855@@ -2088,6 +2119,7 @@ 14933@@ -2088,6 +2119,7 @@ _IO_vfscanf_internal (_IO_FILE *s, const
14856 --width; 14934 --width;
14857 } 14935 }
14858 14936
@@ -14860,7 +14938,7 @@ Index: git/stdio-common/vfscanf.c
14860 wctrans_t map; 14938 wctrans_t map;
14861 if (__builtin_expect ((flags & I18N) != 0, 0) 14939 if (__builtin_expect ((flags & I18N) != 0, 0)
14862 /* Hexadecimal floats make no sense, fixing localized 14940 /* Hexadecimal floats make no sense, fixing localized
14863@@ -2304,6 +2336,7 @@ 14941@@ -2304,6 +2336,7 @@ _IO_vfscanf_internal (_IO_FILE *s, const
14864 ; 14942 ;
14865 #endif 14943 #endif
14866 } 14944 }
@@ -14868,7 +14946,7 @@ Index: git/stdio-common/vfscanf.c
14868 14946
14869 /* Have we read any character? If we try to read a number 14947 /* Have we read any character? If we try to read a number
14870 in hexadecimal notation and we have read only the `0x' 14948 in hexadecimal notation and we have read only the `0x'
14871@@ -2343,7 +2376,10 @@ 14949@@ -2343,7 +2376,10 @@ _IO_vfscanf_internal (_IO_FILE *s, const
14872 14950
14873 case L_('['): /* Character class. */ 14951 case L_('['): /* Character class. */
14874 if (flags & LONG) 14952 if (flags & LONG)
@@ -14880,7 +14958,7 @@ Index: git/stdio-common/vfscanf.c
14880 else 14958 else
14881 STRING_ARG (str, char, 100); 14959 STRING_ARG (str, char, 100);
14882 14960
14883@@ -2417,6 +2453,7 @@ 14961@@ -2417,6 +2453,7 @@ _IO_vfscanf_internal (_IO_FILE *s, const
14884 if (flags & LONG) 14962 if (flags & LONG)
14885 { 14963 {
14886 size_t now = read_in; 14964 size_t now = read_in;
@@ -14890,8 +14968,8 @@ Index: git/stdio-common/vfscanf.c
14890 input_error (); 14968 input_error ();
14891Index: git/stdlib/Makefile 14969Index: git/stdlib/Makefile
14892=================================================================== 14970===================================================================
14893--- git.orig/stdlib/Makefile 2014-08-29 20:00:53.588070587 -0700 14971--- git.orig/stdlib/Makefile
14894+++ git/stdlib/Makefile 2014-08-29 20:01:15.236070587 -0700 14972+++ git/stdlib/Makefile
14895@@ -18,6 +18,8 @@ 14973@@ -18,6 +18,8 @@
14896 # 14974 #
14897 # Makefile for stdlib routines 14975 # Makefile for stdlib routines
@@ -14901,7 +14979,7 @@ Index: git/stdlib/Makefile
14901 subdir := stdlib 14979 subdir := stdlib
14902 14980
14903 include ../Makeconfig 14981 include ../Makeconfig
14904@@ -30,7 +32,7 @@ 14982@@ -30,7 +32,7 @@ headers := stdlib.h bits/stdlib.h bits/s
14905 alloca.h fmtmsg.h \ 14983 alloca.h fmtmsg.h \
14906 bits/stdlib-bsearch.h 14984 bits/stdlib-bsearch.h
14907 14985
@@ -14910,7 +14988,7 @@ Index: git/stdlib/Makefile
14910 atof atoi atol atoll \ 14988 atof atoi atol atoll \
14911 abort \ 14989 abort \
14912 bsearch qsort msort \ 14990 bsearch qsort msort \
14913@@ -39,7 +41,6 @@ 14991@@ -39,7 +41,6 @@ routines := \
14914 quick_exit at_quick_exit cxa_at_quick_exit cxa_thread_atexit_impl \ 14992 quick_exit at_quick_exit cxa_at_quick_exit cxa_thread_atexit_impl \
14915 abs labs llabs \ 14993 abs labs llabs \
14916 div ldiv lldiv \ 14994 div ldiv lldiv \
@@ -14918,7 +14996,7 @@ Index: git/stdlib/Makefile
14918 random random_r rand rand_r \ 14996 random random_r rand rand_r \
14919 drand48 erand48 lrand48 nrand48 mrand48 jrand48 \ 14997 drand48 erand48 lrand48 nrand48 mrand48 jrand48 \
14920 srand48 seed48 lcong48 \ 14998 srand48 seed48 lcong48 \
14921@@ -52,9 +53,18 @@ 14999@@ -52,9 +53,18 @@ routines := \
14922 strtof_l strtod_l strtold_l \ 15000 strtof_l strtod_l strtold_l \
14923 system canonicalize \ 15001 system canonicalize \
14924 a64l l64a \ 15002 a64l l64a \
@@ -14939,7 +15017,7 @@ Index: git/stdlib/Makefile
14939 aux = grouping groupingwc tens_in_limb 15017 aux = grouping groupingwc tens_in_limb
14940 15018
14941 # These routines will be omitted from the libc shared object. 15019 # These routines will be omitted from the libc shared object.
14942@@ -62,20 +72,22 @@ 15020@@ -62,20 +72,22 @@ aux = grouping groupingwc tens_in_limb
14943 # linked against when the shared library will be used. 15021 # linked against when the shared library will be used.
14944 static-only-routines = atexit at_quick_exit 15022 static-only-routines = atexit at_quick_exit
14945 15023
@@ -14970,7 +15048,7 @@ Index: git/stdlib/Makefile
14970 modules-names = tst-tls-atexit-lib 15048 modules-names = tst-tls-atexit-lib
14971 15049
14972 ifeq ($(build-shared),yes) 15050 ifeq ($(build-shared),yes)
14973@@ -115,8 +127,10 @@ 15051@@ -115,8 +127,10 @@ CFLAGS-tst-makecontext2.c = $(stack-alig
14974 tests-special += $(objpfx)isomac.out 15052 tests-special += $(objpfx)isomac.out
14975 15053
14976 ifeq ($(run-built-tests),yes) 15054 ifeq ($(run-built-tests),yes)
@@ -14983,8 +15061,8 @@ Index: git/stdlib/Makefile
14983 15061
14984Index: git/stdlib/strtod_l.c 15062Index: git/stdlib/strtod_l.c
14985=================================================================== 15063===================================================================
14986--- git.orig/stdlib/strtod_l.c 2014-08-29 20:00:53.648070587 -0700 15064--- git.orig/stdlib/strtod_l.c
14987+++ git/stdlib/strtod_l.c 2014-08-29 20:01:15.236070587 -0700 15065+++ git/stdlib/strtod_l.c
14988@@ -17,6 +17,7 @@ 15066@@ -17,6 +17,7 @@
14989 License along with the GNU C Library; if not, see 15067 License along with the GNU C Library; if not, see
14990 <http://www.gnu.org/licenses/>. */ 15068 <http://www.gnu.org/licenses/>. */
@@ -14993,7 +15071,7 @@ Index: git/stdlib/strtod_l.c
14993 #include <xlocale.h> 15071 #include <xlocale.h>
14994 15072
14995 extern double ____strtod_l_internal (const char *, char **, int, __locale_t); 15073 extern double ____strtod_l_internal (const char *, char **, int, __locale_t);
14996@@ -548,6 +549,7 @@ 15074@@ -548,6 +549,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group
14997 /* Used in several places. */ 15075 /* Used in several places. */
14998 int cnt; 15076 int cnt;
14999 15077
@@ -15001,7 +15079,7 @@ Index: git/stdlib/strtod_l.c
15001 struct __locale_data *current = loc->__locales[LC_NUMERIC]; 15079 struct __locale_data *current = loc->__locales[LC_NUMERIC];
15002 15080
15003 if (__glibc_unlikely (group)) 15081 if (__glibc_unlikely (group))
15004@@ -586,6 +588,17 @@ 15082@@ -586,6 +588,17 @@ ____STRTOF_INTERNAL (nptr, endptr, group
15005 decimal_len = strlen (decimal); 15083 decimal_len = strlen (decimal);
15006 assert (decimal_len > 0); 15084 assert (decimal_len > 0);
15007 #endif 15085 #endif
@@ -15021,8 +15099,8 @@ Index: git/stdlib/strtod_l.c
15021 exponent = 0; 15099 exponent = 0;
15022Index: git/stdlib/tst-strtod.c 15100Index: git/stdlib/tst-strtod.c
15023=================================================================== 15101===================================================================
15024--- git.orig/stdlib/tst-strtod.c 2014-08-29 20:00:53.700070587 -0700 15102--- git.orig/stdlib/tst-strtod.c
15025+++ git/stdlib/tst-strtod.c 2014-08-29 20:01:15.236070587 -0700 15103+++ git/stdlib/tst-strtod.c
15026@@ -23,6 +23,7 @@ 15104@@ -23,6 +23,7 @@
15027 #include <errno.h> 15105 #include <errno.h>
15028 #include <string.h> 15106 #include <string.h>
@@ -15031,7 +15109,7 @@ Index: git/stdlib/tst-strtod.c
15031 15109
15032 struct ltest 15110 struct ltest
15033 { 15111 {
15034@@ -176,7 +177,9 @@ 15112@@ -176,7 +177,9 @@ main (int argc, char ** argv)
15035 15113
15036 status |= long_dbl (); 15114 status |= long_dbl ();
15037 15115
@@ -15041,7 +15119,7 @@ Index: git/stdlib/tst-strtod.c
15041 15119
15042 return status ? EXIT_FAILURE : EXIT_SUCCESS; 15120 return status ? EXIT_FAILURE : EXIT_SUCCESS;
15043 } 15121 }
15044@@ -219,6 +222,7 @@ 15122@@ -219,6 +222,7 @@ long_dbl (void)
15045 return 0; 15123 return 0;
15046 } 15124 }
15047 15125
@@ -15049,15 +15127,15 @@ Index: git/stdlib/tst-strtod.c
15049 /* Perform a few tests in a locale with thousands separators. */ 15127 /* Perform a few tests in a locale with thousands separators. */
15050 static int 15128 static int
15051 locale_test (void) 15129 locale_test (void)
15052@@ -276,3 +280,4 @@ 15130@@ -276,3 +280,4 @@ locale_test (void)
15053 15131
15054 return result; 15132 return result;
15055 } 15133 }
15056+#endif /* __OPTION_EGLIBC_LOCALE_CODE */ 15134+#endif /* __OPTION_EGLIBC_LOCALE_CODE */
15057Index: git/streams/Makefile 15135Index: git/streams/Makefile
15058=================================================================== 15136===================================================================
15059--- git.orig/streams/Makefile 2014-08-29 20:00:53.712070587 -0700 15137--- git.orig/streams/Makefile
15060+++ git/streams/Makefile 2014-08-29 20:01:15.236070587 -0700 15138+++ git/streams/Makefile
15061@@ -18,11 +18,14 @@ 15139@@ -18,11 +18,14 @@
15062 # 15140 #
15063 # Makefile for streams. 15141 # Makefile for streams.
@@ -15076,8 +15154,8 @@ Index: git/streams/Makefile
15076 include ../Rules 15154 include ../Rules
15077Index: git/string/Makefile 15155Index: git/string/Makefile
15078=================================================================== 15156===================================================================
15079--- git.orig/string/Makefile 2014-08-29 20:00:53.716070587 -0700 15157--- git.orig/string/Makefile
15080+++ git/string/Makefile 2014-08-29 20:01:15.236070587 -0700 15158+++ git/string/Makefile
15081@@ -18,6 +18,8 @@ 15159@@ -18,6 +18,8 @@
15082 # 15160 #
15083 # Sub-makefile for string portion of library. 15161 # Sub-makefile for string portion of library.
@@ -15087,7 +15165,7 @@ Index: git/string/Makefile
15087 subdir := string 15165 subdir := string
15088 15166
15089 include ../Makeconfig 15167 include ../Makeconfig
15090@@ -39,10 +41,12 @@ 15168@@ -39,10 +41,12 @@ routines := strcat strchr strcmp strcoll
15091 $(addprefix argz-,append count create ctsep next \ 15169 $(addprefix argz-,append count create ctsep next \
15092 delete extract insert stringify \ 15170 delete extract insert stringify \
15093 addsep replace) \ 15171 addsep replace) \
@@ -15101,7 +15179,7 @@ Index: git/string/Makefile
15101 strop-tests := memchr memcmp memcpy memmove mempcpy memset memccpy \ 15179 strop-tests := memchr memcmp memcpy memmove mempcpy memset memccpy \
15102 stpcpy stpncpy strcat strchr strcmp strcpy strcspn \ 15180 stpcpy stpncpy strcat strchr strcmp strcpy strcspn \
15103 strlen strncmp strncpy strpbrk strrchr strspn memmem \ 15181 strlen strncmp strncpy strpbrk strrchr strspn memmem \
15104@@ -51,10 +55,12 @@ 15182@@ -51,10 +55,12 @@ strop-tests := memchr memcmp memcpy memm
15105 tests := tester inl-tester noinl-tester testcopy test-ffs \ 15183 tests := tester inl-tester noinl-tester testcopy test-ffs \
15106 tst-strlen stratcliff tst-svc tst-inlcall \ 15184 tst-strlen stratcliff tst-svc tst-inlcall \
15107 bug-strncat1 bug-strspn1 bug-strpbrk1 tst-bswap \ 15185 bug-strncat1 bug-strspn1 bug-strpbrk1 tst-bswap \
@@ -15119,17 +15197,17 @@ Index: git/string/Makefile
15119 15197
15120Index: git/string/strcoll_l.c 15198Index: git/string/strcoll_l.c
15121=================================================================== 15199===================================================================
15122--- git.orig/string/strcoll_l.c 2014-08-29 20:00:53.744070587 -0700 15200--- git.orig/string/strcoll_l.c
15123+++ git/string/strcoll_l.c 2014-08-29 20:01:15.240070587 -0700 15201+++ git/string/strcoll_l.c
15124@@ -25,6 +25,7 @@ 15202@@ -24,6 +24,7 @@
15125 #include <stdlib.h> 15203 #include <stdint.h>
15126 #include <string.h> 15204 #include <string.h>
15127 #include <sys/param.h> 15205 #include <sys/param.h>
15128+#include <gnu/option-groups.h> 15206+#include <gnu/option-groups.h>
15129 15207
15130 #ifndef STRING_TYPE 15208 #ifndef STRING_TYPE
15131 # define STRING_TYPE char 15209 # define STRING_TYPE char
15132@@ -472,7 +473,11 @@ 15210@@ -247,7 +248,11 @@ int
15133 STRCOLL (const STRING_TYPE *s1, const STRING_TYPE *s2, __locale_t l) 15211 STRCOLL (const STRING_TYPE *s1, const STRING_TYPE *s2, __locale_t l)
15134 { 15212 {
15135 struct __locale_data *current = l->__locales[LC_COLLATE]; 15213 struct __locale_data *current = l->__locales[LC_COLLATE];
@@ -15143,8 +15221,8 @@ Index: git/string/strcoll_l.c
15143 const unsigned char *rulesets; 15221 const unsigned char *rulesets;
15144Index: git/string/strerror_l.c 15222Index: git/string/strerror_l.c
15145=================================================================== 15223===================================================================
15146--- git.orig/string/strerror_l.c 2014-08-29 20:00:53.744070587 -0700 15224--- git.orig/string/strerror_l.c
15147+++ git/string/strerror_l.c 2014-08-29 20:01:15.240070587 -0700 15225+++ git/string/strerror_l.c
15148@@ -21,6 +21,7 @@ 15226@@ -21,6 +21,7 @@
15149 #include <stdlib.h> 15227 #include <stdlib.h>
15150 #include <string.h> 15228 #include <string.h>
@@ -15153,7 +15231,7 @@ Index: git/string/strerror_l.c
15153 15231
15154 15232
15155 static __thread char *last_value; 15233 static __thread char *last_value;
15156@@ -29,10 +30,14 @@ 15234@@ -29,10 +30,14 @@ static __thread char *last_value;
15157 static const char * 15235 static const char *
15158 translate (const char *str, locale_t loc) 15236 translate (const char *str, locale_t loc)
15159 { 15237 {
@@ -15170,8 +15248,8 @@ Index: git/string/strerror_l.c
15170 15248
15171Index: git/string/strxfrm_l.c 15249Index: git/string/strxfrm_l.c
15172=================================================================== 15250===================================================================
15173--- git.orig/string/strxfrm_l.c 2014-08-29 20:00:53.748070587 -0700 15251--- git.orig/string/strxfrm_l.c
15174+++ git/string/strxfrm_l.c 2014-08-29 20:01:15.240070587 -0700 15252+++ git/string/strxfrm_l.c
15175@@ -24,6 +24,7 @@ 15253@@ -24,6 +24,7 @@
15176 #include <stdlib.h> 15254 #include <stdlib.h>
15177 #include <string.h> 15255 #include <string.h>
@@ -15180,23 +15258,23 @@ Index: git/string/strxfrm_l.c
15180 15258
15181 #ifndef STRING_TYPE 15259 #ifndef STRING_TYPE
15182 # define STRING_TYPE char 15260 # define STRING_TYPE char
15183@@ -85,7 +86,11 @@ 15261@@ -670,7 +671,11 @@ STRXFRM (STRING_TYPE *dest, const STRING
15184 STRXFRM (STRING_TYPE *dest, const STRING_TYPE *src, size_t n, __locale_t l)
15185 { 15262 {
15263 locale_data_t l_data;
15186 struct __locale_data *current = l->__locales[LC_COLLATE]; 15264 struct __locale_data *current = l->__locales[LC_COLLATE];
15187+#if __OPTION_EGLIBC_LOCALE_CODE 15265+#if __OPTION_EGLIBC_LOCALE_CODE
15188 uint_fast32_t nrules = current->values[_NL_ITEM_INDEX (_NL_COLLATE_NRULES)].word; 15266 l_data.nrules = current->values[_NL_ITEM_INDEX (_NL_COLLATE_NRULES)].word;
15189+#else 15267+#else
15190+ const uint_fast32_t nrules = 0; 15268+ l_data.nrules = 0;
15191+#endif 15269+#endif
15192 /* We don't assign the following values right away since it might be 15270
15193 unnecessary in case there are no rules. */ 15271 /* Handle byte comparison case. */
15194 const unsigned char *rulesets; 15272 if (l_data.nrules == 0)
15195Index: git/string/test-strcmp.c 15273Index: git/string/test-strcmp.c
15196=================================================================== 15274===================================================================
15197--- git.orig/string/test-strcmp.c 2014-08-29 20:00:53.752070587 -0700 15275--- git.orig/string/test-strcmp.c
15198+++ git/string/test-strcmp.c 2014-08-29 20:01:15.240070587 -0700 15276+++ git/string/test-strcmp.c
15199@@ -329,34 +329,6 @@ 15277@@ -329,34 +329,6 @@ check (void)
15200 FOR_EACH_IMPL (impl, 0) 15278 FOR_EACH_IMPL (impl, 0)
15201 check_result (impl, s1 + i1, s2 + i2, exp_result); 15279 check_result (impl, s1 + i1, s2 + i2, exp_result);
15202 } 15280 }
@@ -15233,8 +15311,8 @@ Index: git/string/test-strcmp.c
15233 15311
15234Index: git/string/tst-strxfrm2.c 15312Index: git/string/tst-strxfrm2.c
15235=================================================================== 15313===================================================================
15236--- git.orig/string/tst-strxfrm2.c 2014-08-29 20:00:53.756070587 -0700 15314--- git.orig/string/tst-strxfrm2.c
15237+++ git/string/tst-strxfrm2.c 2014-08-29 20:01:15.240070587 -0700 15315+++ git/string/tst-strxfrm2.c
15238@@ -1,6 +1,7 @@ 15316@@ -1,6 +1,7 @@
15239 #include <locale.h> 15317 #include <locale.h>
15240 #include <stdio.h> 15318 #include <stdio.h>
@@ -15243,7 +15321,7 @@ Index: git/string/tst-strxfrm2.c
15243 15321
15244 static int 15322 static int
15245 do_test (void) 15323 do_test (void)
15246@@ -38,6 +39,7 @@ 15324@@ -38,6 +39,7 @@ do_test (void)
15247 res = 1; 15325 res = 1;
15248 } 15326 }
15249 15327
@@ -15251,7 +15329,7 @@ Index: git/string/tst-strxfrm2.c
15251 if (setlocale (LC_ALL, "de_DE.UTF-8") == NULL) 15329 if (setlocale (LC_ALL, "de_DE.UTF-8") == NULL)
15252 { 15330 {
15253 puts ("setlocale failed"); 15331 puts ("setlocale failed");
15254@@ -75,6 +77,7 @@ 15332@@ -75,6 +77,7 @@ do_test (void)
15255 res = 1; 15333 res = 1;
15256 } 15334 }
15257 } 15335 }
@@ -15261,8 +15339,8 @@ Index: git/string/tst-strxfrm2.c
15261 } 15339 }
15262Index: git/string/tst-strxfrm.c 15340Index: git/string/tst-strxfrm.c
15263=================================================================== 15341===================================================================
15264--- git.orig/string/tst-strxfrm.c 2014-08-29 20:00:53.756070587 -0700 15342--- git.orig/string/tst-strxfrm.c
15265+++ git/string/tst-strxfrm.c 2014-08-29 20:01:15.240070587 -0700 15343+++ git/string/tst-strxfrm.c
15266@@ -3,6 +3,7 @@ 15344@@ -3,6 +3,7 @@
15267 #include <stdio.h> 15345 #include <stdio.h>
15268 #include <stdlib.h> 15346 #include <stdlib.h>
@@ -15271,7 +15349,7 @@ Index: git/string/tst-strxfrm.c
15271 15349
15272 15350
15273 char const string[] = ""; 15351 char const string[] = "";
15274@@ -64,8 +65,10 @@ 15352@@ -64,8 +65,10 @@ do_test (void)
15275 int result = 0; 15353 int result = 0;
15276 15354
15277 result |= test ("C"); 15355 result |= test ("C");
@@ -15284,8 +15362,8 @@ Index: git/string/tst-strxfrm.c
15284 } 15362 }
15285Index: git/sunrpc/Makefile 15363Index: git/sunrpc/Makefile
15286=================================================================== 15364===================================================================
15287--- git.orig/sunrpc/Makefile 2014-08-29 20:00:53.760070587 -0700 15365--- git.orig/sunrpc/Makefile
15288+++ git/sunrpc/Makefile 2014-08-29 20:01:15.240070587 -0700 15366+++ git/sunrpc/Makefile
15289@@ -18,6 +18,8 @@ 15367@@ -18,6 +18,8 @@
15290 # 15368 #
15291 # Sub-makefile for sunrpc portion of the library. 15369 # Sub-makefile for sunrpc portion of the library.
@@ -15295,7 +15373,7 @@ Index: git/sunrpc/Makefile
15295 subdir := sunrpc 15373 subdir := sunrpc
15296 15374
15297 include ../Makeconfig 15375 include ../Makeconfig
15298@@ -55,7 +57,6 @@ 15376@@ -55,7 +57,6 @@ headers-in-tirpc = $(addprefix rpc/,auth
15299 headers-not-in-tirpc = $(addprefix rpc/,key_prot.h rpc_des.h) \ 15377 headers-not-in-tirpc = $(addprefix rpc/,key_prot.h rpc_des.h) \
15300 $(rpcsvc:%=rpcsvc/%) rpcsvc/bootparam.h 15378 $(rpcsvc:%=rpcsvc/%) rpcsvc/bootparam.h
15301 headers = rpc/netdb.h 15379 headers = rpc/netdb.h
@@ -15303,7 +15381,7 @@ Index: git/sunrpc/Makefile
15303 generated += $(rpcsvc:%.x=rpcsvc/%.h) $(rpcsvc:%.x=x%.c) $(rpcsvc:%.x=x%.stmp) \ 15381 generated += $(rpcsvc:%.x=rpcsvc/%.h) $(rpcsvc:%.x=x%.c) $(rpcsvc:%.x=x%.stmp) \
15304 $(rpcsvc:%.x=rpcsvc/%.stmp) rpcgen 15382 $(rpcsvc:%.x=rpcsvc/%.stmp) rpcgen
15305 generated-dirs += rpcsvc 15383 generated-dirs += rpcsvc
15306@@ -65,18 +66,28 @@ 15384@@ -65,18 +66,28 @@ headers += $(headers-in-tirpc) $(headers
15307 endif 15385 endif
15308 15386
15309 ifeq ($(build-shared),yes) 15387 ifeq ($(build-shared),yes)
@@ -15337,7 +15415,7 @@ Index: git/sunrpc/Makefile
15337 ifneq ($(link-obsolete-rpc),yes) 15415 ifneq ($(link-obsolete-rpc),yes)
15338 # We only add the RPC for compatibility to libc.so. 15416 # We only add the RPC for compatibility to libc.so.
15339 shared-only-routines = $(routines) 15417 shared-only-routines = $(routines)
15340@@ -85,25 +96,28 @@ 15418@@ -85,25 +96,28 @@ endif
15341 15419
15342 # We do not build rpcinfo anymore. It is not needed for a bootstrap 15420 # We do not build rpcinfo anymore. It is not needed for a bootstrap
15343 # and not wanted on complete systems. 15421 # and not wanted on complete systems.
@@ -15378,9 +15456,9 @@ Index: git/sunrpc/Makefile
15378 omit-deps = $(librpcsvc-routines) 15456 omit-deps = $(librpcsvc-routines)
15379Index: git/sysdeps/generic/ldsodefs.h 15457Index: git/sysdeps/generic/ldsodefs.h
15380=================================================================== 15458===================================================================
15381--- git.orig/sysdeps/generic/ldsodefs.h 2014-08-29 20:00:53.904070587 -0700 15459--- git.orig/sysdeps/generic/ldsodefs.h
15382+++ git/sysdeps/generic/ldsodefs.h 2014-08-29 20:01:15.240070587 -0700 15460+++ git/sysdeps/generic/ldsodefs.h
15383@@ -425,6 +425,12 @@ 15461@@ -425,6 +425,12 @@ extern struct rtld_global _rtld_global _
15384 # undef __rtld_global_attribute__ 15462 # undef __rtld_global_attribute__
15385 #endif 15463 #endif
15386 15464
@@ -15393,7 +15471,7 @@ Index: git/sysdeps/generic/ldsodefs.h
15393 #ifndef SHARED 15471 #ifndef SHARED
15394 # define GLRO(name) _##name 15472 # define GLRO(name) _##name
15395 #else 15473 #else
15396@@ -437,8 +443,10 @@ 15474@@ -437,8 +443,10 @@ struct rtld_global_ro
15397 { 15475 {
15398 #endif 15476 #endif
15399 15477
@@ -15406,9 +15484,9 @@ Index: git/sysdeps/generic/ldsodefs.h
15406 #define DL_DEBUG_BINDINGS (1 << 2) 15484 #define DL_DEBUG_BINDINGS (1 << 2)
15407Index: git/sysdeps/gnu/Makefile 15485Index: git/sysdeps/gnu/Makefile
15408=================================================================== 15486===================================================================
15409--- git.orig/sysdeps/gnu/Makefile 2014-08-29 20:00:53.924070587 -0700 15487--- git.orig/sysdeps/gnu/Makefile
15410+++ git/sysdeps/gnu/Makefile 2014-08-29 20:01:15.240070587 -0700 15488+++ git/sysdeps/gnu/Makefile
15411@@ -57,7 +57,8 @@ 15489@@ -59,7 +59,8 @@ $(foreach o,$(object-suffixes) $(object-
15412 endif 15490 endif
15413 15491
15414 ifeq ($(subdir),login) 15492 ifeq ($(subdir),login)
@@ -15420,9 +15498,9 @@ Index: git/sysdeps/gnu/Makefile
15420 sysdep_headers += utmpx.h bits/utmpx.h 15498 sysdep_headers += utmpx.h bits/utmpx.h
15421Index: git/sysdeps/ieee754/ldbl-opt/Makefile 15499Index: git/sysdeps/ieee754/ldbl-opt/Makefile
15422=================================================================== 15500===================================================================
15423--- git.orig/sysdeps/ieee754/ldbl-opt/Makefile 2014-08-29 20:00:54.452070587 -0700 15501--- git.orig/sysdeps/ieee754/ldbl-opt/Makefile
15424+++ git/sysdeps/ieee754/ldbl-opt/Makefile 2014-08-29 20:01:15.244070587 -0700 15502+++ git/sysdeps/ieee754/ldbl-opt/Makefile
15425@@ -11,19 +11,18 @@ 15503@@ -11,19 +11,18 @@ libm-routines += s_nexttowardfd
15426 routines += math_ldbl_opt nldbl-compat 15504 routines += math_ldbl_opt nldbl-compat
15427 15505
15428 extra-libs += libnldbl 15506 extra-libs += libnldbl
@@ -15451,7 +15529,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/Makefile
15451 strtold strtold_l strtoldint wcstold wcstold_l wcstoldint \ 15529 strtold strtold_l strtoldint wcstold wcstold_l wcstoldint \
15452 qecvt qfcvt qgcvt qecvt_r qfcvt_r \ 15530 qecvt qfcvt qgcvt qecvt_r qfcvt_r \
15453 isinf isnan finite signbit scalb log2 lgamma_r ceil \ 15531 isinf isnan finite signbit scalb log2 lgamma_r ceil \
15454@@ -38,9 +37,15 @@ 15532@@ -38,9 +37,15 @@ libnldbl-calls = asprintf dprintf fprint
15455 casinh cexp clog cproj csin csinh csqrt ctan ctanh cpow \ 15533 casinh cexp clog cproj csin csinh csqrt ctan ctanh cpow \
15456 cabs carg cimag creal clog10 \ 15534 cabs carg cimag creal clog10 \
15457 isoc99_scanf isoc99_fscanf isoc99_sscanf \ 15535 isoc99_scanf isoc99_fscanf isoc99_sscanf \
@@ -15470,8 +15548,8 @@ Index: git/sysdeps/ieee754/ldbl-opt/Makefile
15470 libnldbl-static-only-routines = $(libnldbl-routines) 15548 libnldbl-static-only-routines = $(libnldbl-routines)
15471Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c 15549Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
15472=================================================================== 15550===================================================================
15473--- git.orig/sysdeps/ieee754/ldbl-opt/nldbl-compat.c 2014-08-29 20:00:54.468070587 -0700 15551--- git.orig/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
15474+++ git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c 2014-08-29 20:01:15.244070587 -0700 15552+++ git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
15475@@ -26,6 +26,7 @@ 15553@@ -26,6 +26,7 @@
15476 #include <locale/localeinfo.h> 15554 #include <locale/localeinfo.h>
15477 #include <sys/syslog.h> 15555 #include <sys/syslog.h>
@@ -15480,7 +15558,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
15480 15558
15481 #include "nldbl-compat.h" 15559 #include "nldbl-compat.h"
15482 15560
15483@@ -33,20 +34,14 @@ 15561@@ -33,20 +34,14 @@ libc_hidden_proto (__nldbl_vfprintf)
15484 libc_hidden_proto (__nldbl_vsscanf) 15562 libc_hidden_proto (__nldbl_vsscanf)
15485 libc_hidden_proto (__nldbl_vsprintf) 15563 libc_hidden_proto (__nldbl_vsprintf)
15486 libc_hidden_proto (__nldbl_vfscanf) 15564 libc_hidden_proto (__nldbl_vfscanf)
@@ -15501,7 +15579,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
15501 libc_hidden_proto (__nldbl___vasprintf_chk) 15579 libc_hidden_proto (__nldbl___vasprintf_chk)
15502 libc_hidden_proto (__nldbl___vdprintf_chk) 15580 libc_hidden_proto (__nldbl___vdprintf_chk)
15503 libc_hidden_proto (__nldbl___obstack_vprintf_chk) 15581 libc_hidden_proto (__nldbl___obstack_vprintf_chk)
15504@@ -54,8 +49,17 @@ 15582@@ -54,8 +49,17 @@ libc_hidden_proto (__nldbl___vstrfmon)
15505 libc_hidden_proto (__nldbl___vstrfmon_l) 15583 libc_hidden_proto (__nldbl___vstrfmon_l)
15506 libc_hidden_proto (__nldbl___isoc99_vsscanf) 15584 libc_hidden_proto (__nldbl___isoc99_vsscanf)
15507 libc_hidden_proto (__nldbl___isoc99_vfscanf) 15585 libc_hidden_proto (__nldbl___isoc99_vfscanf)
@@ -15519,7 +15597,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
15519 15597
15520 static void 15598 static void
15521 __nldbl_cleanup (void *arg) 15599 __nldbl_cleanup (void *arg)
15522@@ -117,6 +121,7 @@ 15600@@ -117,6 +121,7 @@ __nldbl_fprintf (FILE *stream, const cha
15523 } 15601 }
15524 weak_alias (__nldbl_fprintf, __nldbl__IO_fprintf) 15602 weak_alias (__nldbl_fprintf, __nldbl__IO_fprintf)
15525 15603
@@ -15527,7 +15605,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
15527 int 15605 int
15528 attribute_compat_text_section weak_function 15606 attribute_compat_text_section weak_function
15529 __nldbl_fwprintf (FILE *stream, const wchar_t *fmt, ...) 15607 __nldbl_fwprintf (FILE *stream, const wchar_t *fmt, ...)
15530@@ -130,6 +135,7 @@ 15608@@ -130,6 +135,7 @@ __nldbl_fwprintf (FILE *stream, const wc
15531 15609
15532 return done; 15610 return done;
15533 } 15611 }
@@ -15535,7 +15613,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
15535 15613
15536 int 15614 int
15537 attribute_compat_text_section 15615 attribute_compat_text_section
15538@@ -226,6 +232,7 @@ 15616@@ -226,6 +232,7 @@ __nldbl_snprintf (char *s, size_t maxlen
15539 return done; 15617 return done;
15540 } 15618 }
15541 15619
@@ -15543,7 +15621,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
15543 int 15621 int
15544 attribute_compat_text_section 15622 attribute_compat_text_section
15545 __nldbl_swprintf (wchar_t *s, size_t n, const wchar_t *fmt, ...) 15623 __nldbl_swprintf (wchar_t *s, size_t n, const wchar_t *fmt, ...)
15546@@ -239,6 +246,7 @@ 15624@@ -239,6 +246,7 @@ __nldbl_swprintf (wchar_t *s, size_t n,
15547 15625
15548 return done; 15626 return done;
15549 } 15627 }
@@ -15551,7 +15629,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
15551 15629
15552 int 15630 int
15553 attribute_compat_text_section weak_function 15631 attribute_compat_text_section weak_function
15554@@ -264,6 +272,7 @@ 15632@@ -264,6 +272,7 @@ __nldbl_vdprintf (int d, const char *fmt
15555 } 15633 }
15556 libc_hidden_def (__nldbl_vdprintf) 15634 libc_hidden_def (__nldbl_vdprintf)
15557 15635
@@ -15559,7 +15637,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
15559 int 15637 int
15560 attribute_compat_text_section weak_function 15638 attribute_compat_text_section weak_function
15561 __nldbl_vfwprintf (FILE *s, const wchar_t *fmt, va_list ap) 15639 __nldbl_vfwprintf (FILE *s, const wchar_t *fmt, va_list ap)
15562@@ -275,6 +284,7 @@ 15640@@ -275,6 +284,7 @@ __nldbl_vfwprintf (FILE *s, const wchar_
15563 return res; 15641 return res;
15564 } 15642 }
15565 libc_hidden_def (__nldbl_vfwprintf) 15643 libc_hidden_def (__nldbl_vfwprintf)
@@ -15567,7 +15645,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
15567 15645
15568 int 15646 int
15569 attribute_compat_text_section 15647 attribute_compat_text_section
15570@@ -297,6 +307,7 @@ 15648@@ -297,6 +307,7 @@ __nldbl_vsnprintf (char *string, size_t
15571 libc_hidden_def (__nldbl_vsnprintf) 15649 libc_hidden_def (__nldbl_vsnprintf)
15572 weak_alias (__nldbl_vsnprintf, __nldbl___vsnprintf) 15650 weak_alias (__nldbl_vsnprintf, __nldbl___vsnprintf)
15573 15651
@@ -15575,7 +15653,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
15575 int 15653 int
15576 attribute_compat_text_section weak_function 15654 attribute_compat_text_section weak_function
15577 __nldbl_vswprintf (wchar_t *string, size_t maxlen, const wchar_t *fmt, 15655 __nldbl_vswprintf (wchar_t *string, size_t maxlen, const wchar_t *fmt,
15578@@ -330,6 +341,7 @@ 15656@@ -330,6 +341,7 @@ __nldbl_wprintf (const wchar_t *fmt, ...
15579 15657
15580 return done; 15658 return done;
15581 } 15659 }
@@ -15583,7 +15661,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
15583 15661
15584 int 15662 int
15585 attribute_compat_text_section 15663 attribute_compat_text_section
15586@@ -419,6 +431,7 @@ 15664@@ -419,6 +431,7 @@ __nldbl_scanf (const char *fmt, ...)
15587 return done; 15665 return done;
15588 } 15666 }
15589 15667
@@ -15591,7 +15669,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
15591 int 15669 int
15592 attribute_compat_text_section 15670 attribute_compat_text_section
15593 __nldbl_vfwscanf (FILE *s, const wchar_t *fmt, va_list ap) 15671 __nldbl_vfwscanf (FILE *s, const wchar_t *fmt, va_list ap)
15594@@ -491,6 +504,7 @@ 15672@@ -491,6 +504,7 @@ __nldbl_wscanf (const wchar_t *fmt, ...)
15595 15673
15596 return done; 15674 return done;
15597 } 15675 }
@@ -15599,7 +15677,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
15599 15677
15600 int 15678 int
15601 attribute_compat_text_section 15679 attribute_compat_text_section
15602@@ -506,6 +520,7 @@ 15680@@ -506,6 +520,7 @@ __nldbl___fprintf_chk (FILE *stream, int
15603 return done; 15681 return done;
15604 } 15682 }
15605 15683
@@ -15607,7 +15685,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
15607 int 15685 int
15608 attribute_compat_text_section 15686 attribute_compat_text_section
15609 __nldbl___fwprintf_chk (FILE *stream, int flag, const wchar_t *fmt, ...) 15687 __nldbl___fwprintf_chk (FILE *stream, int flag, const wchar_t *fmt, ...)
15610@@ -519,6 +534,7 @@ 15688@@ -519,6 +534,7 @@ __nldbl___fwprintf_chk (FILE *stream, in
15611 15689
15612 return done; 15690 return done;
15613 } 15691 }
@@ -15615,7 +15693,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
15615 15693
15616 int 15694 int
15617 attribute_compat_text_section 15695 attribute_compat_text_section
15618@@ -563,6 +579,7 @@ 15696@@ -563,6 +579,7 @@ __nldbl___sprintf_chk (char *s, int flag
15619 return done; 15697 return done;
15620 } 15698 }
15621 15699
@@ -15623,7 +15701,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
15623 int 15701 int
15624 attribute_compat_text_section 15702 attribute_compat_text_section
15625 __nldbl___swprintf_chk (wchar_t *s, size_t n, int flag, size_t slen, 15703 __nldbl___swprintf_chk (wchar_t *s, size_t n, int flag, size_t slen,
15626@@ -577,6 +594,7 @@ 15704@@ -577,6 +594,7 @@ __nldbl___swprintf_chk (wchar_t *s, size
15627 15705
15628 return done; 15706 return done;
15629 } 15707 }
@@ -15631,7 +15709,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
15631 15709
15632 int 15710 int
15633 attribute_compat_text_section 15711 attribute_compat_text_section
15634@@ -590,6 +608,7 @@ 15712@@ -590,6 +608,7 @@ __nldbl___vfprintf_chk (FILE *s, int fla
15635 } 15713 }
15636 libc_hidden_def (__nldbl___vfprintf_chk) 15714 libc_hidden_def (__nldbl___vfprintf_chk)
15637 15715
@@ -15639,7 +15717,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
15639 int 15717 int
15640 attribute_compat_text_section 15718 attribute_compat_text_section
15641 __nldbl___vfwprintf_chk (FILE *s, int flag, const wchar_t *fmt, va_list ap) 15719 __nldbl___vfwprintf_chk (FILE *s, int flag, const wchar_t *fmt, va_list ap)
15642@@ -601,6 +620,7 @@ 15720@@ -601,6 +620,7 @@ __nldbl___vfwprintf_chk (FILE *s, int fl
15643 return res; 15721 return res;
15644 } 15722 }
15645 libc_hidden_def (__nldbl___vfwprintf_chk) 15723 libc_hidden_def (__nldbl___vfwprintf_chk)
@@ -15647,7 +15725,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
15647 15725
15648 int 15726 int
15649 attribute_compat_text_section 15727 attribute_compat_text_section
15650@@ -635,6 +655,7 @@ 15728@@ -635,6 +655,7 @@ __nldbl___vsprintf_chk (char *string, in
15651 } 15729 }
15652 libc_hidden_def (__nldbl___vsprintf_chk) 15730 libc_hidden_def (__nldbl___vsprintf_chk)
15653 15731
@@ -15655,7 +15733,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
15655 int 15733 int
15656 attribute_compat_text_section 15734 attribute_compat_text_section
15657 __nldbl___vswprintf_chk (wchar_t *string, size_t maxlen, int flag, size_t slen, 15735 __nldbl___vswprintf_chk (wchar_t *string, size_t maxlen, int flag, size_t slen,
15658@@ -668,6 +689,7 @@ 15736@@ -668,6 +689,7 @@ __nldbl___wprintf_chk (int flag, const w
15659 15737
15660 return done; 15738 return done;
15661 } 15739 }
@@ -15663,7 +15741,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
15663 15741
15664 int 15742 int
15665 attribute_compat_text_section 15743 attribute_compat_text_section
15666@@ -775,6 +797,7 @@ 15744@@ -775,6 +797,7 @@ __nldbl___printf_fp (FILE *fp, const str
15667 return ___printf_fp (fp, &info_no_ldbl, args); 15745 return ___printf_fp (fp, &info_no_ldbl, args);
15668 } 15746 }
15669 15747
@@ -15671,7 +15749,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
15671 ssize_t 15749 ssize_t
15672 attribute_compat_text_section 15750 attribute_compat_text_section
15673 __nldbl_strfmon (char *s, size_t maxsize, const char *format, ...) 15751 __nldbl_strfmon (char *s, size_t maxsize, const char *format, ...)
15674@@ -829,6 +852,7 @@ 15752@@ -829,6 +852,7 @@ __nldbl___vstrfmon_l (char *s, size_t ma
15675 return res; 15753 return res;
15676 } 15754 }
15677 libc_hidden_def (__nldbl___vstrfmon_l) 15755 libc_hidden_def (__nldbl___vstrfmon_l)
@@ -15679,7 +15757,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
15679 15757
15680 void 15758 void
15681 attribute_compat_text_section 15759 attribute_compat_text_section
15682@@ -941,6 +965,7 @@ 15760@@ -941,6 +965,7 @@ __nldbl___isoc99_scanf (const char *fmt,
15683 return done; 15761 return done;
15684 } 15762 }
15685 15763
@@ -15687,7 +15765,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
15687 int 15765 int
15688 attribute_compat_text_section 15766 attribute_compat_text_section
15689 __nldbl___isoc99_vfwscanf (FILE *s, const wchar_t *fmt, va_list ap) 15767 __nldbl___isoc99_vfwscanf (FILE *s, const wchar_t *fmt, va_list ap)
15690@@ -1014,6 +1039,7 @@ 15768@@ -1014,6 +1039,7 @@ __nldbl___isoc99_wscanf (const wchar_t *
15691 15769
15692 return done; 15770 return done;
15693 } 15771 }
@@ -15695,7 +15773,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
15695 15773
15696 #if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0) 15774 #if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
15697 compat_symbol (libc, __nldbl__IO_printf, _IO_printf, GLIBC_2_0); 15775 compat_symbol (libc, __nldbl__IO_printf, _IO_printf, GLIBC_2_0);
15698@@ -1057,6 +1083,7 @@ 15776@@ -1057,6 +1083,7 @@ compat_symbol (libc, __nldbl_printf_size
15699 compat_symbol (libc, __nldbl___strfmon_l, __strfmon_l, GLIBC_2_1); 15777 compat_symbol (libc, __nldbl___strfmon_l, __strfmon_l, GLIBC_2_1);
15700 #endif 15778 #endif
15701 #if LONG_DOUBLE_COMPAT(libc, GLIBC_2_2) 15779 #if LONG_DOUBLE_COMPAT(libc, GLIBC_2_2)
@@ -15703,7 +15781,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
15703 compat_symbol (libc, __nldbl_swprintf, swprintf, GLIBC_2_2); 15781 compat_symbol (libc, __nldbl_swprintf, swprintf, GLIBC_2_2);
15704 compat_symbol (libc, __nldbl_vwprintf, vwprintf, GLIBC_2_2); 15782 compat_symbol (libc, __nldbl_vwprintf, vwprintf, GLIBC_2_2);
15705 compat_symbol (libc, __nldbl_wprintf, wprintf, GLIBC_2_2); 15783 compat_symbol (libc, __nldbl_wprintf, wprintf, GLIBC_2_2);
15706@@ -1069,6 +1096,7 @@ 15784@@ -1069,6 +1096,7 @@ compat_symbol (libc, __nldbl_vfwscanf, v
15707 compat_symbol (libc, __nldbl_vswscanf, vswscanf, GLIBC_2_2); 15785 compat_symbol (libc, __nldbl_vswscanf, vswscanf, GLIBC_2_2);
15708 compat_symbol (libc, __nldbl_vwscanf, vwscanf, GLIBC_2_2); 15786 compat_symbol (libc, __nldbl_vwscanf, vwscanf, GLIBC_2_2);
15709 compat_symbol (libc, __nldbl_wscanf, wscanf, GLIBC_2_2); 15787 compat_symbol (libc, __nldbl_wscanf, wscanf, GLIBC_2_2);
@@ -15713,8 +15791,8 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
15713 compat_symbol (libc, __nldbl_strfmon_l, strfmon_l, GLIBC_2_3); 15791 compat_symbol (libc, __nldbl_strfmon_l, strfmon_l, GLIBC_2_3);
15714Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.h 15792Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.h
15715=================================================================== 15793===================================================================
15716--- git.orig/sysdeps/ieee754/ldbl-opt/nldbl-compat.h 2014-08-29 20:00:54.468070587 -0700 15794--- git.orig/sysdeps/ieee754/ldbl-opt/nldbl-compat.h
15717+++ git/sysdeps/ieee754/ldbl-opt/nldbl-compat.h 2014-08-29 20:01:15.244070587 -0700 15795+++ git/sysdeps/ieee754/ldbl-opt/nldbl-compat.h
15718@@ -30,6 +30,7 @@ 15796@@ -30,6 +30,7 @@
15719 #include <math.h> 15797 #include <math.h>
15720 #include <monetary.h> 15798 #include <monetary.h>
@@ -15743,7 +15821,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.h
15743 NLDBL_DECL (__asprintf); 15821 NLDBL_DECL (__asprintf);
15744 NLDBL_DECL (asprintf); 15822 NLDBL_DECL (asprintf);
15745 NLDBL_DECL (__printf_fp); 15823 NLDBL_DECL (__printf_fp);
15746@@ -66,12 +63,18 @@ 15824@@ -66,12 +63,18 @@ NLDBL_DECL (__isoc99_sscanf);
15747 NLDBL_DECL (__isoc99_vscanf); 15825 NLDBL_DECL (__isoc99_vscanf);
15748 NLDBL_DECL (__isoc99_vfscanf); 15826 NLDBL_DECL (__isoc99_vfscanf);
15749 NLDBL_DECL (__isoc99_vsscanf); 15827 NLDBL_DECL (__isoc99_vsscanf);
@@ -15762,7 +15840,7 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.h
15762 15840
15763 /* This one does not exist in the normal interface, only 15841 /* This one does not exist in the normal interface, only
15764 __nldbl___vstrfmon really exists. */ 15842 __nldbl___vstrfmon really exists. */
15765@@ -82,22 +85,23 @@ 15843@@ -82,22 +85,23 @@ extern ssize_t __nldbl___vstrfmon (char
15766 since we don't compile with _FORTIFY_SOURCE. */ 15844 since we don't compile with _FORTIFY_SOURCE. */
15767 extern int __nldbl___vfprintf_chk (FILE *__restrict, int, 15845 extern int __nldbl___vfprintf_chk (FILE *__restrict, int,
15768 const char *__restrict, _G_va_list); 15846 const char *__restrict, _G_va_list);
@@ -15794,8 +15872,8 @@ Index: git/sysdeps/ieee754/ldbl-opt/nldbl-compat.h
15794 #endif /* __NLDBL_COMPAT_H */ 15872 #endif /* __NLDBL_COMPAT_H */
15795Index: git/sysdeps/unix/sysv/linux/gethostid.c 15873Index: git/sysdeps/unix/sysv/linux/gethostid.c
15796=================================================================== 15874===================================================================
15797--- git.orig/sysdeps/unix/sysv/linux/gethostid.c 2014-08-29 20:00:58.840070587 -0700 15875--- git.orig/sysdeps/unix/sysv/linux/gethostid.c
15798+++ git/sysdeps/unix/sysv/linux/gethostid.c 2014-08-29 20:01:15.244070587 -0700 15876+++ git/sysdeps/unix/sysv/linux/gethostid.c
15799@@ -21,6 +21,7 @@ 15877@@ -21,6 +21,7 @@
15800 #include <unistd.h> 15878 #include <unistd.h>
15801 #include <netdb.h> 15879 #include <netdb.h>
@@ -15804,7 +15882,7 @@ Index: git/sysdeps/unix/sysv/linux/gethostid.c
15804 15882
15805 #define HOSTIDFILE "/etc/hostid" 15883 #define HOSTIDFILE "/etc/hostid"
15806 15884
15807@@ -89,6 +90,7 @@ 15885@@ -89,6 +90,7 @@ gethostid (void)
15808 return id; 15886 return id;
15809 } 15887 }
15810 15888
@@ -15812,7 +15890,7 @@ Index: git/sysdeps/unix/sysv/linux/gethostid.c
15812 /* Getting from the file was not successful. An intelligent guess for 15890 /* Getting from the file was not successful. An intelligent guess for
15813 a unique number of a host is its IP address. Return this. */ 15891 a unique number of a host is its IP address. Return this. */
15814 if (__gethostname (hostname, MAXHOSTNAMELEN) < 0 || hostname[0] == '\0') 15892 if (__gethostname (hostname, MAXHOSTNAMELEN) < 0 || hostname[0] == '\0')
15815@@ -115,5 +117,9 @@ 15893@@ -115,5 +117,9 @@ gethostid (void)
15816 /* For the return value to be not exactly the IP address we do some 15894 /* For the return value to be not exactly the IP address we do some
15817 bit fiddling. */ 15895 bit fiddling. */
15818 return (int32_t) (in.s_addr << 16 | in.s_addr >> 16); 15896 return (int32_t) (in.s_addr << 16 | in.s_addr >> 16);
@@ -15824,8 +15902,8 @@ Index: git/sysdeps/unix/sysv/linux/gethostid.c
15824 #endif 15902 #endif
15825Index: git/sysdeps/unix/sysv/linux/libc_fatal.c 15903Index: git/sysdeps/unix/sysv/linux/libc_fatal.c
15826=================================================================== 15904===================================================================
15827--- git.orig/sysdeps/unix/sysv/linux/libc_fatal.c 2014-08-29 20:00:58.980070587 -0700 15905--- git.orig/sysdeps/unix/sysv/linux/libc_fatal.c
15828+++ git/sysdeps/unix/sysv/linux/libc_fatal.c 2014-08-29 20:01:15.244070587 -0700 15906+++ git/sysdeps/unix/sysv/linux/libc_fatal.c
15829@@ -23,6 +23,7 @@ 15907@@ -23,6 +23,7 @@
15830 #include <string.h> 15908 #include <string.h>
15831 #include <sys/mman.h> 15909 #include <sys/mman.h>
@@ -15834,7 +15912,7 @@ Index: git/sysdeps/unix/sysv/linux/libc_fatal.c
15834 15912
15835 static bool 15913 static bool
15836 writev_for_fatal (int fd, const struct iovec *iov, size_t niov, size_t total) 15914 writev_for_fatal (int fd, const struct iovec *iov, size_t niov, size_t total)
15837@@ -40,6 +41,7 @@ 15915@@ -40,6 +41,7 @@ writev_for_fatal (int fd, const struct i
15838 static void 15916 static void
15839 backtrace_and_maps (int do_abort, bool written, int fd) 15917 backtrace_and_maps (int do_abort, bool written, int fd)
15840 { 15918 {
@@ -15842,7 +15920,7 @@ Index: git/sysdeps/unix/sysv/linux/libc_fatal.c
15842 if (do_abort > 1 && written) 15920 if (do_abort > 1 && written)
15843 { 15921 {
15844 void *addrs[64]; 15922 void *addrs[64];
15845@@ -62,6 +64,7 @@ 15923@@ -62,6 +64,7 @@ backtrace_and_maps (int do_abort, bool w
15846 close_not_cancel_no_status (fd2); 15924 close_not_cancel_no_status (fd2);
15847 } 15925 }
15848 } 15926 }
@@ -15852,8 +15930,8 @@ Index: git/sysdeps/unix/sysv/linux/libc_fatal.c
15852 15930
15853Index: git/time/Makefile 15931Index: git/time/Makefile
15854=================================================================== 15932===================================================================
15855--- git.orig/time/Makefile 2014-08-29 20:00:59.504070587 -0700 15933--- git.orig/time/Makefile
15856+++ git/time/Makefile 2014-08-29 20:01:15.244070587 -0700 15934+++ git/time/Makefile
15857@@ -18,6 +18,8 @@ 15935@@ -18,6 +18,8 @@
15858 # 15936 #
15859 # Makefile for time routines 15937 # Makefile for time routines
@@ -15863,7 +15941,7 @@ Index: git/time/Makefile
15863 subdir := time 15941 subdir := time
15864 15942
15865 include ../Makeconfig 15943 include ../Makeconfig
15866@@ -30,14 +32,20 @@ 15944@@ -30,15 +32,23 @@ routines := offtime asctime clock ctime
15867 tzfile getitimer setitimer \ 15945 tzfile getitimer setitimer \
15868 stime dysize timegm ftime \ 15946 stime dysize timegm ftime \
15869 getdate strptime strptime_l \ 15947 getdate strptime strptime_l \
@@ -15871,27 +15949,30 @@ Index: git/time/Makefile
15871+ strftime strftime_l \ 15949+ strftime strftime_l \
15872 timespec_get 15950 timespec_get
15873-aux := era alt_digit lc-time-cleanup 15951-aux := era alt_digit lc-time-cleanup
15874+routines-$(OPTION_POSIX_C_LANG_WIDE_CHAR) \
15875+ := wcsftime wcsftime_l
15876+aux-$(OPTION_EGLIBC_LOCALE_CODE) += alt_digit era lc-time-cleanup
15877 15952
15878-tests := test_time clocktest tst-posixtz tst-strptime tst_wcsftime \ 15953-tests := test_time clocktest tst-posixtz tst-strptime tst_wcsftime \
15879- tst-getdate tst-mktime tst-mktime2 tst-ftime_l tst-strftime \ 15954- tst-getdate tst-mktime tst-mktime2 tst-ftime_l tst-strftime \
15955+routines-$(OPTION_POSIX_C_LANG_WIDE_CHAR) \
15956+ := wcsftime wcsftime_l
15957+aux-$(OPTION_EGLIBC_LOCALE_CODE) += alt_digit era lc-time-cleanup
15958+
15880+tests := test_time clocktest tst-posixtz \ 15959+tests := test_time clocktest tst-posixtz \
15881+ tst-getdate tst-mktime tst-mktime2 tst-strftime \ 15960+ tst-getdate tst-mktime tst-mktime2 tst-strftime \
15882 tst-mktime3 tst-strptime2 bug-asctime bug-asctime_r bug-mktime1 \ 15961 tst-mktime3 tst-strptime2 bug-asctime bug-asctime_r bug-mktime1 \
15883 tst-strptime3 bug-getdate1 tst-strptime-whitespace 15962 tst-strptime3 bug-getdate1 tst-strptime-whitespace tst-ftime
15963
15884+tests-$(OPTION_EGLIBC_LOCALE_CODE) \ 15964+tests-$(OPTION_EGLIBC_LOCALE_CODE) \
15885+ += tst-strptime tst-ftime_l 15965+ += tst-strptime tst-ftime_l
15886+tests-$(OPTION_POSIX_WIDE_CHAR_DEVICE_IO) \ 15966+tests-$(OPTION_POSIX_WIDE_CHAR_DEVICE_IO) \
15887+ += tst_wcsftime 15967+ += tst_wcsftime
15888 15968+
15889 include ../Rules 15969 include ../Rules
15890 15970
15971 tz-cflags = -DTZDIR='"$(zonedir)"' \
15891Index: git/time/strftime_l.c 15972Index: git/time/strftime_l.c
15892=================================================================== 15973===================================================================
15893--- git.orig/time/strftime_l.c 2014-08-29 20:00:59.528070587 -0700 15974--- git.orig/time/strftime_l.c
15894+++ git/time/strftime_l.c 2014-08-29 20:01:15.244070587 -0700 15975+++ git/time/strftime_l.c
15895@@ -35,6 +35,10 @@ 15976@@ -35,6 +35,10 @@
15896 # include "../locale/localeinfo.h" 15977 # include "../locale/localeinfo.h"
15897 #endif 15978 #endif
@@ -15903,7 +15984,7 @@ Index: git/time/strftime_l.c
15903 #if defined emacs && !defined HAVE_BCOPY 15984 #if defined emacs && !defined HAVE_BCOPY
15904 # define HAVE_MEMCPY 1 15985 # define HAVE_MEMCPY 1
15905 #endif 15986 #endif
15906@@ -882,7 +886,7 @@ 15987@@ -882,7 +886,7 @@ __strftime_internal (s, maxsize, format,
15907 case L_('C'): 15988 case L_('C'):
15908 if (modifier == L_('E')) 15989 if (modifier == L_('E'))
15909 { 15990 {
@@ -15912,7 +15993,7 @@ Index: git/time/strftime_l.c
15912 struct era_entry *era = _nl_get_era_entry (tp HELPER_LOCALE_ARG); 15993 struct era_entry *era = _nl_get_era_entry (tp HELPER_LOCALE_ARG);
15913 if (era) 15994 if (era)
15914 { 15995 {
15915@@ -955,7 +959,7 @@ 15996@@ -955,7 +959,7 @@ __strftime_internal (s, maxsize, format,
15916 15997
15917 if (modifier == L_('O') && 0 <= number_value) 15998 if (modifier == L_('O') && 0 <= number_value)
15918 { 15999 {
@@ -15921,7 +16002,7 @@ Index: git/time/strftime_l.c
15921 /* Get the locale specific alternate representation of 16002 /* Get the locale specific alternate representation of
15922 the number NUMBER_VALUE. If none exist NULL is returned. */ 16003 the number NUMBER_VALUE. If none exist NULL is returned. */
15923 const CHAR_T *cp = nl_get_alt_digit (number_value 16004 const CHAR_T *cp = nl_get_alt_digit (number_value
15924@@ -1260,7 +1264,7 @@ 16005@@ -1260,7 +1264,7 @@ __strftime_internal (s, maxsize, format,
15925 case L_('Y'): 16006 case L_('Y'):
15926 if (modifier == 'E') 16007 if (modifier == 'E')
15927 { 16008 {
@@ -15930,7 +16011,7 @@ Index: git/time/strftime_l.c
15930 struct era_entry *era = _nl_get_era_entry (tp HELPER_LOCALE_ARG); 16011 struct era_entry *era = _nl_get_era_entry (tp HELPER_LOCALE_ARG);
15931 if (era) 16012 if (era)
15932 { 16013 {
15933@@ -1285,7 +1289,7 @@ 16014@@ -1285,7 +1289,7 @@ __strftime_internal (s, maxsize, format,
15934 case L_('y'): 16015 case L_('y'):
15935 if (modifier == L_('E')) 16016 if (modifier == L_('E'))
15936 { 16017 {
@@ -15941,8 +16022,8 @@ Index: git/time/strftime_l.c
15941 { 16022 {
15942Index: git/time/strptime_l.c 16023Index: git/time/strptime_l.c
15943=================================================================== 16024===================================================================
15944--- git.orig/time/strptime_l.c 2014-08-29 20:00:59.528070587 -0700 16025--- git.orig/time/strptime_l.c
15945+++ git/time/strptime_l.c 2014-08-29 20:01:15.244070587 -0700 16026+++ git/time/strptime_l.c
15946@@ -29,6 +29,7 @@ 16027@@ -29,6 +29,7 @@
15947 16028
15948 #ifdef _LIBC 16029 #ifdef _LIBC
@@ -15951,7 +16032,7 @@ Index: git/time/strptime_l.c
15951 # include "../locale/localeinfo.h" 16032 # include "../locale/localeinfo.h"
15952 #endif 16033 #endif
15953 16034
15954@@ -84,7 +85,7 @@ 16035@@ -84,7 +85,7 @@ localtime_r (t, tp)
15955 if (val < from || val > to) \ 16036 if (val < from || val > to) \
15956 return NULL; \ 16037 return NULL; \
15957 } while (0) 16038 } while (0)
@@ -15960,7 +16041,18 @@ Index: git/time/strptime_l.c
15960 # define get_alt_number(from, to, n) \ 16041 # define get_alt_number(from, to, n) \
15961 ({ \ 16042 ({ \
15962 __label__ do_normal; \ 16043 __label__ do_normal; \
15963@@ -820,6 +821,7 @@ 16044@@ -257,8 +258,10 @@ __strptime_internal (rp, fmt, tmp, state
16045 int cnt;
16046 int cnt_longest;
16047 size_t val;
16048+#if ! _LIBC || __OPTION_EGLIBC_LOCALE_CODE
16049 size_t num_eras;
16050 struct era_entry *era = NULL;
16051+#endif
16052 enum ptime_locale_status { not, loc, raw } decided_longest;
16053 struct __strptime_state
16054 {
16055@@ -820,6 +823,7 @@ __strptime_internal (rp, fmt, tmp, state
15964 s.want_xday = 1; 16056 s.want_xday = 1;
15965 break; 16057 break;
15966 case 'C': 16058 case 'C':
@@ -15968,7 +16060,7 @@ Index: git/time/strptime_l.c
15968 if (s.decided != raw) 16060 if (s.decided != raw)
15969 { 16061 {
15970 if (s.era_cnt >= 0) 16062 if (s.era_cnt >= 0)
15971@@ -856,10 +858,12 @@ 16063@@ -856,10 +860,12 @@ __strptime_internal (rp, fmt, tmp, state
15972 16064
15973 s.decided = raw; 16065 s.decided = raw;
15974 } 16066 }
@@ -15981,7 +16073,7 @@ Index: git/time/strptime_l.c
15981 if (s.decided != raw) 16073 if (s.decided != raw)
15982 { 16074 {
15983 get_number(0, 9999, 4); 16075 get_number(0, 9999, 4);
15984@@ -918,9 +922,10 @@ 16076@@ -918,9 +924,10 @@ __strptime_internal (rp, fmt, tmp, state
15985 16077
15986 s.decided = raw; 16078 s.decided = raw;
15987 } 16079 }
@@ -15993,7 +16085,7 @@ Index: git/time/strptime_l.c
15993 if (s.decided != raw) 16085 if (s.decided != raw)
15994 { 16086 {
15995 num_eras = _NL_CURRENT_WORD (LC_TIME, 16087 num_eras = _NL_CURRENT_WORD (LC_TIME,
15996@@ -948,6 +953,7 @@ 16088@@ -948,6 +955,7 @@ __strptime_internal (rp, fmt, tmp, state
15997 16089
15998 s.decided = raw; 16090 s.decided = raw;
15999 } 16091 }
@@ -16001,7 +16093,7 @@ Index: git/time/strptime_l.c
16001 get_number (0, 9999, 4); 16093 get_number (0, 9999, 4);
16002 tm->tm_year = val - 1900; 16094 tm->tm_year = val - 1900;
16003 s.want_century = 0; 16095 s.want_century = 0;
16004@@ -1118,6 +1124,7 @@ 16096@@ -1118,6 +1126,7 @@ __strptime_internal (rp, fmt, tmp, state
16005 tm->tm_year = (s.century - 19) * 100; 16097 tm->tm_year = (s.century - 19) * 100;
16006 } 16098 }
16007 16099
@@ -16009,7 +16101,7 @@ Index: git/time/strptime_l.c
16009 if (s.era_cnt != -1) 16101 if (s.era_cnt != -1)
16010 { 16102 {
16011 era = _nl_select_era_entry (s.era_cnt HELPER_LOCALE_ARG); 16103 era = _nl_select_era_entry (s.era_cnt HELPER_LOCALE_ARG);
16012@@ -1132,6 +1139,7 @@ 16104@@ -1132,6 +1141,7 @@ __strptime_internal (rp, fmt, tmp, state
16013 tm->tm_year = era->start_date[0]; 16105 tm->tm_year = era->start_date[0];
16014 } 16106 }
16015 else 16107 else
@@ -16019,9 +16111,9 @@ Index: git/time/strptime_l.c
16019 /* No era found but we have seen an E modifier. Rectify some 16111 /* No era found but we have seen an E modifier. Rectify some
16020Index: git/timezone/Makefile 16112Index: git/timezone/Makefile
16021=================================================================== 16113===================================================================
16022--- git.orig/timezone/Makefile 2014-08-29 20:01:14.044070587 -0700 16114--- git.orig/timezone/Makefile
16023+++ git/timezone/Makefile 2014-08-29 20:01:15.244070587 -0700 16115+++ git/timezone/Makefile
16024@@ -115,7 +115,7 @@ 16116@@ -117,7 +117,7 @@ $(testdata)/Asia/Tokyo: asia $(zic-deps)
16025 16117
16026 $(objpfx)tzselect: tzselect.ksh $(common-objpfx)config.make 16118 $(objpfx)tzselect: tzselect.ksh $(common-objpfx)config.make
16027 sed -e 's|/bin/bash|/bin/sh|' \ 16119 sed -e 's|/bin/bash|/bin/sh|' \
@@ -16032,8 +16124,8 @@ Index: git/timezone/Makefile
16032 -e '/REPORT_BUGS_TO=/s|=.*|="$(REPORT_BUGS_TO)"|' \ 16124 -e '/REPORT_BUGS_TO=/s|=.*|="$(REPORT_BUGS_TO)"|' \
16033Index: git/wcsmbs/Makefile 16125Index: git/wcsmbs/Makefile
16034=================================================================== 16126===================================================================
16035--- git.orig/wcsmbs/Makefile 2014-08-29 20:00:59.548070587 -0700 16127--- git.orig/wcsmbs/Makefile
16036+++ git/wcsmbs/Makefile 2014-08-29 20:01:15.244070587 -0700 16128+++ git/wcsmbs/Makefile
16037@@ -18,15 +18,21 @@ 16129@@ -18,15 +18,21 @@
16038 # 16130 #
16039 # Sub-makefile for wcsmbs portion of the library. 16131 # Sub-makefile for wcsmbs portion of the library.
@@ -16058,34 +16150,36 @@ Index: git/wcsmbs/Makefile
16058 btowc wctob mbsinit \ 16150 btowc wctob mbsinit \
16059 mbrlen mbrtowc wcrtomb mbsrtowcs wcsrtombs \ 16151 mbrlen mbrtowc wcrtomb mbsrtowcs wcsrtombs \
16060 mbsnrtowcs wcsnrtombs wcsnlen wcschrnul \ 16152 mbsnrtowcs wcsnrtombs wcsnlen wcschrnul \
16061@@ -38,14 +44,19 @@ 16153@@ -38,14 +44,21 @@ routines := wcscat wcschr wcscmp wcscpy
16062 wcscoll_l wcsxfrm_l \ 16154 wcscoll_l wcsxfrm_l \
16063 wcscasecmp wcsncase wcscasecmp_l wcsncase_l \ 16155 wcscasecmp wcsncase wcscasecmp_l wcsncase_l \
16064 wcsmbsload mbsrtowcs_l \ 16156 wcsmbsload mbsrtowcs_l \
16065- isoc99_wscanf isoc99_vwscanf isoc99_fwscanf isoc99_vfwscanf \ 16157- isoc99_wscanf isoc99_vwscanf isoc99_fwscanf isoc99_vfwscanf \
16066 isoc99_swscanf isoc99_vswscanf \ 16158 isoc99_swscanf isoc99_vswscanf \
16067 mbrtoc16 c16rtomb 16159 mbrtoc16 c16rtomb
16068+routines-$(OPTION_POSIX_WIDE_CHAR_DEVICE_IO) \
16069+ += isoc99_wscanf isoc99_vwscanf isoc99_fwscanf isoc99_vfwscanf
16070 16160
16161+routines-$(OPTION_POSIX_WIDE_CHAR_DEVICE_IO) \
16162+ += isoc99_wscanf isoc99_vwscanf isoc99_fwscanf isoc99_vfwscanf
16163+
16071 strop-tests := wcscmp wmemcmp wcslen wcschr wcsrchr wcscpy 16164 strop-tests := wcscmp wmemcmp wcslen wcschr wcsrchr wcscpy
16072-tests := tst-wcstof wcsmbs-tst1 tst-wcsnlen tst-btowc tst-mbrtowc \ 16165-tests := tst-wcstof wcsmbs-tst1 tst-wcsnlen tst-btowc tst-mbrtowc \
16073- tst-wcrtomb tst-wcpncpy tst-mbsrtowcs tst-wchar-h tst-mbrtowc2 \ 16166- tst-wcrtomb tst-wcpncpy tst-mbsrtowcs tst-wchar-h tst-mbrtowc2 \
16074- tst-c16c32-1 wcsatcliff $(addprefix test-,$(strop-tests)) 16167- tst-c16c32-1 wcsatcliff $(addprefix test-,$(strop-tests))
16168+
16075+tests := tst-wchar-h 16169+tests := tst-wchar-h
16076+tests-$(OPTION_EGLIBC_LOCALE_CODE) \ 16170+tests-$(OPTION_EGLIBC_LOCALE_CODE) \
16077+ += tst-btowc tst-mbrtowc tst-mbrtowc2 tst-wcrtomb tst-c16c32-1 16171+ += tst-btowc tst-mbrtowc tst-mbrtowc2 tst-wcrtomb tst-c16c32-1
16078+tests-$(OPTION_POSIX_C_LANG_WIDE_CHAR) \ 16172+tests-$(OPTION_POSIX_C_LANG_WIDE_CHAR) \
16079+ += tst-wcstof wcsmbs-tst1 tst-wcsnlen \ 16173+ += tst-wcstof wcsmbs-tst1 tst-wcsnlen \
16080+ tst-wcpncpy tst-mbsrtowcs \ 16174+ tst-wcpncpy tst-mbsrtowcs \
16081+ wcsatcliff $(addprefix test-,$(strop-tests)) 16175+ wcsatcliff $(addprefix test-,$(strop-tests))
16082 tests-ifunc := $(strop-tests:%=test-%-ifunc) 16176
16083 tests += $(tests-ifunc) 16177 include ../Rules
16084 16178
16085Index: git/wcsmbs/wcsmbsload.c 16179Index: git/wcsmbs/wcsmbsload.c
16086=================================================================== 16180===================================================================
16087--- git.orig/wcsmbs/wcsmbsload.c 2014-08-29 20:00:59.580070587 -0700 16181--- git.orig/wcsmbs/wcsmbsload.c
16088+++ git/wcsmbs/wcsmbsload.c 2014-08-29 20:01:15.248070587 -0700 16182+++ git/wcsmbs/wcsmbsload.c
16089@@ -21,6 +21,7 @@ 16183@@ -21,6 +21,7 @@
16090 #include <limits.h> 16184 #include <limits.h>
16091 #include <stdlib.h> 16185 #include <stdlib.h>
@@ -16094,7 +16188,7 @@ Index: git/wcsmbs/wcsmbsload.c
16094 16188
16095 #include <locale/localeinfo.h> 16189 #include <locale/localeinfo.h>
16096 #include <wcsmbsload.h> 16190 #include <wcsmbsload.h>
16097@@ -143,6 +144,7 @@ 16191@@ -143,6 +144,7 @@ __wcsmbs_getfct (const char *to, const c
16098 }) 16192 })
16099 16193
16100 16194
@@ -16102,7 +16196,7 @@ Index: git/wcsmbs/wcsmbsload.c
16102 /* Some of the functions here must not be used while setlocale is called. */ 16196 /* Some of the functions here must not be used while setlocale is called. */
16103 __libc_rwlock_define (extern, __libc_setlocale_lock attribute_hidden) 16197 __libc_rwlock_define (extern, __libc_setlocale_lock attribute_hidden)
16104 16198
16105@@ -211,6 +213,17 @@ 16199@@ -211,6 +213,17 @@ __wcsmbs_load_conv (struct __locale_data
16106 16200
16107 __libc_rwlock_unlock (__libc_setlocale_lock); 16201 __libc_rwlock_unlock (__libc_setlocale_lock);
16108 } 16202 }
@@ -16122,8 +16216,8 @@ Index: git/wcsmbs/wcsmbsload.c
16122 /* Clone the current conversion function set. */ 16216 /* Clone the current conversion function set. */
16123Index: git/wctype/Makefile 16217Index: git/wctype/Makefile
16124=================================================================== 16218===================================================================
16125--- git.orig/wctype/Makefile 2014-08-29 20:00:59.584070587 -0700 16219--- git.orig/wctype/Makefile
16126+++ git/wctype/Makefile 2014-08-29 20:01:15.248070587 -0700 16220+++ git/wctype/Makefile
16127@@ -18,14 +18,20 @@ 16221@@ -18,14 +18,20 @@
16128 # 16222 #
16129 # Sub-makefile for wctype portion of the library. 16223 # Sub-makefile for wctype portion of the library.
@@ -16150,8 +16244,8 @@ Index: git/wctype/Makefile
16150 include ../Rules 16244 include ../Rules
16151Index: git/sysdeps/nptl/Makefile 16245Index: git/sysdeps/nptl/Makefile
16152=================================================================== 16246===================================================================
16153--- git.orig/sysdeps/nptl/Makefile 2014-08-29 20:00:58.036070587 -0700 16247--- git.orig/sysdeps/nptl/Makefile
16154+++ git/sysdeps/nptl/Makefile 2014-08-29 20:01:15.248070587 -0700 16248+++ git/sysdeps/nptl/Makefile
16155@@ -18,6 +18,9 @@ 16249@@ -18,6 +18,9 @@
16156 16250
16157 ifeq ($(subdir),nptl) 16251 ifeq ($(subdir),nptl)
@@ -16164,8 +16258,8 @@ Index: git/sysdeps/nptl/Makefile
16164 ifeq ($(subdir),rt) 16258 ifeq ($(subdir),rt)
16165Index: git/sysdeps/nptl/bits/libc-lock.h 16259Index: git/sysdeps/nptl/bits/libc-lock.h
16166=================================================================== 16260===================================================================
16167--- git.orig/sysdeps/nptl/bits/libc-lock.h 2014-08-29 20:00:58.036070587 -0700 16261--- git.orig/sysdeps/nptl/bits/libc-lock.h
16168+++ git/sysdeps/nptl/bits/libc-lock.h 2014-08-29 20:01:15.248070587 -0700 16262+++ git/sysdeps/nptl/bits/libc-lock.h
16169@@ -24,6 +24,14 @@ 16263@@ -24,6 +24,14 @@
16170 #include <stddef.h> 16264 #include <stddef.h>
16171 16265
@@ -16180,11 +16274,11 @@ Index: git/sysdeps/nptl/bits/libc-lock.h
16180+ 16274+
16181 /* Mutex type. */ 16275 /* Mutex type. */
16182 #if defined _LIBC || defined _IO_MTSAFE_IO 16276 #if defined _LIBC || defined _IO_MTSAFE_IO
16183 # if (defined NOT_IN_libc && !defined IS_IN_libpthread) || !defined _LIBC 16277 # if (!IS_IN (libc) && !IS_IN (libpthread)) || !defined _LIBC
16184@@ -87,6 +95,14 @@ 16278@@ -87,6 +95,15 @@ typedef struct __libc_lock_recursive_opa
16185 16279
16186 /* Lock the recursive named lock variable. */ 16280 /* Lock the recursive named lock variable. */
16187 #if defined _LIBC && (!defined NOT_IN_libc || defined IS_IN_libpthread) 16281 #if defined _LIBC && (IS_IN (libc) || IS_IN (libpthread))
16188+# if __OPTION_EGLIBC_BIG_MACROS != 1 16282+# if __OPTION_EGLIBC_BIG_MACROS != 1
16189+/* EGLIBC: Declare wrapper function for a big macro if either 16283+/* EGLIBC: Declare wrapper function for a big macro if either
16190+ !__OPTION_EGLIBC_BIG_MACROS or we are using a back door from 16284+ !__OPTION_EGLIBC_BIG_MACROS or we are using a back door from
@@ -16193,10 +16287,11 @@ Index: git/sysdeps/nptl/bits/libc-lock.h
16193+libc_hidden_proto (__libc_lock_lock_recursive_fn); 16287+libc_hidden_proto (__libc_lock_lock_recursive_fn);
16194+# endif /* __OPTION_EGLIBC_BIG_MACROS != 1 */ 16288+# endif /* __OPTION_EGLIBC_BIG_MACROS != 1 */
16195+# if __OPTION_EGLIBC_BIG_MACROS 16289+# if __OPTION_EGLIBC_BIG_MACROS
16290+
16196 # define __libc_lock_lock_recursive(NAME) \ 16291 # define __libc_lock_lock_recursive(NAME) \
16197 do { \ 16292 do { \
16198 void *self = THREAD_SELF; \ 16293 void *self = THREAD_SELF; \
16199@@ -97,6 +113,10 @@ 16294@@ -97,6 +114,10 @@ typedef struct __libc_lock_recursive_opa
16200 } \ 16295 } \
16201 ++(NAME).cnt; \ 16296 ++(NAME).cnt; \
16202 } while (0) 16297 } while (0)
@@ -16207,10 +16302,10 @@ Index: git/sysdeps/nptl/bits/libc-lock.h
16207 #else 16302 #else
16208 # define __libc_lock_lock_recursive(NAME) \ 16303 # define __libc_lock_lock_recursive(NAME) \
16209 __libc_maybe_call (__pthread_mutex_lock, (&(NAME).mutex), 0) 16304 __libc_maybe_call (__pthread_mutex_lock, (&(NAME).mutex), 0)
16210@@ -104,6 +124,14 @@ 16305@@ -104,6 +125,14 @@ typedef struct __libc_lock_recursive_opa
16211 16306
16212 /* Try to lock the recursive named lock variable. */ 16307 /* Try to lock the recursive named lock variable. */
16213 #if defined _LIBC && (!defined NOT_IN_libc || defined IS_IN_libpthread) 16308 #if defined _LIBC && (IS_IN (libc) || IS_IN (libpthread))
16214+# if __OPTION_EGLIBC_BIG_MACROS != 1 16309+# if __OPTION_EGLIBC_BIG_MACROS != 1
16215+/* EGLIBC: Declare wrapper function for a big macro if either 16310+/* EGLIBC: Declare wrapper function for a big macro if either
16216+ !__OPTION_EGLIBC_BIG_MACROS or we are using a back door from 16311+ !__OPTION_EGLIBC_BIG_MACROS or we are using a back door from
@@ -16222,7 +16317,7 @@ Index: git/sysdeps/nptl/bits/libc-lock.h
16222 # define __libc_lock_trylock_recursive(NAME) \ 16317 # define __libc_lock_trylock_recursive(NAME) \
16223 ({ \ 16318 ({ \
16224 int result = 0; \ 16319 int result = 0; \
16225@@ -122,6 +150,10 @@ 16320@@ -122,6 +151,10 @@ typedef struct __libc_lock_recursive_opa
16226 ++(NAME).cnt; \ 16321 ++(NAME).cnt; \
16227 result; \ 16322 result; \
16228 }) 16323 })
@@ -16233,10 +16328,10 @@ Index: git/sysdeps/nptl/bits/libc-lock.h
16233 #else 16328 #else
16234 # define __libc_lock_trylock_recursive(NAME) \ 16329 # define __libc_lock_trylock_recursive(NAME) \
16235 __libc_maybe_call (__pthread_mutex_trylock, (&(NAME).mutex), 0) 16330 __libc_maybe_call (__pthread_mutex_trylock, (&(NAME).mutex), 0)
16236@@ -129,6 +161,14 @@ 16331@@ -129,6 +162,14 @@ typedef struct __libc_lock_recursive_opa
16237 16332
16238 /* Unlock the recursive named lock variable. */ 16333 /* Unlock the recursive named lock variable. */
16239 #if defined _LIBC && (!defined NOT_IN_libc || defined IS_IN_libpthread) 16334 #if defined _LIBC && (IS_IN (libc) || IS_IN (libpthread))
16240+# if __OPTION_EGLIBC_BIG_MACROS != 1 16335+# if __OPTION_EGLIBC_BIG_MACROS != 1
16241+/* EGLIBC: Declare wrapper function for a big macro if either 16336+/* EGLIBC: Declare wrapper function for a big macro if either
16242+ !__OPTION_EGLIBC_BIG_MACROS, or we are using a back door from 16337+ !__OPTION_EGLIBC_BIG_MACROS, or we are using a back door from
@@ -16248,7 +16343,7 @@ Index: git/sysdeps/nptl/bits/libc-lock.h
16248 /* We do no error checking here. */ 16343 /* We do no error checking here. */
16249 # define __libc_lock_unlock_recursive(NAME) \ 16344 # define __libc_lock_unlock_recursive(NAME) \
16250 do { \ 16345 do { \
16251@@ -138,6 +178,10 @@ 16346@@ -138,6 +179,10 @@ typedef struct __libc_lock_recursive_opa
16252 lll_unlock ((NAME).lock, LLL_PRIVATE); \ 16347 lll_unlock ((NAME).lock, LLL_PRIVATE); \
16253 } \ 16348 } \
16254 } while (0) 16349 } while (0)
@@ -16261,8 +16356,8 @@ Index: git/sysdeps/nptl/bits/libc-lock.h
16261 __libc_maybe_call (__pthread_mutex_unlock, (&(NAME).mutex), 0) 16356 __libc_maybe_call (__pthread_mutex_unlock, (&(NAME).mutex), 0)
16262Index: git/sysdeps/nptl/bits/libc-lockP.h 16357Index: git/sysdeps/nptl/bits/libc-lockP.h
16263=================================================================== 16358===================================================================
16264--- git.orig/sysdeps/nptl/bits/libc-lockP.h 2014-08-29 20:00:58.044070587 -0700 16359--- git.orig/sysdeps/nptl/bits/libc-lockP.h
16265+++ git/sysdeps/nptl/bits/libc-lockP.h 2014-08-29 20:01:15.248070587 -0700 16360+++ git/sysdeps/nptl/bits/libc-lockP.h
16266@@ -33,6 +33,8 @@ 16361@@ -33,6 +33,8 @@
16267 #include <lowlevellock.h> 16362 #include <lowlevellock.h>
16268 #include <tls.h> 16363 #include <tls.h>
@@ -16270,12 +16365,12 @@ Index: git/sysdeps/nptl/bits/libc-lockP.h
16270+#include <errno.h> /* For EBUSY. */ 16365+#include <errno.h> /* For EBUSY. */
16271+#include <gnu/option-groups.h> /* For __OPTION_EGLIBC_BIG_MACROS. */ 16366+#include <gnu/option-groups.h> /* For __OPTION_EGLIBC_BIG_MACROS. */
16272 16367
16273 /* Mutex type. */ 16368 #if IS_IN (libpthread)
16274 #if defined NOT_IN_libc && !defined IS_IN_libpthread 16369 /* This gets us the declarations of the __pthread_* internal names,
16275@@ -159,10 +161,22 @@ 16370@@ -171,10 +173,22 @@ typedef pthread_key_t __libc_key_t;
16276 16371
16277 /* Lock the named lock variable. */ 16372 /* Lock the named lock variable. */
16278 #if !defined NOT_IN_libc || defined IS_IN_libpthread 16373 #if IS_IN (libc) || IS_IN (libpthread)
16279-# ifndef __libc_lock_lock 16374-# ifndef __libc_lock_lock
16280-# define __libc_lock_lock(NAME) \ 16375-# define __libc_lock_lock(NAME) \
16281+# if __OPTION_EGLIBC_BIG_MACROS != 1 16376+# if __OPTION_EGLIBC_BIG_MACROS != 1
@@ -16292,16 +16387,16 @@ Index: git/sysdeps/nptl/bits/libc-lockP.h
16292-# endif 16387-# endif
16293+# endif 16388+# endif
16294+# else 16389+# else
16295+# define __libc_lock_lock(NAME) \ 16390+# define __libc_lock_lock(NAME) \
16296+ __libc_lock_lock_fn (&(NAME)) 16391+ __libc_lock_lock_fn (&(NAME))
16297+# endif /* __OPTION_EGLIBC_BIG_MACROS */ 16392+# endif /* __OPTION_EGLIBC_BIG_MACROS */
16298 #else 16393 #else
16299 # undef __libc_lock_lock 16394 # undef __libc_lock_lock
16300 # define __libc_lock_lock(NAME) \ 16395 # define __libc_lock_lock(NAME) \
16301@@ -175,10 +189,22 @@ 16396@@ -187,10 +201,22 @@ typedef pthread_key_t __libc_key_t;
16302 16397
16303 /* Try to lock the named lock variable. */ 16398 /* Try to lock the named lock variable. */
16304 #if !defined NOT_IN_libc || defined IS_IN_libpthread 16399 #if IS_IN (libc) || IS_IN (libpthread)
16305-# ifndef __libc_lock_trylock 16400-# ifndef __libc_lock_trylock
16306-# define __libc_lock_trylock(NAME) \ 16401-# define __libc_lock_trylock(NAME) \
16307+# if __OPTION_EGLIBC_BIG_MACROS != 1 16402+# if __OPTION_EGLIBC_BIG_MACROS != 1
@@ -16324,10 +16419,10 @@ Index: git/sysdeps/nptl/bits/libc-lockP.h
16324 #else 16419 #else
16325 # undef __libc_lock_trylock 16420 # undef __libc_lock_trylock
16326 # define __libc_lock_trylock(NAME) \ 16421 # define __libc_lock_trylock(NAME) \
16327@@ -194,8 +220,20 @@ 16422@@ -206,8 +232,20 @@ typedef pthread_key_t __libc_key_t;
16328 16423
16329 /* Unlock the named lock variable. */ 16424 /* Unlock the named lock variable. */
16330 #if !defined NOT_IN_libc || defined IS_IN_libpthread 16425 #if IS_IN (libc) || IS_IN (libpthread)
16331+# if __OPTION_EGLIBC_BIG_MACROS != 1 16426+# if __OPTION_EGLIBC_BIG_MACROS != 1
16332+/* EGLIBC: Declare wrapper function for a big macro if either 16427+/* EGLIBC: Declare wrapper function for a big macro if either
16333+ !__OPTION_EGLIBC_BIG_MACROS, or we are using a back door from 16428+ !__OPTION_EGLIBC_BIG_MACROS, or we are using a back door from
@@ -16347,8 +16442,8 @@ Index: git/sysdeps/nptl/bits/libc-lockP.h
16347 __libc_maybe_call (__pthread_mutex_unlock, (&(NAME)), 0) 16442 __libc_maybe_call (__pthread_mutex_unlock, (&(NAME)), 0)
16348Index: git/sysdeps/nptl/small-macros-fns.c 16443Index: git/sysdeps/nptl/small-macros-fns.c
16349=================================================================== 16444===================================================================
16350--- /dev/null 1970-01-01 00:00:00.000000000 +0000 16445--- /dev/null
16351+++ git/sysdeps/nptl/small-macros-fns.c 2014-08-29 20:01:15.248070587 -0700 16446+++ git/sysdeps/nptl/small-macros-fns.c
16352@@ -0,0 +1,72 @@ 16447@@ -0,0 +1,72 @@
16353+/* EGLIBC: function wrappers for big macros. 16448+/* EGLIBC: function wrappers for big macros.
16354+ Copyright (C) 2009 Free Software Foundation, Inc. 16449+ Copyright (C) 2009 Free Software Foundation, Inc.
@@ -16424,8 +16519,8 @@ Index: git/sysdeps/nptl/small-macros-fns.c
16424+#endif /*defined _LIBC && (!defined NOT_IN_libc || defined IS_IN_libpthread)*/ 16519+#endif /*defined _LIBC && (!defined NOT_IN_libc || defined IS_IN_libpthread)*/
16425Index: git/crypt/crypt_common.c 16520Index: git/crypt/crypt_common.c
16426=================================================================== 16521===================================================================
16427--- /dev/null 1970-01-01 00:00:00.000000000 +0000 16522--- /dev/null
16428+++ git/crypt/crypt_common.c 2014-08-29 20:01:15.248070587 -0700 16523+++ git/crypt/crypt_common.c
16429@@ -0,0 +1,42 @@ 16524@@ -0,0 +1,42 @@
16430+/* 16525+/*
16431+ * crypt: crypt(3) implementation 16526+ * crypt: crypt(3) implementation
@@ -16471,9 +16566,9 @@ Index: git/crypt/crypt_common.c
16471+} 16566+}
16472Index: git/crypt/crypt_util.c 16567Index: git/crypt/crypt_util.c
16473=================================================================== 16568===================================================================
16474--- git.orig/crypt/crypt_util.c 2014-08-29 20:00:43.028070587 -0700 16569--- git.orig/crypt/crypt_util.c
16475+++ git/crypt/crypt_util.c 2014-08-29 20:01:15.248070587 -0700 16570+++ git/crypt/crypt_util.c
16476@@ -242,10 +242,6 @@ 16571@@ -242,10 +242,6 @@ static ufc_long eperm32tab[4][256][2];
16477 */ 16572 */
16478 static ufc_long efp[16][64][2]; 16573 static ufc_long efp[16][64][2];
16479 16574
@@ -16484,7 +16579,7 @@ Index: git/crypt/crypt_util.c
16484 /* 16579 /*
16485 * For use by the old, non-reentrant routines 16580 * For use by the old, non-reentrant routines
16486 * (crypt/encrypt/setkey) 16581 * (crypt/encrypt/setkey)
16487@@ -949,17 +945,3 @@ 16582@@ -949,17 +945,3 @@ setkey(__key)
16488 { 16583 {
16489 __setkey_r(__key, &_ufc_foobar); 16584 __setkey_r(__key, &_ufc_foobar);
16490 } 16585 }
@@ -16504,9 +16599,9 @@ Index: git/crypt/crypt_util.c
16504-} 16599-}
16505Index: git/sysdeps/arm/Makefile 16600Index: git/sysdeps/arm/Makefile
16506=================================================================== 16601===================================================================
16507--- git.orig/sysdeps/arm/Makefile 2014-08-29 20:29:37.000000000 -0700 16602--- git.orig/sysdeps/arm/Makefile
16508+++ git/sysdeps/arm/Makefile 2014-08-29 20:31:09.904070587 -0700 16603+++ git/sysdeps/arm/Makefile
16509@@ -37,10 +37,13 @@ 16604@@ -37,10 +37,13 @@ ifeq ($(subdir),csu)
16510 # get offset to rtld_global._dl_hwcap 16605 # get offset to rtld_global._dl_hwcap
16511 gen-as-const-headers += rtld-global-offsets.sym tlsdesc.sym 16606 gen-as-const-headers += rtld-global-offsets.sym tlsdesc.sym
16512 aeabi_constants = aeabi_lcsts aeabi_sighandlers aeabi_math 16607 aeabi_constants = aeabi_lcsts aeabi_sighandlers aeabi_math
diff --git a/meta/recipes-core/glibc/glibc/fsl-ppc-no-fsqrt.patch b/meta/recipes-core/glibc/glibc/fsl-ppc-no-fsqrt.patch
deleted file mode 100644
index f88eaf444e..0000000000
--- a/meta/recipes-core/glibc/glibc/fsl-ppc-no-fsqrt.patch
+++ /dev/null
@@ -1,100 +0,0 @@
1Create e5500 specific math_private.h and let it include when compiling for e5500/64bit core
2We prefefine __CPU_HAS_FSQRT to 0 and then in general ppc64 math_private.h we check if its
3already defined before redefining it. This way we can ensure that on e5500 builds it wont
4emit fsqrt intructions
5
6-Khem
7
8Upstream-Status: Pending
9
10Index: git/sysdeps/powerpc/fpu/math_private.h
11===================================================================
12--- git.orig/sysdeps/powerpc/fpu/math_private.h 2014-08-29 10:31:30.224070587 -0700
13+++ git/sysdeps/powerpc/fpu/math_private.h 2014-08-29 10:31:30.212070587 -0700
14@@ -25,10 +25,12 @@
15 #include <fenv_private.h>
16 #include_next <math_private.h>
17
18-# if __WORDSIZE == 64 || defined _ARCH_PWR4
19-# define __CPU_HAS_FSQRT 1
20-# else
21-# define __CPU_HAS_FSQRT ((GLRO(dl_hwcap) & PPC_FEATURE_64) != 0)
22+# ifndef __CPU_HAS_FSQRT
23+# if __WORDSIZE == 64 || defined _ARCH_PWR4
24+# define __CPU_HAS_FSQRT 1
25+# else
26+# define __CPU_HAS_FSQRT ((GLRO(dl_hwcap) & PPC_FEATURE_64) != 0)
27+# endif
28 # endif
29
30 extern double __slow_ieee754_sqrt (double);
31Index: git/sysdeps/powerpc/powerpc64/e5500/fpu/math_private.h
32===================================================================
33--- /dev/null 1970-01-01 00:00:00.000000000 +0000
34+++ git/sysdeps/powerpc/powerpc64/e5500/fpu/math_private.h 2014-08-29 10:31:30.212070587 -0700
35@@ -0,0 +1,9 @@
36+#ifndef _E5500_MATH_PRIVATE_H_
37+#define _E5500_MATH_PRIVATE_H_ 1
38+/* E5500 core FPU does not implement
39+ fsqrt */
40+
41+#define __CPU_HAS_FSQRT 0
42+#include_next <math_private.h>
43+
44+#endif /* _E5500_MATH_PRIVATE_H_ */
45Index: git/sysdeps/powerpc/powerpc64/e6500/fpu/math_private.h
46===================================================================
47--- /dev/null 1970-01-01 00:00:00.000000000 +0000
48+++ git/sysdeps/powerpc/powerpc64/e6500/fpu/math_private.h 2014-08-29 10:31:30.212070587 -0700
49@@ -0,0 +1,9 @@
50+#ifndef _E6500_MATH_PRIVATE_H_
51+#define _E6500_MATH_PRIVATE_H_ 1
52+/* E6500 core FPU does not implement
53+ fsqrt */
54+
55+#define __CPU_HAS_FSQRT 0
56+#include_next <math_private.h>
57+
58+#endif /* _E6500_MATH_PRIVATE_H_ */
59Index: git/sysdeps/powerpc/powerpc32/e500mc/fpu/math_private.h
60===================================================================
61--- /dev/null 1970-01-01 00:00:00.000000000 +0000
62+++ git/sysdeps/powerpc/powerpc32/e500mc/fpu/math_private.h 2014-08-29 10:31:30.212070587 -0700
63@@ -0,0 +1,9 @@
64+#ifndef _E500MC_MATH_PRIVATE_H_
65+#define _E500MC_MATH_PRIVATE_H_ 1
66+/* E500MC core FPU does not implement
67+ fsqrt */
68+
69+#define __CPU_HAS_FSQRT 0
70+#include_next <math_private.h>
71+
72+#endif /* _E500MC_MATH_PRIVATE_H_ */
73Index: git/sysdeps/powerpc/powerpc32/e5500/fpu/math_private.h
74===================================================================
75--- /dev/null 1970-01-01 00:00:00.000000000 +0000
76+++ git/sysdeps/powerpc/powerpc32/e5500/fpu/math_private.h 2014-08-29 10:31:30.216070587 -0700
77@@ -0,0 +1,9 @@
78+#ifndef _E5500_MATH_PRIVATE_H_
79+#define _E5500_MATH_PRIVATE_H_ 1
80+/* E5500 core FPU does not implement
81+ fsqrt */
82+
83+#define __CPU_HAS_FSQRT 0
84+#include_next <math_private.h>
85+
86+#endif /* _E5500_MATH_PRIVATE_H_ */
87Index: git/sysdeps/powerpc/powerpc32/e6500/fpu/math_private.h
88===================================================================
89--- /dev/null 1970-01-01 00:00:00.000000000 +0000
90+++ git/sysdeps/powerpc/powerpc32/e6500/fpu/math_private.h 2014-08-29 10:31:30.216070587 -0700
91@@ -0,0 +1,9 @@
92+#ifndef _E6500_MATH_PRIVATE_H_
93+#define _E6500_MATH_PRIVATE_H_ 1
94+/* E6500 core FPU does not implement
95+ fsqrt */
96+
97+#define __CPU_HAS_FSQRT 0
98+#include_next <math_private.h>
99+
100+#endif /* _E6500_MATH_PRIVATE_H_ */
diff --git a/meta/recipes-core/glibc/glibc/grok_gold.patch b/meta/recipes-core/glibc/glibc/grok_gold.patch
index 26875c79d4..5151802ecf 100644
--- a/meta/recipes-core/glibc/glibc/grok_gold.patch
+++ b/meta/recipes-core/glibc/glibc/grok_gold.patch
@@ -8,9 +8,9 @@ Upstream-Status: Backport
8 8
9Index: git/configure 9Index: git/configure
10=================================================================== 10===================================================================
11--- git.orig/configure 2014-08-29 10:32:34.464070587 -0700 11--- git.orig/configure
12+++ git/configure 2014-08-29 10:32:34.456070587 -0700 12+++ git/configure
13@@ -4592,7 +4592,7 @@ 13@@ -4593,7 +4593,7 @@ else
14 # Found it, now check the version. 14 # Found it, now check the version.
15 { $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $LD" >&5 15 { $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $LD" >&5
16 $as_echo_n "checking version of $LD... " >&6; } 16 $as_echo_n "checking version of $LD... " >&6; }
@@ -18,17 +18,17 @@ Index: git/configure
18+ ac_prog_version=`$LD --version 2>&1 | sed -n 's/^.*GNU [Bbinutilsd][^.]* \([0-9][0-9]*\.[0-9.]*\).*$/\1/p'` 18+ ac_prog_version=`$LD --version 2>&1 | sed -n 's/^.*GNU [Bbinutilsd][^.]* \([0-9][0-9]*\.[0-9.]*\).*$/\1/p'`
19 case $ac_prog_version in 19 case $ac_prog_version in
20 '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; 20 '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
21 2.1[0-9][0-9]*|2.[2-9][0-9]*|[3-9].*|[1-9][0-9]*) 21 2.1[0-9][0-9]*|2.2[2-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*)
22Index: git/configure.ac 22Index: git/configure.ac
23=================================================================== 23===================================================================
24--- git.orig/configure.ac 2014-08-29 10:32:34.464070587 -0700 24--- git.orig/configure.ac
25+++ git/configure.ac 2014-08-29 10:32:34.460070587 -0700 25+++ git/configure.ac
26@@ -930,7 +930,7 @@ 26@@ -913,7 +913,7 @@ AC_CHECK_PROG_VER(AS, $AS, --version,
27 [GNU assembler.* \([0-9]*\.[0-9.]*\)], 27 [2.1[0-9][0-9]*|2.2[2-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*],
28 [2.1[0-9][0-9]*|2.[2-9][0-9]*|[3-9].*|[1-9][0-9]*], AS=: critic_missing="$critic_missing as") 28 AS=: critic_missing="$critic_missing as")
29 AC_CHECK_PROG_VER(LD, $LD, --version, 29 AC_CHECK_PROG_VER(LD, $LD, --version,
30- [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)], 30- [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)],
31+ [GNU [Bbinutilsd][^.]* \([0-9][0-9]*\.[0-9.]*\)], 31+ [GNU [Bbinutilsd][^.]* \([0-9][0-9]*\.[0-9.]*\)],
32 [2.1[0-9][0-9]*|2.[2-9][0-9]*|[3-9].*|[1-9][0-9]*], LD=: critic_missing="$critic_missing ld") 32 [2.1[0-9][0-9]*|2.2[2-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*],
33 LD=: critic_missing="$critic_missing ld")
33 34
34 # These programs are version sensitive.
diff --git a/meta/recipes-core/glibc/glibc_2.20.bb b/meta/recipes-core/glibc/glibc_2.21.bb
index 8a8b296def..5ebe2503c1 100644
--- a/meta/recipes-core/glibc/glibc_2.20.bb
+++ b/meta/recipes-core/glibc/glibc_2.21.bb
@@ -2,11 +2,12 @@ require glibc.inc
2 2
3DEPENDS += "gperf-native kconfig-frontends-native" 3DEPENDS += "gperf-native kconfig-frontends-native"
4 4
5PV = "2.20" 5SRCREV = "edac0a60c7514b8c9b59488cffdac6b22267e757"
6 6
7SRCREV = "b8079dd0d360648e4e8de48656c5c38972621072" 7#BRANCH = "release/${PV}/master"
8BRANCH = "master"
8 9
9SRC_URI = "git://sourceware.org/git/glibc.git;branch=release/${PV}/master \ 10SRC_URI = "git://sourceware.org/git/glibc.git;branch=${BRANCH} \
10 file://IO-acquire-lock-fix.patch \ 11 file://IO-acquire-lock-fix.patch \
11 file://mips-rld-map-check.patch \ 12 file://mips-rld-map-check.patch \
12 file://etc/ld.so.conf \ 13 file://etc/ld.so.conf \
@@ -16,15 +17,15 @@ SRC_URI = "git://sourceware.org/git/glibc.git;branch=release/${PV}/master \
16 file://ppc-sqrt_finite.patch \ 17 file://ppc-sqrt_finite.patch \
17 file://ppc_slow_ieee754_sqrt.patch \ 18 file://ppc_slow_ieee754_sqrt.patch \
18 file://add_resource_h_to_wait_h.patch \ 19 file://add_resource_h_to_wait_h.patch \
19 file://fsl-ppc-no-fsqrt.patch \
20 file://0001-R_ARM_TLS_DTPOFF32.patch \ 20 file://0001-R_ARM_TLS_DTPOFF32.patch \
21 file://0001-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch \ 21 file://0001-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch \
22 file://fix-tibetian-locales.patch \ 22 file://fix-tibetian-locales.patch \
23 file://ppce6500-32b_slow_ieee754_sqrt.patch \ 23 file://ppce6500-32b_slow_ieee754_sqrt.patch \
24 file://grok_gold.patch \ 24 file://grok_gold.patch \
25 file://fix_am_rootsbindir.patch \ 25 file://fix_am_rootsbindir.patch \
26 file://0001-Add-unused-attribute.patch \
27 file://0001-When-disabling-SSE-also-make-sure-that-fpmath-is-not.patch \
26 ${EGLIBCPATCHES} \ 28 ${EGLIBCPATCHES} \
27 ${CVEPATCHES} \
28 " 29 "
29EGLIBCPATCHES = "\ 30EGLIBCPATCHES = "\
30 file://timezone-re-written-tzselect-as-posix-sh.patch \ 31 file://timezone-re-written-tzselect-as-posix-sh.patch \
@@ -41,11 +42,6 @@ EGLIBCPATCHES = "\
41# file://initgroups_keys.patch \ 42# file://initgroups_keys.patch \
42# 43#
43 44
44CVEPATCHES = "\
45 file://CVE-2014-7817-wordexp-fails-to-honour-WRDE_NOCMD.patch \
46 file://CVE-2012-3406-Stack-overflow-in-vfprintf-BZ-16617.patch \
47 file://CVE-2014-9402_endless-loop-in-getaddr_r.patch \
48 "
49LIC_FILES_CHKSUM = "file://LICENSES;md5=e9a558e243b36d3209f380deb394b213 \ 45LIC_FILES_CHKSUM = "file://LICENSES;md5=e9a558e243b36d3209f380deb394b213 \
50 file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ 46 file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
51 file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \ 47 file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \