* Wed Sep 16 2015 Mike FABIAN <mfabian@redhat.com> - 2.22.90-7 - Add the C.UTF-8 locale (#902094). * Wed Sep 16 2015 Carlos O'Donell <carlos@systemhalted.org> - 2.22.90-6 - Fix GCC 5 and -Werror related build failures. - Fix --install-langs bug which causes SIGABRT (#1262040).
This commit is contained in:
parent
444c2ecfbc
commit
0457f649e3
@ -7,7 +7,11 @@ Setup environment:
|
||||
export QUILT_PATCHES=$PWD
|
||||
|
||||
Setup the source:
|
||||
./quilt-patch.sh
|
||||
./quilt-patch.sh [-f]
|
||||
|
||||
Use `-f` if you want to have quilt-patch always remove the existing
|
||||
source directory before starting. Otherwise you'll be patching on top of
|
||||
an already patched tree generated perhaps by `*pkg prep`.
|
||||
|
||||
Create a new patch:
|
||||
cd glibc-2.17-c758a686/
|
||||
|
@ -313,8 +313,7 @@ fill_archive (struct locarhandle *tmpl_ah,
|
||||
/* Add one for "_" and one for the null terminator. */
|
||||
size_t len = strlen (install_langs_list[i]) + 2;
|
||||
char *install_lang = (char *)xmalloc (len);
|
||||
strncpy (install_lang, install_langs_list[i], len - 2);
|
||||
install_lang[len - 1] = '\0';
|
||||
strcpy (install_lang, install_langs_list[i]);
|
||||
if (strchr (install_lang, '_') == NULL)
|
||||
strcat (install_lang, "_");
|
||||
if (strncmp (name, install_lang, strlen (install_lang)) == 0)
|
||||
|
140
glibc-bug-regex-gcc5.patch
Normal file
140
glibc-bug-regex-gcc5.patch
Normal file
@ -0,0 +1,140 @@
|
||||
Index: glibc-2.22-193-g315267a/posix/bug-regex11.c
|
||||
===================================================================
|
||||
--- glibc-2.22-193-g315267a.orig/posix/bug-regex11.c
|
||||
+++ glibc-2.22-193-g315267a/posix/bug-regex11.c
|
||||
@@ -22,6 +22,7 @@
|
||||
#include <regex.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
+#include <libc-internal.h>
|
||||
|
||||
/* Tests supposed to match. */
|
||||
struct
|
||||
@@ -119,6 +120,14 @@ main (void)
|
||||
continue;
|
||||
}
|
||||
|
||||
+ DIAG_PUSH_NEEDS_COMMENT
|
||||
+#if __GNUC_PREREQ (5, 0)
|
||||
+ /* GCC 5.0 warns about array subscript being above array bounds,
|
||||
+ but that's not entirely possible since n is limited to
|
||||
+ static nmatch which is limited to at most 5 (see tests above).
|
||||
+ This is likely PR/59124 which is still not fixed. */
|
||||
+ DIAG_IGNORE_NEEDS_COMMENT (5.0, "-Warray-bounds")
|
||||
+#endif
|
||||
for (n = 0; n < tests[i].nmatch; ++n)
|
||||
if (rm[n].rm_so != tests[i].rm[n].rm_so
|
||||
|| rm[n].rm_eo != tests[i].rm[n].rm_eo)
|
||||
@@ -130,6 +139,7 @@ main (void)
|
||||
ret = 1;
|
||||
break;
|
||||
}
|
||||
+ DIAG_POP_NEEDS_COMMENT
|
||||
|
||||
regfree (&re);
|
||||
}
|
||||
Index: glibc-2.22-193-g315267a/posix/bug-regex17.c
|
||||
===================================================================
|
||||
--- glibc-2.22-193-g315267a.orig/posix/bug-regex17.c
|
||||
+++ glibc-2.22-193-g315267a/posix/bug-regex17.c
|
||||
@@ -23,6 +23,7 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <locale.h>
|
||||
+#include <libc-internal.h>
|
||||
|
||||
/* Tests supposed to match. */
|
||||
struct
|
||||
@@ -87,6 +88,14 @@ do_test (void)
|
||||
continue;
|
||||
}
|
||||
|
||||
+ DIAG_PUSH_NEEDS_COMMENT
|
||||
+#if __GNUC_PREREQ (5, 0)
|
||||
+ /* GCC 5.0 warns about array subscript being above array bounds,
|
||||
+ but that's not entirely possible since n is limited to
|
||||
+ static nmatch which is limited to at most 5 (see tests above).
|
||||
+ This is likely PR/59124 which is still not fixed. */
|
||||
+ DIAG_IGNORE_NEEDS_COMMENT (5.0, "-Warray-bounds")
|
||||
+#endif
|
||||
for (n = 0; n < tests[i].nmatch; ++n)
|
||||
if (rm[n].rm_so != tests[i].rm[n].rm_so
|
||||
|| rm[n].rm_eo != tests[i].rm[n].rm_eo)
|
||||
@@ -98,6 +107,7 @@ do_test (void)
|
||||
ret = 1;
|
||||
break;
|
||||
}
|
||||
+ DIAG_POP_NEEDS_COMMENT
|
||||
|
||||
regfree (&re);
|
||||
}
|
||||
Index: glibc-2.22-193-g315267a/posix/bug-regex18.c
|
||||
===================================================================
|
||||
--- glibc-2.22-193-g315267a.orig/posix/bug-regex18.c
|
||||
+++ glibc-2.22-193-g315267a/posix/bug-regex18.c
|
||||
@@ -23,6 +23,7 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <locale.h>
|
||||
+#include <libc-internal.h>
|
||||
|
||||
/* Tests supposed to match. */
|
||||
struct
|
||||
@@ -80,6 +81,14 @@ main (void)
|
||||
continue;
|
||||
}
|
||||
|
||||
+ DIAG_PUSH_NEEDS_COMMENT
|
||||
+#if __GNUC_PREREQ (5, 0)
|
||||
+ /* GCC 5.0 warns about array subscript being above array bounds,
|
||||
+ but that's not entirely possible since n is limited to
|
||||
+ static nmatch which is limited to at most 5 (see tests above).
|
||||
+ This is likely PR/59124 which is still not fixed. */
|
||||
+ DIAG_IGNORE_NEEDS_COMMENT (5.0, "-Warray-bounds")
|
||||
+#endif
|
||||
for (n = 0; n < tests[i].nmatch; ++n)
|
||||
if (rm[n].rm_so != tests[i].rm[n].rm_so
|
||||
|| rm[n].rm_eo != tests[i].rm[n].rm_eo)
|
||||
@@ -91,6 +100,7 @@ main (void)
|
||||
ret = 1;
|
||||
break;
|
||||
}
|
||||
+ DIAG_POP_NEEDS_COMMENT
|
||||
|
||||
regfree (&re);
|
||||
}
|
||||
Index: glibc-2.22-193-g315267a/posix/bug-regex30.c
|
||||
===================================================================
|
||||
--- glibc-2.22-193-g315267a.orig/posix/bug-regex30.c
|
||||
+++ glibc-2.22-193-g315267a/posix/bug-regex30.c
|
||||
@@ -23,6 +23,7 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <locale.h>
|
||||
+#include <libc-internal.h>
|
||||
|
||||
/* Tests supposed to match. */
|
||||
struct
|
||||
@@ -80,6 +81,14 @@ do_test (void)
|
||||
continue;
|
||||
}
|
||||
|
||||
+ DIAG_PUSH_NEEDS_COMMENT
|
||||
+#if __GNUC_PREREQ (5, 0)
|
||||
+ /* GCC 5.0 warns about array subscript being above array bounds,
|
||||
+ but that's not entirely possible since n is limited to
|
||||
+ static nmatch which is limited to at most 5 (see tests above).
|
||||
+ This is likely PR/59124 which is still not fixed. */
|
||||
+ DIAG_IGNORE_NEEDS_COMMENT (5.0, "-Warray-bounds")
|
||||
+#endif
|
||||
for (n = 0; n < tests[i].nmatch; ++n)
|
||||
if (rm[n].rm_so != tests[i].rm[n].rm_so
|
||||
|| rm[n].rm_eo != tests[i].rm[n].rm_eo)
|
||||
@@ -91,6 +100,7 @@ do_test (void)
|
||||
ret = 1;
|
||||
break;
|
||||
}
|
||||
+ DIAG_POP_NEEDS_COMMENT
|
||||
|
||||
regfree (&re);
|
||||
}
|
270
glibc-c-utf8-locale.patch
Normal file
270
glibc-c-utf8-locale.patch
Normal file
@ -0,0 +1,270 @@
|
||||
From 2eda7b462b415105f5a05c1323372d4e39d46439 Mon Sep 17 00:00:00 2001
|
||||
From: Mike FABIAN <mfabian@redhat.com>
|
||||
Date: Mon, 10 Aug 2015 15:58:12 +0200
|
||||
Subject: [PATCH] Add a C.UTF-8 locale
|
||||
|
||||
---
|
||||
localedata/SUPPORTED | 1 +
|
||||
localedata/locales/C | 238 +++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
2 files changed, 239 insertions(+)
|
||||
create mode 100644 localedata/locales/C
|
||||
|
||||
diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED
|
||||
index 8ca023e..2a78391 100644
|
||||
--- a/localedata/SUPPORTED
|
||||
+++ b/localedata/SUPPORTED
|
||||
@@ -1,6 +1,7 @@
|
||||
# This file names the currently supported and somewhat tested locales.
|
||||
# If you have any additions please file a glibc bug report.
|
||||
SUPPORTED-LOCALES=\
|
||||
+C.UTF-8/UTF-8 \
|
||||
aa_DJ.UTF-8/UTF-8 \
|
||||
aa_DJ/ISO-8859-1 \
|
||||
aa_ER/UTF-8 \
|
||||
diff --git a/localedata/locales/C b/localedata/locales/C
|
||||
new file mode 100644
|
||||
index 0000000..fdf460e
|
||||
--- /dev/null
|
||||
+++ b/localedata/locales/C
|
||||
@@ -0,0 +1,238 @@
|
||||
+escape_char /
|
||||
+comment_char %
|
||||
+% Locale for C locale in UTF-8
|
||||
+
|
||||
+LC_IDENTIFICATION
|
||||
+title "C locale"
|
||||
+source ""
|
||||
+address ""
|
||||
+contact ""
|
||||
+email "mfabian@redhat.com"
|
||||
+tel ""
|
||||
+fax ""
|
||||
+language "C"
|
||||
+territory ""
|
||||
+revision "1.0"
|
||||
+date "2015-08-10"
|
||||
+%
|
||||
+category "C:2015";LC_IDENTIFICATION
|
||||
+category "C:2015";LC_CTYPE
|
||||
+category "C:2015";LC_COLLATE
|
||||
+category "C:2015";LC_TIME
|
||||
+category "C:2015";LC_NUMERIC
|
||||
+category "C:2015";LC_MONETARY
|
||||
+category "C:2015";LC_MESSAGES
|
||||
+category "C:2015";LC_PAPER
|
||||
+category "C:2015";LC_NAME
|
||||
+category "C:2015";LC_ADDRESS
|
||||
+category "C:2015";LC_TELEPHONE
|
||||
+category "C:2015";LC_MEASUREMENT
|
||||
+END LC_IDENTIFICATION
|
||||
+
|
||||
+LC_CTYPE
|
||||
+copy "i18n"
|
||||
+
|
||||
+translit_start
|
||||
+include "translit_combining";""
|
||||
+translit_end
|
||||
+
|
||||
+END LC_CTYPE
|
||||
+
|
||||
+LC_COLLATE
|
||||
+order_start forward
|
||||
+<U0000>
|
||||
+..
|
||||
+<UFFFF>
|
||||
+<U10000>
|
||||
+..
|
||||
+<U1FFFF>
|
||||
+<U20000>
|
||||
+..
|
||||
+<U2FFFF>
|
||||
+<UE0000>
|
||||
+..
|
||||
+<UEFFFF>
|
||||
+<UF0000>
|
||||
+..
|
||||
+<UFFFFF>
|
||||
+<U100000>
|
||||
+..
|
||||
+<U10FFFF>
|
||||
+UNDEFINED
|
||||
+order_end
|
||||
+END LC_COLLATE
|
||||
+
|
||||
+LC_MONETARY
|
||||
+% This is the 14652 i18n fdcc-set definition for
|
||||
+% the LC_MONETARY category
|
||||
+% (except for the int_curr_symbol and currency_symbol, they are empty in
|
||||
+% the 14652 i18n fdcc-set definition and also empty in
|
||||
+% glibc/locale/C-monetary.c. But localedef complains in that case).
|
||||
+%
|
||||
+% Using "USD" for int_curr_symbol. But maybe "XXX" would be better?
|
||||
+% XXX is "No currency" (https://en.wikipedia.org/wiki/ISO_4217)
|
||||
+int_curr_symbol "<U0055><U0053><U0044><U0020>"
|
||||
+% Using "$" for currency_symbol. But maybe <U00A4> would be better?
|
||||
+% U+00A4 is the "generic currency symbol"
|
||||
+% (https://en.wikipedia.org/wiki/Currency_sign_%28typography%29)
|
||||
+currency_symbol "<U0024>"
|
||||
+mon_decimal_point "<U002E>"
|
||||
+mon_thousands_sep ""
|
||||
+mon_grouping -1
|
||||
+positive_sign ""
|
||||
+negative_sign "<U002D>"
|
||||
+int_frac_digits -1
|
||||
+frac_digits -1
|
||||
+p_cs_precedes -1
|
||||
+int_p_sep_by_space -1
|
||||
+p_sep_by_space -1
|
||||
+n_cs_precedes -1
|
||||
+int_n_sep_by_space -1
|
||||
+n_sep_by_space -1
|
||||
+p_sign_posn -1
|
||||
+n_sign_posn -1
|
||||
+%
|
||||
+END LC_MONETARY
|
||||
+
|
||||
+LC_NUMERIC
|
||||
+% This is the POSIX Locale definition for
|
||||
+% the LC_NUMERIC category.
|
||||
+%
|
||||
+decimal_point "<U002E>"
|
||||
+thousands_sep ""
|
||||
+grouping -1
|
||||
+END LC_NUMERIC
|
||||
+
|
||||
+LC_TIME
|
||||
+% This is the POSIX Locale definition for
|
||||
+% the LC_TIME category.
|
||||
+%
|
||||
+% Abbreviated weekday names (%a)
|
||||
+abday "<U0053><U0075><U006E>";"<U004D><U006F><U006E>";/
|
||||
+ "<U0054><U0075><U0065>";"<U0057><U0065><U0064>";/
|
||||
+ "<U0054><U0068><U0075>";"<U0046><U0072><U0069>";/
|
||||
+ "<U0053><U0061><U0074>"
|
||||
+
|
||||
+% Full weekday names (%A)
|
||||
+day "<U0053><U0075><U006E><U0064><U0061><U0079>";/
|
||||
+ "<U004D><U006F><U006E><U0064><U0061><U0079>";/
|
||||
+ "<U0054><U0075><U0065><U0073><U0064><U0061><U0079>";/
|
||||
+ "<U0057><U0065><U0064><U006E><U0065><U0073><U0064><U0061><U0079>";/
|
||||
+ "<U0054><U0068><U0075><U0072><U0073><U0064><U0061><U0079>";/
|
||||
+ "<U0046><U0072><U0069><U0064><U0061><U0079>";/
|
||||
+ "<U0053><U0061><U0074><U0075><U0072><U0064><U0061><U0079>"
|
||||
+
|
||||
+% Abbreviated month names (%b)
|
||||
+abmon "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
|
||||
+ "<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/
|
||||
+ "<U004D><U0061><U0079>";"<U004A><U0075><U006E>";/
|
||||
+ "<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
|
||||
+ "<U0053><U0065><U0070>";"<U004F><U0063><U0074>";/
|
||||
+ "<U004E><U006F><U0076>";"<U0044><U0065><U0063>"
|
||||
+
|
||||
+% Full month names (%B)
|
||||
+mon "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/
|
||||
+ "<U0046><U0065><U0062><U0072><U0075><U0061><U0072><U0079>";/
|
||||
+ "<U004D><U0061><U0072><U0063><U0068>";/
|
||||
+ "<U0041><U0070><U0072><U0069><U006C>";/
|
||||
+ "<U004D><U0061><U0079>";/
|
||||
+ "<U004A><U0075><U006E><U0065>";/
|
||||
+ "<U004A><U0075><U006C><U0079>";/
|
||||
+ "<U0041><U0075><U0067><U0075><U0073><U0074>";/
|
||||
+ "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
|
||||
+ "<U004F><U0063><U0074><U006F><U0062><U0065><U0072>";/
|
||||
+ "<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
|
||||
+ "<U0044><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
|
||||
+
|
||||
+% Week description, consists of three fields:
|
||||
+% 1. Number of days in a week.
|
||||
+% 2. Gregorian date that is a first weekday (19971130 for Sunday, 19971201 for Monday).
|
||||
+% 3. The weekday number to be contained in the first week of the year.
|
||||
+%
|
||||
+% ISO 8601 conforming applications should use the values 7, 19971201 (a
|
||||
+% Monday), and 4 (Thursday), respectively.
|
||||
+week 7;19971201;4
|
||||
+first_weekday 1
|
||||
+first_workday 1
|
||||
+
|
||||
+% Appropriate date and time representation (%c)
|
||||
+% "%a %b %e %H:%M:%S %Y"
|
||||
+d_t_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0059>"
|
||||
+
|
||||
+% Appropriate date representation (%x)
|
||||
+% "%m/%d/%y"
|
||||
+d_fmt "<U0025><U006D><U002F><U0025><U0064><U002F><U0025><U0079>"
|
||||
+
|
||||
+% Appropriate time representation (%X)
|
||||
+% "%H:%M:%S"
|
||||
+t_fmt "<U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>"
|
||||
+
|
||||
+% Appropriate AM/PM time representation (%r)
|
||||
+% "%I:%M:%S %p"
|
||||
+t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070>"
|
||||
+
|
||||
+% Equivalent of AM/PM (%p) "AM"/"PM"
|
||||
+%
|
||||
+am_pm "<U0041><U004D>";"<U0050><U004D>"
|
||||
+
|
||||
+% Appropriate date representation (date(1)) "%a %b %e %H:%M:%S %Z %Y"
|
||||
+date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U005A><U0020><U0025><U0059>"
|
||||
+END LC_TIME
|
||||
+
|
||||
+LC_MESSAGES
|
||||
+% This is the POSIX Locale definition for
|
||||
+% the LC_NUMERIC category.
|
||||
+%
|
||||
+yesexpr "<U005E><U005B><U0079><U0059><U005D>"
|
||||
+noexpr "<U005E><U005B><U006E><U004E><U005D>"
|
||||
+yesstr "<U0059><U0065><U0073>"
|
||||
+nostr "<U004E><U006F>"
|
||||
+END LC_MESSAGES
|
||||
+
|
||||
+LC_PAPER
|
||||
+% This is the ISO/IEC 14652 "i18n" definition for
|
||||
+% the LC_PAPER category.
|
||||
+% (A4 paper, this is also used in the built in C/POSIX
|
||||
+% locale in glibc/locale/C-paper.c)
|
||||
+height 297
|
||||
+width 210
|
||||
+END LC_PAPER
|
||||
+
|
||||
+LC_NAME
|
||||
+% This is the ISO/IEC 14652 "i18n" definition for
|
||||
+% the LC_NAME category.
|
||||
+% "%p%t%g%t%m%t%f"
|
||||
+% (also used in the built in C/POSIX locale in glibc/locale/C-name.c)
|
||||
+name_fmt "<U0025><U0070><U0025><U0074><U0025><U0067><U0025><U0074>/
|
||||
+<U0025><U006D><U0025><U0074><U0025><U0066>"
|
||||
+END LC_NAME
|
||||
+
|
||||
+LC_ADDRESS
|
||||
+% This is the ISO/IEC 14652 "i18n" definition for
|
||||
+% the LC_ADDRESS category.
|
||||
+% "%a%N%f%N%d%N%b%N%s %h %e %r%N%C-%z %T%N%c%N"
|
||||
+% (also used in the built in C/POSIX locale in glibc/locale/C-address.c)
|
||||
+postal_fmt "<U0025><U0061><U0025><U004E><U0025><U0066><U0025><U004E>/
|
||||
+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
|
||||
+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
|
||||
+<U004E><U0025><U0043><U002D><U0025><U007A><U0020><U0025><U0054><U0025>/
|
||||
+<U004E><U0025><U0063><U0025><U004E>"
|
||||
+END LC_ADDRESS
|
||||
+
|
||||
+LC_TELEPHONE
|
||||
+% This is the ISO/IEC 14652 "i18n" definition for
|
||||
+% the LC_TELEPHONE category.
|
||||
+% "+%c %a %l"
|
||||
+tel_int_fmt "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
|
||||
+<U006C>"
|
||||
+% (also used in the built in C/POSIX locale in glibc/locale/C-telephone.c)
|
||||
+END LC_TELEPHONE
|
||||
+
|
||||
+LC_MEASUREMENT
|
||||
+% This is the ISO/IEC 14652 "i18n" definition for
|
||||
+% the LC_MEASUREMENT category.
|
||||
+% (same as in the built in C/POSIX locale in glibc/locale/C-measurement.c)
|
||||
+%metric
|
||||
+measurement 1
|
||||
+END LC_MEASUREMENT
|
||||
+
|
||||
--
|
||||
2.4.3
|
||||
|
32
glibc-dns-host-gcc5.patch
Normal file
32
glibc-dns-host-gcc5.patch
Normal file
@ -0,0 +1,32 @@
|
||||
Index: glibc-2.22-193-g315267a/resolv/nss_dns/dns-host.c
|
||||
===================================================================
|
||||
--- glibc-2.22-193-g315267a.orig/resolv/nss_dns/dns-host.c
|
||||
+++ glibc-2.22-193-g315267a/resolv/nss_dns/dns-host.c
|
||||
@@ -79,6 +79,7 @@
|
||||
#include <stddef.h>
|
||||
#include <string.h>
|
||||
#include <sys/syslog.h>
|
||||
+#include <libc-internal.h>
|
||||
|
||||
#include "nsswitch.h"
|
||||
|
||||
@@ -561,10 +562,19 @@ addrsort (char **ap, int num)
|
||||
num = MAX_NR_ADDRS;
|
||||
for (i = 0; i < num; i++, p++)
|
||||
{
|
||||
+ DIAG_PUSH_NEEDS_COMMENT
|
||||
+#if __GNUC_PREREQ (5, 0)
|
||||
+ /* GCC 5.0 warns about array subscript being above array bounds,
|
||||
+ but that's not entirely possible since i is limited to
|
||||
+ _res.nsort which is limited to MAXRESOLVSORT. This
|
||||
+ is likely PR/59124 which is still not fixed. */
|
||||
+ DIAG_IGNORE_NEEDS_COMMENT (5.0, "-Warray-bounds")
|
||||
+#endif
|
||||
for (j = 0 ; (unsigned)j < _res.nsort; j++)
|
||||
if (_res.sort_list[j].addr.s_addr ==
|
||||
(((struct in_addr *)(*p))->s_addr & _res.sort_list[j].mask))
|
||||
break;
|
||||
+ DIAG_POP_NEEDS_COMMENT
|
||||
aval[i] = j;
|
||||
if (needsort == 0 && i > 0 && j < aval[i-1])
|
||||
needsort = i;
|
32
glibc-gethnamaddr-gcc5.patch
Normal file
32
glibc-gethnamaddr-gcc5.patch
Normal file
@ -0,0 +1,32 @@
|
||||
Index: glibc-2.22-193-g315267a/resolv/gethnamaddr.c
|
||||
===================================================================
|
||||
--- glibc-2.22-193-g315267a.orig/resolv/gethnamaddr.c
|
||||
+++ glibc-2.22-193-g315267a/resolv/gethnamaddr.c
|
||||
@@ -71,6 +71,7 @@ static char sccsid[] = "@(#)gethostnamad
|
||||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
#include <syslog.h>
|
||||
+#include <libc-internal.h>
|
||||
|
||||
#define RESOLVSORT
|
||||
|
||||
@@ -986,10 +987,19 @@ addrsort(ap, num)
|
||||
|
||||
p = ap;
|
||||
for (i = 0; i < num; i++, p++) {
|
||||
+ DIAG_PUSH_NEEDS_COMMENT
|
||||
+#if __GNUC_PREREQ (5, 0)
|
||||
+ /* GCC 5.0 warns about array subscript being above array bounds,
|
||||
+ but that's not entirely possible since i is limited to
|
||||
+ _res.nsort which is limited to MAXRESOLVSORT. This
|
||||
+ is likely PR/59124 which is still not fixed. */
|
||||
+ DIAG_IGNORE_NEEDS_COMMENT (5.0, "-Warray-bounds")
|
||||
+#endif
|
||||
for (j = 0 ; (unsigned)j < _res.nsort; j++)
|
||||
if (_res.sort_list[j].addr.s_addr ==
|
||||
(((struct in_addr *)(*p))->s_addr & _res.sort_list[j].mask))
|
||||
break;
|
||||
+ DIAG_POP_NEEDS_COMMENT
|
||||
aval[i] = j;
|
||||
if (needsort == 0 && i > 0 && j < aval[i-1])
|
||||
needsort = i;
|
72
glibc-ld-ctype-gcc5.patch
Normal file
72
glibc-ld-ctype-gcc5.patch
Normal file
@ -0,0 +1,72 @@
|
||||
Index: glibc-2.22-193-g315267a/locale/programs/ld-ctype.c
|
||||
===================================================================
|
||||
--- glibc-2.22-193-g315267a.orig/locale/programs/ld-ctype.c
|
||||
+++ glibc-2.22-193-g315267a/locale/programs/ld-ctype.c
|
||||
@@ -31,6 +31,7 @@
|
||||
#include <wctype.h>
|
||||
#include <stdint.h>
|
||||
#include <sys/uio.h>
|
||||
+#include <libc-internal.h>
|
||||
|
||||
#include "localedef.h"
|
||||
#include "charmap.h"
|
||||
@@ -2534,9 +2535,19 @@ with character code range values one mus
|
||||
{
|
||||
size_t cnt;
|
||||
|
||||
+ DIAG_PUSH_NEEDS_COMMENT
|
||||
+#if __GNUC_PREREQ (5, 0)
|
||||
+ /* GCC 5.0 warns about array subscript being above array bounds,
|
||||
+ but that's not possible since ctype_map_new prevents
|
||||
+ map_collection_nr from being greater than MAX_NR_CHARMP which
|
||||
+ is the size of mapnames. This is likely PR/59124 which is still
|
||||
+ not fixed. */
|
||||
+ DIAG_IGNORE_NEEDS_COMMENT (5.0, "-Warray-bounds")
|
||||
+#endif
|
||||
for (cnt = 2; cnt < ctype->map_collection_nr; ++cnt)
|
||||
if (strcmp (now->val.str.startmb, ctype->mapnames[cnt]) == 0)
|
||||
break;
|
||||
+ DIAG_POP_NEEDS_COMMENT
|
||||
|
||||
if (cnt < ctype->map_collection_nr)
|
||||
free (now->val.str.startmb);
|
||||
@@ -2807,9 +2818,19 @@ previous definition was here")));
|
||||
|
||||
/* This could mean one of several things. First test whether
|
||||
it's a character class name. */
|
||||
+ DIAG_PUSH_NEEDS_COMMENT
|
||||
+#if __GNUC_PREREQ (5, 0)
|
||||
+ /* GCC 5.0 warns about array subscript being above array bounds,
|
||||
+ but that's not possible since ctype_class_new prevents
|
||||
+ nr_charclass from being greater than MAX_NR_CHARCLASS which
|
||||
+ is the size of classnames. This is likely PR/59124 which is still
|
||||
+ not fixed. */
|
||||
+ DIAG_IGNORE_NEEDS_COMMENT (5.0, "-Warray-bounds")
|
||||
+#endif
|
||||
for (cnt = 0; cnt < ctype->nr_charclass; ++cnt)
|
||||
if (strcmp (now->val.str.startmb, ctype->classnames[cnt]) == 0)
|
||||
break;
|
||||
+ DIAG_POP_NEEDS_COMMENT
|
||||
if (cnt < ctype->nr_charclass)
|
||||
{
|
||||
class_bit = _ISwbit (cnt);
|
||||
@@ -2817,9 +2838,19 @@ previous definition was here")));
|
||||
free (now->val.str.startmb);
|
||||
goto read_charclass;
|
||||
}
|
||||
+ DIAG_PUSH_NEEDS_COMMENT
|
||||
+#if __GNUC_PREREQ (5, 0)
|
||||
+ /* GCC 5.0 warns about array subscript being above array bounds,
|
||||
+ but that's not possible since ctype_map_new prevents
|
||||
+ map_collection_nr from being greater than MAX_NR_CHARMP which
|
||||
+ is the size of mapnames. This is likely PR/59124 which is still
|
||||
+ not fixed. */
|
||||
+ DIAG_IGNORE_NEEDS_COMMENT (5.0, "-Warray-bounds")
|
||||
+#endif
|
||||
for (cnt = 0; cnt < ctype->map_collection_nr; ++cnt)
|
||||
if (strcmp (now->val.str.startmb, ctype->mapnames[cnt]) == 0)
|
||||
break;
|
||||
+ DIAG_POP_NEEDS_COMMENT
|
||||
if (cnt < ctype->map_collection_nr)
|
||||
{
|
||||
mapidx = cnt;
|
29
glibc-res-hconf-gcc5.patch
Normal file
29
glibc-res-hconf-gcc5.patch
Normal file
@ -0,0 +1,29 @@
|
||||
Index: glibc-2.22-193-g315267a/resolv/res_hconf.c
|
||||
===================================================================
|
||||
--- glibc-2.22-193-g315267a.orig/resolv/res_hconf.c
|
||||
+++ glibc-2.22-193-g315267a/resolv/res_hconf.c
|
||||
@@ -45,6 +45,7 @@
|
||||
#include "ifreq.h"
|
||||
#include "res_hconf.h"
|
||||
#include <wchar.h>
|
||||
+#include <libc-internal.h>
|
||||
|
||||
#if IS_IN (libc)
|
||||
# define fgets_unlocked __fgets_unlocked
|
||||
@@ -523,7 +524,16 @@ _res_hconf_trim_domain (char *hostname)
|
||||
|
||||
for (i = 0; i < _res_hconf.num_trimdomains; ++i)
|
||||
{
|
||||
+ DIAG_PUSH_NEEDS_COMMENT
|
||||
+#if __GNUC_PREREQ (5, 0)
|
||||
+ /* GCC 5.0 warns about array subscript being above array bounds,
|
||||
+ but that's not entirely possible since i is limited to
|
||||
+ num_trimdomains which is limited to <= TRIMDOMAINS_MAX. This
|
||||
+ is likely PR/59124 which is still not fixed. */
|
||||
+ DIAG_IGNORE_NEEDS_COMMENT (5.0, "-Warray-bounds")
|
||||
+#endif
|
||||
const char *trim = _res_hconf.trimdomain[i];
|
||||
+ DIAG_POP_NEEDS_COMMENT
|
||||
|
||||
trim_len = strlen (trim);
|
||||
if (hostname_len > trim_len
|
43
glibc.spec
43
glibc.spec
@ -1,6 +1,6 @@
|
||||
%define glibcsrcdir glibc-2.22-193-g315267a
|
||||
%define glibcversion 2.22.90
|
||||
%define glibcrelease 5%{?dist}
|
||||
%define glibcrelease 6%{?dist}
|
||||
# Pre-release tarballs are pulled in from git using a command that is
|
||||
# effectively:
|
||||
#
|
||||
@ -218,6 +218,17 @@ Patch0052: glibc-disable-rwlock-elision.patch
|
||||
# symlink to it.
|
||||
Patch0053: glibc-cs-path.patch
|
||||
|
||||
# Fix -Warray-bounds warning for GCC5, likely PR/59124 or PR/66422.
|
||||
# See Fedora bug #1263817.
|
||||
Patch0054: glibc-res-hconf-gcc5.patch
|
||||
Patch0055: glibc-ld-ctype-gcc5.patch
|
||||
Patch0056: glibc-gethnamaddr-gcc5.patch
|
||||
Patch0057: glibc-dns-host-gcc5.patch
|
||||
Patch0058: glibc-bug-regex-gcc5.patch
|
||||
|
||||
# Add C.UTF-8 locale into /usr/lib/locale/
|
||||
Patch0059: glibc-c-utf8-locale.patch
|
||||
|
||||
##############################################################################
|
||||
#
|
||||
# Patches from upstream
|
||||
@ -307,10 +318,18 @@ BuildRequires: libselinux-devel >= 1.33.4-3
|
||||
BuildRequires: nss-devel
|
||||
%endif
|
||||
BuildRequires: audit-libs-devel >= 1.1.3, sed >= 3.95, libcap-devel, gettext
|
||||
BuildRequires: /bin/ps, /bin/kill, /bin/awk
|
||||
# We need procps-ng (/bin/ps), util-linux (/bin/kill), and gawk (/bin/awk),
|
||||
# but it is more flexible to require the actual programs and let rpm infer
|
||||
# the packages. However, until bug 1259054 is widely fixed we avoid the
|
||||
# following:
|
||||
# BuildRequires: /bin/ps, /bin/kill, /bin/awk
|
||||
# And use instead (which should be reverted some time in the future):
|
||||
BuildRequires: procps-ng, util-linux, gawk
|
||||
BuildRequires: systemtap-sdt-devel
|
||||
|
||||
%if %{with valgrind}
|
||||
# Require valgrind for smoke testing the dynamic loader to make sure we
|
||||
# have not broken valgrind.
|
||||
BuildRequires: /usr/bin/valgrind
|
||||
%endif
|
||||
|
||||
@ -623,12 +642,17 @@ microbenchmark tests on the system.
|
||||
%patch0053 -p1
|
||||
%patch3002 -p1
|
||||
%patch2035 -p1
|
||||
|
||||
%patch2101 -p1
|
||||
%patch2102 -p1
|
||||
%patch2103 -p1
|
||||
%patch2104 -p1
|
||||
%patch2105 -p1
|
||||
%patch0054 -p1
|
||||
%patch0055 -p1
|
||||
%patch0056 -p1
|
||||
%patch0057 -p1
|
||||
%patch0058 -p1
|
||||
%patch0059 -p1
|
||||
|
||||
##############################################################################
|
||||
# %%prep - Additional prep required...
|
||||
@ -1010,7 +1034,9 @@ $olddir/build-%{target}/elf/ld.so \
|
||||
--library-path $olddir/build-%{target}/ \
|
||||
$olddir/build-%{target}/locale/localedef \
|
||||
--prefix ${RPM_BUILD_ROOT} --add-to-archive \
|
||||
*_*
|
||||
C.utf8 *_*
|
||||
# Removes all locales except C.utf8 which remains as fallback in
|
||||
# the event the user cleans the locale-archive using localedef.
|
||||
rm -rf *_*
|
||||
mv locale-archive{,.tmpl}
|
||||
popd
|
||||
@ -1767,6 +1793,8 @@ rm -f *.filelist*
|
||||
%files -f common.filelist common
|
||||
%defattr(-,root,root)
|
||||
%dir %{_prefix}/lib/locale
|
||||
%dir %{_prefix}/lib/locale/C.utf8
|
||||
%{_prefix}/lib/locale/C.utf8/*
|
||||
%attr(0644,root,root) %verify(not md5 size mtime) %{_prefix}/lib/locale/locale-archive.tmpl
|
||||
%attr(0644,root,root) %verify(not md5 size mtime mode) %ghost %config(missingok,noreplace) %{_prefix}/lib/locale/locale-archive
|
||||
%dir %attr(755,root,root) /etc/default
|
||||
@ -1823,6 +1851,13 @@ rm -f *.filelist*
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Wed Sep 16 2015 Mike FABIAN <mfabian@redhat.com> - 2.22.90-7
|
||||
- Add the C.UTF-8 locale (#902094).
|
||||
|
||||
* Wed Sep 16 2015 Carlos O'Donell <carlos@systemhalted.org> - 2.22.90-6
|
||||
- Fix GCC 5 and -Werror related build failures.
|
||||
- Fix --install-langs bug which causes SIGABRT (#1262040).
|
||||
|
||||
* Fri Aug 28 2015 Carlos O'Donell <carlos@systemhalted.org> - 2.22.90-5
|
||||
- Auto-sync with upstream master.
|
||||
|
||||
|
@ -153,8 +153,8 @@ main (void)
|
||||
#ifndef ICONVCONFIG
|
||||
#define ICONVCONFIG "/usr/sbin/iconvconfig"
|
||||
#endif
|
||||
const char *iconv_cache = GCONV_MODULES_DIR"/gconv-modules.cache";
|
||||
const char *iconv_dir = GCONV_MODULES_DIR;
|
||||
char *iconv_cache = GCONV_MODULES_DIR"/gconv-modules.cache";
|
||||
char *iconv_dir = GCONV_MODULES_DIR;
|
||||
if (is_ia64 ())
|
||||
{
|
||||
iconv_cache = "/emul/ia32-linux"GCONV_MODULES_DIR"/gconv-modules.cache";
|
||||
|
@ -4,8 +4,17 @@ export QUILT_PATCHES=$PWD
|
||||
# Extract source file name from sources file,
|
||||
# and assume it's the same name as the directory.
|
||||
source=`cat sources | sed -e 's,^.* ,,g'`
|
||||
tar zxvf $source
|
||||
srcdir=${source%.tar.gz}
|
||||
if [ "$1" == "-f" ] && [ -d "$srcdir" ]; then
|
||||
echo Cleaning up $srcdir
|
||||
rm -rf $srcdir
|
||||
fi
|
||||
if [ -d "$srcdir" ]; then
|
||||
# Don't overwrite existing source directory.
|
||||
echo "ERROR: Source directory $srcdir already exists. Use -f to force cleanup step."
|
||||
exit 1
|
||||
fi
|
||||
tar zxvf $source
|
||||
echo "Entering $srcdir"
|
||||
pushd $srcdir
|
||||
# Apply all patches.
|
||||
|
6
series
6
series
@ -37,3 +37,9 @@ glibc-rh1238412-addition-and-fixes-for-translit_neutral.patch -p1
|
||||
glibc-rh1238412-update-the-translit-files-to-unicode-7.0.0.patch -p1
|
||||
glibc-rh1238412-add-translit-rules-for-da-nb-nn-sv-locales.patch -p1
|
||||
glibc-rh1238412-unicode-8.0.0-update.patch -p1
|
||||
glibc-res-hconf-gcc5.patch -p1
|
||||
glibc-ld-ctype-gcc5.patch -p1
|
||||
glibc-gethnamaddr-gcc5.patch -p1
|
||||
glibc-dns-host-gcc5.patch -p1
|
||||
glibc-bug-regex-gcc5.patch -p1
|
||||
glibc-c-utf8-locale.patch -p1
|
||||
|
Loading…
Reference in New Issue
Block a user