[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commits] r23912 - in /fsf/trunk/libc: ./ localedata/ localedata/locales/ math/ nptl/ ports/ ports/sysdeps/unix/sysv/linux/hppa/ sysde...
- To: commits@xxxxxxxxxx
- Subject: [Commits] r23912 - in /fsf/trunk/libc: ./ localedata/ localedata/locales/ math/ nptl/ ports/ ports/sysdeps/unix/sysv/linux/hppa/ sysde...
- From: eglibc@xxxxxxxxxx
- Date: Wed, 04 Sep 2013 00:02:05 -0000
Author: eglibc
Date: Wed Sep 4 00:02:03 2013
New Revision: 23912
Log:
Import glibc-mainline for 2013-09-04
Added:
fsf/trunk/libc/localedata/locales/quz_PE
fsf/trunk/libc/sysdeps/unix/sysv/linux/tst-fanotify.c
fsf/trunk/libc/sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S
Modified:
fsf/trunk/libc/ChangeLog
fsf/trunk/libc/NEWS
fsf/trunk/libc/Versions.def
fsf/trunk/libc/localedata/ChangeLog
fsf/trunk/libc/localedata/SUPPORTED
fsf/trunk/libc/localedata/locales/ht_HT
fsf/trunk/libc/math/libm-test.inc
fsf/trunk/libc/nptl/ChangeLog
fsf/trunk/libc/nptl/tst-cleanup2.c
fsf/trunk/libc/ports/ChangeLog
fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/hppa/Versions
fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/hppa/syscalls.list
fsf/trunk/libc/sysdeps/i386/fpu/libm-test-ulps
fsf/trunk/libc/sysdeps/ieee754/flt-32/e_lgammaf_r.c
fsf/trunk/libc/sysdeps/unix/sysv/linux/Makefile
fsf/trunk/libc/sysdeps/x86_64/fpu/libm-test-ulps
fsf/trunk/libc/sysdeps/x86_64/multiarch/Makefile
fsf/trunk/libc/sysdeps/x86_64/multiarch/ifunc-impl-list.c
fsf/trunk/libc/sysdeps/x86_64/multiarch/strcmp.S
Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Wed Sep 4 00:02:03 2013
@@ -1,3 +1,30 @@
+2013-09-03 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ [BZ #15427]
+ * sysdeps/ieee754/flt-32/e_lgammaf_r.c (__ieee754_lgammaf_r): Use
+ 2**-30 instead of 2**-70 as threshold for returning -log(|x|).
+ * math/libm-test.inc (lgamma_test_data): Add more tests.
+ * sysdeps/i386/fpu/libm-test-ulps: Update.
+ * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
+
+2013-09-03 OndÃÂej BÃÂlka <neleai@xxxxxxxxx>
+
+ * sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S: New file.
+ * sysdeps/x86_64/multiarch/ifunc-impl-list.c (__libc_ifunc_impl_list):
+ Add ifunc.
+ * sysdeps/x86_64/multiarch/Makefile (sysdep_routines):
+ Add strcmp-sse2-unaligned
+ * sysdeps/x86_64/multiarch/strcmp.S (strcmp): Add ifunc.
+
+2013-09-02 Mike Frysinger <vapier@xxxxxxxxxx>
+
+ * Versions.def (libc): Add GLIBC_2.19.
+
+2013-09-02 Mike Frysinger <vapier@xxxxxxxxxx>
+
+ * sysdeps/unix/sysv/linux/tst-fanotify.c: New test.
+ * sysdeps/unix/sysv/linux/Makefile (tests): Add tst-fanotify.
+
2013-09-02 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
[BZ #14155]
Modified: fsf/trunk/libc/NEWS
==============================================================================
--- fsf/trunk/libc/NEWS (original)
+++ fsf/trunk/libc/NEWS Wed Sep 4 00:02:03 2013
@@ -9,13 +9,14 @@
* The following bugs are resolved with this release:
- 14155, 14699, 15522, 15531, 15532, 15736, 15749, 15797, 15867, 15890,
- 15897, 15905, 15909.
+ 14155, 14699, 15427, 15522, 15531, 15532, 15736, 15749, 15797, 15867,
+ 15886, 15887, 15890, 15897, 15905, 15909, 15921.
* CVE-2013-4237 The readdir_r function could write more than NAME_MAX bytes
to the d_name member of struct dirent, or omit the terminating NUL
character. (Bugzilla #14699).
+* New locales: quz_PE.
Version 2.18
Modified: fsf/trunk/libc/Versions.def
==============================================================================
--- fsf/trunk/libc/Versions.def (original)
+++ fsf/trunk/libc/Versions.def Wed Sep 4 00:02:03 2013
@@ -35,6 +35,7 @@
GLIBC_2.16
GLIBC_2.17
GLIBC_2.18
+ GLIBC_2.19
HURD_CTHREADS_0.3
%ifdef EXPORT_UNWIND_FIND_FDE
GCC_3.0
Modified: fsf/trunk/libc/localedata/ChangeLog
==============================================================================
--- fsf/trunk/libc/localedata/ChangeLog (original)
+++ fsf/trunk/libc/localedata/ChangeLog Wed Sep 4 00:02:03 2013
@@ -1,3 +1,12 @@
+2013-09-03 Chris Leonard <cjl@xxxxxxxxxxxxx>
+
+ [BZ#15886]
+ * locales/ht_HT: 1.1 revision of ht_HT locale.
+
+ [BZ#15887]
+ * locales/quz_PE: New locale for quz_PE.
+ * SUPPORTED: Add quz_PE.
+
2013-08-30 OndÃÂej BÃÂlka <neleai@xxxxxxxxx>
* tests-mbwc/dat_wcsncat.c: Fix typos.
Modified: fsf/trunk/libc/localedata/SUPPORTED
==============================================================================
--- fsf/trunk/libc/localedata/SUPPORTED (original)
+++ fsf/trunk/libc/localedata/SUPPORTED Wed Sep 4 00:02:03 2013
@@ -344,6 +344,7 @@
pt_PT.UTF-8/UTF-8 \
pt_PT/ISO-8859-1 \
pt_PT@euro/ISO-8859-15 \
+quz_PE/UTF-8 \
ro_RO.UTF-8/UTF-8 \
ro_RO/ISO-8859-2 \
ru_RU.KOI8-R/KOI8-R \
Modified: fsf/trunk/libc/localedata/locales/ht_HT
==============================================================================
--- fsf/trunk/libc/localedata/locales/ht_HT (original)
+++ fsf/trunk/libc/localedata/locales/ht_HT Wed Sep 4 00:02:03 2013
@@ -1,35 +1,45 @@
comment_char %
-escape_char /
-%
-% U006Breyol Language Locale for Haiti
-% Source: OLPC
-% Language: ht
-% Contact: olpchaiti.org
-% Address: 22 rue 2, Port-au-Prince
-% Email: contact@xxxxxxxxxxxxx
-% Territory: HT
-% Revision: 1.0
-% Date: 2008-08-17
-% Users: general
-% Charset: ISO-8859-1
-% Authors:
-% 2008-08-17, bzg@xxxxxxxxxx
-%
-% Distribution and use is free, also
-% for commercial purposes.
+escape_char /
+% Charset: UTF-8
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Haitian Kreyol (KreyÃÂl Ayisyen) language locale for Haiti
+%
+% Prepared and contributed to glibc by Bastien Guerry <bzg@xxxxxxxxxx> and
+% Chris Leonard <cjl@xxxxxxxxxxxxx>
+% This locale data has been developed in collaboration between:
+% Sugar Labs, http://www.sugarlabs.org/
+% One Laptop Per Child, http://one.laptop.org/
+% OLPC France, http://olpc-france.org
+% and members of the OLPC Haiti volunteer team
+%
+% build with: localedef -f UTF-8 -i ht_HT ht_HT
+%
+% This file is a part of GNU C Library (glibc) and contains locale data. The
+% Free Software Foundation does not claim any copyright interest in the
+% locale data contained in this file. The foregoing does not affect the
+% license of GNU C Library (glibc) as a whole. It does not exempt you from the
+% conditions of the license if your use would otherwise be governed by
+% that license.
+%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
LC_IDENTIFICATION
-title "Kreyol locale for Haiti"
-source "OLPC"
-address ""
-contact "olpchaiti.org"
-email "contact@xxxxxxxxxxxxx"
-tel ""
-fax ""
-language "U006Breyol"
-territory "Haiti"
-revision "1.0"
-date "2008-08-17"
+title "Kreyol locale for Haiti"
+source "Sugar Labs / OLPC"
+address ""
+contact "sugarlabs.org"
+email "libc-alpha@xxxxxxxxxxxxxx"
+tel ""
+fax ""
+language "Kreyol"
+territory "Haiti"
+revision "1.1"
+date "2013-08-09"
%
category "ht_HT:2000";LC_IDENTIFICATION
category "ht_HT:2000";LC_CTYPE
@@ -37,35 +47,91 @@
category "ht_HT:2000";LC_TIME
category "ht_HT:2000";LC_NUMERIC
category "ht_HT:2000";LC_MONETARY
+category "ht_HT:2000";LC_PAPER
+category "ht_HT:2000";LC_MEASUREMENT
category "ht_HT:2000";LC_MESSAGES
-category "ht_HT:2000";LC_PAPER
category "ht_HT:2000";LC_NAME
category "ht_HT:2000";LC_ADDRESS
category "ht_HT:2000";LC_TELEPHONE
-
END LC_IDENTIFICATION
LC_CTYPE
+% In Haitian Kreyol, accents are simply omitted if they cannot be represented.
copy "i18n"
-
translit_start
-
-% In Haiti, accents are simply omitted if they cannot be represented.
include "translit_combining";""
-
translit_end
-
END LC_CTYPE
LC_COLLATE
-% Copy the template from ISO/IEC 14651
copy "iso14651_t1"
END LC_COLLATE
-LC_MESSAGES
-yesexpr "<U005E><U005B><U006F><U006F><U0079><U0079><U005D><U002E><U002A>"
-noexpr "<U005E><U005B><U006E><U006E><U005D><U002E><U002A>"
-END LC_MESSAGES
+LC_TIME
+% janvye, fevriye, mas, avril, me, jen, jiyÃÂ, out, septanm, oktÃÂb, novanm, desanm
+mon "<U006A><U0061><U006E><U0076><U0079><U0065>";/
+ "<U0066><U0065><U0076><U0072><U0069><U0079><U0065>";/
+ "<U006D><U0061><U0073>";/
+ "<U0061><U0076><U0072><U0069><U006C>";/
+ "<U006D><U0065>";/
+ "<U006A><U0065><U006E>";/
+ "<U006A><U0069><U0079><U00E8>";/
+ "<U006F><U0075><U0074>";/
+ "<U0073><U0065><U0070><U0074><U0061><U006E><U006D>";/
+ "<U006F><U006B><U0074><U00F2><U0062>";/
+ "<U006E><U006F><U0076><U0061><U006E><U006D>";/
+ "<U0064><U0065><U0073><U0061><U006E><U006D>"
+% jan, fev, mas, avr, me, jen, jiy, out, sep, okt, nov, des
+abmon "<U006A><U0061><U006E>";/
+ "<U0066><U0065><U0076>";/
+ "<U006D><U0061><U0073>";/
+ "<U0061><U0076><U0072>";/
+ "<U006D><U0065>";/
+ "<U006A><U0065><U006E>";/
+ "<U006A><U0069><U0079>";/
+ "<U006F><U0075><U0074>";/
+ "<U0073><U0065><U0070>";/
+ "<U006F><U006B><U0074>";/
+ "<U006E><U006F><U0076>";/
+ "<U0064><U0065><U0073>"
+% dimanch, lendi , madi, mÃÂkredi, jedi, vandredi, samdi
+day "<U0064><U0069><U006D><U0061><U006E><U0063><U0068>";/
+ "<U006C><U0065><U006E><U0064><U0069><U0020>";/
+ "<U006D><U0061><U0064><U0069>";/
+ "<U006D><U00E8><U006B><U0072><U0065><U0064><U0069>";/
+ "<U006A><U0065><U0064><U0069>";/
+ "<U0076><U0061><U006E><U0064><U0072><U0065><U0064><U0069>";/
+ "<U0073><U0061><U006D><U0064><U0069>"
+% dim, len , mad, mÃÂk, jed, van, sam
+abday "<U0064><U0069><U006D>";/
+ "<U006C><U0065><U006E><U0020>";/
+ "<U006D><U0061><U0064>";/
+ "<U006D><U00E8><U006B>";/
+ "<U006A><U0065><U0064>";/
+ "<U0076><U0061><U006E>";/
+ "<U0073><U0061><U006D>"
+week 7;19971130;7
+first_weekday 1
+first_workday 2
+% %a %d %b %Y %T %Z
+d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+% %d/%m/%Y
+d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0059>"
+% %T
+t_fmt "<U0025><U0054>"
+am_pm "";""
+t_fmt_ampm ""
+% %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_NUMERIC
+% ,
+decimal_point "<U002C>"
+%
+thousands_sep "<U0020>"
+grouping 3
+END LC_NUMERIC
LC_MONETARY
int_curr_symbol "<U0048><U0054><U0047><U0020>"
@@ -85,81 +151,27 @@
n_sign_posn 1
END LC_MONETARY
-LC_NUMERIC
-decimal_point "<U002C>"
-thousands_sep "<U0020>"
-grouping 3
-END LC_NUMERIC
-
-LC_TIME
-abday "<U0064><U0069><U006D><U002E>";/
- "<U006C><U0045><U006E><U002E>";/
- "<U006D><U0061><U0064><U002E>";/
- "<U006D><U00E8><U006B><U002E>";/
- "<U006A><U0045><U0064><U002E>";/
- "<U0076><U0061><U006E><U002E>";/
- "<U0073><U0061><U006D><U002E>"
-day "<U0064><U0069><U006D><U0061><U006E><U0063><U0068>";/
- "<U006C><U0045><U006E><U0064><U0069>";/
- "<U006D><U0061><U0064><U0069>";/
- "<U006D><U00E8><U006B><U0052><U0045><U0064><U0069>";/
- "<U006A><U0045><U0064><U0069>";/
- "<U0076><U0061><U006E><U0064><U0052><U0045><U0064><U0069>";/
- "<U0073><U0061><U006D><U0064><U0069>"
-abmon "<U006A><U0061><U006E><U0076><U002E>";/
- "<U0066><U0045><U0076><U0052><U002E>";/
- "<U006D><U0061><U0073>";/
- "<U0061><U0076><U0052><U0069><U006C>";/
- "<U006D><U0045>";/
- "<U006A><U0045><U006E>";/
- "<U006A><U0069><U0079><U00E8><U002E>";/
- "<U006F><U0055><U0074>";/
- "<U0073><U0045><U0070><U0074><U002E>";/
- "<U006F><U006B><U0074><U002E>";/
- "<U006E><U006F><U0076><U002E>";/
- "<U0064><U0045><U0073><U002E>"
-mon "<U006A><U0061><U006E><U0076><U0079><U0045>";/
- "<U0066><U0045><U0076><U0052><U0069><U0079><U0045>";/
- "<U006D><U0061><U0073>";/
- "<U0061><U0076><U0052><U0069><U006C>";/
- "<U006D><U0045>";/
- "<U006A><U0045><U006E>";/
- "<U006A><U0069><U0079><U00E8>";/
- "<U006F><U0055><U0074>";/
- "<U0073><U0045><U0070><U0074><U0061><U006E><U006D>";/
- "<U006F><U0063><U0074><U006F><U0062><U0052><U0045>";/
- "<U006E><U006F><U0076><U0061><U006E><U006D>";/
- "<U0064><U0045><U0073><U0061><U006E><U006D>"
-d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0079><U0020><U0025><U0074><U0020><U0025><U005A>"
-d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
-t_fmt "<U0025><U0074>"
-am_pm "";""
-t_fmt_ampm ""
-date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0045>/
-<U0020><U0025><U0068><U003A><U0025><U006D><U003A><U0025><U0073><U0020>/
-<U0025><U005A><U0020><U0025><U0079>"
-
-week 7;19971130;4
-first_weekday 2
-first_workday 2
-END LC_TIME
-
LC_PAPER
+% A4
height 297
width 210
END LC_PAPER
-LC_TELEPHONE
-tel_int_fmt "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
-<U006C>"
-tel_dom_fmt "<U0025><U0061><U0020><U0025><U006C>"
-int_prefix "<U0035><U0030><U0039>"
-int_select "<U0030><U0030>"
-END LC_TELEPHONE
-
LC_MEASUREMENT
+% metric
measurement 1
END LC_MEASUREMENT
+
+LC_MESSAGES
+% ^[wWoOyY].*
+yesexpr "<U005E><U005B><U0077><U0057><U006F><U004F><U0079><U0059><U005D><U002E><U002A>"
+% ^[nN].*
+noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+% Wi
+yesstr "<U0057><U0069>"
+% Non
+nostr "<U004E><U006F><U006E>"
+END LC_MESSAGES
LC_NAME
name_fmt "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
@@ -172,7 +184,32 @@
<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0052><U0025>/
<U004E><U0025><U0025><U005A><U0020><U0025><U0074><U0025>/
<U004E><U0025><U0063><U0025><U004E>"
-country_ab2 "<U0068><U0074>"
-country_ab3 "<U0068><U0074><U0069>"
-%country_num 332
+% Ayiti
+country_name "<U0041><U0079><U0069><U0074><U0069>"
+% HT
+country_post "<U0048><U0054>"
+% HT
+country_ab2 "<U0048><U0054>"
+% HTI
+country_ab3 "<U0048><U0054><U0049>"
+country_num 332
+country_isbn 99935
+%
+% KreyÃÂl ayisyen
+lang_name "<U004B><U0072><U0065><U0079><U00F2><U006C><U0020><U0061><U0079><U0069><U0073><U0079><U0065><U006E>"
+% ht
+lang_ab "<U0068><U0074>"
+% hat
+lang_term "<U0068><U0061><U0074>"
END LC_ADDRESS
+
+LC_TELEPHONE
+% +%c %a %l
+tel_int_fmt "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025><U006C>"
+% %a %l
+tel_dom_fmt "<U0025><U0061><U0020><U0025><U006C>"
+% 00
+int_select "<U0030><U0030>"
+% 509
+int_prefix "<U0035><U0030><U0039>"
+END LC_TELEPHONE
Added: fsf/trunk/libc/localedata/locales/quz_PE
==============================================================================
--- fsf/trunk/libc/localedata/locales/quz_PE (added)
+++ fsf/trunk/libc/localedata/locales/quz_PE Wed Sep 4 00:02:03 2013
@@ -1,0 +1,169 @@
+comment_char %
+escape_char /
+% Charset: UTF-8
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Quechua (Cusco-Collao) language locale for Peru
+%
+% Prepared and contributed to glibc by Chris Leonard <cjl@xxxxxxxxxxxxx>
+% and Amos Batto
+%
+% This locale data has been developed in collaboration between:
+% Sugar Labs, http://www.sugarlabs.org/
+% Instituto de Lenguas y Literaturas Andinas-Amazonicas
+% http://www.illa-a.org/wp/illa/
+%
+% build with: localedef -f UTF-8 -i quz_PE quz_PE
+%
+% This file is a part of GNU C Library (glibc) and contains locale data. The Free
+% Software Foundation does not claim any copyright interest in the
+% locale data contained in this file. The foregoing does not affect the
+% license of GNU C Library (glibc) as a whole. It does not exempt you from the
+% conditions of the license if your use would otherwise be governed by
+% that license.
+%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+LC_IDENTIFICATION
+title "Quechua (Cusco-Collao) locale for Peru"
+source "Sugar Labs / OLPC"
+address ""
+contact "sugarlabs.org"
+email "libc-alpha@xxxxxxxxxxxxxx"
+tel ""
+fax ""
+language "Quechua (Cusco-Collao)"
+territory "Peru"
+revision "1.0"
+date "2013-08-24"
+%
+category "quz_PE:2013";LC_IDENTIFICATION
+category "quz_PE:2013";LC_CTYPE
+category "quz_PE:2013";LC_COLLATE
+category "quz_PE:2013";LC_TIME
+category "quz_PE:2013";LC_NUMERIC
+category "quz_PE:2013";LC_MONETARY
+category "quz_PE:2013";LC_PAPER
+category "quz_PE:2013";LC_MEASUREMENT
+category "quz_PE:2013";LC_MESSAGES
+category "quz_PE:2013";LC_NAME
+category "quz_PE:2013";LC_ADDRESS
+category "quz_PE:2013";LC_TELEPHONE
+END LC_IDENTIFICATION
+
+LC_CTYPE
+copy "i18n"
+translit_start
+include "translit_combining";""
+translit_end
+END LC_CTYPE
+
+LC_COLLATE
+copy "iso14651_t1"
+END LC_COLLATE
+
+% LC_TIME: Use Quechua transliteration of Spanish day and month names
+
+LC_TIME
+% iniru, phiwriru, marsu, awril, mayu, huniyu, huliyu, agustu,siptiyimri, uktuwri, nuwiyimri, tisiyimri
+mon "<U0069><U006E><U0069><U0072><U0075>";/
+ "<U0070><U0068><U0069><U0077><U0072><U0069><U0072><U0075>";/
+ "<U006D><U0061><U0072><U0073><U0075>";/
+ "<U0061><U0077><U0072><U0069><U006C>";/
+ "<U006D><U0061><U0079><U0075>";/
+ "<U0068><U0075><U006E><U0069><U0079><U0075>";/
+ "<U0068><U0075><U006C><U0069><U0079><U0075>";/
+ "<U0061><U0067><U0075><U0073><U0074><U0075>";/
+ "<U0073><U0069><U0070><U0074><U0069><U0079><U0069><U006D><U0072><U0069>";/
+ "<U0075><U006B><U0074><U0075><U0077><U0072><U0069>";/
+ "<U006E><U0075><U0077><U0069><U0079><U0069><U006D><U0072><U0069>";/
+ "<U0074><U0069><U0073><U0069><U0079><U0069><U006D><U0072><U0069>"
+% ini, phi, mar, awr, may, hun, hul, agu, sip, ukt, nuw, tis
+abmon "<U0069><U006E><U0069>";/
+ "<U0070><U0068><U0069>";/
+ "<U006D><U0061><U0072>";/
+ "<U0061><U0077><U0072>";/
+ "<U006D><U0061><U0079>";/
+ "<U0068><U0075><U006E>";/
+ "<U0068><U0075><U006C>";/
+ "<U0061><U0067><U0075>";/
+ "<U0073><U0069><U0070>";/
+ "<U0075><U006B><U0074>";/
+ "<U006E><U0075><U0077>";/
+ "<U0074><U0069><U0073>"
+% tuminku, lunis, martis, miyirkulis, juywis, wiyirnis, sawatu
+day "<U0074><U0075><U006D><U0069><U006E><U006B><U0075>";/
+ "<U006C><U0075><U006E><U0069><U0073>";/
+ "<U006D><U0061><U0072><U0074><U0069><U0073>";/
+ "<U006D><U0069><U0079><U0069><U0072><U006B><U0075><U006C><U0069><U0073>";/
+ "<U006A><U0075><U0079><U0077><U0069><U0073>";/
+ "<U0077><U0069><U0079><U0069><U0072><U006E><U0069><U0073>";/
+ "<U0073><U0061><U0077><U0061><U0074><U0075>"
+% tum, lun, mar, miy, juy, wiy, saw
+abday "<U0074><U0075><U006D>";/
+ "<U006C><U0075><U006E>";/
+ "<U006D><U0061><U0072>";/
+ "<U006D><U0069><U0079>";/
+ "<U006A><U0075><U0079>";/
+ "<U0077><U0069><U0079>";/
+ "<U0073><U0061><U0077>"
+% %a %d %b %Y %T %Z
+d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+% %d/%m/%y
+d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+% %I:%M:%S %p
+t_fmt "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070>"
+% AM, PM
+am_pm "<U0041><U004D>";/
+ "<U0050><U004D>"
+% %I:%M:%S %p
+t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070>"
+week 7;19971130;7
+first_weekday 1
+first_workday 2
+% %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_NUMERIC
+copy "es_PE"
+END LC_NUMERIC
+
+LC_MONETARY
+copy "es_PE"
+END LC_MONETARY
+
+LC_PAPER
+copy "es_PE"
+END LC_PAPER
+
+LC_MEASUREMENT
+% metric
+measurement 1
+END LC_MEASUREMENT
+
+LC_MESSAGES
+% ^[aAsSyY].*
+yesexpr "<U005E><U005B><U0061><U0041><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+% ^[mMnN].*
+noexpr "<U005E><U005B><U006D><U004D><U006E><U004E><U005D><U002E><U002A>"
+% ArÃÂ
+yesstr "<U0041><U0072><U00ED>"
+% Manan
+nostr "<U004D><U0061><U006E><U0061><U006E>"
+END LC_MESSAGES
+
+LC_NAME
+copy "es_PE"
+END LC_NAME
+
+% TO DO - adjust for Quechua specific lang-info for Peru
+LC_ADDRESS
+copy "es_PE"
+END LC_ADDRESS
+
+LC_TELEPHONE
+copy "es_PE"
+END LC_TELEPHONE
Modified: fsf/trunk/libc/math/libm-test.inc
==============================================================================
--- fsf/trunk/libc/math/libm-test.inc (original)
+++ fsf/trunk/libc/math/libm-test.inc Wed Sep 4 00:02:03 2013
@@ -9978,6 +9978,61 @@
TEST_f_f1 (lgamma, -0.5, M_LOG_2_SQRT_PIl, -1),
TEST_f_f1 (lgamma, 0.7L, 0.260867246531666514385732417016759578L, 1),
TEST_f_f1 (lgamma, 1.2L, -0.853740900033158497197028392998854470e-1L, 1),
+
+ TEST_f_f1 (lgamma, 0x1p-5L, 3.4484891277979584796832693452686366085801e+00L, 1),
+ TEST_f_f1 (lgamma, -0x1p-5L, 3.4845895751341394376217526729956836492792e+00L, -1),
+ TEST_f_f1 (lgamma, 0x1p-10L, 6.9309089024194618895406190646600805357273e+00L, 1),
+ TEST_f_f1 (lgamma, -0x1p-10L, 6.9320362775113082175565786721095494761582e+00L, -1),
+ TEST_f_f1 (lgamma, 0x1p-15L, 1.0397190093941001762077888432721419773538e+01L, 1),
+ TEST_f_f1 (lgamma, -0x1p-15L, 1.0397225324389321751118257981741350715545e+01L, -1),
+ TEST_f_f1 (lgamma, 0x1p-20L, 1.3862943060723899573457963336920089012399e+01L, 1),
+ TEST_f_f1 (lgamma, -0x1p-20L, 1.3862944161675408862049886226750366625112e+01L, -1),
+ TEST_f_f1 (lgamma, 0x1p-25L, 1.7328679496796266133304874243201700664713e+01L, 1),
+ TEST_f_f1 (lgamma, -0x1p-25L, 1.7328679531201000798551671833865469674673e+01L, -1),
+ TEST_f_f1 (lgamma, 0x1p-30L, 2.0794415416260785304085859198055798098863e+01L, 1),
+ TEST_f_f1 (lgamma, -0x1p-30L, 2.0794415417335933262374820960532606449975e+01L, -1),
+ TEST_f_f1 (lgamma, 0x1p-40L, 2.7725887222397287402100277256545578941303e+01L, 1),
+ TEST_f_f1 (lgamma, -0x1p-40L, 2.7725887222398337351278293820766115529596e+01L, -1),
+ TEST_f_f1 (lgamma, 0x1p-50L, 3.4657359027997264958191108994508978906983e+01L, 1),
+ TEST_f_f1 (lgamma, -0x1p-50L, 3.4657359027997265983532103151309975524744e+01L, -1),
+ TEST_f_f1 (lgamma, 0x1p-60L, 4.1588830833596718564533272505187468598519e+01L, 1),
+ TEST_f_f1 (lgamma, -0x1p-60L, 4.1588830833596718565534582069793719571779e+01L, -1),
+ TEST_f_f1 (lgamma, 0x1p-64L, 4.4361419555836499802671564849429355013920e+01L, 1),
+ TEST_f_f1 (lgamma, -0x1p-64L, 4.4361419555836499802734146697217245699749e+01L, -1),
+ TEST_f_f1 (lgamma, 0x1p-70L, 4.8520302639196171659205759581386516869302e+01L, 1),
+ TEST_f_f1 (lgamma, -0x1p-70L, 4.8520302639196171659206737422758202661268e+01L, -1),
+ TEST_f_f1 (lgamma, 0x1p-100L, 6.9314718055994530941723212145817201464678e+01L, 1),
+ TEST_f_f1 (lgamma, -0x1p-100L, 6.9314718055994530941723212145818112150422e+01L, -1),
+ TEST_f_f1 (lgamma, 0x1p-126L, 8.7336544750553108986571247303730247577506e+01L, 1),
+ TEST_f_f1 (lgamma, -0x1p-126L, 8.7336544750553108986571247303730247577520e+01L, -1),
+ TEST_f_f1 (lgamma, 0x1p-149L, 1.0327892990343185110316758609726830864325e+02L, 1),
+ TEST_f_f1 (lgamma, -0x1p-149L, 1.0327892990343185110316758609726830864325e+02L, -1),
+#ifndef TEST_FLOAT
+ TEST_f_f1 (lgamma, 0x1p-200L, 1.3862943611198906188344642429163531361510e+02L, 1),
+ TEST_f_f1 (lgamma, -0x1p-200L, 1.3862943611198906188344642429163531361510e+02L, -1),
+ TEST_f_f1 (lgamma, 0x1p-500L, 3.4657359027997265470861606072908828403775e+02L, 1),
+ TEST_f_f1 (lgamma, -0x1p-500L, 3.4657359027997265470861606072908828403775e+02L, -1),
+ TEST_f_f1 (lgamma, 0x1p-1000L, 6.9314718055994530941723212145817656807550e+02L, 1),
+ TEST_f_f1 (lgamma, -0x1p-1000L, 6.9314718055994530941723212145817656807550e+02L, -1),
+ TEST_f_f1 (lgamma, 0x1p-1022L, 7.0839641853226410622441122813025645257316e+02L, 1),
+ TEST_f_f1 (lgamma, -0x1p-1022L, 7.0839641853226410622441122813025645257316e+02L, -1),
+ TEST_f_f1 (lgamma, 0x1p-1074L, 7.4444007192138126231410729844608163411309e+02L, 1),
+ TEST_f_f1 (lgamma, -0x1p-1074L, 7.4444007192138126231410729844608163411309e+02L, -1),
+#endif
+#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
+ TEST_f_f1 (lgamma, 0x1p-5000L, 3.4657359027997265470861606072908828403775e+03L, 1),
+ TEST_f_f1 (lgamma, -0x1p-5000L, 3.4657359027997265470861606072908828403775e+03L, -1),
+ TEST_f_f1 (lgamma, 0x1p-10000L, 6.9314718055994530941723212145817656807550e+03L, 1),
+ TEST_f_f1 (lgamma, -0x1p-10000L, 6.9314718055994530941723212145817656807550e+03L, -1),
+ TEST_f_f1 (lgamma, 0x1p-16382L, 1.1355137111933024058873096613727848538213e+04L, 1),
+ TEST_f_f1 (lgamma, -0x1p-16382L, 1.1355137111933024058873096613727848538213e+04L, -1),
+ TEST_f_f1 (lgamma, 0x1p-16445L, 1.1398805384308300613366382237379713662002e+04L, 1),
+ TEST_f_f1 (lgamma, -0x1p-16445L, 1.1398805384308300613366382237379713662002e+04L, -1),
+# if LDBL_MANT_DIG >= 113
+ TEST_f_f1 (lgamma, 0x1p-16494L, 1.1432769596155737933527826611331164313837e+04L, 1),
+ TEST_f_f1 (lgamma, -0x1p-16494L, 1.1432769596155737933527826611331164313837e+04L, -1),
+# endif
+#endif
};
static void
Modified: fsf/trunk/libc/nptl/ChangeLog
==============================================================================
--- fsf/trunk/libc/nptl/ChangeLog (original)
+++ fsf/trunk/libc/nptl/ChangeLog Wed Sep 4 00:02:03 2013
@@ -1,3 +1,9 @@
+2013-09-03 Siddhesh Poyarekar <siddhesh@xxxxxxxxxx>
+
+ [BZ #15921]
+ * tst-cleanup2.c (do_test): New volatile variable RET to
+ return success.
+
2013-08-30 OndÃÂej BÃÂlka <neleai@xxxxxxxxx>
* sysdeps/pthread/pthread.h: Fix typos.
Modified: fsf/trunk/libc/nptl/tst-cleanup2.c
==============================================================================
--- fsf/trunk/libc/nptl/tst-cleanup2.c (original)
+++ fsf/trunk/libc/nptl/tst-cleanup2.c Wed Sep 4 00:02:03 2013
@@ -34,6 +34,12 @@
do_test (void)
{
char *p = NULL;
+ /* gcc can overwrite the success written value by scheduling instructions
+ around sprintf. It is allowed to do this since according to C99 the first
+ argument of sprintf is a character array and NULL is not a valid character
+ array. Mark the return value as volatile so that it gets reloaded on
+ return. */
+ volatile int ret = 0;
struct sigaction sa;
sa.sa_handler = sig_handler;
@@ -50,7 +56,7 @@
if (setjmp (jmpbuf))
{
puts ("Exiting main...");
- return 0;
+ return ret;
}
sprintf (p, "This should segv\n");
Modified: fsf/trunk/libc/ports/ChangeLog
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog (original)
+++ fsf/trunk/libc/ports/ChangeLog Wed Sep 4 00:02:03 2013
@@ -1,3 +1,10 @@
+2013-09-02 Mike Frysinger <vapier@xxxxxxxxxx>
+
+ * sysdeps/unix/sysv/linux/hppa/syscalls.list (fanotify_mark): New
+ entry.
+ * sysdeps/unix/sysv/linux/hppa/Versions (libc): Add GLIBC_2.19 and
+ fanotify_mark.
+
2013-01-02 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
* README: Update copyright dates in example.
Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/hppa/Versions
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/hppa/Versions (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/hppa/Versions Wed Sep 4 00:02:03 2013
@@ -32,6 +32,9 @@
_sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
prlimit64;
}
+ GLIBC_2.19 {
+ fanotify_mark;
+ }
}
librt {
GLIBC_2.3 {
Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/hppa/syscalls.list
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/hppa/syscalls.list (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/hppa/syscalls.list Wed Sep 4 00:02:03 2013
@@ -36,3 +36,4 @@
setrlimit - setrlimit i:ip __setrlimit setrlimit
getrlimit - getrlimit i:ip __getrlimit getrlimit
prlimit64 EXTRA prlimit64 i:iipp __prlimit64 prlimit64@@GLIBC_2.17
+fanotify_mark EXTRA fanotify_mark i:iiiiis __fanotify_mark fanotify_mark@@GLIBC_2.19
Modified: fsf/trunk/libc/sysdeps/i386/fpu/libm-test-ulps
==============================================================================
--- fsf/trunk/libc/sysdeps/i386/fpu/libm-test-ulps (original)
+++ fsf/trunk/libc/sysdeps/i386/fpu/libm-test-ulps Wed Sep 4 00:02:03 2013
@@ -5470,9 +5470,35 @@
idouble: 1
ildouble: 1
ldouble: 1
+Test "gamma (-0x1p-10)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "gamma (-0x1p-15)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "gamma (-0x1p-20)":
+double: 1
+idouble: 1
+Test "gamma (-0x1p-30)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "gamma (-0x1p-5)":
+double: 1
+idouble: 1
Test "gamma (0.7)":
float: 1
ifloat: 1
+Test "gamma (0x1p-40)":
+ildouble: 1
+ldouble: 1
Test "gamma (1.2)":
double: 1
float: 2
@@ -5723,9 +5749,35 @@
idouble: 1
ildouble: 1
ldouble: 1
+Test "lgamma (-0x1p-10)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "lgamma (-0x1p-15)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "lgamma (-0x1p-20)":
+double: 1
+idouble: 1
+Test "lgamma (-0x1p-30)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "lgamma (-0x1p-5)":
+double: 1
+idouble: 1
Test "lgamma (0.7)":
float: 1
ifloat: 1
+Test "lgamma (0x1p-40)":
+ildouble: 1
+ldouble: 1
Test "lgamma (1.2)":
double: 1
float: 2
Modified: fsf/trunk/libc/sysdeps/ieee754/flt-32/e_lgammaf_r.c
==============================================================================
--- fsf/trunk/libc/sysdeps/ieee754/flt-32/e_lgammaf_r.c (original)
+++ fsf/trunk/libc/sysdeps/ieee754/flt-32/e_lgammaf_r.c Wed Sep 4 00:02:03 2013
@@ -150,8 +150,8 @@
*signgamp = -1;
return one/fabsf(x);
}
- if(__builtin_expect(ix<0x1c800000, 0)) {
- /* |x|<2**-70, return -log(|x|) */
+ if(__builtin_expect(ix<0x30800000, 0)) {
+ /* |x|<2**-30, return -log(|x|) */
if(hx<0) {
*signgamp = -1;
return -__ieee754_logf(-x);
Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/Makefile
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/Makefile (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/Makefile Wed Sep 4 00:02:03 2013
@@ -38,7 +38,7 @@
bits/socket_type.h bits/syscall.h bits/sysctl.h \
bits/mman-linux.h
-tests += tst-clone
+tests += tst-clone tst-fanotify
# Generate the list of SYS_* macros for the system calls (__NR_* macros).
Added: fsf/trunk/libc/sysdeps/unix/sysv/linux/tst-fanotify.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/tst-fanotify.c (added)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/tst-fanotify.c Wed Sep 4 00:02:03 2013
@@ -1,0 +1,56 @@
+/* Basic fanotify test.
+ Copyright (C) 2013 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <sys/fanotify.h>
+
+static int
+do_test (void)
+{
+ int fd, ret;
+
+ fd = fanotify_init (0, 0);
+ if (fd < 0)
+ {
+ if (errno == ENOSYS)
+ {
+ puts ("SKIP: missing support for fanotify (check CONFIG_FANOTIFY=y)");
+ return 0;
+ }
+
+ perror ("fanotify_init (0, 0) failed");
+ return 1;
+ }
+
+ ret = fanotify_mark (fd, FAN_MARK_ADD | FAN_MARK_MOUNT, FAN_ACCESS
+ | FAN_MODIFY | FAN_OPEN | FAN_CLOSE | FAN_ONDIR
+ | FAN_EVENT_ON_CHILD, AT_FDCWD, ".");
+ if (ret)
+ {
+ perror ("fanotify_mark (...) failed");
+ return 1;
+ }
+
+ puts ("All OK");
+ return 0;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
Modified: fsf/trunk/libc/sysdeps/x86_64/fpu/libm-test-ulps
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/fpu/libm-test-ulps (original)
+++ fsf/trunk/libc/sysdeps/x86_64/fpu/libm-test-ulps Wed Sep 4 00:02:03 2013
@@ -6222,11 +6222,39 @@
Test "gamma (-0.5)":
ildouble: 1
ldouble: 1
+Test "gamma (-0x1p-10)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "gamma (-0x1p-15)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "gamma (-0x1p-20)":
+double: 1
+idouble: 1
+Test "gamma (-0x1p-30)":
+ildouble: 1
+ldouble: 1
+Test "gamma (-0x1p-5)":
+double: 1
+idouble: 1
Test "gamma (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
+Test "gamma (0x1p-10)":
+float: 1
+ifloat: 1
+Test "gamma (0x1p-30)":
+double: 1
+idouble: 1
+Test "gamma (0x1p-40)":
+ildouble: 1
+ldouble: 1
Test "gamma (1.2)":
double: 1
float: 2
@@ -6491,11 +6519,39 @@
Test "lgamma (-0.5)":
ildouble: 1
ldouble: 1
+Test "lgamma (-0x1p-10)":
+double: 1
+idouble: 1
+ildouble: 1
+ldouble: 1
+Test "lgamma (-0x1p-15)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "lgamma (-0x1p-20)":
+double: 1
+idouble: 1
+Test "lgamma (-0x1p-30)":
+ildouble: 1
+ldouble: 1
+Test "lgamma (-0x1p-5)":
+double: 1
+idouble: 1
Test "lgamma (0.7)":
double: 1
float: 1
idouble: 1
ifloat: 1
+Test "lgamma (0x1p-10)":
+float: 1
+ifloat: 1
+Test "lgamma (0x1p-30)":
+double: 1
+idouble: 1
+Test "lgamma (0x1p-40)":
+ildouble: 1
+ldouble: 1
Test "lgamma (1.2)":
double: 1
float: 2
Modified: fsf/trunk/libc/sysdeps/x86_64/multiarch/Makefile
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/multiarch/Makefile (original)
+++ fsf/trunk/libc/sysdeps/x86_64/multiarch/Makefile Wed Sep 4 00:02:03 2013
@@ -6,8 +6,10 @@
ifeq ($(subdir),string)
-sysdep_routines += strncat-c stpncpy-c strncpy-c strcmp-ssse3 strncmp-ssse3 \
- strend-sse4 memcmp-sse4 memcpy-ssse3 memcpy-sse2-unaligned mempcpy-ssse3 \
+sysdep_routines += strncat-c stpncpy-c strncpy-c strcmp-ssse3 \
+ strcmp-sse2-unaligned strncmp-ssse3 \
+ strend-sse4 memcmp-sse4 memcpy-ssse3 \
+ memcpy-sse2-unaligned mempcpy-ssse3 \
memmove-ssse3 memcpy-ssse3-back mempcpy-ssse3-back \
memmove-ssse3-back strcasestr-nonascii strcasecmp_l-ssse3 \
strncase_l-ssse3 strcat-ssse3 strncat-ssse3\
Modified: fsf/trunk/libc/sysdeps/x86_64/multiarch/ifunc-impl-list.c
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/multiarch/ifunc-impl-list.c (original)
+++ fsf/trunk/libc/sysdeps/x86_64/multiarch/ifunc-impl-list.c Wed Sep 4 00:02:03 2013
@@ -118,6 +118,7 @@
IFUNC_IMPL (i, name, strcmp,
IFUNC_IMPL_ADD (array, i, strcmp, HAS_SSE4_2, __strcmp_sse42)
IFUNC_IMPL_ADD (array, i, strcmp, HAS_SSSE3, __strcmp_ssse3)
+ IFUNC_IMPL_ADD (array, i, strcmp, 1, __strcmp_sse2_unaligned)
IFUNC_IMPL_ADD (array, i, strcmp, 1, __strcmp_sse2))
/* Support sysdeps/x86_64/multiarch/strcpy.S. */
Added: fsf/trunk/libc/sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S (added)
+++ fsf/trunk/libc/sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S Wed Sep 4 00:02:03 2013
@@ -1,0 +1,210 @@
+/* strcmp with unaligned loads
+ Copyright (C) 2013 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include "sysdep.h"
+#define ALIGN(x) .p2align x
+
+ENTRY ( __strcmp_sse2_unaligned)
+ movl %edi, %eax
+ xorl %edx, %edx
+ pxor %xmm7, %xmm7
+ orl %esi, %eax
+ andl $4095, %eax
+ cmpl $4032, %eax
+ jg L(cross_page)
+ movdqu (%rdi), %xmm1
+ movdqu (%rsi), %xmm0
+ pcmpeqb %xmm1, %xmm0
+ pminub %xmm1, %xmm0
+ pxor %xmm1, %xmm1
+ pcmpeqb %xmm1, %xmm0
+ pmovmskb %xmm0, %eax
+ testq %rax, %rax
+ je L(next_48_bytes)
+L(return):
+ bsfq %rax, %rdx
+ movzbl (%rdi, %rdx), %eax
+ movzbl (%rsi, %rdx), %edx
+ subl %edx, %eax
+ ret
+
+ ALIGN (4)
+L(next_48_bytes):
+ movdqu 16(%rdi), %xmm6
+ movdqu 16(%rsi), %xmm3
+ movdqu 32(%rdi), %xmm5
+ pcmpeqb %xmm6, %xmm3
+ movdqu 32(%rsi), %xmm2
+ pminub %xmm6, %xmm3
+ pcmpeqb %xmm1, %xmm3
+ movdqu 48(%rdi), %xmm4
+ pcmpeqb %xmm5, %xmm2
+ pmovmskb %xmm3, %edx
+ movdqu 48(%rsi), %xmm0
+ pminub %xmm5, %xmm2
+ pcmpeqb %xmm1, %xmm2
+ pcmpeqb %xmm4, %xmm0
+ pmovmskb %xmm2, %eax
+ salq $16, %rdx
+ pminub %xmm4, %xmm0
+ pcmpeqb %xmm1, %xmm0
+ salq $32, %rax
+ orq %rdx, %rax
+ pmovmskb %xmm0, %ecx
+ movq %rcx, %rdx
+ salq $48, %rdx
+ orq %rdx, %rax
+ jne L(return)
+L(main_loop_header):
+ leaq 64(%rdi), %rdx
+ movl $4096, %ecx
+ pxor %xmm9, %xmm9
+ andq $-64, %rdx
+ subq %rdi, %rdx
+ leaq (%rdi, %rdx), %rax
+ addq %rsi, %rdx
+ movq %rdx, %rsi
+ andl $4095, %esi
+ subq %rsi, %rcx
+ shrq $6, %rcx
+ movq %rcx, %rsi
+ jmp L(loop_start)
+
+ ALIGN (4)
+L(loop):
+ addq $64, %rax
+ addq $64, %rdx
+L(loop_start):
+ testq %rsi, %rsi
+ leaq -1(%rsi), %rsi
+ je L(loop_cross_page)
+L(back_to_loop):
+ movdqu (%rdx), %xmm0
+ movdqu 16(%rdx), %xmm1
+ movdqa (%rax), %xmm2
+ movdqa 16(%rax), %xmm3
+ pcmpeqb %xmm2, %xmm0
+ movdqu 32(%rdx), %xmm5
+ pcmpeqb %xmm3, %xmm1
+ pminub %xmm2, %xmm0
+ movdqu 48(%rdx), %xmm6
+ pminub %xmm3, %xmm1
+ movdqa 32(%rax), %xmm2
+ pminub %xmm1, %xmm0
+ movdqa 48(%rax), %xmm3
+ pcmpeqb %xmm2, %xmm5
+ pcmpeqb %xmm3, %xmm6
+ pminub %xmm2, %xmm5
+ pminub %xmm3, %xmm6
+ pminub %xmm5, %xmm0
+ pminub %xmm6, %xmm0
+ pcmpeqb %xmm7, %xmm0
+ pmovmskb %xmm0, %ecx
+ testl %ecx, %ecx
+ je L(loop)
+ pcmpeqb %xmm7, %xmm5
+ movdqu (%rdx), %xmm0
+ pcmpeqb %xmm7, %xmm1
+ movdqa (%rax), %xmm2
+ pcmpeqb %xmm2, %xmm0
+ pminub %xmm2, %xmm0
+ pcmpeqb %xmm7, %xmm6
+ pcmpeqb %xmm7, %xmm0
+ pmovmskb %xmm1, %ecx
+ pmovmskb %xmm5, %r8d
+ pmovmskb %xmm0, %edi
+ salq $16, %rcx
+ salq $32, %r8
+ pmovmskb %xmm6, %esi
+ orq %r8, %rcx
+ orq %rdi, %rcx
+ salq $48, %rsi
+ orq %rsi, %rcx
+ bsfq %rcx, %rcx
+ movzbl (%rax, %rcx), %eax
+ movzbl (%rdx, %rcx), %edx
+ subl %edx, %eax
+ ret
+
+ ALIGN (4)
+L(loop_cross_page):
+ xor %r10, %r10
+ movq %rdx, %r9
+ and $63, %r9
+ subq %r9, %r10
+
+ movdqa (%rdx, %r10), %xmm0
+ movdqa 16(%rdx, %r10), %xmm1
+ movdqu (%rax, %r10), %xmm2
+ movdqu 16(%rax, %r10), %xmm3
+ pcmpeqb %xmm2, %xmm0
+ movdqa 32(%rdx, %r10), %xmm5
+ pcmpeqb %xmm3, %xmm1
+ pminub %xmm2, %xmm0
+ movdqa 48(%rdx, %r10), %xmm6
+ pminub %xmm3, %xmm1
+ movdqu 32(%rax, %r10), %xmm2
+ movdqu 48(%rax, %r10), %xmm3
+ pcmpeqb %xmm2, %xmm5
+ pcmpeqb %xmm3, %xmm6
+ pminub %xmm2, %xmm5
+ pminub %xmm3, %xmm6
+
+ pcmpeqb %xmm7, %xmm0
+ pcmpeqb %xmm7, %xmm1
+ pcmpeqb %xmm7, %xmm5
+ pcmpeqb %xmm7, %xmm6
+
+ pmovmskb %xmm1, %ecx
+ pmovmskb %xmm5, %r8d
+ pmovmskb %xmm0, %edi
+ salq $16, %rcx
+ salq $32, %r8
+ pmovmskb %xmm6, %esi
+ orq %r8, %rdi
+ orq %rcx, %rdi
+ salq $48, %rsi
+ orq %rsi, %rdi
+ movq %r9, %rcx
+ movq $63, %rsi
+ shrq %cl, %rdi
+ test %rdi, %rdi
+ je L(back_to_loop)
+ bsfq %rdi, %rcx
+ movzbl (%rax, %rcx), %eax
+ movzbl (%rdx, %rcx), %edx
+ subl %edx, %eax
+ ret
+
+ ALIGN (4)
+L(cross_page_loop):
+ cmpb %cl, %al
+ jne L(different)
+ addq $1, %rdx
+ cmpq $64, %rdx
+ je L(main_loop_header)
+L(cross_page):
+ movzbl (%rdi, %rdx), %eax
+ movzbl (%rsi, %rdx), %ecx
+ testb %al, %al
+ jne L(cross_page_loop)
+ xorl %eax, %eax
+L(different):
+ subl %ecx, %eax
+ ret
+END (__strcmp_sse2_unaligned)
Modified: fsf/trunk/libc/sysdeps/x86_64/multiarch/strcmp.S
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/multiarch/strcmp.S (original)
+++ fsf/trunk/libc/sysdeps/x86_64/multiarch/strcmp.S Wed Sep 4 00:02:03 2013
@@ -66,6 +66,7 @@
# define STRCMP_SSE2 __strncasecmp_l_sse2
# define __GI_STRCMP __GI___strncasecmp_l
#else
+# define USE_AS_STRCMP
# define UPDATE_STRNCMP_COUNTER
# ifndef STRCMP
# define STRCMP strcmp
@@ -88,11 +89,17 @@
jne 1f
call __init_cpu_features
1:
+#ifdef USE_AS_STRCMP
+ leaq __strcmp_sse2_unaligned(%rip), %rax
+ testl $bit_Fast_Unaligned_Load, __cpu_features+CPUID_OFFSET+index_Fast_Unaligned_Load(%rip)
+ jnz 3f
+#else
testl $bit_Slow_SSE4_2, __cpu_features+CPUID_OFFSET+index_Slow_SSE4_2(%rip)
jnz 2f
leaq STRCMP_SSE42(%rip), %rax
testl $bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip)
jnz 3f
+#endif
2: leaq STRCMP_SSSE3(%rip), %rax
testl $bit_SSSE3, __cpu_features+CPUID_OFFSET+index_SSSE3(%rip)
jnz 3f
_______________________________________________
Commits mailing list
Commits@xxxxxxxxxx
http://eglibc.org/cgi-bin/mailman/listinfo/commits