aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-01-13powerpc: Optimized strcmp for POWER8/PPC64Adhemerval Zanella
This patch adds an optimized POWER8 strcmp using unaligned accesses. The algorithm first check the initial 16 bytes, then align the first function source and uses unaligned loads on second argument only. Aditional checks for page boundaries are done for unaligned cases
2015-01-13powerpc: Optimized st{r,p}ncpy for POWER8/PPC64Adhemerval Zanella
This patch adds an optimized POWER8 st{r,p}ncpy using unaligned accesses. It shows 10%-80% improvement over the optimized POWER7 one that uses only aligned accesses, specially on unaligned inputs. The algorithm first read and check 16 bytes (if inputs do not cross a 4K page size). The it realign source to 16-bytes and issue a 16 bytes read and compare loop to speedup null byte checks for large strings. Also, different from POWER7 optimization, the null pad is done inline in the implementation using possible unaligned accesses, instead of realying on a memset call. Special case is added for page cross reads.
2015-01-13powerpc: Optimized strncat for POWER7/PPC64Adhemerval Zanella
With 3eb38795dbbbd816 (Simplify strncat) the generic algorithms uses strlen, strnlen, and memcpy. This is faster than POWER7 current implementation, especially for unaligned strings (where POWER7 code uses byte-byte operations). This patch removes the assembly implementation and uses a multiarch specialization based on default algorithm calling optimized POWER7 symbols.
2015-01-13powerpc: Optimized strcat for POWER8/PPC64Adhemerval Zanella
With new optimized strcpy for POWER8, this patch adds an optimized strcat which uses it along with default implementation at strings/.
2015-01-13powerpc: Optimized st{r,p}cpy for POWER8/PPC64Adhemerval Zanella
This patch adds an optimized POWER8 strcpy using unaligned accesses. For strings up to 16 bytes the implementation first calculate the string size, like strlen, and issues a memcpy. For larger strings, source is first aligned to 16 bytes and then tested over a loop that reads 16 bytes am combine the cmpb results for speedup. Special case is added for page cross reads. It shows 30%-60% improvement over the optimized POWER7 one that uses only aligned accesses.
2015-01-13Fix memory handling in strxfrm_l [BZ #16009]Leonhard Holz
[Modified from the original email by Siddhesh Poyarekar] This patch solves bug #16009 by implementing an additional path in strxfrm that does not depend on caching the weight and rule indices. In detail the following changed: * The old main loop was factored out of strxfrm_l into the function do_xfrm_cached to be able to alternativly use the non-caching version do_xfrm. * strxfrm_l allocates a a fixed size array on the stack. If this is not sufficiant to store the weight and rule indices, the non-caching path is taken. As the cache size is not dependent on the input there can be no problems with integer overflows or stack allocations greater than __MAX_ALLOCA_CUTOFF. Note that malloc-ing is not possible because the definition of strxfrm does not allow an oom errorhandling. * The uncached path determines the weight and rule index for every char and for every pass again. * Passing all the locale data array by array resulted in very long parameter lists, so I introduced a structure that holds them. * Checking for zero src string has been moved a bit upwards, it is before the locale data initialization now. * To verify that the non-caching path works correct I added a test run to localedata/sort-test.sh & localedata/xfrm-test.c where all strings are patched up with spaces so that they are too large for the caching path.
2015-01-13Fix wake-up in sysdeps/nptl/fork.c.Torvald Riegel
2015-01-12Fix ldbl-96 scalblnl underflowing results (bug 17803).Joseph Myers
The ldbl-96 implementation of scalblnl (used for x86_64 and ia64) uses a condition k <= -63 to determine when a standard underflowing result tiny*__copysignl(tiny,x) should be returned. However, that condition corresponds to values with exponent -16446 or less, and in the case of -16446, the correct result for round-to-nearest depends on whether the value is exactly 0x1p-16446 (half the least subnormal) or more than that. This patch fixes the bug by changing the condition to k <= -64 and accordingly adjusting the exponent by 64 not 63 when converting to a normal value. Tested for x86_64. [BZ #17803] * sysdeps/ieee754/ldbl-96/s_scalblnl.c (twom63): Rename to twom64. Adjust value to 0x1p-64L. (__scalblnl): Only return standard underflowing result for K <= -64 not K <= -63; adjust exponent for underflowing result by 64 not 63. * math/libm-test.inc (scalbn_test_data): Add more tests. (scalbln_test_data): Likewise.
2015-01-12Fix ldbl-96 scalblnl for subnormal arguments (bug 17834).Joseph Myers
The ldbl-96 implementation of scalblnl (used for x86_64 and ia64) is incorrect for subnormal arguments (this is a separate bug from bug 17803, which is about underflowing results). There are two problems with the adjustments of subnormal arguments: the "two63" variable multiplied by is actually 0x1p52L not 0x1p63L, so is insufficient to make values normal, and then GET_LDOUBLE_EXP(es,x), used to extract the new exponent, extracts it into a variable that isn't used, while the value taken to by the new exponent is wrongly taken from the high part of the mantissa before the adjustment (hx). This patch fixes both those problems and adds appropriate tests. Tested for x86_64. [BZ #17834] * sysdeps/ieee754/ldbl-96/s_scalblnl.c (two63): Change value to 0x1p63L. (__scalblnl): Get new exponent of adjusted subnormal value from ES not HX. * math/libm-test.inc (scalbn_test_data): Add more tests. (scalbln_test_data): Likewise.
2015-01-12Add x86 32 bit vDSO time function supportAdhemerval Zanella
Linux 3.15 adds support for clock_gettime, gettimeofday, and time vDSO (commit id 37c975545ec63320789962bf307f000f08fabd48). This patch adds GLIBC supports to use such symbol when they are avaiable. Along with x86 vDSO support, this patch cleanup x86_64 code by moving all common code to x86 common folder. Only init-first.c is different between implementations.
2015-01-12powerpc: Fix Copyright dates and CL entryAdhemerval Zanella
This patch fixes the copyright dates from files created by commit 8d2c0a5, 4b45943, and 56cf276.
2015-01-12powerpc: abort transaction in syscallsAdhemerval Zanella
Linux kernel powerpc documentation states issuing a syscall inside a transaction is not recommended and may lead to undefined behavior. It also states syscalls does not abort transactoin neither they run in transactional state. To avoid side-effects being visible outside transactions, GLIBC with lock elision enabled will issue a transaction abort instruction just before all syscalls if hardware supports hardware transactions.
2015-01-12powerpc: Add adaptive elision to rwlocksAdhemerval Zanella
This patch adds support for lock elision using ISA 2.07 hardware transactional memory for rwlocks. The logic is similar to the one presented in pthread_mutex lock elision.
2015-01-12powerpc: Add the lock elision using HTMAdhemerval Zanella
This patch adds support for lock elision using ISA 2.07 hardware transactional memory instructions for pthread_mutex primitives. Similar to s390 version, the for elision logic defined in 'force-elision.h' is only enabled if ENABLE_LOCK_ELISION is defined. Also, the lock elision code should be able to be built even with a compiler that does not provide HTM support with builtins. However I have noted the performance is sub-optimal due scheduling pressures.
2015-01-12Remove 17581 from NEWSAndreas Schwab
2015-01-09Fix shm-directory.h #include.Roland McGrath
2015-01-09Remove divide from _ELF_DYNAMIC_DO_RELOC in elf/dynamic-link.h.Chung-Lin Tang
2015-01-09MicroBlaze: Fix BZ17791 - Remove fixed page size macros and othersMatthew Fortune
Microblaze apparently has a variable page size (see thread below) and should not hard-code any page-size related macros. Also remove macros that are only used for BFD's trad-core support which is not relavant for microblaze also according to the thread starting here: https://sourceware.org/ml/libc-ports/2013-11/msg00028.html This patch is neither built nor tested but mirrors a MIPS patch that fixes the same issue. Thanks, Matthew * sysdepsysdeps/unix/sysv/linux/microblaze/sys/user.h (PAGE_SHIFT, PAGE_SIZE, PAGE_MASK, NBPG, UPAGES): Remove. (HOST_TEXT_START_ADDR, HOST_STACK_END_ADDR): Remove. Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
2015-01-09MicroBlaze: Remove custom lowlevellock.h.Torvald Riegel
2015-01-06 Torvald Riegel <triegel@redhat.com> * sysdeps/unix/sysv/linux/microblaze/lowlevellock.h: Delete file. Signed-off-by: Torvald Riegel <triegel@redhat.com> Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
2015-01-09MicroBlaze: Remove custom pthread_once implementation on microblaze.Torvald Riegel
2015-01-06 Torvald Riegel <triegel@redhat.com> * sysdeps/unix/sysv/linux/microblaze/pthread_once.c: Delete file. Signed-off-by: Torvald Riegel <triegel@redhat.com> Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
2015-01-09MicroBlaze: Avoid pointer to integer conversion warningDavid Holsgrove
2015-01-06 David Holsgrove <david.holsgrove@xilinx.com> * sysdeps/microblaze/jmpbuf-unwind.h (_jmpbuf_sp): Declare SP as void pointer and cast to uintptr_t. Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
2015-01-09MicroBlaze: Fix volatile-register-var warning in READ_THREAD_POINTERDavid Holsgrove
Resolves warning: 'optimization may eliminate reads and/or writes to register variables' 2015-01-06 David Holsgrove <david.holsgrove@xilinx.com> * sysdeps/microblaze/nptl/tls.h: Remove inline __microblaze_get_thread_area and update READ_THREAD_POINTER. Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
2015-01-09MicroBlaze: Fix integer-pointer conversion warningDavid Holsgrove
2015-01-06 David Holsgrove <david.holsgrove@xilinx.com> * sysdeps/microblaze/nptl/tls.h (TLS_INIT_TP): Use NULL instead of 0. Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
2015-01-08Some #include cleanup in aio/timer code.Roland McGrath
2015-01-08Clean up allocrtsig code.Roland McGrath
2015-01-08Fix copyright year on new stub sys/procfs.h file.Roland McGrath
2015-01-08NPTL: Fix generic pthread_sigmask.Roland McGrath
2015-01-08NPTL: Fixed missed conditionalization of setxid hooey.Roland McGrath
2015-01-08Add stub sys/procfs.h fileRoland McGrath
2015-01-08NPTL: Refactor cpu_set_t validation to be sysdeps-controlledRoland McGrath
This removes Linuxisms related to cpu_set_t validation from the generic NPTL code and puts them into a new sysdeps header file.
2015-01-08Add -Wno-trampolines as neededRichard Henderson
2015-01-08Add Nios II definitions to elf/elf.h.Chung-Lin Tang
2015-01-08powerpc: Fix compiler warning on some syscallsAdhemerval Zanella
GCC 5.0 emits an warning when using sizeof on array function parameters and powerpc internal syscall macros add a check for such cases. More specifically, on powerpc64 and powerpc32 sysdep.h: if (__builtin_classify_type (__arg3) != 5 && sizeof (__arg3) > 8) \ __illegally_sized_syscall_arg3 (); \ And for sysdeps/unix/sysv/linux/utimensat.c build GCC emits: error: ‘sizeof’ on array function parameter ‘tsp’ will return size of ‘const struct timespec *’ This patch uses the address of first struct member instead of the struct itself in syscall macro.
2015-01-08NEWS for MIPS ABIsMatthew Fortune
* NEWS: Announce support for new MIPS ABI extensions.
2015-01-07Fix libm feupdateenv namespace (bug 17748).Joseph Myers
Concluding the fixes for C90 libm functions calling C99 fe* functions, this patch fixes the case of feupdateenv by making it a weak alias for __feupdateenv and making the affected code call __feupdateenv. Tested for x86_64 (testsuite, and that installed stripped shared libraries are unchanged by the patch). Also tested for ARM (soft-float) that the math.h linknamespace tests now pass. [BZ #17748] * include/fenv.h (__feupdateenv): Use libm_hidden_proto. * math/feupdateenv.c (__feupdateenv): Use libm_hidden_def. * sysdeps/aarch64/fpu/feupdateenv.c (feupdateenv): Rename to __feupdateenv and define as weak alias of __feupdateenv. Use libm_hidden_weak. * sysdeps/alpha/fpu/feupdateenv.c (__feupdateenv): Use libm_hidden_def. * sysdeps/arm/feupdateenv.c (feupdateenv): Rename to __feupdateenv and define as weak alias of __feupdateenv. Use libm_hidden_weak. * sysdeps/hppa/fpu/feupdateenv.c (feupdateenv): Likewise. * sysdeps/i386/fpu/feupdateenv.c (__feupdateenv): Use libm_hidden_def. * sysdeps/ia64/fpu/feupdateenv.c (feupdateenv): Rename to __feupdateenv and define as weak alias of __feupdateenv. Use libm_hidden_weak. * sysdeps/m68k/fpu/feupdateenv.c (__feupdateenv): Use libm_hidden_def. * sysdeps/mips/fpu/feupdateenv.c (feupdateenv): Rename to __feupdateenv and define as weak alias of __feupdateenv. Use libm_hidden_weak. * sysdeps/powerpc/fpu/feupdateenv.c (__feupdateenv): Use libm_hidden_def. * sysdeps/powerpc/nofpu/feupdateenv.c (__feupdateenv): Likewise. * sysdeps/powerpc/powerpc32/e500/nofpu/feupdateenv.c (__feupdateenv): Likewise. * sysdeps/s390/fpu/feupdateenv.c (feupdateenv): Rename to __feupdateenv and define as weak alias of __feupdateenv. Use libm_hidden_weak. * sysdeps/sh/sh4/fpu/feupdateenv.c (feupdateenv): Likewise. * sysdeps/sparc/fpu/feupdateenv.c (__feupdateenv): Use libm_hidden_def. * sysdeps/tile/math_private.h (__feupdateenv): New inline function. * sysdeps/x86_64/fpu/feupdateenv.c (__feupdateenv): Use libm_hidden_def. * sysdeps/generic/math_private.h (default_libc_feupdateenv): Call __feupdateenv instead of feupdateenv. (default_libc_feupdateenv_test): Likewise. (libc_feresetround_ctx): Likewise.
2015-01-07mips: Fix __libc_pread prototypeAdhemerval Zanella
This patch fixes the __libc_pread prototype change from 14bb4e57c094849228ad8524693ab9432c38396c.
2015-01-07posix/regcomp: initialize union structure tag to avoid warningChris Metcalf
We see some surprising warnings on tilegx with gcc 4.8.2: In file included from regex.c:66:0: regcomp.c: In function ‘parse_expression’: regcomp.c:2849:15: error: ‘end_elem’ may be used uninitialized in this function [-Werror=maybe-uninitialized] else if (br_elem->type == COLL_SYM) ^ regcomp.c:3109:34: note: ‘end_elem’ was declared here bracket_elem_t start_elem, end_elem; ^ regcomp.c:3109:22: error: ‘start_elem’ may be used uninitialized in this function [-Werror=maybe-uninitialized] bracket_elem_t start_elem, end_elem; ^ These warnings are not seen on x86, and in fact if I compile the preprocessed tile sources with the x86 gcc 4.8.2, I don't see the warnings. I do see eqiuvalent warnings if I compile the x86-preprocessed source code with tilegx gcc 4.8.2. The fix here is to initialize the union type field appropriately in a couple of places where we pass a union pointer to a subroutine that "knows" what type the union is. Setting the type explicitly seems like a more robust way to manage such a data structure in any case.
2015-01-07AArch64: Optimized implementations of strcpy and stpcpy.Richard Earnshaw
2015-01-07AArch64 optimized implementation of strrchr.Richard Earnshaw
2015-01-07Fix typo in ChangeLogSiddhesh Poyarekar
2015-01-07setenv fix memory leak when setting large, duplicate string (BZ #17658)Eric Biggers
glibc maintains a binary tree of environment strings it malloc()ed itself. However, it's possible for it to malloc() a string, then find that an identical string is already in the tree. In this case, the memory is leaked and is not freed if the application later calls __libc_freeres(). Fix this by freeing 'new_value' when it's unneeded. Test case: #include <stdlib.h> #include <string.h> int main() { char *p = calloc(100000, 1); memset(p, 'A', 99999); setenv("TESTVAR", p, 1); setenv("TESTVAR", p, 1); free(p); } Leak that was reported by valgrind: 100,008 bytes in 1 blocks are definitely lost in loss record 1 of 1 at 0x4C29F90: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) by 0x4E6B3D4: __add_to_environ (setenv.c:176) by 0x4C31B8F: setenv (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) by 0x400642: main (in /mnt/tmpfs/a.out)
2015-01-06Fix incorrect mount table entry parsing in __getmntent_rVladimir A. Nazarenko
When mount entry contains only four fields and have more then one space or tab at the and, mp.mnt_freq and mp.mnt_passno will be set to some specific values as side effect from parsing of previus mount entry. It is because sscanf(""," %d %d ", &a, &b) returns -1, but this case is unprocessed. Values of mp.mnt_freq and mp.mnt_passno stays unchanged. This patch is attempt to fix described issue by removing trailing tabs and spaces.
2015-01-07Fix libm fesetround namespace (bug 17748).Joseph Myers
Continuing the fixes for C90 libm functions calling C99 fe* functions, this patch fixes the case of fesetround by making it a weak alias of __fesetround and making the affected code call __fesetround. An existing __fesetround function in fenv_libc.h for powerpc is renamed to __fesetround_inline. Tested for x86_64 (testsuite, and that disassembly of installed shared libraries is unchanged by the patch). Also tested for ARM (soft-float) that fesetround failures disappear from the linknamespace test results (feupdateenv remains to be addressed to complete fixing bug 17748). [BZ #17748] * include/fenv.h (__fesetround): Declare. Use libm_hidden_proto. * math/fesetround.c (fesetround): Rename to __fesetround and define as weak alias of __fesetround. Use libm_hidden_weak. * sysdeps/aarch64/fpu/fesetround.c (fesetround): Likewise. * sysdeps/alpha/fpu/fesetround.c (fesetround): Likewise. * sysdeps/arm/fesetround.c (fesetround): Likewise. * sysdeps/hppa/fpu/fesetround.c (fesetround): Likewise. * sysdeps/i386/fpu/fesetround.c (fesetround): Likewise. * sysdeps/ia64/fpu/fesetround.c (fesetround): Likewise. * sysdeps/m68k/fpu/fesetround.c (fesetround): Likewise. * sysdeps/mips/fpu/fesetround.c (fesetround): Likewise. * sysdeps/powerpc/fpu/fenv_libc.h (__fesetround): Rename to __fesetround_inline. * sysdeps/powerpc/fpu/fenv_private.h (libc_fesetround_ppc): Call __fesetround_inline instead of __fesetround. * sysdeps/powerpc/fpu/fesetround.c (fesetround): Rename to __fesetround and define as weak alias of __fesetround. Use libm_hidden_weak. Call __fesetround_inline instead of __fesetround. * sysdeps/powerpc/nofpu/fesetround.c (fesetround): Rename to __fesetround and define as weak alias of __fesetround. Use libm_hidden_weak. * sysdeps/powerpc/powerpc32/e500/nofpu/fesetround.c (fesetround): Likewise. * sysdeps/s390/fpu/fesetround.c (fesetround): Likewise. * sysdeps/sh/sh4/fpu/fesetround.c (fesetround): Likewise. * sysdeps/sparc/fpu/fesetround.c (fesetround): Likewise. * sysdeps/tile/math_private.h (__fesetround): New inline function. * sysdeps/x86_64/fpu/fesetround.c (fesetround): Rename to __fesetround and define as weak alias of __fesetround. Use libm_hidden_weak. * sysdeps/generic/math_private.h (default_libc_fesetround): Call __fesetround instead of fesetround. (default_libc_feholdexcept_setround): Likewise. (libc_feholdsetround_ctx): Likewise. (libc_feholdsetround_noex_ctx): Likewise.
2015-01-06Fix libm fesetenv namespace (bug 17748).Joseph Myers
Continuing the fixes for C90 libm functions calling C99 fe* functions, this patch fixes the case of fesetenv by making it a weak alias of __fesetenv and making the affected code (including various copies of feupdateenv which also gets called from C90 functions) call __fesetenv. Tested for x86_64 (testsuite, and that disassembly of installed shared libraries is unchanged by the patch). Also tested for ARM (soft-float) that fesetenv failures disappear from the linknamespace test results (fsetround and feupdateenv remain to be addressed to complete fixing bug 17748). [BZ #17748] * include/fenv.h (__fesetenv): Use libm_hidden_proto. * math/fesetenv.c (__fesetenv): Use libm_hidden_def. * sysdeps/aarch64/fpu/fesetenv.c (fesetenv): Rename to __fesetenv and define as weak alias of __fesetenv. Use libm_hidden_weak. * sysdeps/alpha/fpu/fesetenv.c (__fesetenv): Use libm_hidden_def. * sysdeps/arm/fesetenv.c (fesetenv): Rename to __fesetenv and define as weak alias of __fesetenv. Use libm_hidden_weak. * sysdeps/hppa/fpu/fesetenv.c (fesetenv): Likewise. * sysdeps/i386/fpu/fesetenv.c (__fesetenv): Use libm_hidden_def. * sysdeps/ia64/fpu/fesetenv.c (fesetenv): Rename to __fesetenv and define as weak alias of __fesetenv. Use libm_hidden_weak. * sysdeps/m68k/fpu/fesetenv.c (__fesetenv): Use libm_hidden_def. * sysdeps/mips/fpu/fesetenv.c (fesetenv): Rename to __fesetenv and define as weak alias of __fesetenv. Use libm_hidden_weak. * sysdeps/powerpc/fpu/fesetenv.c (__fesetenv): Use libm_hidden_def. * sysdeps/powerpc/nofpu/fesetenv.c (__fesetenv): Likewise. * sysdeps/powerpc/powerpc32/e500/nofpu/fesetenv.c (__fesetenv): Likewise. * sysdeps/s390/fpu/fesetenv.c (fesetenv): Rename to __fesetenv and define as weak alias of __fesetenv. Use libm_hidden_weak. * sysdeps/sh/sh4/fpu/fesetenv.c (fesetenv): Likewise. * sysdeps/sparc/fpu/fesetenv.c (__fesetenv): Use libm_hidden_def. * sysdeps/tile/math_private.h (__fesetenv): New inline function. * sysdeps/x86_64/fpu/fesetenv.c (fesetenv): Rename to __fesetenv and define as weak alias of __fesetenv. Use libm_hidden_weak. * sysdeps/generic/math_private.h (default_libc_fesetenv): Use __fesetenv instead of fesetenv. (libc_feresetround_noex_ctx): Likewise. * sysdeps/alpha/fpu/feupdateenv.c (__feupdateenv): Likewise. * sysdeps/hppa/fpu/feupdateenv.c (feupdateenv): Likewise. * sysdeps/i386/fpu/feupdateenv.c (__feupdateenv): Likewise. * sysdeps/ia64/fpu/feupdateenv.c (feupdateenv): Likewise. * sysdeps/m68k/fpu/feupdateenv.c (__feupdateenv): Likewise. * sysdeps/mips/fpu/feupdateenv.c (feupdateenv): Likewise. * sysdeps/powerpc/nofpu/feupdateenv.c (__feupdateenv): Likewise. * sysdeps/powerpc/powerpc32/e500/nofpu/feupdateenv.c (__feupdateenv): Likewise. * sysdeps/s390/fpu/feupdateenv.c (feupdateenv): Likewise. * sysdeps/sh/sh4/fpu/feupdateenv.c (feupdateenv): Likewise. * sysdeps/sparc/fpu/feupdateenv.c (__feupdateenv): Likewise. * sysdeps/x86_64/fpu/feupdateenv.c (__feupdateenv): Likewise.
2015-01-06Revert "Suppress warning in string/tester.c for gcc 4.9"Ondřej Bílka
This reverts commit 9300797ee93422a87f443d5ba7e1411167e7a837.
2015-01-06Mention bug fix for BZ #17806H.J. Lu
2015-01-06resolv: fix rotate optionAurelien Jarno
The rotate option doesn't work correctly, and only send the query to the same server (the second in the list). The rotation code in itself is not broken, but the nsaddrs structure is reinitialized each time at the beginning of __libc_res_nsend unless RES_STAYOPEN is enabled. This is due to a call to __res_iclose from the end of __libc_res_nsend when answers from the name server have been received. This function closes all the sockets, but doesn't free the addresses (it can do that, but in that case the second argument is false). This patch change the code of __res_iclose to clear statp->_u._ext.nsinit only when the addresses are actually freed. * resolv/res_init.c (__res_iclose): Only clear nsinit if the addresses have been freed.
2015-01-06resolv: improve comments about nserv and nservallAurelien Jarno
The current comments concerning nserv and nservall are not really clear and lead to confusion when reviewing an already complex code. Improve them, there real meaning have been confirmed by a code analysis. * resolv/res_init.c (__res_vinit): Improve comments about nserv and nservall.
2015-01-06Suppress warning in string/tester.c for gcc 4.9Ondřej Bílka
2015-01-06Add changelogOndřej Bílka