about summary refs log tree commit diff
Commit message (Collapse)AuthorAgeFilesLines
* localedef: change week_1stweek default to 7Mike Frysinger2016-04-232-0/+9
| | | | | | | | The ISO 14652/30112 specs say the defaults for the week keyword are: 7, 19971130, 7 The localedef has been using those defaults for the first two, but 0 for the last one.
* localedata: CLDRv29: update LC_TIME week/first_week,workday fieldsMike Frysinger2016-04-23277-154/+887
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I've spot checked a number of these, including some that were def wrong (like ff_SN). It also fixes all open week-related bugs. Since ff_SN is the only one that changes its base date, I also made sure that its ordering of day translations were correct. Looks like another case Petr brought up where the week field was not actually checked against the day arrays. I also took the opportunity to drop first_weekday/first_workday when the value aligned with the defaults (1 & 2 respectively). This didn't impact too many locales In practice because the majority omitted them already. A few locales were defining some values incorrectly for their region: ak_GH: week: changing [7, 19971130, 7] to [7, 19971130, 1] ak_GH: first_weekday: changing 1 to 2 ayc_PE: week: changing [7, 19971130, 7] to [7, 19971130, 1] bem_ZM: week: changing [7, 19971130, 4] to [7, 19971130, 1] bem_ZM: first_weekday: changing 1 to 2 en_IE: first_weekday: changing 2 to 1 en_US: week: changing [7, 19971130, 7] to [7, 19971130, 1] es_CO: first_weekday: changing 2 to 1 es_ES: week: changing [7, 19971130, 5] to [7, 19971130, 4] ff_SN: week: changing [7, 19971129, 1] to [7, 19971130, 1] ff_SN: first_weekday: changing 1 to 2 ga_IE: first_weekday: changing 2 to 1 ht_HT: week: changing [7, 19971130, 7] to [7, 19971130, 1] ht_HT: first_weekday: changing 1 to 2 mk_MK: week: changing [7, 19971130, 4] to [7, 19971130, 1] mt_MT: first_weekday: changing 2 to 1 quz_PE: week: changing [7, 19971130, 7] to [7, 19971130, 1] sr_ME: week: changing [7, 19971130, 4] to [7, 19971130, 1] sr_RS: week: changing [7, 19971130, 4] to [7, 19971130, 1] sr_RS@latin: week: changing [7, 19971130, 4] to [7, 19971130, 1] sw_KE: week: changing [7, 19971130, 4] to [7, 19971130, 1] sw_KE: first_weekday: changing 2 to 1 uk_UA: week: changing [7, 19971130, 4] to [7, 19971130, 1] unm_US: week: changing [7, 19971130, 4] to [7, 19971130, 1] Some locales were copying locales that had the wrong week settings, so that content had to be duplicated so the values could be adjusted: el_CY: week: setting to [7, 19971130, 1] en_AG: week: setting to [7, 19971130, 1] en_AG: first_weekday: changing 2 to 1 en_ZM: week: setting to [7, 19971130, 1] es_CU: week: setting to [7, 19971130, 1] nl_AW: week: setting to [7, 19971130, 1] sw_TZ: first_weekday: setting to 2 ta_LK: first_weekday: setting to 2 The majority of locales were omitting the week field thus getting the default [7, 19971130, 0 (localedef) / 7 (ISO standard)]. Unfortunately, neither of those are used by any locales, so we end up having to define the field just to se the ndays field. In practice, this rarely matters due to it usage, and the first two fields match the defaults. aa_DJ: setting to [7, 19971130, 1] aa_ER: setting to [7, 19971130, 1] aa_ER@saaho: setting to [7, 19971130, 1] aa_ET: setting to [7, 19971130, 1] af_ZA: setting to [7, 19971130, 1] am_ET: setting to [7, 19971130, 1] an_ES: setting to [7, 19971130, 4] anp_IN: setting to [7, 19971130, 1] ar_AE: setting to [7, 19971130, 1] ar_BH: setting to [7, 19971130, 1] ar_DZ: setting to [7, 19971130, 1] ar_EG: setting to [7, 19971130, 1] ar_IN: setting to [7, 19971130, 1] ar_IQ: setting to [7, 19971130, 1] ar_JO: setting to [7, 19971130, 1] ar_KW: setting to [7, 19971130, 1] ar_LB: setting to [7, 19971130, 1] ar_LY: setting to [7, 19971130, 1] ar_MA: setting to [7, 19971130, 1] ar_OM: setting to [7, 19971130, 1] ar_QA: setting to [7, 19971130, 1] ar_SA: setting to [7, 19971130, 1] ar_SD: setting to [7, 19971130, 1] ar_SS: setting to [7, 19971130, 1] ar_SY: setting to [7, 19971130, 1] ar_TN: setting to [7, 19971130, 1] ar_YE: setting to [7, 19971130, 1] as_IN: setting to [7, 19971130, 1] ast_ES: setting to [7, 19971130, 4] az_AZ: setting to [7, 19971130, 1] be_BY: setting to [7, 19971130, 1] be_BY@latin: setting to [7, 19971130, 1] ber_DZ: setting to [7, 19971130, 1] ber_MA: setting to [7, 19971130, 1] bg_BG: setting to [7, 19971130, 4] bhb_IN: setting to [7, 19971130, 1] bho_IN: setting to [7, 19971130, 1] bn_BD: setting to [7, 19971130, 1] bn_IN: setting to [7, 19971130, 1] bo_CN: setting to [7, 19971130, 1] br_FR: setting to [7, 19971130, 4] brx_IN: setting to [7, 19971130, 1] bs_BA: setting to [7, 19971130, 1] byn_ER: setting to [7, 19971130, 1] ca_AD: setting to [7, 19971130, 4] ca_ES: setting to [7, 19971130, 4] ca_ES@euro: setting to [7, 19971130, 4] ca_FR: setting to [7, 19971130, 4] ca_IT: setting to [7, 19971130, 4] ce_RU: setting to [7, 19971130, 1] cmn_TW: setting to [7, 19971130, 1] crh_UA: setting to [7, 19971130, 1] cv_RU: setting to [7, 19971130, 1] cy_GB: setting to [7, 19971130, 4] de_BE: setting to [7, 19971130, 4] de_LU: setting to [7, 19971130, 4] doi_IN: setting to [7, 19971130, 1] dv_MV: setting to [7, 19971130, 1] dz_BT: setting to [7, 19971130, 1] el_GR: setting to [7, 19971130, 4] el_GR@euro: setting to [7, 19971130, 4] en_AU: setting to [7, 19971130, 1] en_BW: setting to [7, 19971130, 1] en_CA: setting to [7, 19971130, 1] en_HK: setting to [7, 19971130, 1] en_IE: setting to [7, 19971130, 4] en_IN: setting to [7, 19971130, 1] en_NG: setting to [7, 19971130, 1] en_NZ: setting to [7, 19971130, 1] en_PH: setting to [7, 19971130, 1] en_SG: setting to [7, 19971130, 1] en_ZA: setting to [7, 19971130, 1] en_ZW: setting to [7, 19971130, 1] es_AR: setting to [7, 19971130, 1] es_BO: setting to [7, 19971130, 1] es_CL: setting to [7, 19971130, 1] es_CO: setting to [7, 19971130, 1] es_CR: setting to [7, 19971130, 1] es_DO: setting to [7, 19971130, 1] es_EC: setting to [7, 19971130, 1] es_ES@euro: setting to [7, 19971130, 4] es_GT: setting to [7, 19971130, 1] es_HN: setting to [7, 19971130, 1] es_MX: setting to [7, 19971130, 1] es_NI: setting to [7, 19971130, 1] es_PA: setting to [7, 19971130, 1] es_PE: setting to [7, 19971130, 1] es_PR: setting to [7, 19971130, 1] es_PY: setting to [7, 19971130, 1] es_SV: setting to [7, 19971130, 1] es_US: setting to [7, 19971130, 1] es_UY: setting to [7, 19971130, 1] es_VE: setting to [7, 19971130, 1] eu_ES: setting to [7, 19971130, 4] fa_IR: setting to [7, 19971130, 1] fil_PH: setting to [7, 19971130, 1] fo_FO: setting to [7, 19971130, 4] fr_CA: setting to [7, 19971130, 1] fr_CH: setting to [7, 19971130, 4] fr_LU: setting to [7, 19971130, 4] fy_NL: setting to [7, 19971130, 4] ga_IE: setting to [7, 19971130, 4] gd_GB: setting to [7, 19971130, 4] gez_ER: setting to [7, 19971130, 1] gez_ET: setting to [7, 19971130, 1] gl_ES: setting to [7, 19971130, 4] gu_IN: setting to [7, 19971130, 1] gv_GB: setting to [7, 19971130, 4] hak_TW: setting to [7, 19971130, 1] ha_NG: setting to [7, 19971130, 1] he_IL: setting to [7, 19971130, 1] hi_IN: setting to [7, 19971130, 1] hne_IN: setting to [7, 19971130, 1] hr_HR: setting to [7, 19971130, 1] hy_AM: setting to [7, 19971130, 1] id_ID: setting to [7, 19971130, 1] ig_NG: setting to [7, 19971130, 1] ik_CA: setting to [7, 19971130, 1] is_IS: setting to [7, 19971130, 4] it_CH: setting to [7, 19971130, 4] it_IT: setting to [7, 19971130, 4] it_IT@euro: setting to [7, 19971130, 4] iu_CA: setting to [7, 19971130, 1] ja_JP: setting to [7, 19971130, 1] ka_GE: setting to [7, 19971130, 1] kk_KZ: setting to [7, 19971130, 1] kl_GL: setting to [7, 19971130, 1] km_KH: setting to [7, 19971130, 1] kn_IN: setting to [7, 19971130, 1] kok_IN: setting to [7, 19971130, 1] ko_KR: setting to [7, 19971130, 1] ks_IN: setting to [7, 19971130, 1] ks_IN@devanagari: setting to [7, 19971130, 1] ku_TR: setting to [7, 19971130, 1] kw_GB: setting to [7, 19971130, 4] ky_KG: setting to [7, 19971130, 1] lg_UG: setting to [7, 19971130, 1] lij_IT: setting to [7, 19971130, 4] lo_LA: setting to [7, 19971130, 1] lt_LT: setting to [7, 19971130, 4] lv_LV: setting to [7, 19971130, 1] lzh_TW: setting to [7, 19971130, 1] mag_IN: setting to [7, 19971130, 1] mai_IN: setting to [7, 19971130, 1] mg_MG: setting to [7, 19971130, 1] mhr_RU: setting to [7, 19971130, 1] mi_NZ: setting to [7, 19971130, 1] ml_IN: setting to [7, 19971130, 1] mni_IN: setting to [7, 19971130, 1] mn_MN: setting to [7, 19971130, 1] mr_IN: setting to [7, 19971130, 1] ms_MY: setting to [7, 19971130, 1] mt_MT: setting to [7, 19971130, 1] my_MM: setting to [7, 19971130, 1] nan_TW: setting to [7, 19971130, 1] nan_TW@latin: setting to [7, 19971130, 1] ne_NP: setting to [7, 19971130, 1] nhn_MX: setting to [7, 19971130, 1] niu_NU: setting to [7, 19971130, 1] niu_NZ: setting to [7, 19971130, 1] nl_BE: setting to [7, 19971130, 4] nl_BE@euro: setting to [7, 19971130, 4] nr_ZA: setting to [7, 19971130, 1] nso_ZA: setting to [7, 19971130, 1] oc_FR: setting to [7, 19971130, 4] om_ET: setting to [7, 19971130, 1] om_KE: setting to [7, 19971130, 1] or_IN: setting to [7, 19971130, 1] os_RU: setting to [7, 19971130, 1] pa_IN: setting to [7, 19971130, 1] pap_AW: setting to [7, 19971130, 1] pap_CW: setting to [7, 19971130, 1] pa_PK: setting to [7, 19971130, 1] ps_AF: setting to [7, 19971130, 1] pt_BR: setting to [7, 19971130, 1] pt_PT: setting to [7, 19971130, 4] pt_PT@euro: setting to [7, 19971130, 4] raj_IN: setting to [7, 19971130, 1] ro_RO: setting to [7, 19971130, 1] ru_RU: setting to [7, 19971130, 1] ru_UA: setting to [7, 19971130, 1] rw_RW: setting to [7, 19971130, 1] sa_IN: setting to [7, 19971130, 1] sat_IN: setting to [7, 19971130, 1] sd_IN: setting to [7, 19971130, 1] sd_IN@devanagari: setting to [7, 19971130, 1] se_NO: setting to [7, 19971130, 4] shs_CA: setting to [7, 19971130, 1] sid_ET: setting to [7, 19971130, 1] si_LK: setting to [7, 19971130, 1] sl_SI: setting to [7, 19971130, 1] so_DJ: setting to [7, 19971130, 1] so_ET: setting to [7, 19971130, 1] so_KE: setting to [7, 19971130, 1] so_SO: setting to [7, 19971130, 1] sq_AL: setting to [7, 19971130, 1] ss_ZA: setting to [7, 19971130, 1] st_ZA: setting to [7, 19971130, 1] sv_FI: setting to [7, 19971130, 4] sv_SE: setting to [7, 19971130, 4] ta_IN: setting to [7, 19971130, 1] tcy_IN: setting to [7, 19971130, 1] te_IN: setting to [7, 19971130, 1] tg_TJ: setting to [7, 19971130, 1] the_NP: setting to [7, 19971130, 1] th_TH: setting to [7, 19971130, 1] ti_ER: setting to [7, 19971130, 1] ti_ET: setting to [7, 19971130, 1] tig_ER: setting to [7, 19971130, 1] tk_TM: setting to [7, 19971130, 1] tl_PH: setting to [7, 19971130, 1] tn_ZA: setting to [7, 19971130, 1] tr_CY: setting to [7, 19971130, 1] tr_TR: setting to [7, 19971130, 1] ts_ZA: setting to [7, 19971130, 1] tt_RU: setting to [7, 19971130, 1] tt_RU@iqtelif: setting to [7, 19971130, 1] ug_CN: setting to [7, 19971130, 1] ur_IN: setting to [7, 19971130, 1] ur_PK: setting to [7, 19971130, 1] uz_UZ: setting to [7, 19971130, 1] uz_UZ@cyrillic: setting to [7, 19971130, 1] ve_ZA: setting to [7, 19971130, 1] vi_VN: setting to [7, 19971130, 1] wa_BE: setting to [7, 19971130, 4] wal_ET: setting to [7, 19971130, 1] wo_SN: setting to [7, 19971130, 1] xh_ZA: setting to [7, 19971130, 1] yi_US: setting to [7, 19971130, 1] yo_NG: setting to [7, 19971130, 1] yue_HK: setting to [7, 19971130, 1] zh_CN: setting to [7, 19971130, 1] zh_HK: setting to [7, 19971130, 1] zh_SG: setting to [7, 19971130, 1] zh_TW: setting to [7, 19971130, 1] zu_ZA: setting to [7, 19971130, 1] Finally, set first_weekday in all the locales that were omitting it and wanted something other than the default of 1. aa_DJ: setting to 7 aa_ER: setting to 2 aa_ER@saaho: setting to 2 ar_AE: setting to 7 ar_BH: setting to 7 ar_DZ: setting to 7 ar_EG: setting to 7 ar_IQ: setting to 7 ar_JO: setting to 7 ar_KW: setting to 7 ar_LB: setting to 2 ar_LY: setting to 7 ar_MA: setting to 7 ar_OM: setting to 7 ar_QA: setting to 7 ar_SD: setting to 7 ar_SS: setting to 2 ar_SY: setting to 7 az_AZ: setting to 2 be_BY: setting to 2 be_BY@latin: setting to 2 ber_DZ: setting to 7 ber_MA: setting to 7 bn_BD: setting to 6 bs_BA: setting to 2 byn_ER: setting to 2 dv_MV: setting to 6 en_NG: setting to 2 es_BO: setting to 2 es_CL: setting to 2 es_EC: setting to 2 es_UY: setting to 2 fo_FO: setting to 2 fr_CH: setting to 2 gd_GB: setting to 2 gez_ER: setting to 2 ha_NG: setting to 2 hr_HR: setting to 2 hy_AM: setting to 2 ig_NG: setting to 2 is_IS: setting to 2 it_CH: setting to 2 ka_GE: setting to 2 kk_KZ: setting to 2 kl_GL: setting to 2 ku_TR: setting to 2 ky_KG: setting to 2 lg_UG: setting to 2 mg_MG: setting to 2 mn_MN: setting to 2 ms_MY: setting to 2 niu_NU: setting to 2 pap_AW: setting to 2 pap_CW: setting to 2 pt_PT: setting to 2 pt_PT@euro: setting to 2 rw_RW: setting to 2 se_NO: setting to 2 si_LK: setting to 2 so_DJ: setting to 7 so_SO: setting to 2 sq_AL: setting to 2 tg_TJ: setting to 2 ti_ER: setting to 2 tig_ER: setting to 2 tk_TM: setting to 2 tt_RU: setting to 2 tt_RU@iqtelif: setting to 2 uz_UZ: setting to 2 uz_UZ@cyrillic: setting to 2 vi_VN: setting to 2 wo_SN: setting to 2 yo_NG: setting to 2
* powerpc: strcasestr optmization for power8Rajalakshmi Srinivasaraghavan2016-04-2210-1/+712
| | | | | | This patch optimizes strcasestr function for power >= 8 systems. The average improvement of this optimization is ~40% and compares 16 bytes at a time using vector instructions. This patch is tested on powerpc64 and powerpc64le.
* localedata: en_IL: new English locale [BZ #19963]Guy Rutenberg2016-04-213-0/+139
|
* localedata: ln_CD: new locale [BZ #12676]Claude Paroz2016-04-213-0/+207
|
* benchtests: Support for cross-building benchmarksSiddhesh Poyarekar2016-04-203-5/+29
| | | | | | | | | | | | | | | | This patch adds full support for cross-building benchmarks. Some benchmarks like those that need locales to be generated cannot be built and are hence skipped for cross builds. Tested by cross building for aarch64 on x86_64 and then running the generated benchmark on aarch64. * benchtests/Makefile (wcsmbs-benchset): Include only for native builds and runs. (LOCALES): Likewise. (bench-build): Build timing-type here instead of the bench target. Generate locale only for native builds. * benchtests/README: Add note for cross-building.
* benchtests: Clean up extra-objsSiddhesh Poyarekar2016-04-202-1/+6
| | | | | The bench-clean target would leave behind json-lib.o. Fix up to clean up all extra-objs registered in benchtests.
* Fix up ChangeLogSiddhesh Poyarekar2016-04-201-4/+4
| | | | Looks like I have forgotten what a ChangeLog entry looks like :/
* benchtests: Update README to include instructions for bench-build targetSiddhesh Poyarekar2016-04-202-0/+20
|
* Fix up ChangeLog formattingSiddhesh Poyarekar2016-04-201-2/+2
|
* New make target to only build benchmark binariesSiddhesh Poyarekar2016-04-204-3/+13
| | | | | | | | | | | | | | | For situations where we are cross-building or where we want to avoid building on the target system, we want a way to only build benchmarks and then copy them over to the target system to run them. I have also added a simple enhancement for the 'bench' target where all benchmark binaries are built and then the benchmarks executed. Tested on arm. Makefile.in (bench-build): New target. Rules (PHONY): Add bench-build target. benchtests/Makefile (bench): Depend on bench-build. (bench-build): New target.
* Fix gprof timingSamuel Thibault2016-04-192-1/+3
| | | | | * sysdeps/mach/hurd/profil.c (__profile_frequency): Return tick frequency instead of tick length in us.
* hurd: fix profiling short-living processesSamuel Thibault2016-04-192-2/+9
| | | | | | * sysdeps/mach/hurd/profil.c (update_waiter): Initialize profil_reply_port. (profile_waiter): Do not initialize profil_reply_port.
* Move mempcpy, strcpy and stpcpy inlines to string/string-inlines.c as ↵Wilco Dijkstra2016-04-183-350/+361
| | | | | | | | | | | | | | | | | | compatibility symbols as they are no longer used. Fix compat symbols for __strpbrk inlines. [BZ #18712] * string/string-inlines.c (__STRING2_COPY_TYPE): Add, moved from string2.h. (__old_mempcpy_small): Likewise. (__old_strcpy_small): Likewise. (__old_stpcpy_small): Likewise. (__old_strpbrk_c2): Fix compat symbol name. (__old_strpbrk_c3): Likewise. * string/bits/string2.h (__STRING2_COPY_TYPE): Remove. (__mempcpy_small): Remove. (__strcpy_small): Remove. (__stpcpy_small): Remove.
* locale: iso-639: add Talossan language [BZ #19400]Robin van der Vliet2016-04-162-0/+6
|
* localedata: fix LC_TELEPHONE in a few localesMike Frysinger2016-04-168-13/+27
| | | | | | A bunch of locales were copying the wrong source locale -- looks like they were basically TODOs from the original imports. This lead to bad values for int_prefix for them.
* localedef: allow %l/%n in postal_fmt [BZ #16983]Mike Frysinger2016-04-162-3/+9
| | | | ISO 14652/30112 includes %l & %n now, so permit them in our files.
* locale: ld-telephone: update to ISO-30112 2014Mike Frysinger2016-04-162-3/+9
| | | | | | | The newer version of the standard adds %C %e %t to tel_int_fmt and tel_dom_fmt. Make sure localedef accepts them. Also change the default tel_int_fmt to include %t per the standard.
* localedata: LC_IDENTIFICATION: delete uncommon fieldsMike Frysinger2016-04-1610-54/+12
| | | | | | | Very few locales set audience/application/abbreviation, and even the ones that do, set them largely to default/useless values. Drop them from the few locales until we decide we want to set these everywhere (to something useful).
* powerpc: Optimization for strlen for POWER8.Carlos Eduardo Seo2016-04-156-4/+358
| | | | | This implementation takes advantage of vectorization to improve performance of the loop over the current strlen implementation for POWER7.
* localedata: CLDRv29: update LC_MONETARY int_curr_symbol & currency_symbolMike Frysinger2016-04-1555-61/+123
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This updates a few locales based on CLDR v29 data. I've verified most by hand while the rest I know are correct. For int_curr_symbol, it should be 3 characters followed by a space: ar_SS: changing SDG to SSP bem_ZM: changing ZMK to ZMW dz_BT: changing BTN to BTN # Just changing " " to "<U0020>". en_ZW: changing ZWD to USD es_SV: changing SVC to USD lv_LV: changing LVL to EUR ne_NP: changing INR to NPR pap_AW: changing ANG to AWG the_NP: changing INR to NPR Some of these require updates iso-4217.def. For currency_symbol, it should be the standard/localized symbol name: aa_DJ: changing $ to Fdj ar_SA: changing ريال to ر.س ar_SS: changing ج.س. to £ az_AZ: changing man. to ₼ bg_BG: changing лв to лв. ce_RU: changing руб to ₽ crh_UA: changing gr to ₴ cv_RU: changing t to ₽ de_CH: changing Fr. to CHF dz_BT: changing དངུལ་ཀྲམ་ to Nu. en_BW: changing Pu to P en_DK: changing ¤ to kr. en_PH: changing Php to ₱ en_ZW: changing Z$ to $ es_BO: changing $b to Bs es_DO: changing $ to RD$ es_HN: changing L. to L es_PA: changing B/ to B/. es_SV: changing ₡ to $ fil_PH: changing PhP to ₱ he_IL: changing שח to ₪ hy_AM: changing Դ to ֏ ka_GE: changing ლ to ₾ kk_KZ: changing тг to ₸ ko_KR: changing ₩ to ₩ lg_UG: changing /- to USh lv_LV: changing Ls to € mg_MG: changing AR to Ar mhr_RU: changing ТЕҤ to ₽ my_MM: changing Ks to K os_RU: changing сом to ₽ pap_AW: changing f to ƒ pap_CW: changing f to ƒ ps_AF: changing افغانۍ to ؋ rw_RW: changing Frw to FRw ru_RU: changing руб to ₽ ru_UA: changing гр to ₴ sd_IN@devanagari: changing रु to ₹ se_NO: changing ru to kr si_LK: changing ₨ to රු so_SO: changing $ to S sq_AL: changing Lek to L ti_ER: changing $ to Nfk ti_ET: changing $ to Br tl_PH: changing PhP to ₱ tr_TR: changing TL to ₺ tt_RU: changing руб to ₽ tt_RU@iqtelif: changing sum to ₽ uz_UZ: changing so'm to soʻm Note: Some of the characters might not render as they're still quite new in the Unicode database.
* localedef: check LC_IDENTIFICATION.category valuesMike Frysinger2016-04-152-7/+43
| | | | | | Currently localedef accepts any value for the category keyword. This has allowed bad values to propagate to the vast majority of locales (~90%). Add some logic to only accept a few standards.
* localedata: LC_IDENTIFICATION.category: set to ISO 30112 2014 standardMike Frysinger2016-04-15311-4103/+4261
| | | | | | | | | | | | | | | The ISO 30112 standard defines the valid values for the category keyword as only a few options: posix:1993 i18n:2004 i18n:2012 The vast majority of locales had changed the "i18n" string to the name of its own locale (e.g. "ak_GH:2013") as well as tweaking the date (presumably thinking it should be the date of submission). Convert all of them to "i18n:2012" for consistency. A follow up change will update localedef to actually check/validate the field.
* Detect Intel Goldmont and Airmont processorsH.J. Lu2016-04-152-0/+13
| | | | | | | | | Updated from the model numbers of Goldmont and Airmont processors in Intel64 And IA-32 Processor Architectures Software Developer's Manual Volume 3 Revision 058. * sysdeps/x86/cpu-features.c (init_cpu_features): Detect Intel Goldmont and Airmont processors.
* Remove pre GCC3.2 optimizations from string/bits/string2.h.Wilco Dijkstra2016-04-153-439/+40
| | | | | | | | | | | | | | | | | | | * string/string.h: Use __GNUC_PREREQ(3,4) for bits/string2.h. * string/bits/string2.h (__STRING2_SMALL_GET16): Remove. (__STRING2_SMALL_GET32): Remove. (memset): Remove. (__memset_1): Remove. (__memset_gc): Remove. (__mempcpy): Remove. (mempcpy): Remove. (__mempcpy_args): Remove. (strchr): Remove. (strcpy): Remove. (strcpy_args): Remove. (__stpcpy_args): Remove. (__strcmp_cc): Remove. (__strcmp_gc): Remove. (strstr): Remove.
* Suppress GCC 6 warning about ambiguous 'else' with -WparenthesesYvan Roux2016-04-153-21/+30
|
* localedata: CLDRv29: update LC_ADDRESS.country_name translationsMike Frysinger2016-04-15174-71/+337
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This updates a bunch of locales based on CLDR v29 data: bg_BG: changing Bulgaria to България bo_CN: changing ཀྲུང་ཧྭ་མི་དམངས་སྤྱི་མཐུན་རྒྱལ་ཁབ། to རྒྱ་ནག bo_IN: changing རྒྱ་གར to རྒྱ་གར་ cy_GB: changing Cymru to Y Deyrnas Unedig dz_BT: changing འབྲུག། to འབྲུག en_US: changing USA to United States es_US: changing USA to Estados Unidos gd_GB: changing Breatainn Mhòr to An Rìoghachd Aonaichte ha_NG: changing Nigeria to Najeriya mk_MK: changing Macedonia to Македонија mn_MN: changing Mongolia to Монгол sq_MK: changing Macedonia to Maqedoni sr_RS@latin: changing Srbija i Crna Gora to Srbija tr_CY: changing Northern Cyprus to Kıbrıs tr_TR: changing Turkey to Türkiye ug_CN: changing 中华人民共和国 to جۇڭگو uz_UZ: changing O'zbekistan to Oʻzbekiston vi_VN: changing Việt nam to Việt Nam wae_CH: changing Switzerland to Schwiz yi_US: changing די פֿאראײניקטע שטאַטן to פֿאַראייניגטע שטאַטן yo_NG: changing Nigeria to Orílẹ́ède Nàìjíríà yue_HK: changing 香港 to 中華人民共和國香港特別行政區 zu_ZA: changing Mzansi Afrika to i-South Africa These all look largely straightforward. Many had English translations instead of native, and a few have been updated. I can't verify some of them as I'm not personally familiar, but the CLDR data matches. The USA->United States seems a little odd, but that is also what the CLDR database uses everywhere (rather than "United States of America"). We can also fill in a country name where there wasn't one before. Many look correct to me (mostly the English ones), but there's also many that I have no idea. But it can't be worse than leaving it blank ? :) ar_AE: changing to الإمارات العربية المتحدة ar_BH: changing to البحرين ar_DZ: changing to الجزائر ar_EG: changing to مصر ar_IN: changing to الهند ar_IQ: changing to العراق ar_JO: changing to الأردن ar_KW: changing to الكويت ar_LB: changing to لبنان ar_LY: changing to ليبيا ar_MA: changing to المغرب ar_OM: changing to عُمان ar_QA: changing to قطر ar_SA: changing to المملكة العربية السعودية ar_SD: changing to السودان ar_SS: changing to جنوب السودان ar_SY: changing to سوريا ar_TN: changing to تونس ar_YE: changing to اليمن as_IN: changing to ভাৰত ast_ES: changing to España az_AZ: changing to Azərbaycan be_BY: changing to Беларусь bn_IN: changing to ভারত br_FR: changing to Frañs brx_IN: changing to भारत bs_BA: changing to Bosna i Hercegovina ca_AD: changing to Andorra ca_ES: changing to Espanya ca_FR: changing to França ca_IT: changing to Itàlia ce_RU: changing to Росси da_DK: changing to Danmark de_AT: changing to Österreich de_BE: changing to Belgien de_CH: changing to Schweiz de_LU: changing to Luxemburg el_CY: changing to Κύπρος el_GR: changing to Ελλάδα en_AG: changing to Antigua & Barbuda en_AU: changing to Australia en_BW: changing to Botswana en_CA: changing to Canada en_DK: changing to Denmark en_GB: changing to United Kingdom en_HK: changing to Hong Kong SAR China en_IE: changing to Ireland en_IN: changing to India en_NZ: changing to New Zealand en_PH: changing to Philippines en_SG: changing to Singapore en_ZW: changing to Zimbabwe es_AR: changing to Argentina es_BO: changing to Bolivia es_CL: changing to Chile es_CO: changing to Colombia es_CU: changing to Cuba es_DO: changing to República Dominicana es_EC: changing to Ecuador es_ES: changing to España es_GT: changing to Guatemala es_HN: changing to Honduras es_MX: changing to México es_NI: changing to Nicaragua es_PA: changing to Panamá es_PE: changing to Perú es_PR: changing to Puerto Rico es_PY: changing to Paraguay es_SV: changing to El Salvador es_UY: changing to Uruguay es_VE: changing to Venezuela eu_ES: changing to Espainia fil_PH: changing to Pilipinas fo_FO: changing to Føroyar fr_BE: changing to Belgique fr_CA: changing to Canada fr_CH: changing to Suisse fr_FR: changing to France fr_LU: changing to Luxembourg fur_IT: changing to Italie fy_DE: changing to Dútslân fy_NL: changing to Nederlân ga_IE: changing to Éire gl_ES: changing to España gu_IN: changing to ભારત gv_GB: changing to Rywvaneth Unys he_IL: changing to ישראל hi_IN: changing to भारत hr_HR: changing to Hrvatska hu_HU: changing to Magyarország id_ID: changing to Indonesia is_IS: changing to Ísland it_CH: changing to Svizzera it_IT: changing to Italia ja_JP: changing to 日本 ka_GE: changing to საქართველო kk_KZ: changing to Қазақстан kl_GL: changing to Kalaallit Nunaat kn_IN: changing to ಭಾರತ kok_IN: changing to भारत ko_KR: changing to 대한민국 ks_IN: changing to ہِنٛدوستان ks_IN@devanagari: changing to भारत kw_GB: changing to Rywvaneth Unys ky_KG: changing to Кыргызстан lt_LT: changing to Lietuva lv_LV: changing to Latvija mg_MG: changing to Madagasikara ml_IN: changing to ഇന്ത്യ mr_IN: changing to भारत ms_MY: changing to Malaysia mt_MT: changing to Malta nb_NO: changing to Norge ne_NP: changing to नेपाल nl_AW: changing to Aruba nl_BE: changing to België nl_NL: changing to Nederland nn_NO: changing to Noreg or_IN: changing to ଭାରତ os_RU: changing to Уӕрӕсе pa_IN: changing to ਭਾਰਤ pa_PK: changing to ਪਾਕਿਸਤਾਨ pl_PL: changing to Polska pt_BR: changing to Brasil pt_PT: changing to Portugal ru_RU: changing to Россия ru_UA: changing to Украина sd_IN@devanagari: changing to भारत se_NO: changing to Norga si_LK: changing to ශ්‍රී ලංකාව sk_SK: changing to Slovensko sl_SI: changing to Slovenija sq_AL: changing to Shqipëri sv_SE: changing to Sverige ta_IN: changing to இந்தியா ta_LK: changing to இலங்கை ur_IN: changing to بھارت ur_PK: changing to پاکستان
* localedata: fix LC_ADDRESS.country_car entriesMike Frysinger2016-04-1533-19/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These entries have been checked mostly against Wikipedia, but also using the sources it cites (like the UN and other treaty sources). Fix incorrect values: en_BW: changing RB to BW kl_GL: changing GRO to KN km_KH: changing LAO to KH my_MM: changing BA to MYA oc_FR: changing F to F tr_CY: changing TR to CY wae_CH: changing DH to CH Add missing entries: aa_DJ: changing to DJI ak_GH: changing to GH ar_OM: changing to OM ar_SS: changing to SUD ar_YE: changing to YAR bo_CN: changing to CHN cmn_TW: changing to RC dv_MV: changing to MV dz_BT: changing to BHT en_AG: changing to AG es_HN: changing to HN es_PR: changing to PR hak_TW: changing to RC lzh_TW: changing to RC nan_TW: changing to RC nan_TW@latin: changing to RC nl_AW: changing to AUA pap_AW: changing to AUA so_DJ: changing to DJI the_NP: changing to NEP ug_CN: changing to CHN yue_HK: changing to HK zh_CN: changing to CHN zh_HK: changing to HK zh_TW: changing to RC
* localedata: CLDRv29: update LC_ADDRESS.country_num valuesMike Frysinger2016-04-1519-26/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This updates a few locales based on CLDR v29 data. Add missing fields: as_IN: changing to 356 dv_MV: changing to 462 kk_KZ: changing to 398 my_MM: changing to 104 rw_RW: changing to 646 tt_RU: changing to 643 Update ones that are wrong: dz_BT: changing BHU to 064 en_PH: changing 360 to 608 km_KH: changing 418 to 116 ky_KG: changing 643 to 417 tr_CY: changing 792 to 196 wo_SN: changing 450 to 686 As a result of fixing these, I had to update country_ab[23]: dz_BT: changing BHU to BTN en_PH: changing ID/IDN to PH/PHL km_KH: changing LA/LAO to KH/KHM ky_KG: changing KY/KYR to KG/KGZ tr_CY: changing TR/TUR to CY/CYP wo_SN: changing MG/MDG to SN/SEN Pad with leading zeros to match the standard and other locales: ber_DZ: changing 12 to 012 ca_AD: changing 20 to 020 en_AG: changing 28 to 028 hy_AM: changing 51 to 051 li_BE: changing 56 to 056 wa_BE: changing 56 to 056 I hand checked the first two sets against ISO 3166-1 directly.
* localedata: LC_PAPER: use copy directives everywhereMike Frysinger2016-04-15168-560/+337
| | | | | | | | | There are only two page sizes that locales use: US-Letter and A4. For the former, move to copying the en_US locale, while for the latter, move to copying the i18n locale. This lets us clean up all the stray comments like FIXME. There should be no functional differences here.
* Fix pread consolidation on ports that require argument alignmentAdhemerval Zanella2016-04-142-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes the __ALIGNMENT_{ARG,COUNT} definition for ports that define __ASSUME_ALIGNED_REGISTER_PAIRS by including the kernel-features.h (where it is defined if the case). This was shown on arm with failing cases: FAIL: debug/tst-chk1 FAIL: debug/tst-chk2 FAIL: debug/tst-chk3 FAIL: debug/tst-chk4 FAIL: debug/tst-chk5 FAIL: debug/tst-chk6 FAIL: debug/tst-lfschk1 FAIL: debug/tst-lfschk2 FAIL: debug/tst-lfschk3 FAIL: debug/tst-lfschk4 FAIL: debug/tst-lfschk5 FAIL: debug/tst-lfschk6 FAIL: posix/tst-preadwrite FAIL: posix/tst-preadwrite64 The patches fixes it. Tested on armhf. * sysdeps/unix/sysv/linux/sysdep.h: Include kernel-features.h.
* malloc: Add missing internal_function attributes on function definitionsFlorian Weimer2016-04-142-0/+9
| | | | Fixes build on i386 after commit 29d794863cd6e03115d3670707cc873a9965ba92.
* Fix strfmon_l: Use specified locale for number formatting [BZ #19633]Stefan Liebler2016-04-142-6/+12
| | | | | | | | | | | | | | | | | | The commit 985fc132f23dbb83de76c5af9e783ef1b5900148 "strfmon_l: Use specified locale for number formatting [BZ #19633]" introduced an elf/check-abi-libc testfailure due to __printf_fp_l on architectures which use sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h. This patch uses libc_hidden_def instead of ldbl_hidden_def. The ldbl_strong_alias is removed due to the rename of ___printf_fp_l to __printf_fp_l. ChangeLog: * stdio-common/printf_fp.c (__printf_fp_l): Rename ___printf_fp_l to __printf_fp_l and remove strong alias. Use libc_hidden_def instead of ldbl_hidden_def macro.
* malloc: Remove malloc hooks from fork handlerFlorian Weimer2016-04-143-119/+25
| | | | | | | The fork handler now runs so late that there is no risk anymore that other fork handlers in the same thread use malloc, so it is no longer necessary to install malloc hooks which made a subset of malloc functionality available to the thread that called fork.
* malloc: Remove unused definitions of thread_atfork, thread_atfork_staticFlorian Weimer2016-04-143-35/+7
|
* malloc: Run fork handler as late as possible [BZ #19431]Florian Weimer2016-04-149-51/+321
| | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, a thread M invoking fork would acquire locks in this order: (M1) malloc arena locks (in the registered fork handler) (M2) libio list lock A thread F invoking flush (NULL) would acquire locks in this order: (F1) libio list lock (F2) individual _IO_FILE locks A thread G running getdelim would use this order: (G1) _IO_FILE lock (G2) malloc arena lock After executing (M1), (F1), (G1), none of the threads can make progress. This commit changes the fork lock order to: (M'1) libio list lock (M'2) malloc arena locks It explicitly encodes the lock order in the implementations of fork, and does not rely on the registration order, thus avoiding the deadlock.
* Remove union wait [BZ #19613]Florian Weimer2016-04-1417-199/+72
| | | | | | | The overloading approach in the W* macros was incompatible with integer expressions of a type different from int. Applications using union wait and these macros will have to migrate to the POSIX-specified int status type.
* localedata: de_IT: new localeMatthias Wallnoefer2016-04-133-0/+152
|
* localedata: de_{AT,CH}: copy data from de_DEMatthias Wallnoefer2016-04-133-6/+9
| | | | | Improve the de_AT/de_CH locales by copying the de_DE locale in more places. This fills out translations that weren't there before.
* Register extra test objectsAndreas Schwab2016-04-136-5/+30
| | | | | This makes sure that the extra test objects are compiled with the correct MODULE_NAME and dependencies are tracked.
* localedata: LC_MEASUREMENT: use copy directives everywhereMike Frysinger2016-04-12306-613/+615
| | | | | | | | | There are only two measurement systems that locales use: US and metric. For the former, move to copying the en_US locale, while for the latter, move to copying the i18n locale. This lets us clean up all the stray comments like FIXME. There should be no functional differences here.
* localedata: CLDRv29: update LC_IDENTIFICATION language/territory fieldsMike Frysinger2016-04-1296-132/+230
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This updates all the territory fields based on CLDR v29 data. Many of them were obviously incorrect where people used a two letter code and not the English name. aa_DJ: changing DJ to Djibouti aa_ER@saaho: changing ER to Eritrea aa_ER: changing ER to Eritrea aa_ET: changing ET to Ethiopia am_ET: changing ET to Ethiopia ar_LY: changing Libyan Arab Jamahiriya to Libya ar_SY: changing Syrian Arab Republic to Syria bo_CN: changing P.R. of China to China bs_BA: changing Bosnia and Herzegowina to Bosnia & Herzegovina byn_ER: changing ER to Eritrea ca_IT: changing Italy (L'Alguer) to Italy ce_RU: changing RUSSIAN FEDERATION to Russia cmn_TW: changing Republic of China to Taiwan cy_GB: changing Great Britain to United Kingdom de_LU@euro: changing Luxemburg to Luxembourg de_LU: changing Luxemburg to Luxembourg en_AG: changing Antigua and Barbuda to Antigua & Barbuda en_GB: changing Great Britain to United Kingdom en_HK: changing Hong Kong to Hong Kong SAR China en_US: changing USA to United States es_US: changing USA to United States fr_LU@euro: changing Luxemburg to Luxembourg fr_LU: changing Luxemburg to Luxembourg fy_DE: changing DE to Germany gd_GB: changing Great Britain to United Kingdom gez_ER@abegede: changing ER to Eritrea gez_ER: changing ER to Eritrea gez_ET@abegede: changing ET to Ethiopia gez_ET: changing ET to Ethiopia gv_GB: changing Britain to United Kingdom hak_TW: changing Republic of China to Taiwan iu_CA: changing CA to Canada ko_KR: changing Republic of Korea to South Korea kw_GB: changing Britain to United Kingdom li_BE: changing BE to Belgium li_NL: changing NL to Netherlands lzh_TW: changing Republic of China to Taiwan my_MM: changing Myanmar to Myanmar (Burma) nan_TW: changing Republic of China to Taiwan nds_DE: changing DE to Germany nds_NL: changing NL to Netherlands om_ET: changing ET to Ethiopia om_KE: changing KE to Kenya pap_AW: changing AW to Aruba pap_CW: changing CW to Curaçao pt_BR: changing Brasil to Brazil sid_ET: changing ET to Ethiopia sk_SK: changing Slovak to Slovakia so_DJ: changing DJ to Djibouti so_ET: changing ET to Ethiopia so_KE: changing KE to Kenya so_SO: changing SO to Somalia ti_ER: changing ER to Eritrea ti_ET: changing ET to Ethiopia tig_ER: changing ER to Eritrea tt_RU@iqtelif: changing Tatarstan, Russian Federation to Russia uk_UA: changing UA to Ukraine unm_US: changing USA to United States wal_ET: changing ET to Ethiopia yi_US: changing USA to United States yue_HK: changing Hong Kong to Hong Kong SAR China zh_CN: changing P.R. of China to China zh_HK: changing Hong Kong to Hong Kong SAR China zh_TW: changing Taiwan R.O.C. to Taiwan This updates all the language fields based on CLDR v29 data. Many of them were obviously incorrect where people used a two letter code and not the English name. aa_DJ: changing aa to Afar aa_ER: changing aa to Afar aa_ER@saaho: changing aa to Afar aa_ET: changing aa to Afar am_ET: changing am to Amharic az_AZ: changing Azeri to Azerbaijani bn_BD: changing Bengali/Bangla to Bengali byn_ER: changing byn to Blin de_AT: changing German to Austrian German de_CH: changing German to Swiss High German en_AU: changing English to Australian English en_CA: changing English to Canadian English en_GB: changing English to British English en_US: changing English to American English es_ES: changing Spanish to European Spanish es_MX: changing Spanish to Mexican Spanish ff_SN: changing ff to Fulah fr_CA: changing French to Canadian French fr_CH: changing French to Swiss French fur_IT: changing Furlan to Friulian fy_DE: changing fy to Western Frisian fy_NL: changing Frisian to Western Frisian gd_GB: changing Scots Gaelic to Scottish Gaelic gez_ER@abegede: changing gez to Geez gez_ER: changing gez to Geez gez_ET@abegede: changing gez to Geez gez_ET: changing gez to Geez gv_GB: changing Manx Gaelic to Manx ht_HT: changing Kreyol to Haitian Creole kl_GL: changing Greenlandic to Kalaallisut lg_UG: changing Luganda to Ganda li_BE: changing li to Limburgish li_NL: changing li to Limburgish nan_TW@latin: changing Minnan to Min Nan Chinese nb_NO: changing Norwegian, Bokmål to Norwegian Bokmål nds_DE: changing nds to Low German nds_NL: changing nds to Low Saxon niu_NU: changing Vagahau Niue (Niuean) to Niuean niu_NZ: changing Vagahau Niue (Niuean) to Niuean nl_BE: changing Dutch to Flemish nn_NO: changing Norwegian, Nynorsk to Norwegian Nynorsk nr_ZA: changing Southern Ndebele to South Ndebele om_ET: changing om to Oromo om_KE: changing om to Oromo or_IN: changing Odia to Oriya os_RU: changing Ossetian to Ossetic pap_AW: changing pap to Papiamento pap_CW: changing pap to Papiamento pa_PK: changing Punjabi (Shahmukhi) to Punjabi pt_BR: changing Portuguese to Brazilian Portuguese pt_PT: changing Portuguese to European Portuguese se_NO: changing Northern Saami to Northern Sami sid_ET: changing sid to Sidamo so_DJ: changing so to Somali so_ET: changing so to Somali so_KE: changing so to Somali so_SO: changing so to Somali st_ZA: changing Sotho to Southern Sotho sw_KE: changing sw to Swahili sw_TZ: changing sw to Swahili ti_ER: changing ti to Tigrinya ti_ET: changing ti to Tigrinya tig_ER: changing tig to Tigre uk_UA: changing uk to Ukrainian wal_ET: changing wal to Wolaytta yue_HK: changing Yue Chinese to Cantonese
* localedata: LC_TIME.date_fmt: delete entries same as the default valueMike Frysinger2016-04-12140-592/+142
| | | | | | There's no real value in populating this field when it's the same as the default POSIX setting, so drop it from most locales so it's clear what's going on.
* X86-64: Use non-temporal store in memcpy on large dataH.J. Lu2016-04-126-171/+260
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The large memcpy micro benchmark in glibc shows that there is a regression with large data on Haswell machine. non-temporal store in memcpy on large data can improve performance significantly. This patch adds a threshold to use non temporal store which is 6 times of shared cache size. When size is above the threshold, non temporal store will be used, but avoid non-temporal store if there is overlap between destination and source since destination may be in cache when source is loaded. For size below 8 vector register width, we load all data into registers and store them together. Only forward and backward loops, which move 4 vector registers at a time, are used to support overlapping addresses. For forward loop, we load the last 4 vector register width of data and the first vector register width of data into vector registers before the loop and store them after the loop. For backward loop, we load the first 4 vector register width of data and the last vector register width of data into vector registers before the loop and store them after the loop. [BZ #19928] * sysdeps/x86_64/cacheinfo.c (__x86_shared_non_temporal_threshold): New. (init_cacheinfo): Set __x86_shared_non_temporal_threshold to 6 times of shared cache size. * sysdeps/x86_64/multiarch/memmove-avx-unaligned-erms.S (VMOVNT): New. * sysdeps/x86_64/multiarch/memmove-avx512-unaligned-erms.S (VMOVNT): Likewise. * sysdeps/x86_64/multiarch/memmove-sse2-unaligned-erms.S (VMOVNT): Likewise. (VMOVU): Changed to movups for smaller code sizes. (VMOVA): Changed to movaps for smaller code sizes. * sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S: Update comments. (PREFETCH): New. (PREFETCH_SIZE): Likewise. (PREFETCHED_LOAD_SIZE): Likewise. (PREFETCH_ONE_SET): Likewise. Rewrite to use forward and backward loops, which move 4 vector registers at a time, to support overlapping addresses and use non temporal store if size is above the threshold and there is no overlap between destination and source.
* VDSO support for MIPSMatthew Fortune2016-04-128-0/+149
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for using the implementations of gettimeofday() and clock_gettime() provided by the kernel in the VDSO. The VDSO will always provide clock_gettime() as CLOCK_{REALTIME,MONOTONIC}_COARSE can be implemented regardless of platform. CLOCK_{REALTIME,MONOTONIC}, along with gettimeofday(), are only implemented on platforms which make use of either the CP0 count or GIC as their clocksource. On other platforms, the VDSO does not provide the __vdso_gettimeofday symbol, as it is never useful. The VDSO functions return ENOSYS when they encounter an unsupported request, in which case glibc should fall back to the standard syscall. Tested with upstream kernel 4.5 and QEMU emulating Malta. ./vdsotest gettimeofday bench gettimeofday: syscall: 1021 nsec/call gettimeofday: libc: 262 nsec/call gettimeofday: vdso: 174 nsec/call * sysdeps/unix/sysv/linux/mips/Makefile (sysdep_routines): Include dl-vdso. * sysdeps/unix/sysv/linux/mips/Versions: Add __vdso_clock_gettime. * sysdeps/unix/sysv/linux/mips/init-first.c: New file. * sysdeps/unix/sysv/linux/mips/libc-vdso.h: New file. * sysdeps/unix/sysv/linux/mips/mips32/sysdep.h: (INTERNAL_VSYSCALL_CALL): Define to be compatible with MIPS definitions of INTERNAL_SYSCALL_{ERROR_P,ERRNO}. (HAVE_CLOCK_GETTIME_VSYSCALL): Define. (HAVE_GETTIMEOFDAY_VSYSCALL): Define. * sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h: Likewise.
* Consolidate pwrite/pwrite64 implementationsAdhemerval Zanella2016-04-1117-427/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch consolidates all the pwrite/pwrite64 implementation for Linux in only one (sysdeps/unix/sysv/linux/pwrite{64}.c). It also removes the syscall from the auto-generation using assembly macros. For pwrite{64} offset argument placement the new SYSCALL_LL{64} macro is used. For pwrite ports that do not define __NR_pwrite will use __NR_pwrite64 and for pwrite64 ports that dot define __NR_pwrite64 will use __NR_pwrite for the syscall. Checked on x86_64, x32, i386, aarch64, and ppc64le. * sysdeps/unix/sysv/linux/arm/pwrite.c: Remove file. * sysdeps/unix/sysv/linux/arm/pwrite64.c: Likewise. * sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite.c: Likewise. * sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite64.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite64.c: Likewise. * sysdeps/unix/sysv/linux/wordsize-64/pwrite64.c: Likewise. * sysdeps/unix/sysv/linux/wordsize-64/syscalls.list (prite): Remove syscalls generation. * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h [__NR_pwrite64] (__NR_write): Remove define. * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h [__NR_pwrite64] (__NR_write): Remove define. * sysdeps/unix/sysv/linux/pwrite.c [__NR_pwrite64] (__NR_pwrite): Remove define. (__libc_pwrite): Use SYSCALL_LL macro on offset argument. * sysdeps/unix/sysv/linux/pwrite64.c [__NR_pwrite64] (__NR_pwrite): Remove define. (__libc_pwrite64): Use SYSCALL_LL64 macro on offset argument. * sysdeps/unix/sysv/linux/sh/pwrite.c: Rewrite using default Linux implementation as base. * sysdeps/unix/sysv/linux/sh/pwrite64.c: Likewise. * sysdeps/unix/sysv/linux/mips/pwrite.c: Likewise. * sysdeps/unix/sysv/linux/mips/pwrite64.c: Likewise.
* Consolidate pread/pread64 implementationsAdhemerval Zanella2016-04-1118-414/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch consolidates all the pread/pread64 implementation for Linux in only one (sysdeps/unix/sysv/linux/pread.c). It also removes the syscall from the auto-generation using assembly macros. For pread{64} offset argument placement the new SYSCALL_LL{64} macro is used. For pread ports that do not define __NR_pread will use __NR_pread64 and for pread64 ports that dot define __NR_pread64 will use __NR_pread for the syscall. Checked on x86_64, x32, i386, aarch64, and ppc64le. * sysdeps/unix/sysv/linux/arm/pread.c: Remove file. * sysdeps/unix/sysv/linux/arm/pread64.c: Likewise. * sysdeps/unix/sysv/linux/generic/wordsize-32/pread.c: Likewise. * sysdeps/unix/sysv/linux/generic/wordsize-32/pread64.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/pread.c: Likewise, * sysdeps/unix/sysv/linux/powerpc/powerpc32/pread64.c: Likewise. * sysdeps/unix/sysv/linux/wordsize-64/pread64.c: Likewise. * sysdeps/unix/sysv/linux/wordsize-64/syscalls.list (pread): Remove syscall generation. * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h [__NR_pread64] (__NR_pread): Remove define. * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h: [__NR_pread64] (__NR_pread): Likewise. * sysdeps/unix/sysv/linux/pread.c [__NR_pread64] (__NR_pread): Remove define. (__libc_pread): Use SYSCALL_LL macro on offset argument. * sysdeps/unix/sysv/linux/pread64.c [__NR_pread64] (__NR_pread): Remove define. (__libc_pread64): Use SYSCALL_LL64 macro on offset argument. * sysdeps/unix/sysv/linux/sh/pread.c: Rewrite using default Linux implementation as base. * sysdeps/unix/sysv/linux/sh/pread64.c: Likewise. * sysdeps/unix/sysv/linux/mips/pread.c: Likewise. * sysdeps/unix/sysv/linux/mips/pread64.c: Likewise.
* Consolidate off_t/off64_t syscall argument passingAdhemerval Zanella2016-04-115-10/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch add three new macros (SYSCALL_LL, SYSCALL_LL64, and __ASSUME_WORDSIZE64_ILP32) to use along with off_t and off64_t argument syscalls. The rationale for this change is: 1. Remove multiple implementations for the same syscall for different architectures (for instance, pread have 6 different implementations). 2. Also remove the requirement to use syscall wrappers for cancellable entrypoints. The macro usage should be used along __ALIGNMENT_ARG to follow ABI constrains for architecture where it applies. For instance, pread can be rewritten as: return SYSCALL_CANCEL (pread, fd, buf, count, __ALIGNMENT_ARG SYSCALL_LL (offset)); Another macro, SYSCALL_LL64, is provided for off64_t. The macro __ASSUME_WORDSIZE64_ILP32 is used by the ABI to define is uses 64-bit register even if ABI is ILP32 (for instance x32 and mips64-n32). The changes itself are not currently used in any implementation, so no code change is expected. * sysdeps/unix/sysv/linux/generic/sysdep.h (__ALIGNMENT_ARG): Move definition. (__ALIGNMENT_COUNT): Likewise. * sysdeps/unix/sysv/linux/sysdep.h (__ALIGNMENT_ARG): To here. (__ALIGNMENT_COUNT): Likewise. (SYSCALL_LL): New define. (SYSCALL_LL64): Likewise. * sysdeps/unix/sysv/linux/mips/kernel-features.h: [_MIPS_SIM == _ABIO32] (__ASSUME_WORDSIZE64_ILP32): Define. * sysdeps/unix/sysv/linux/x86_64/kernel-features.h: [ILP32] (__ASUME_WORDSIZE64_ILP32): Likewise.
* Define __ASSUME_ALIGNED_REGISTER_PAIRS for missing portsAdhemerval Zanella2016-04-114-0/+25
| | | | | | | | | | | | | | | | This patch defines __ASSUME_ALIGNED_REGISTER_PAIRS for the missing ports that require 64-bit value (e.g., long long) to be aligned to an even register pair in argument passing. No code change is expected, tested with builds for powerpc32, mips-o32, and armhf. * sysdeps/unix/sysv/linux/arm/kernel-features.h (__ASSUME_ALIGNED_REGISTER_PAIRS): Define. * sysdeps/unix/sysv/linux/mips/kernel-features.h [_MIPS_SIM == _ABIO32] (__ASSUME_ALIGNED_REGISTER_PAIRS): Likewise. * sysdeps/unix/sysv/linux/powerpc/kernel-features.h [!__powerpc64__] (__ASSUME_ALIGNED_REGISTER_PAIRS): Likewise.
* nss_dns: Fix assertion failure in _nss_dns_getcanonname_r [BZ #19865]Florian Weimer2016-04-112-0/+13
|