2008-03-29 Eric Blake <ebb9@byu.net>
Rewrite string searches to O(n) rather than O(n^2).
* string/str-two-way.h: New file. For linear fixed-allocation
string searching.
* string/memmem.c: New implementation.
* string/strstr.c: New implementation.
* string/strcasestr.c: New implementation.
* sysdeps/posix/getaddrinfo.c (getaddrinfo): Call _res_hconf_init
opr.ctx_type.
(calc_first): Initialize constraint field.
(duplicate_node_closure): Use it instead of special casing ANCHORS.
Use search_duplicated_node to avoid loops. Fix grammar.
(duplicate_node): Merge constraint field for all node types.
(calc_eclosure_iter): Look at constraint field for all node types.
* posix/regex_internal.c (create_cd_newstate): Don't look at
create_cd_newstate.
* posix/tst-rfc3484.c: Add dummy definition of _res_hconf_init.
* posix/tst-rfc3484-2.c: Likewise.
* posix/tst-rfc3484-3.c: Likewise.
is the first use of the record, mark it as unusable.
* nscd/aicache.c: Don't touch the dataset after cache_add returns
reporting a failure.
* nscd/grpcache.c: Likewise
* nscd/hstcache.c: Likewise.
* nscd/initgrcache.c: Likewise.
* nscd/pwdcache.c: Likewise.
* nscd/servicecache.c: Likewise.
(__ieee754_y0l): Likewise.
* sysdeps/ieee754/ldbl-128/e_j1l.c (__ieee754_j1l): Likewise.
(__ieee754_y1l): Likewise.
* sysdeps/ieee754/ldbl-128/s_expm1l.c (__expm1l): Use __ldexpl.
* sysdeps/ieee754/ldbl-128/s_log1pl.c: Kill bogus prototypes for
frexpl and ldexpl. math_private.h provides them and the latter
is not even used.
(__log1pl): Use __frexpl.
prototypes.
* include/arpa/nameser_compat.h: Define T_UNSPEC.
* nis/Versions (libnss_nis): Export _nss_nis_gethostbyname4_r.
(libnss_nisplus): Export _nss_nisplus_gethostbyname4_r.
* nis/nss_nis/nis-hosts.c (LINE_PARSER): Change to also handle
af==AF_UNSPEC.
(_nss_nis_gethostbyname4_r): New function.
* nis/nss_nisplus/nisplus-hosts.c (_nss_nisplus_parse_hostent):
Change to also handle af==AF_UNSPEC.
(get_tablename): New function. Use it to avoid duplication.
(_nss_nisplus_gethostbyname4_r): New function.
* nscd/aicache.c (addhstaiX): Use gethostbyname4_r function is
available.
* nss/Versions (libnss_files): Export _nss_files_gethostbyname4_r.
* nss/nss.h: Define struct gaih_addrtuple.
* nss/nss_files/files-hosts.c (LINE_PARSER): Change to also handle
af==AF_UNSPEC.
(_nss_files_gethostbyname4_r): New function.
* resolv/Versions (libnss_dns): Export _nss_dns_gethostbyname4_r.
* resolv/gethnmaddr.c: Adjust __libc_res_nsearch and __libc_res_nquery
calls.
* resolv/res_query.c (__libc_res_nquery): Take two additional
parameters for second answer buffer. Handle type=T_UNSPEC to mean
look up IPv4 and IPv6.
Change all callers.
* resolv/res_send.c (__libc_res_nsend): Take five aditional parameters
for an additional query and answer buffer. Pass to send_vc and
send_dg.
(send_vc): Send possibly two requests and receive two answers.
(send_dg): Likewise.
* resolv/nss_dns/dns-host.c: Adjust calls to __libc_res_nsearch and
__libc_res_nquery.
(_nss_dns_gethostbyname4_r): New function.
(gaih_getanswer_slice): Likewise.
(gaih_getanswer): Likewise.
* resolv/nss_dns/dns-canon.c (_nss_dns_getcanonname_r): Adjust
__libc_res_nquery call.
* resolv/nss_dns/dns-network.c (_nss_dns_getnetbyaddr_r): Likewise.
(_nss_dns_getnetbyname_r): Adjust __libc_res_nsearch call.
* sysdeps/posix/getaddrinfo.c: Use gethostbyname4_r function is
available.
* sysdeps/sparc/sparc64/Makefile: Use -mcpu=v9 for initfini.s build.
2008-05-05 David S. Miller <davem@davemloft.net>
* sysdeps/sparc/sparc32/Makefile: Use -mcpu=v7 for initfini.s build.
* sysdeps/sparc/sparc64/Makefile: Use -mcpu=v9 for initfini.s build.
six system call parameters.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S: Likewise.
2008-05-01 David S. Miller <davem@davemloft.net>
* sysdeps/unix/sysv/linux/sparc/sparc32/syscall.S: Add support for
six system call parameters.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S: Likewise.
Pass "union semun" properly in to sys_ipc, it must be passed
by value, not by reference.
2008-04-25 David S. Miller <davem@davemloft.net>
* sysdeps/unix/sysv/linux/sparc/sparc64/semctl.c (semctl):
Pass "union semun" properly in to sys_ipc, it must be passed
by value, not by reference.
2008-04-15 Ulrich Drepper <drepper@redhat.com>
[BZ #5209]
* sysdeps/unix/sysv/linux/times.c: New file.
[BZ #5381]
* nscd/nscd.h: Define enum in_flight, mem_in_flight, and
mem_in_flight_list variables. Add new parameter to mempool_alloc
prototype.
* nscd/mem.c (mempool_alloc): Take additional parameter. Initialize
appropriate mem_in_flight element.
(gc): Take allocations which have not yet been committed to the
database into account.
* nscd/cache.c (cache_add): Add new parameter to mempool_alloc call.
Reset mem_in_flight before returning.
* nscd/connections.c (nscd_run_worker): Initialize mem_in_flight and
cue it up in mem_in_flight_list.
* nscd/aicache.c: Adjust mempool_alloc call.
* nscd/grpcache.c: Likewise.
* nscd/hstcache.c: Likewise.
* nscd/initgrcache.c: Likewise.
* nscd/pwdcache.c: Likewise.
* nscd/servicescache.c: Likewise.
* nscd/Makefile (nscd-flags): Until ld is fixed, use -fpic instead
of -fpie.
* nscd/connections.c (handle_request): Provide better error message
in case SELinux forbids the service.
* version.h (VERSION): Bump to 2.8.90.
__fe_nomask_env.
* sysdeps/powerpc/fpu/fe_nomask.c: Add libm_hidden_def.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c: Likewise.
* sysdeps/powerpc/bits/fenv.h: Make safe for C++.
* sysdeps/unix/sysv/linux/powerpc/bits/mathinline.h: New file.
* sysdeps/powerpc/fpu/fegetexcept.c (__fegetexcept): Rename
function from fegetexcept and make old name weak alias.
* include/fenv.h: Declare __fegetexcept.
* sysdeps/powerpc/fpu/fedisblxcpt.c: Use __fegetexcept instead of
fegetexcept.
* sysdeps/powerpc/fpu/feenablxcpt.c: Likewise.
* sysdeps/powerpc/fpu/fraiseexcpt.c (__feraiseexcept): Avoid call
to fetestexcept.
* sysdeps/ieee754/ldbl-128ibm/s_log1pl.c (__log1pl): Use __frexpl
instead of frexpl to avoid local PLT.
* math/s_significandl.c (__significandl): Use __ilogbl instead of
ilogbl to avoid local PLT.
* sysdeps/ieee754/ldbl-128ibm/s_expm1l.c (__expm1l): Use __ldexpl
instead of ldexpl to avoid local PLT.
* sysdeps/ieee754/ldbl-128ibm/e_expl.c (__ieee754_expl): Use
__roundl not roundl to avoid local PLT.
* sysdeps/ieee754/ldbl-128/e_j0l.c: Use function names which avoid
local PLTs. Use __sincosl instead of separate sinl and cosl
calls.
* sysdeps/ieee754/ldbl-128/e_j1l.c: Likewise.
* sysdeps/powerpc/powerpc32/fpu/s_lround.S (__lround): Fixed erroneous
result when x is +/-nextafter(+/-0.5,-/+1) i.e. all 1's in the
mantissa.
* sysdeps/powerpc/powerpc32/power4/fpu/s_llround.S (__llround):
Likewise. Also account for when x is an odd number between 2^52
and 2^53-1.
* sysdeps/powerpc/powerpc64/fpu/s_llround.S (__llround): Likewise.
* sysdeps/powerpc/powerpc64/fpu/s_llroundf.S (__llroundf): Likewise.
* math/libm-test.inc (lround_test, llround_test): Added test cases to
detect aforementioned erroneous conditions.
2008-01-24 Steven Munroe <sjmunroe@us.ibm.com>
[BZ #5741]
* sysdeps/powerpc/powerpc64/dl-machine.h (PPC_DCBT, PPC_DCBF):
Define additonal Data Cache Block instruction macros.
(elf_machine_fixup_plt): Add dcbt for opd and plt entries.
Replace dcbst with dcbf and sync with sync/isync.
* sysdeps/powerpc/powerpc32/power4/hp-timing.h: New file.
* sysdeps/powerpc/powerpc64/hp-timing.h [_ARCH_PWR4] (HP_TIMING_NOW):
For ISA 2.01 and later replace mftb with mfspr 268.
* sysdeps/i386/i686/memcpy.S: Optimize copying of equally aligned
buffers.
(cf): Test sign extending the argument to long.
2008-04-10 Jakub Jelinek <jakub@redhat.com>
* stdlib/tst-makecontext.c (othervar): New variable.
(cf): Test sign extending the argument to long.
* sysdeps/powerpc/powerpc32/power5/fpu/s_isnanf.S: New file.
* sysdeps/powerpc/powerpc32/power6/fpu/s_isnan.S: New file.
* sysdeps/powerpc/powerpc32/power6/fpu/s_isnanf.S: New file.
* sysdeps/powerpc/powerpc64/power5/fpu/s_isnan.S: New file.
* sysdeps/powerpc/powerpc64/power6/fpu/s_isnan.S: New file.
* sysdeps/powerpc/powerpc64/power6x/fpu/s_isnan.S: New file.
2008-02-12 Pete Eberlein <eberlein@us.ibm.com>
[BZ #4407]
* sysdeps/ieee754/ldbl-128/e_lgammal_r.c (__ieee754_lgammal_r):
Preserve sign in signgamp when x is zero.
2008-04-09 Ulrich Drepper <drepper@redhat.com>
* stdlib/tst-makecontext.c: Change parameter to cf to negative
value to check for correct sign extension.
[BZ #5436]
* sysdeps/unix/sysv/linux/x86_64/makecontext.c (__makecontext):
Copy 64-bit parameter values even though this is not required in
the standard.
* sysdeps/unix/sysv/linux/x86_64/vfork.S (__vfork): Record return
PC save.
* scripts/abi-versions.awk: If the version specified by
--enable-oldest-abi is older than the first version for this
architecture, use the default version.
2008-04-07 Ulrich Drepper <drepper@redhat.com>
[BZ #6042]
* sysdeps/unix/sysv/linux/net/ethernet.h: Add a few more
ETHERTYPE_* definitions.
Patch partly by Aurelien Jarno <aurelien@aurel32.net>.
(mbtowc): New static state variable. Use it instead of
__no_r_state.
* stdlib/wctomb.c (__no_r_state): Remove extern decl.
(__wctomb_state): New hidden variable.
(wctomb): Use __wctomb_state instead of __no_r_state.
* debug/wctomb_chk.c (__no_r_state): Remove extern decl.
(__wctomb_state): New extern decl.
(__wctomb_chk): Use __wctomb_state instead of __no_r_state.
2008-04-07 Jakub Jelinek <jakub@redhat.com>
* stdlib/mbtowc.c (__no_r_state): Remove.
(mbtowc): New static state variable. Use it instead of
__no_r_state.
* stdlib/wctomb.c (__no_r_state): Remove extern decl.
(__wctomb_state): New hidden variable.
(wctomb): Use __wctomb_state instead of __no_r_state.
* debug/wctomb_chk.c (__no_r_state): Remove extern decl.
(__wctomb_state): New extern decl.
(__wctomb_chk): Use __wctomb_state instead of __no_r_state.
2008-03-30 Ulrich Drepper <drepper@redhat.com>
[BZ #5443]
* intl/dcigettext.c (__dcigettext): Get reader lock for locale data
before looking for translation.
* locale/duplocale.c: Transform __libc_setlocale_lock into rwlock.
* locale/freelocale.c: Likewise.
* locale/newlocale.c: Likewise.
* locale/setlocale.c: Likewise.
Based partially on a patch by ryo@np.css.fujitsu.com.
acquiring wrlock. Do conv_tab allocation while holding lock.
* intl/Makefile: Add rules to build and run tst-gettext6.
* intl/tst-gettext6.c: New test.
* intl/tst-gettext6.sh: New file.
2008-03-29 Ulrich Drepper <drepper@redhat.com>
[BZ #5995]
* stdlib/strtod_l.c: Use correct sign for result in one more
underflow case.
Patch by Eric Blake <ebb9@byu.net>.
and creat system calls.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Remove open system
call.
* sysdeps/unix/sysv/linux/ia64/syscalls.list: Remove open and creat
system calls.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/x86_64/syscalls.list: Likewise.
<linux/limits.h> has defined it.
* sysdeps/unix/sysv/linux/sys/param.h: Define NCARGS to the legacy
ARG_MAX value and prevent ARG_MAX from being defined by the kernel
headers.
* sysdeps/unix/sysv/linux/sysconf.c: Define legacy_ARG_MAX and use
it instead of ARG_MAX.
ptrace call to get the ieee_instruction_pointer from the kernel.
* sysdeps/s390/fpu/fesetenv.c (fesetenv): Remove PTRACE_POKEUSER
ptrace call to set the ieee_instructtion_pointer.
* sysdeps/unix/sysv/linux/s390/sys/user.h (struct _user_regs_struct):
Add comment that ieee_instruction_pointer is always 0.
call.
(__nisfind_server): Similar for open readColdStartFile call.
Patch partially by Jim Meyering.
* nss/nss_files/files-XXX.c (_nss_files_getXXent_r): Save errno
around internal_setent call.
of ASSEMBLER. nptl/
* sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: Use __ASSEMBLER__ instead
of ASSEMBLER.
* sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: Likewise.
* sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Likewise.
2008-03-18 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/dl-sysdep.h: Use __ASSEMBLER__ instead
of ASSEMBLER.
ignore a signal that came from a machine exception, treat it as a
fatal core-dump signal instead.
Reported by Samuel Thibault <samuel.thibault@ens-lyon.org>.
2008-2-26 Harsha Jagasia <harsha.jagasia@amd.com>
* sysdeps/x86_64/cacheinfo.c (NOT_USED_RIGHT_NOW): Remove ifdef guards.
* sysdeps/x86_64/memset.S: Rewrite non-SSE code path as tuned for AMD
Barcelona machine. Make default fall through branch of
__x86_64_preferred_memory_instruction check as the integer code path.
2007-10-15 H.J. Lu <hongjiu.lu@intel.com>
* sysdeps/x86_64/cacheinfo.c
(__x86_64_preferred_memory_instruction): New variable.
(init_cacheinfo): Initialize __x86_64_preferred_memory_instruction.
* sysdeps/x86_64/memset.S: Rewrite.
2008-01-08 Jakub Jelinek <jakub@redhat.com>
* malloc/malloc.c (public_cALLOc): For arenas other than
2008-02-25 Jakub Jelinek <jakub@redhat.com>
[BZ #5790]
* resolv/nss_dns/dns-host.c (_nss_dns_gethostbyaddr2_r): Don't
overwrite *h_errnop/*errnop values from getanswer_r in case of
failure.
* nscd/connections.c (dbs): Add initializers for .suggested_module.
(verify_persistent_db): Remove one unnecessary test and add a new one
for bad configuration.
(nscd_init): Improve error reported when persistent database cannot
be reused.
* nscd/nscd.h (DEFAULT_SUGGESTED_MODULE): Define.
* nscd/nscd_conf.c (nscd_parse_file): Provide default values for
.suggested_module and .max_db_size and case config file says the
values are zero.
* nscd/nscd_helper.c (get_mapping): Fail if hash table module is zero.
Update.
2008-02-22 Andreas Jaeger <aj@suse.de>,
Carlos O'Donell <carlos@systemhalted.org>
[BZ #5012]
* FAQ.in: Describe why glibc needs to be compiled with
optimization.
* elf/dl-close.c (_dl_close): Check for it.
* elf/dl-reloc.c (CHECK_STATIC_TLS): Likewise.
(_dl_allocate_static_tls): Likewise.
* elf/dl-tls.c (_dl_allocate_tls_init): Likewise.
(__tls_get_addr): Protect from race conditions in setting l_tls_offset
to it.
* elf/tst-tls16.c: New file.
* elf/tst-tlsmod16a.c: New file.
* elf/tst-tlsmod16b.c: New file.
* elf/Makefile: Add rules to build and run tst-tls16.
update
2008-01-11 Andreas Jaeger <aj@suse.de>
[BZ #5600]
* sysdeps/unix/sysv/linux/sys/signalfd.h (struct
signalfd_siginfo): Use 64-bit type for ssi_ptr to sync with Linux
kernel header.
field. Use sockaddr_in6 for source_addr.
(get_scope): Change type of parameter to sockaddr_in6. Adjust.
(match_prefix): Likewise.
(get_label): Likewise.
(get_precedence): Likewise.
(rfc3484_sort): Change to use indirect access to results array.
Adjust to use of sockaddr_in6. Replace service_order test with
simple index comparison.
(getaddrinfo): Define order array. Initialize it. Don't initialize
service_order field. Adjust qsort_t calls. Access sorted result
array indirectly through order array.
* posix/tst-rfc3484.c: Adjust for change of rfc3484_sort.
* posix/tst-rfc3484-2.c: Likewise.
* posix/tst-rfc3484-3.c: Likewise.
clobbering memory at or above uc_stack.ss_sp + uc_stack.ss_size.
* stdlib/Makefile: Add rules to build and run tst-makecontext2.
* stdlib/tst-makecontext2.c: New test.
mTRIm for all of them.
(mTRIm): Additionally iterate over all free blocks and use madvise
to free memory for all those blocks which contain at least one
memory page.
* malloc/malloc.c (do_check_malloc_state): Minimal cleanups.
* nscd/mem.c (MAX_STACK_USE): Remove definition here.
(gc): Initialize stack_used based on allocation in prune_cache.
* nscd/cache.c (prune_cache): Use heap for mark array if necessary.
Clear array bfore use.
* nscd/aicache.c (addhstaiX): Update statistics counter in case
memory allocate failed.
* nscd/nscd.h (NSCD_THREAD_STACKSIZE): Define.
* nscd/connections.c (start_threads): Use NSCD_THREAD_STACKSIZE.
* nscd/mem.c (gc): Don't allocate arrays on stack if it can
overflow it.
* sysdeps/unix/sysv/linux/nscd_setup_thread.c (setup_thread):
Return zero in case thread library is not NPTL.
* nis/nss_compat/compat-initgroups.c (getgrent_next_nss): Don't
use result of nss_getgrgid_r if nothing was found. For other
error return with a failure.
Partially based on a patch by Petr Baudis <pasky@suse.cz>.
2007-11-15 Bruno Haible <bruno@clisp.org>
[BZ #5346]
* intl/dcigettext.c (struct known_translation_t): Turn msgid into a
union.
(transcmp): Use the appropriate part of s1->msgid and s2->msgid.
(DCIGETTEXT): Change the allocation of the 'search' variable so that
it needs only fixed stack space. Delay the initialization of
msgid_len until it is needed.
2007-11-15 Andreas Jaeger <aj@suse.de>
* sysdeps/ieee754/dbl-64/sincos.tbl: Fix size of union.
Reported by Christoph Quirin Lauter <christoph.lauter@ens-lyon.fr>.
(struct in6addrinfo): Add index element.
Declare __check_native.
* inet/Makefile (aux): Add check_native.
* sysdeps/unix/sysv/linux/check_native.c: New file.
* sysdeps/unix/sysv/linux/check_pf.c: No need to recognize
IFA_F_TEMPORARY. Pass back ifa_index.
* sysdeps/posix/getaddrinfo.c: Remove netlink compatibility code.
(rfc3484_sort): Add new parameter. Implement rule 7 correctly:
call __check_native if necessary.
(getaddrinfo): Fill in index field. Use qsort_r instead of qsort
to sort addresses. Pass information about the results.
* posix/tst-rfc3484.c: Adjust for addition of index field and change
of rfc3484_sort interface.
* posix/tst-rfc3484-2.c: Likewise.
* include/stdlib.h: Add hidden_proto for qsort_t and adjust protoype
for _quicksort.
* stdlib/msort.c (qsort): Now a wrapper around qsort_r.
(qsort_r): Renamed from qsort. Take additional parameter and pass it
on as third parameter to compare function and _quicksort.
* stdlib/qsort.c (_quicksort): Take additional parameter and pass on
to the compare function.
* stdlib/Versions [libc] (GLIBC_2.8): Add qsort_r.
* Versions.def: Add GLIBC_2.8 for libc.
* sysdeps/unix/sysv/linux/check_pf.c (make_request): Always return
list of interfaces. Also store prefix length.
* sysdeps/posix/getaddrinfo.c (sort_result): Add prefixlen element.
(rfc3484_sort): In rule 9, for IPv4 addresses count only matching
prefix if source and destination address are in the same subnet.
(getaddrinfo): Always call __check_pf. Fill in prefixlen field.
Always look for matching record in in6ai list.
Correct source_addr_len value for IPv6->IPv4 converted records.
* sysdeps/unix/sysv/linux/open64_2.c: ...here. New file.
* sysdeps/unix/sysv/linux/Makefile [subdir=io] (sysdep_routines): Add
open64_2.
* sysdeps/unix/sysv/linux/ia64/syscalls.list: Add open and creat
entries.
* sysdeps/unix/sysv/linux/x86_64/syscalls.list: Likewise.
* sysdeps/wordsize-64/alphasort.c: New file.
* sysdeps/wordsize-64/alphasort64.c: New file.
* sysdeps/wordsize-64/fseeko.c: New file.
* sysdeps/wordsize-64/fseeko64.c: New file.
* sysdeps/wordsize-64/ftello.c: New file.
* sysdeps/wordsize-64/ftello64.c: New file.
* sysdeps/wordsize-64/ftw.c: New file.
* sysdeps/wordsize-64/ftw64.c: New file.
* sysdeps/wordsize-64/iofgetpos.c: New file.
* sysdeps/wordsize-64/iofgetpos64.c: New file.
* sysdeps/wordsize-64/iofopen.c: New file.
* sysdeps/wordsize-64/iofopen64.c: New file.
* sysdeps/wordsize-64/iofsetpos.c: New file.
* sysdeps/wordsize-64/iofsetpos64.c: New file.
* sysdeps/wordsize-64/lockf.c: New file.
* sysdeps/wordsize-64/lockf64.c: New file.
* sysdeps/wordsize-64/mkostemp.c: New file.
* sysdeps/wordsize-64/mkostemp64.c: New file.
* sysdeps/wordsize-64/mkstemp.c: New file.
* sysdeps/wordsize-64/mkstemp64.c: New file.
* sysdeps/wordsize-64/scandir.c: New file.
* sysdeps/wordsize-64/scandir64.c: New file.
* sysdeps/wordsize-64/tmpfile.c: New file.
* sysdeps/wordsize-64/tmpfile64.c: New file.
* sysdeps/wordsize-64/versionsort.c: New file.
* sysdeps/wordsize-64/versionsort64.c: New file.
* sysdeps/unix/sysv/linux/wordsize-64/aio_read.c: New file.
* sysdeps/unix/sysv/linux/wordsize-64/aio_read64.c: New file.
* sysdeps/unix/sysv/linux/wordsize-64/aio_write.c: New file.
* sysdeps/unix/sysv/linux/wordsize-64/aio_write64.c: New file.
* sysdeps/unix/sysv/linux/wordsize-64/creat64.c: New file.
* sysdeps/unix/sysv/linux/wordsize-64/getdirentries.c: New file.
* sysdeps/unix/sysv/linux/wordsize-64/getdirentries64.c: New file.
* sysdeps/unix/sysv/linux/wordsize-64/lio_listio.c: New file.
* sysdeps/unix/sysv/linux/wordsize-64/lio_listio64.c: New file.
* sysdeps/unix/sysv/linux/wordsize-64/open64.c: New file.
* sysdeps/unix/sysv/linux/wordsize-64/openat.c: New file.
* sysdeps/unix/sysv/linux/wordsize-64/openat64.c: New file.
* crypt/sha256-crypt.c: Fix a comment.
* crypt/sha512-crypt.c: Likewise.
2007-11-07 Ulrich Drepper <drepper@redhat.com>
[BZ #5277]
* iconv/loop.c (STANDARD_TO_LOOP_ERR_HANDLER): If conversion failed
because output buffer is too small break, don't loop.
* iconvdata/Makefile (tests): Add bug-iconv6.
* iconvdata/bug-iconv6.c: New file.
when the lookup call failed.
* nscd/nscd.h (struct database_dyn): Rename prunelock to prune_lock.
Add prune_cond and wakeup_time.
(CACHE_PRUNE_INTERNAL): Define.
Update declarations of prune_cache and setup_thread.
* nscd/connections.c (dbs): Update initializers.
(CACHE_PRUNE_INTERNAL): Moved to nscd.h.
(nscd_init): Default number of threads is now 4.
(invalidate_cache): Take lock before calling prune_cache.
(handle_request): If SELinux forbids the request, say so.
(readylist_cond): Use static initializer.
(nscd_run_prune): New function. Used only by pruning threads.
(nscd_run_worder): Renamed from nscd_run. Remove support for pruning
here.
(fd_ready): Update nscd_run reference.
(start_threads): No need to initialize readylist_cond.
Start pruning threads separately.
* nscd/nscd_setup_thread.c: Change return value type to int and always
return 0.
* sysdeps/unix/sysv/linux/nscd_setup_thread.c: Change return value type
to int and return nonzero value if we can use the TID address hack.
* nscd/cache.c (cache_add): If next wakeup time of cleanup thread for
the database is later than the new entry's timeout, update the
wakeup time and wake the cleanup thread.
(prune_cache): Return seconds the next entry in the database is still
valid. Remove locking for pruning here.
* nscd/nscd.conf: Document default number of threads.
_nss_dns_getnetbyaddr2_r.
* resolv/nss_dns/dns-host.c: Define _nss_dns_getnetbyaddr2_r. Pass
extra parameter to getanswer_r.
(_nss_dns_getnetbyaddr_r): Now a wrapper around
_nss_dns_getnetbyaddr2_r.
gethstbynm3_r.
* nscd/gethstbynm2_r.c: Remove.
* nscd/gethstbynm3_r.c: New file.
* nscd/aicache.c (addhstaiX): Use __gethostbyaddr2_r instead of
__gethostbyaddr_r.
* nscd/gethstbyad_r.c: Generate __gethostbyaddr2_r function. Define
__gethostbyaddr_r compatibility wrapper.
* nscd/hstcache.c (cache_addhst): Add ttl parameter. Use it when
determining timeout of entry.
(lookup): Take new parameter and pass it to __gethostbyname3_r and
__gethostbyaddr2_r.
(addhstbyX): Pass reference to variable for TTL to lookup and
cache_addhst.
* nss/Versions [glibc] (GLIBC_PRIVATE): Export __nss_passwd_lookup2,
__nss_group_lookup2, __nss_hosts_lookup2, __nss_services_lookup2,
and __nss_next2. Remove __nss_services_lookup.
* nss/XXX-lookup.c: Name function now *_lookup2. Add new parameter.
Add compat wrapper.
* nss/getXXbyYY_r.c: Changes to call new *_lookup2 functions and
__nss_next2.
* nss/getXXent_r.c: Likewise.
* nss/getnssent_r.c: Likewise.
* nss/nsswitch.c (__nss_lookup): Add new parameter. If first function
does not exist in module, try the optional second name.
(__nss_next2): New function.
(__nss_next): Now wrapper around __nss_next2.
* nss/nsswitch.h: Adjust __nss_lookup prototype.
Declare __nss_next2.
Adjust definition of db_lookup_function type.
* nss/service-lookup.c: Define NO_COMPAT.
* include/netdb.h: Declare __gethostbyaddr2_r and __gethostbyname3_r.
* inet/ether_hton.c: Use __nss_next2 instead of __nss_next.
* inet/ether_ntoh.c: Likewise.
* sunrpc/netname.c: Likewise.
* sunrpc/publickey.c: Likewise.
* inet/getnetgrent.c: Likewise. Adjust calls to __nss_lookup.
* inet/gethstbyad_r.c (DB_LOOKUP_FCT): Change to __nss_hosts_lookup2.
* inet/gethstbynm2_r.c (DB_LOOKUP_FCT): Likewise.
* inet/gethstbynm_r.c (DB_LOOKUP_FCT): Likewise.
* inet/gethstent_r.c (DB_LOOKUP_FCT): Likewise.
* nscd/aicache.c (addhstaiX): Fix default TTL handling.
* inet/getnetgrent.c (setup): Encrypt static pointer.
2007-10-28 Ulrich Drepper <drepper@redhat.com>
[BZ #5222]
* elf/dl-load.c (_dl_rtld_di_serinfo): Correct handling of short
path elements in counting mode.
2007-10-23 Andreas Jaeger <aj@suse.de>
[BZ #5208]
* sysdeps/unix/sysv/linux/readahead.c (__readahead): Use
__LONG_LONG_PAIR to handle little endian byte order.
Suggested by abhishekrai@google.com
* time/tzset.c (__tz_convert): Don't force testing for a change of
TZ if not called from localtime. But then also see whether the
file changed, in case __use_tzfile is set.
even when time_t is 32-bit.
(__tzfile_compute): Override POSIX TZ string STD/DST zone names if
timezone data read by __tzfile_default. Ensure __tzname[0] is
always set after the search.
* time/tzfile.c (__tzfile_compute): For use_last case set i to
num_transition rather than num_transitions - 1.
2007-10-16 Jakub Jelinek <jakub@redhat.com>
Include stdbool.h. (my_strftime): New wrapper, old function renamed to... (__strftime_internal): ... new function. Add tzset_called argument, pass it down to recursive calls, don't call tzset () if already true, set to true after call to tzset ().
2007-10-16 Jakub Jelinek <jakub@redhat.com>
[BZ #5184]
* time/strftime_l.c: Include stdbool.h.
(my_strftime): New wrapper, old function renamed to...
(__strftime_internal): ... new function. Add tzset_called
argument, pass it down to recursive calls, don't call tzset ()
if already true, set to true after call to tzset ().
2007-10-16 Ulrich Drepper <drepper@redhat.com>
* time/tzfile.c (__tzfile_read): Take extra memory requested by caller
into account when copying TZ string.
a local label rather than HIDDEN_JUMPTARGET.
2007-10-16 Jakub Jelinek <jakub@redhat.com>
* sysdeps/x86_64/memset.S: Jump from bzero to memset using
a local label rather than HIDDEN_JUMPTARGET.
2007-10-15 Ulrich Drepper <drepper@redhat.com>
[BZ #3425]
* resolv/nss_dns/dns-host.c (getanswer_r): Fail with
NSS_STATUS_NOTFOUND if the server replied with only a CNAME and no
address record to T_A/T_AAAA requests.
service_order.
(rfc3484_sort): Make sure that even of qsort doesn't support
stable sorting it is stable by comparing service_order.
(getaddrinfo): Initialize service_order.
* time/tzset.c (tzset_internal): Break TZ string parsing out into
__tzset_parse_tz and updating of daylight, timezone, tzname into
update_vars.
(__tz_compute): Renamed from tz_compute. Take additional parameters.
(__tz_convert): Updating of tm_isdst, tm_zone, and tm_gmtoff now
happens in __tz_compute.
* time/tzfile.c (__tzfile_read): Also read TZ string.
(find_transition): Fold into __tzfile_compute.
(__tzfile_compute): For times beyond the last transition try to
use the TZ string.
* timezone/tst-timezone.c: Information in daylight and tzname does
change for Asia/Tokyo timezone with more concrete information.
Remove the test.
* include/stdio.h: Add libc_hidden_proto for ftello.
* libio/ftello.c: Add libc_hidden_def.
2007-10-14 Ulrich Drepper <drepper@redhat.com>
[BZ #1140]
* time/tzfile.c (__tzfile_compute): Compute tzname[] values based
on the specified time and not the last entries in the file. Move
code to determine tzname[] to...
(find_transition): ...here. Add ugly guess for times before the
first transition.
* nscd/nscd_getai.c (__nscd_getai): Set errno to 0 in case we found
no entry.
* nscd/nscd_getgr.c (nscd_getgr_r): Likewise.
* nscd/nscd_gethst_r.c (nscd_gethst_r): Likewise.
* nscd/nscd_getpw_r.c (nscd_getpw_r): Likewise.
* nscd/nscd_getserv_r.c (nscd_getserv_r): Likewise.
2007-10-13 Ulrich Drepper <drepper@redhat.com>
[BZ #3242]
* nscd/nscd_helper.c (wait_on_socket): Take timeout as parameter.
(__readall): If reading failed due to EAGAIN error wait a bit
and possibly try again.
(__readvall): Likewise.
(struct tcp_md5sig): Change tcpm_addr type to struct sockaddr_storage.
* inet/netinet/in.h: Don't include bits/socket.h.
* sysdeps/unix/sysv/linux/bits/socket.h: Only check _SYS_SOCKET_H
macro.
* sysdeps/unix/bsd/bsd4.4/bits/socket.h: Likewise.
2007-10-11 Jakub Jelinek <jakub@redhat.com>
* sysdeps/gnu/netinet/tcp.h: Include sys/socket.h if __USE_MISC.
(struct tcp_md5sig): Change tcpm_addr type to struct sockaddr_storage.
* inet/netinet/in.h: Don't include bits/socket.h.
* sysdeps/unix/sysv/linux/bits/socket.h: Only check _SYS_SOCKET_H
macro.
* sysdeps/unix/bsd/bsd4.4/bits/socket.h: Likewise.
* sysdeps/ieee754/dbl-64/e_lgamma_r.c: Fix *signgamp for -0.0.
* sysdeps/ieee754/flt-32/e_lgammaf_r.c: Likewise.
* sysdeps/ieee754/ldbl-96/e_lgammal_r.c: Likewise.
* math/libm-test.inc: Add test for this case.
Half the patch by Christian Iseli <christian.iseli@licr.org>.
2007-10-06 Ulrich Drepper <drepper@redhat.com>
[BZ #5010]
* sunrpc/svc.c (struct svc_callout): Add sc_mapped element.
(svc_register): Initialize sc_mapped. Set to TRUE if call to
map service succeeded.
(svc_is_mapped): New function.
(svc_unregister): Use it before trying to unmap service.
* string/bits/string2.h (__strdup): Cast parameters to calloc to
avoid warning with -Wconversion.
(__strndup): Likewise.
Patch to 50% by Christian Iseli <christian.iseli@licr.org>.
* sysdeps/unix/sysv/linux/signalfd.c: New file.
* sysdeps/unix/sysv/linux/sys/signalfd.h: New file.
* sysdeps/unix/sysv/linux/Versions: Export signalfd for GLIBC_2.7.
* stdlib/msort.c: Include stdint.h.
(struct msort_param): New type.
(msort_with_tmp): Use struct msort_param pointer for unchanging
parameters. Add optimized handling for several common sizes
and indirect sorting mode.
(qsort): Adjust msort_with_tmp callers. For big S use indirect
sorting.
Suggested by Belazougui Djamel .
* stdlib/Makefile (tests): Add tst-qsort2.
* stdlib/tst-qsort2.c: New test.
2007-10-02 Ulrich Drepper <drepper@redhat.com>
[BZ #645]
* locale/programs/ld-collate.c (collate_finish): Compare against last
used section which is known to have rules defined.
(collate_read): After order_start, correctly record order of sections
and queue sections up.
void * pointers instead of struct link_map **.
(_dl_scope_free): Change argument type to void *.
* include/link.h (struct link_map): Change type of l_reldeps
to struct link_map_reldeps, move l_reldepsact into that
struct too.
* elf/dl-deps.c: Include atomic.h.
(_dl_map_object_deps): Only change l->l_initfini when it is
fully populated, use _dl_scope_free for freeing it. Optimize
removal of libs from reldeps by using l_reserved flag, when
some removal is needed, allocate a new list instead of
reallocating and free the old with _dl_scope_free. Adjust
for l_reldeps and l_reldepsact changes.
* elf/dl-lookup.c (add_dependency): Likewise. Reorganize to allow
searching in l_initfini and l_reldeps without holding dl_load_lock.
* elf/dl-fini.c (_dl_sort_fini): Adjust for l_reldeps and
l_reldepsact changes.
* elf/dl-close.c (_dl_close_worker): Likewise.
* elf/dl-open.c (_dl_scope_free): Change argument type to void *.
with __warning__/__error__ attributes.
(__warnattr): Define.
* stdlib/bits/stdlib.h (__realpath_chk_warn, __ptsname_r_chk_warn,
__mbstowcs_chk_warn, __wcstombs_chk_warn): New aliases with
__warnattr.
(realpath, ptsname_r, mbstowcs, wcstombs): Call __*_chk_warn instead
of __*_chk if compile time detectable overflow is found.
* libio/bits/stdio2.h (__fgets_chk_warn, __fread_chk_warn,
__fgets_unlocked_chk_warn, __fread_unlocked_chk_warn): New aliases
with __warnattr.
(fgets, fread, fgets_unlocked, fread_unlocked): Call __*_chk_warn
instead of __*_chk if compile time detectable overflow is found.
(__gets_alias): Rename to...
(__gets_warn): ... this. Add __warnattr.
(gets): Call __gets_warn instead of __gets_alias.
* socket/bits/socket2.h (__recv_chk_warn, __recvfrom_chk_warn): New
aliases with __warnattr.
(recv, recvfrom): Call __*_chk_warn instead of __*_chk if compile
time detectable overflow is found.
* posix/bits/unistd.h (__read_chk_warn, __pread_chk_warn,
__pread64_chk_warn, __readlink_chk_warn, __readlinkat_chk_warn,
__getcwd_chk_warn, __confstr_chk_warn, __getgroups_chk_warn,
__ttyname_r_chk_warn, __getlogin_r_chk_warn, __gethostname_chk_warn,
__getdomainname_chk_warn): New aliases with __warnattr.
(read, pread, pread64, readlink, readlinkat, getcwd, confstr,
getgroups, ttyname_r, getlogin_r, gethostname, getdomainname): Call
__*_chk_warn instead of __*_chk if compile time detectable overflow
is found.
(__getgroups_chk): Rename argument to __listlen from listlen.
(__getwd_alias): Rename to...
(__getwd_warn): ... this. Add __warnattr.
(getwd): Call __getwd_warn instead of __getwd_alias.
* wcsmbs/bits/wchar2.h (__wmemcpy_chk_warn, __wmemmove_chk_warn,
__wmempcpy_chk_warn, __wmemset_chk_warn, __wcsncpy_chk_warn,
__wcpncpy_chk_warn, __fgetws_chk_warn, __fgetws_unlocked_chk_warn,
__mbsrtowcs_chk_warn, __wcsrtombs_chk_warn, __mbsnrtowcs_chk_warn,
__wcsnrtombs_chk_warn): New aliases with __warnattr.
(wmemcpy, wmemmove, wmempcpy, wmemset, mbsrtowcs, wcsrtombs,
mbsnrtowcs, wcsnrtombs): Call __*_chk_warn instead of __*_chk if
compile time detectable overflow is found.
(wcsncpy, wcpncpy): Likewise. For constant __n fix check whether
to use __*_chk or not.
(fgetws, fgetws_unlocked): Divide __bos by sizeof (wchar_t), both
in comparisons which function should be called and in __*_chk*
arguments. Call __*_chk_warn instead of __*_chk if compile time
detectable overflow is found.
(swprintf, vswprintf): Divide __bos by sizeof (wchar_t) in
__*_chk argument.
* debug/tst-chk1.c (do_test): Add a few more tests.
close_not_cancel_no_status instead of close.
2007-09-24 Jakub Jelinek <jakub@redhat.com>
* sysdeps/posix/getaddrinfo.c (getaddrinfo): Use
close_not_cancel_no_status instead of close.
* wcsmbs/wcsnlen.c: Don't reference before checking the length.
* string/stratcliff.c: Make usable to test wide char functions.
* wcsmbs/wcsatcliff.c: New file.
* wcsmbs/Makefiel (tests): Add wcsatcliff.
from __x86_64_core_cache_size_half.
(init_cacheinfo): Compute shared cache size for AMD processors with
shared L3 correctly.
* sysdeps/x86_64/memcpy.S: Adjust for __x86_64_data_cache_size_half
name change.
Patch in large parts by Evandro Menezes.
sha512-crypt, and sha512.
(tests): Add sha256test, sha256c-test, sha512test, and sha512c-test.
(distribute): Add sha256.h and sha512.h.
* crypt/crypt-entry.c (crypt): Recognize the new $5$ and $6$ prefixes
and call the appropriate code.
* crypt/sha256-crypt.c: New file.
* crypt/sha256.c: New file.
* crypt/sha256.h: New file.
* crypt/sha256c-test.c: New file.
* crypt/sha256test.c: New file.
* crypt/sha512-crypt.c: New file.
* crypt/sha512.c: New file.
* crypt/sha512.h: New file.
* crypt/sha512c-test.c: New file.
* crypt/sha512test.c: New file.
* sysdeps/unix/sysv/linux/sparc/sparc32/clone.S (__thread_start):
Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/clone.S (__thread_start):
Likewise.
the inline, pass __USE_FORTIFY_LEVEL - 1 as second argument to
__syslog_chk.
2007-09-19 Jakub Jelinek <jakub@redhat.com>
* misc/bits/syslog.h (syslog): Remove extraneous argument from
the inline, pass __USE_FORTIFY_LEVEL - 1 as second argument to
__syslog_chk.