about summary refs log tree commit diff
Commit message (Collapse)AuthorAgeFilesLines
...
* posix: Fix default posix_spawn return valueAdhemerval Zanella2017-07-052-20/+25
| | | | | | | | | | | | This patch fix the return value for error conditions for default posix_spawn (where the errno is expected). It also avoid clobber errno on fork call. Checked on x86_64 (with Linux implementation removed). [BZ# 21697] * sysdeps/posix/spawni.c (__spawni_child): Fix return value. (__spawnix): Do not clober errno.
* Fixup localedata/ChangeLog.Carlos O'Donell2017-07-051-6/+9
| | | | | - Rewrite recent entry to follow GNU ChangeLog format. - Convert spaces to tabs in one case.
* Edit and shorten float128 NEWS item.Joseph Myers2017-07-051-93/+14
|
* support: Add resolver testing mode which does not patch _resFlorian Weimer2017-07-055-3/+549
|
* support: Add support_chroot_create and support_chroot_freeFlorian Weimer2017-07-055-47/+140
|
* support: Check isolation of loopback addresses in tst-support-namespaceFlorian Weimer2017-07-052-2/+88
|
* Added Tok-Pisin locale.Akhilesh Kumar2017-07-053-0/+223
| | | | | | | [BZ #21694] Added tok-pisin language locale for Papua New Guinea. Signed-off-by: Akhilesh Kumar <akhilesh.k@samsung.com>
* Consistently say "GNU C Library" in NEWS, not "glibc".Joseph Myers2017-07-051-20/+20
|
* Reorganize and revise NEWS for 2.26.Zack Weinberg2017-07-051-135/+144
|
* For Breton yesstr/nostr locale are missingAkhilesh Kumar2017-07-042-0/+7
| | | | | | | | [BZ #21706] During Locale verification i observed that yesstr and nostr are missing for Breton [LC_MESSAGES] locale Signed-off-by: Akhilesh Kumar <akhilesh.k@samsung.com>
* Single threaded stdio optimizationSzabolcs Nagy2017-07-0415-0/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Locking overhead can be significant in some stdio operations that are common in single threaded applications. This patch adds the _IO_FLAGS2_NEED_LOCK flag to indicate if an _IO_FILE object needs to be locked and some of the stdio functions just jump to their _unlocked variant when not. The flag is set on all _IO_FILE objects when the first thread is created. A new GLIBC_PRIVATE libc symbol, _IO_enable_locks, was added to do this from libpthread. The optimization can be applied to more stdio functions, currently it is only applied to single flag check or single non-wide-char standard operations. The flag should probably be never set for files with _IO_USER_LOCK, but that's just a further optimization, not a correctness requirement. The optimization is valid in a single thread because stdio operations are non-as-safe (so lock state is not observable from a signal handler) and stdio locks are recursive (so lock state is not observable via deadlock). The optimization is not valid if a thread may be created while an stdio lock is taken and thus it should be disabled if any user code may run during an stdio operation (interposed malloc, printf hooks, etc). This makes the optimization more complicated for some stdio operations (e.g. printf), but those are bigger and thus less important to optimize so this patch does not try to do that. * libio/libio.h (_IO_FLAGS2_NEED_LOCK, _IO_need_lock): Define. * libio/libioP.h (_IO_enable_locks): Declare. * libio/Versions (_IO_enable_locks): New symbol. * libio/genops.c (_IO_enable_locks): Define. (_IO_old_init): Initialize flags2. * libio/feof.c.c (_IO_feof): Avoid locking when not needed. * libio/ferror.c (_IO_ferror): Likewise. * libio/fputc.c (fputc): Likewise. * libio/putc.c (_IO_putc): Likewise. * libio/getc.c (_IO_getc): Likewise. * libio/getchar.c (getchar): Likewise. * libio/ioungetc.c (_IO_ungetc): Likewise. * nptl/pthread_create.c (__pthread_create_2_1): Enable stdio locks. * libio/iofopncook.c (_IO_fopencookie): Enable locking for the file. * sysdeps/pthread/flockfile.c (__flockfile): Likewise.
* sysconf: Use conservative default for _SC_NPROCESSORS_ONLN [BZ #21542]Florian Weimer2017-07-044-2/+109
|
* resolv: Fix resolv_conf _res matchingFlorian Weimer2017-07-043-5/+61
| | | | | | | | A dot-less host name without an /etc/resolv.conf file caused an assertion failure in update_from_conf because the function would not deal correctly with the empty search list case. Thanks to Andreas Schwab for debugging assistence.
* Update versions in build-many-glibcs.py.Joseph Myers2017-07-042-3/+9
| | | | | | | | | This patch updates build-many-glibcs.py to use the current release branch of binutils and current releases of GMP and the Linux kernel. * scripts/build-many-glibcs.py (Context.checkout): Default binutils version to 2.29 branch, GMP version to 6.1.2 and Linux kernel version to 4.12.
* resolv: Fix improper assert in __resolv_conf_attachFlorian Weimer2017-07-044-8/+108
|
* resolv: Introduce free list for resolv_conf index slostsFlorian Weimer2017-07-034-32/+142
|
* resolv: Automatically reload a changed /etc/resolv.conf file [BZ #984]Florian Weimer2017-07-0311-94/+272
| | | | | | | | | | This commit enhances the stub resolver to reload the configuration in the per-thread _res object if the /etc/resolv.conf file has changed. The resolver checks whether the application has modified _res and will not overwrite the _res object in that case. The struct resolv_context mechanism is used to check the configuration file only once per name lookup.
* resolv: Mirror the entire resolver configuration in struct resolv_confFlorian Weimer2017-07-037-116/+572
| | | | | | | | | | | | | | This commit adds the remaining unchanging members (which are loaded from /etc/resolv.conf) to struct resolv_conf. The extended name server list is currently not used by the stub resolver. The switch depends on a cleanup: The _u._ext.nssocks array stores just a single socket, and needs to be replaced with a single socket value. (The compatibility gethostname implementation does not use the extended addres sort list, either. Updating the compat code is not worthwhile.)
* resolv: Lift domain search list limits [BZ #19569] [BZ #21475]Florian Weimer2017-07-038-81/+382
| | | | | | | This change uses the extended resolver state in struct resolv_conf to store the search list. If applications have not patched the _res object directly, this extended search list will be used by the stub resolver during name resolution.
* resolv: Introduce struct resolv_conf with extended resolver stateFlorian Weimer2017-07-039-10/+470
| | | | | | | | | | | | This change provides additional resolver configuration state which is not exposed through the _res ABI. It reuses the existing initstamp field in the supposedly-private part of _res. Some effort is undertaken to avoid memory safety issues introduced by applications which directly patch the _res object. With this commit, only the initstamp field is moved into struct resolv_conf. Additional members will be added later, eventually migrating the entire resolver configuration.
* resolv: Introduce struct resolv_context [BZ #21668]Florian Weimer2017-07-0324-371/+1033
| | | | | | | | | | | | struct resolv_context objects provide a temporary resolver context which does not change during a name lookup operation. Only when the outmost context is created, the stub resolver configuration is verified to be current (at present, only against previous res_init calls). Subsequent attempts to obtain the context will reuse the result of the initial verification operation. struct resolv_context can also be extended in the future to store data which needs to be deallocated during thread cancellation.
* resolv: Add preinit tests to resolv/tst-resolv-res_init-skeleton.cFlorian Weimer2017-07-032-1/+201
|
* More fixes after the recent import from CLDR-31Rafal Luzynski2017-07-039-64/+103
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After the recent import of month names from CLDR (bug 21217) more imports are also needed, mostly abbreviated month names. * localedata/locales/br_FR (abmon): Reworded "Eve " to "Mezh". * localedata/locales/fy_NL (abmon): Reworded "Maa" (March) to "Mrt" and "Maa" (May) to "Mai". * localedata/locales/lg_UG (abmon): Reworded "Jun" to "Juu". * localedata/locales/ln_CD (abmon): "yan", "fbl", "msi", and so on. * localedata/locales/mn_MN (abmon): "1-р сар", "2-р сар", "3-р сар", and so on. * localedata/locales/vi_VN (abmon): Reworded "Th01" to "Thg 1", "Th02" to "Thg 2" and so on. * localedata/locales/yo_NG (abday): "Àìkú", "Ajé", "Ìsẹ́gun", and so on, also comment updated to match the new content. (day): "Ọjọ́ Àìkú", "Ọjọ́ Ajé", "Ọjọ́ Ìsẹ́gun", and so on. (abmon): "Ṣẹ́rẹ́", "Èrèlè", "Ẹrẹ̀nà", and so on. (mon): Comment updated to match the actual content. (d_t_fmt): Changed "%A" to "%a" and "%B" to "%b". * localedata/locales/zu_ZA (abmon): "Jan", "Feb", "Mas", and so on, also comment updated to match the new content. (mon): comment updated to match the actual content.
* powerpc: Clean up strlen and strnlen for power8Rajalakshmi Srinivasaraghavan2017-07-033-20/+6
| | | | | To align a quadword aligned address to 64 bytes, maximum of three 16 bytes load is needed for worst case instead of loading four times.
* Use __builtin_popcount in __sched_cpucount [BZ #21696]H.J. Lu2017-07-012-17/+17
| | | | | | | | | | | | posix/sched_cpucount.c assumes that size of __cpu_mask == size of long, which is incorrect for x32. This patch uses __builtin_popcount, which is availabe in GCC 4.9, in posix/sched_cpucount.c. Tested on i686, x86-64 and x32 with multi-arch disabled. [BZ #21696] * posix/sched_cpucount.c: Don't include <limits.h>. (__sched_cpucount): Use __builtin_popcount.
* Fix typo in glibc.tune.cpu nameSiddhesh Poyarekar2017-07-012-1/+6
|
* float128: Add signbit alternative for old compilersGabriel F. T. Gomes2017-06-306-1/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In math/math.h, __MATH_TG will expand signbit to __builtin_signbit*, e.g.: __builtin_signbitf128, before GCC 6. However, there has never been a __builtin_signbitf128 in GCC and the type-generic builtin is only available since GCC 6. For older GCC, this patch defines __builtin_signbitf128 to __signbitf128, so that the internal function is used instead of the non-existent builtin. This patch also changes the implementation of __signbitf128, because it was reusing the implementation of __signbitl from ldbl-128, which calls __builtin_signbitl. Using the long double version of the builtin is not correct on machines where _Float128 is ABI-distinct from long double (i.e.: ia64, powerpc64le, x86, x86_84). The new implementation does not rely on builtins when being built with GCC versions older than 6.0. The new code does not currently affect powerpc64le builds, because only GCC 6.2 fulfills the requirements from configure. It might affect powerpc64le builds if those requirements are backported to older versions of the compiler. The new code affects x86_64 builds, since glibc is supposed to build correctly with older versions of GCC. Tested for powerpc64le and x86_64. * include/math.h (__signbitf128): Define as hidden. * sysdeps/ieee754/float128/s_signbitf128.c (__signbitf128): Reimplement without builtins. * sysdeps/ia64/bits/floatn.h [!__GNUC_PREREQ (6, 0)] (__builtin_signbitf128): Define to __signbitf128. * sysdeps/powerpc/bits/floatn.h: Likewise. * sysdeps/x86/bits/floatn.h: Likewise.
* Consolidate Linux fcntl implementationAdhemerval Zanella2017-06-3015-224/+54
| | | | | | | | | | | | | | | | | | | | | | | | | This patch consolidates the fcntl Linux syscall generation on sysdeps/unix/sysv/linux/fcntl.c. It basically removes all the architecture specific implementations. Checked on i686-linux-gnu, x86_64-linux-gnu, x86_64-linux-gnux32, aarch64-linux-gnu, arm-linux-gnueabihf, and powerpc64le-linux-gnu. * sysdeps/unix/sysv/linux/arm/fcntl.c: Remove file. * sysdeps/unix/sysv/linux/generic/wordsize-32/fcntl.c: Likewise. * sysdeps/unix/sysv/linux/hppa/fcntl.c: Likewise. * sysdeps/unix/sysv/linux/i386/fcntl.c: Likewise. * sysdeps/unix/sysv/linux/m68k/fcntl.c: Likewise. * sysdeps/unix/sysv/linux/microblaze/fcntl.c: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/fcntl.c: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n32/fcntl.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fcntl.c: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/fcntl.c: Likewise. * sysdeps/unix/sysv/linux/sh/fcntl.c: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/fcntl.c: Likewise. * sysdeps/unix/sysv/linux/fcntl.c: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc64/fcntl.c: Refactor to use default implementation.
* tunables, aarch64: New tunable to override cpuSiddhesh Poyarekar2017-06-306-26/+106
| | | | | | | | | | | | | | | | | | | | Add a new tunable (glibc.tune.cpu) to override CPU identification on aarch64. This is useful in two cases: one where it is desirable to pretend to be another CPU for purposes of testing or because routines written for that CPU are beneficial for specific workloads and second where the underlying kernel does not support emulation of MRS to get the MIDR of the CPU. * elf/dl-tunables.h (tunable_is_name): Move from... * elf/dl-tunables.c (is_name): ... here. (parse_tunables, __tunables_init): Adjust. * manual/tunables.texi: Document glibc.tune.cpu. * sysdeps/aarch64/dl-tunables.list: New file. * sysdeps/unix/sysv/linux/aarch64/cpu-features.c (struct cpu_list): New type. (cpu_list): New list of CPU names and their MIDR. (get_midr_from_mcpu): New function. (init_cpu_features): Override MIDR if necessary.
* aarch64: Call all string function implementations in testsSiddhesh Poyarekar2017-06-302-4/+8
| | | | | | | | | | | The string function implementations implemented so far do not use any instructions that may deviate from standard aarch64, so it is possible for all routines to run on all armv8 hardware. Select all implementations in the benchmarks and tests. * sysdeps/aarch64/multiarch/ifunc-impl-list.c (__libc_ifunc_impl_list): Unconditionally select thunderx routine for testing.
* i386: Increase MALLOC_ALIGNMENT to 16 [BZ #21120]H.J. Lu2017-06-305-10/+64
| | | | | | | | | | | | | | | | | | | | | | | GCC 7 changed the definition of max_align_t on i386: https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=9b5c49ef97e63cc63f1ffa13baf771368105ebe2 As a result, glibc malloc no longer returns memory blocks which are as aligned as max_align_t requires. This causes malloc/tst-malloc-thread-fail to fail with an error like this one: error: allocation function 0, size 144 not aligned to 16 This patch moves the MALLOC_ALIGNMENT definition to <malloc-alignment.h> and increases the malloc alignment to 16 for i386. [BZ #21120] * malloc/malloc-internal.h (MALLOC_ALIGNMENT): Moved to ... * sysdeps/generic/malloc-alignment.h: Here. New file. * sysdeps/i386/malloc-alignment.h: Likewise. * sysdeps/generic/malloc-machine.h: Include <malloc-alignment.h>.
* resolv: Improve debugging output from tst-resolv-res_initFlorian Weimer2017-06-302-2/+19
|
* resolv: Remove source argument fron res_optionsFlorian Weimer2017-06-302-4/+9
|
* resolv: Remove DEBUG from resolv/res_query.cFlorian Weimer2017-06-302-36/+4
|
* resolv: Reformat resolv/res_data.c to GNU styleFlorian Weimer2017-06-302-13/+38
|
* resolv: Move res_query, res_search res_querydomain, hostaliasFlorian Weimer2017-06-303-81/+63
| | | | From res_data.c to query.c
* resolv: Move res_isourserver, res_send from res_data.c to res_send.cFlorian Weimer2017-06-303-16/+20
|
* resolv: Turn _res_opcodes into a compatibility symbolFlorian Weimer2017-06-304-6/+21
|
* resolv: Move fp_nquery, fp_query, p_query, _res_opcodesFlorian Weimer2017-06-304-59/+71
| | | | | | From res_data.c to res_debug.c. Also drop the unnecessary _res initialization from fp_nquery.
* resolv: Remove unused resolv/res_debug.h header fileFlorian Weimer2017-06-303-35/+5
|
* resolv: Remove DEBUG from resolv/res_send.cFlorian Weimer2017-06-302-144/+7
|
* resolv: Move the res_mkquery function to the resolv/mk_query.c fileFlorian Weimer2017-06-303-21/+26
|
* resolv: Reformat resolv/res_mkquery.c to GNU styleFlorian Weimer2017-06-302-144/+145
|
* resolv: Remove DEBUG macro from resolv/res_mkquery.cFlorian Weimer2017-06-302-18/+23
|
* support: Report actual exit status in support_capture_subprocess_checkFlorian Weimer2017-06-302-1/+6
|
* resolv: Make RES_ROTATE start with a random name server [BZ #19570]Florian Weimer2017-06-305-28/+354
| | | | | Do not copy the actual name server addresses to rotate them. Use a global rotation offset instead.
* localedata: CLDRv29: update LC_ADDRESS.lang_name translationsMike Frysinger2017-06-3081-73/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This updates a bunch of locales based on CLDR v29 data: az_AZ: changing Azərbaycanca to azərbaycan dili be_BY: changing беларуская мова to беларуская bem_ZM: changing iciBemba to Ichibemba bg_BG: changing български език to български bo_CN: changing པོད་སྐད་ to བོད་སྐད་ bo_IN: changing པོད་སྐད་ to བོད་སྐད་ br_FR: changing Brezhoneg to brezhoneg brx_IN: lang_name: setting to बड़ो ce_RU: changing нохчийн мотт to нохчийн cs_CZ: changing Čeština to čeština dz_BT: changing (རྫོང་ཁ to རྫོང་ཁ el_CY: changing ελληνικά to Ελληνικά el_GR: changing ελληνικά to Ελληνικά es_AR: changing Español to español es_BO: changing Español to español es_CL: changing Español to español es_CO: changing Español to español es_CR: changing Español to español es_CU: changing Español to español es_DO: changing Español to español es_EC: changing Español to español es_ES: changing Español to español es_GT: changing Español to español es_HN: changing Español to español es_MX: changing Español to español es_NI: changing Español to español es_PA: changing Español to español es_PE: changing Español to español es_PR: changing Español to español es_PY: changing Español to español es_SV: changing Español to español es_US: changing Español to español es_UY: changing Español to español es_VE: changing Español to español et_EE: changing eesti keel to eesti eu_ES: changing Euskara to euskara fr_BE: changing Français to français fr_CA: changing Français to français fr_CH: changing Français to français fr_FR: changing Français to français fr_LU: changing Français to français fur_IT: changing Furlan to furlan fy_NL: changing Frysk to West-Frysk gl_ES: changing Galego to galego gv_GB: changing y Ghaelg to Gaelg he_IL: lang_name: setting to עברית hsb_DE: changing Hornjoserbšćina to hornjoserbšćina hy_AM: changing Հայերեն to հայերեն id_ID: changing Bahasa Indonesia to Bahasa Indonesia it_CH: changing Italiano to italiano it_IT: changing Italiano to italiano kl_GL: changing Kalaallisut to kalaallisut km_KH: changing ភាសាខ្មែរ to ខ្មែរ ko_KR: changing 한국말 to 한국어 ks_IN: changing kạ̄šur to کٲشُر kw_GB: changing Kernowek to kernewek ky_KG: changing Кыргызча to кыргызча lg_UG: changing Oluganda to Luganda lt_LT: changing lietuvių kalba to lietuvių lv_LV: changing latviešu valoda to latviešu mk_MK: changing македонск/и јазик to македонски mn_MN: changing Монгол хэл to монгол nb_NO: changing Bokmål to norsk bokmål nn_NO: changing Nynorsk to nynorsk os_RU: lang_name: setting to ирон ru_RU: lang_name: setting to русский ru_UA: lang_name: setting to русский se_NO: changing Davvisámegiella to davvisámegiella sk_SK: lang_name: setting to slovenčina ta_IN: lang_name: setting to தமிழ் ta_LK: lang_name: setting to தமிழ் tk_TM: changing Türkmençe to türkmençe tr_CY: changing Turkish to Türkçe tr_TR: changing Turkish to Türkçe ur_IN: lang_name: setting to {اردو} ur_PK: lang_name: setting to {اردو} vi_VN: changing Việt ngữ to Tiếng Việt yo_NG: changing Yorùbá to Èdè Yorùbá zu_ZA: changing IsiZulu to isiZulu Most of these are simple case changes, but they match the CLDR db. A search for a few of the others suggests they're also correct.
* SPARC sys/ucontext.h namespace fixes (bug 21457).Joseph Myers2017-06-294-121/+236
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes various miscellaneous namespace issues in the SPARC sys/ucontext.h header. These are similar to changes made previous to other sys/ucontext.h headers, where the SPARC header was excluded from those previous patches because of its complexity. Tested for SPARC with build-many-glibcs.py. [BZ #21457] * sysdeps/unix/sysv/linux/sparc/sys/ucontext.h (__ctx): New macro. [__WORDSIZE == 64] (MC_TSTATE): Define only for [__USE_MISC]. [__WORDSIZE == 64] (MC_PC): Likewise. [__WORDSIZE == 64] (MC_NPC): Likewise. [__WORDSIZE == 64] (MC_Y): Likewise. [__WORDSIZE == 64] (MC_G1): Likewise. [__WORDSIZE == 64] (MC_G2): Likewise. [__WORDSIZE == 64] (MC_G3): Likewise. [__WORDSIZE == 64] (MC_G4): Likewise. [__WORDSIZE == 64] (MC_G5): Likewise. [__WORDSIZE == 64] (MC_G6): Likewise. [__WORDSIZE == 64] (MC_G7): Likewise. [__WORDSIZE == 64] (MC_O0): Likewise. [__WORDSIZE == 64] (MC_O1): Likewise. [__WORDSIZE == 64] (MC_O2): Likewise. [__WORDSIZE == 64] (MC_O3): Likewise. [__WORDSIZE == 64] (MC_O4): Likewise. [__WORDSIZE == 64] (MC_O5): Likewise. [__WORDSIZE == 64] (MC_O6): Likewise. [__WORDSIZE == 64] (MC_O7): Likewise. [__WORDSIZE == 64] (MC_NGREG): Rename to __MC_NGREG and define to __MC_NGREG if [__USE_MISC]. [__WORDSIZE == 64] (MC_MAXFPQ): Define only for [__USE_MISC]. [__WORDSIZE == 64] (mc_gregset_t): Define using __MC_NGREG. [__WORDSIZE == 64] (struct mc_fq): Rename to struct __mc_fq. Define fields using __ctx. [__WORDSIZE == 64] (mc_fpu_t): Remove struct tag. Define fields using __ctx. [__WORDSIZE == 64] (mcontext_t): Define fields using __ctx. (REG_PSR): Define only for [__USE_MISC]. (REG_PC): Likewise. (REG_nPC): Likewise. (REG_Y): Likewise. (REG_G1): Likewise. (REG_G2): Likewise. (REG_G3): Likewise. (REG_G4): Likewise. (REG_G5): Likewise. (REG_G6): Likewise. (REG_G7): Likewise. (REG_O0): Likewise. (REG_O1): Likewise. (REG_O2): Likewise. (REG_O3): Likewise. (REG_O4): Likewise. (REG_O5): Likewise. (REG_O6): Likewise. (REG_O7): Likewise. [__WORDSIZE == 64] (REG_ASI): Define only for [__USE_MISC]. [__WORDSIZE == 64] (REG_FPRS): Likewise. (NGREG): Rename to __NGREG and define to __NGREG if [__USE_MISC]. (gregset_t): Define using __NGREG. (SPARC_MAXREGWINDOW): Rename to __SPARC_MAXREGWINDOW and define to __SPARC_MAXREGWINDOW if [__USE_MISC]. (struct rwindow): Rename to struct __rwindow. Define fields using __ctx. (rw_fp): Define only for [__USE_MISC]. (rw_rtn): Likewise. (gwindows_t): Remove struct tag. Define fields using __ctx and __SPARC_MAXREGWINDOW. (MAXFPQ): Define only for [__USE_MISC]. (struct fpq): Rename to struct __fpq. Define fields using __ctx. (struct fq): Rename to struct __fq. Define fields using __ctx. (FPU_REGS_TYPE): Define only for [__USE_MISC]. (FPU_DREGS_TYPE): Likewise. (V7_FPU_FSR_TYPE): Likewise. (V9_FPU_FSR_TYPE): Likewise. (V9_FPU_FPRS_TYPE): Likewise. [__WORDSIZE == 64] (fpregset_t): Remove struct tag. Define fields using __ctx. [__WORDSIZE != 64] (fpregset_t): Likewise. [__WORDSIZE != 64] (xrs_t): Define fields using __ctx. [__WORDSIZE != 64] (XRS_ID): Define only for [__USE_MISC]. [__WORDSIZE != 64] (mcontext_t): Define fields using __ctx. Rename field filler to __glibc_reserved1. * sysdeps/unix/sysv/linux/sparc/sparc32/ucontext_i.sym (MC_FILLER): Remove.
* vfprintf: Fix tst-vfprintf-mbs-prec and tst-vfprintf-user-typeFlorian Weimer2017-06-293-4/+15
|
* posix: Improve default posix_spawn implementationAdhemerval Zanella2017-06-292-183/+184
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch improves the default posix implementation of posix_spawn{p} and align with Linux one. The main idea is to fix some issues already fixed in Linux code, and deprecated vfork internal usage (source of various bug reports). In a short: - It moves POSIX_SPAWN_USEVFORK usage and sets it a no-op. Since the process that actually spawn the new process do not share memory with parent (with vfork), it fixes BZ#14750 for this implementation. - It uses a pipe to correctly obtain the return upon failure of execution (BZ#18433). - It correctly enable/disable asynchronous cancellation (checked on ptl/tst-exec5.c). - It correctly disable/enable signal handling. Using this version instead of Linux shows only one regression, posix/tst-spawn3, because of pipe2 usage which increase total number of file descriptor. * sysdeps/posix/spawni.c (__spawni_child): New function. (__spawni): Rename to __spawnix.