2008-08-14 Ryan S. Arnold <rsa@us.ibm.com>
[BZ #6845]
* sysdeps/powerpc/fpu/bits/mathinline.h (__signbitl): Copy new
__signbitl definition and __LONG_DOUBLE_128__ guard from:
* sysdeps/unix/sysv/linux/powerpc/bits/mathinline.h: Remove as
redundant. Functions which call floating point assembler operations
should go into a sysdeps powerpc/fpu directory.
change related to AT_EXECFN. We cannot use that string.
* sysdeps/generic/ldsodefs.h (struct rtld_global_ro): Remove
_dl_execfn member.
* elf/dl-support.c: Remove _dl_execfn variable.
(_dl_aux_init): Remove handling of AT_EXECFN.
* elf/dl-sysdep.c (_dl_sysdep_start): Remove handling of AT_EXECFN.
* elf/rtld.c (process_envvars): Remove use of __ASSUME_AT_EXECFN.
* libio/fmemopen.c: Implement binary mode. In this mode no NUL
byte gets added to writes and seeks from the end use the length of
the buffer and not the currently terminating NUL byte.
2008-08-13 Ulrich Drepper <drepper@redhat.com>
[BZ #6634]
* login/utmp_file.c (getutent_r_file): Take additional parameter.
Set to true if locking failed.
(getutid_r_file): Adjust caller.
(pututline_file): Likewise. Return NULL in this case.
Patch mostly by halesh.s@gmail.com.
2008-08-12 Ryan S. Arnold <rsa@us.ibm.com>
[BZ #6839]
* sysdeps/powerpc/powerpc32/dl-machine.c (CHECK_STATIC_TLS): Remove
macro since it is now available in elf/dynamic-link.h.
2008-08-07 Pete Eberlein <eberlein@us.ibm.com>
[BZ #6791]
* sysdeps/unix/sysv/linux/powerpc/bits/mman.h (PROT_SAO): Define.
Carlos Eduardo Seo <cseo@linux.vnet.ibm.com>
2008-08-01 Steven Munroe <sjmunroe@us.ibm.com>
Carlos Eduardo Seo <cseo@linux.vnet.ibm.com>
[BZ #6817]
* sysdeps/powerpc/dl-procinfo.c (_dl_powerpc_cap_flags):
Added the members 'vsx' and 'arch_2_06'.
(_dl_powerpc_platforms): Add the member 'power7'.
* sysdeps/powerpc/dl-procinfo.h: Modify _DL_HWCAP_FIRST
to reflect the changes required by VSX and ISA 2.06.
Modify _DL_PLATFORMS_COUNT to reflect the addition of
'power7'.
Defined PPC_PLATFORM_POWER7.
(_dl_string_platform): Add support for POWER7.
* sysdeps/powerpc/sysdep.h: Define bit masks for VSX
capability and ISA 2.06.
2008-08-07 Ulrich Drepper <drepper@redhat.com>
[BZ #6824]
* sysdeps/unix/sysv/linux/powerpc/bits/mathinline.h: Use correct
macro to detect use of 128 bit long double.
Patch by Ryan S. Arnold <rsa@us.ibm.com>.
* include/resolv.h: Remove hidden proto declarations for __ns_*
functions. Add them for __dn_count_labels and __p_secstodate.
* include/arpa/nameser.h: Add a number of hidden proto declarations.
Define ns_msg_getflags macro here.
* resolv/res_debug.c: Add hidden definition for __dn_count_labels
and __p_secstodate.
* resolv/Versions: Export functions from <arpa/nameser.h> from
libresolv in version GLIBC_2.9.
* resolv/ns_name.c: Integrate changes from bind 9.5.0. Add necessary
hidden definitions.
* resolv/ns_netint.c: Likewise.
* resolv/ns_parse.c: Likewise.
* resolv/ns_print.c: Likewise.
* resolv/ns_samedomain.c: Likewise.
* resolv/ns_ttl.c: Likewise.
* resolv/arpa/nameser_compat.h: Likewise.
* resolv/arpa/nameser.h: Likewise. Remove macros which redirect
function calls.
* resolv/nss_dns/dns-canon.c (_nss_dns_getcanonname_r): Use __ns_get16
instead of ns_get16.
* resolv/nss_dns/dns-host.c (getanswer_r): Use __ns_get16 and
__ns_get32 instead of ns_get16 and ns_get32 respectively.
(gaih_getanswer_slice): Likewise.
* resolv/Makefile (libresolv-routines): Add ns_date.
* resolv/ns_date.c: New file.
Use it instead of locally defined resplen2 variable.
(res_nsend): Adjust for __libc_res_nsend interface change.
(send_vc): Initialize *resplen2 if necessary. Read length of
package into an appropriately aligned variable. Store converted length
in new variable and use it appropriately.
Add branch prediction help.
* resolv/res_query.c (__libc_res_nquery): Take additional parameter
and pass it on to __libc_res_nsend. Adjust all callers.
(__libc_res_nsearch): Likewise.
(__libc_res_nqeurydomain): Likewise.
* resolv/nss_dns/dns-host.c: Adjust for __libc_res_nsearch interface
change.
(_nss_dns_gethostbyname4): Don't unconditionally allocate tmp array.
Define resplen2 variable and pass it to __libc_res_nsearch and then
to gaih_getanswer.
(getanswer_r): In case of incorrect DNS data don't overread buffer.
Add branch prediction.
(gaih_getanswer_slice): Likewise. Check for invalid data types.
(gaih_getanswer): Don't decode second slice if first one failed due
to a too small buffer. Don't let not found status of second
decoder shadow results of the first.
* resolv/gethnamaddr.c (gethostbyname2): Adjust for __libc_res_nsearch
and __libc_res_nquery interface changes
(gethostbyaddr): Adjust for __libc_res_nquery interface change.
* include/resolv.h: Adjust prototypes for __libc_res_nquery,
__libc_res_nsearch, and __libc_res_nsend.
* resolv/nss_dns/dns-canon.c: Adjust for __libc_res_nquery interface
change.
* resolv/nss_dns/dns-network.c: Adjust for __libc_res_nquery and
__libc_res_nsearch interface changes.
file descriptors with close-on-exec set.
(exec_comm_child): Fix the case where the write end of the pipe is
STDOUT_FILENO already. In case it is, clear close-on-exec.
* sysdeps/unix/sysv/linux/s390/bits/utmp.h: Copy of
gnu/bits/utmp.h. Check for __WORDSIZE_COMPAT32 removed.
* sysdeps/unix/sysv/linux/s390/bits/utmpx.h: Copy of
gnu/bits/utmpx.h. Check for __WORDSIZE_COMPAT32 removed.
* sysdeps/unix/sysv/linux/s390/s390-32/Makefile: Add new files
utmp32, utmpx32 and login32.
* sysdeps/unix/sysv/linux/s390/s390-32/Versions: Add 2.9
versions of struct utmp functions to libc and libutil.
* sysdeps/unix/sysv/linux/s390/s390-32/utmp-compat.h: New file.
* sysdeps/unix/sysv/linux/s390/s390-32/getutent.c: New file.
* sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c: New file.
* sysdeps/unix/sysv/linux/s390/s390-32/getutid.c: New file.
* sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c: New file.
* sysdeps/unix/sysv/linux/s390/s390-32/getutline.c: New file.
* sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c: New file.
* sysdeps/unix/sysv/linux/s390/s390-32/getutmp.c: New file.
* sysdeps/unix/sysv/linux/s390/s390-32/getutxent.c: New file.
* sysdeps/unix/sysv/linux/s390/s390-32/getutxid.c: New file.
* sysdeps/unix/sysv/linux/s390/s390-32/getutxline.c: New file.
* sysdeps/unix/sysv/linux/s390/s390-32/login.c: New file.
* sysdeps/unix/sysv/linux/s390/s390-32/login32.c: New file.
* sysdeps/unix/sysv/linux/s390/s390-32/pututxline.c: New file.
* sysdeps/unix/sysv/linux/s390/s390-32/updwtmp.c: New file.
* sysdeps/unix/sysv/linux/s390/s390-32/updwtmpx.c: New file.
* sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h: New file.
* sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c: New file.
* sysdeps/unix/sysv/linux/s390/s390-32/utmp32.h: New file.
* sysdeps/unix/sysv/linux/s390/s390-32/utmpx-convert.h: New file.
* sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c: New file.
* sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h: New file.
* stdio-common/_i18n_number.h (_i18n_number_rewrite): Take additional
parameter for end of buffer. If temporary copy is too large use
malloc.
* stdio-common/vfprintf.c: Adjust for _i18n_number_rewrite
interface change.
* stdio-common/printf_fp.c (__printf_fp): Likewise.. Account for
string rewrite when allocating buffer.
__libc_clntudp_bufcreate_internal.
* include/sys/socket.h: Declare __have_sock_cloexec.
* socket/Makefile (aux): Add have_sock_cloexec.
* socket/have_sock_cloexec.c: New file.
* sunrpc/clnt_udp.h (clntudp_bufcreate): Now a wrapper around
__libc_clntudp_bufcreate.
(__libc_clntudp_bufcreate): Former implementation of clntudp_bufcreate
which takes an additional parameter. Create socket with non-blocking
mode and close-on-exec flag set, if wanted.
* sunrpc/Versions: Export __libc_clntudp_bufcreate@GLIBC_PRIVATE.
* nis/ypclnt.c (yp_bind_client_create): Use __libc_clntpudp_bufcreate
instead of clntudp_create. The socket has already the close-on-exec
flag set if SOCK_CLOEXEC is defined.
__ASSUME_PACCEPT, __ASSUME_IN_NONBLOCK, and __ASSUME_PACCEPT if
appropriate.
* nscd/connections.c: Avoid fcntl calls to set close-on-exec flag and
non-blocking mode by using socket, paccept, and inotify_init1.
(__open_2): New function.
(__open64_2): New alias to __open_2.
* sysdeps/mach/hurd/openat.c: Include <stdio.h>.
(__openat_2): New function.
(__openat64_2): New alias to __openat_2.
2008-06-27 Ulrich Drepper <drepper@redhat.com>
[BZ #6657]
* time/strptime_l.c: Don't clear s.era_cnt after successful match
of %EY.
Patch by Petr Baudis.
2008-06-25 Ulrich Drepper <drepper@redhat.com>
[BZ #6654]
* stdlib/canonicalize.c (__realpath): readlink can write too much
into the buffer on platforms without PATH_MAX.
* time/strftime.c: Pass reference to tzset_called around to handle
recursive calls.
[BZ #6612]
* time/strftime.c (__strftime_internal): Call tzset() only
when printing timezone-dependent values.
Based on a patch by Petr Baudis <pasky@suse.cz>.
fields.
* nscd/connections.c (inotify_fd): New variable.
(nscd_init): Try to open an inotify descriptor.
If successful, watch files for databases using inotify instead of
having prune threads stat the files.
(nscd_run_prune): Recognize clear_cache flag being set and call
prune_cache appropriately.
(main_loop_poll): Add inotify descriptor to wait set and handle the
reported changes.
(main_loop_epoll): Likewise.
* nscd/cache.c (prune_cache): Don't stat files for databases if
inotify is used.
* sysdeps/unix/sysv/linux/Makefile [subdir=nscd]
(CFLAGS-connections.c): Add -DHAVE_INOTIFY.
Avoid segfault if first GETC returns eof/'\0'/'\n'.
2008-06-05 Jakub Jelinek <jakub@redhat.com>
* misc/regexp.h (compile): Use __REPB_PREFIX macro.
Avoid segfault if first GETC returns eof/'\0'/'\n'.
instead of portstr to nscd_getserv_r. Patch by
Roman Kagan <rkagan@mail.ru>.
2008-06-03 Jakub Jelinek <jakub@redhat.com>
* nscd/nscd_getserv_r.c (__nscd_getservbyport_r): Pass cp
instead of portstr to nscd_getserv_r. Patch by
Roman Kagan <rkagan@mail.ru>.
* string/test-memmem.c: New file.
* string/test-string.h (BUF1PAGES): Define to 1 if undefined.
(test_init): Size buf1 according to BUF1PAGES.
* stdio-common/scanf16.c: New file.
* stdio-common/scanf17.c: New file.
* scripts/data/localplt-sparc64-linux-gnu.data: New file.
* Makefile (check-data): Use $(abi-name) before other guesses.
Look in $(add-ons) dirs before scripts/data/.
* elf/Makefile (check-data): Likewise.
* scripts/soversions.awk: Grok ABI line.
* Makeconfig ($(common-objpfx)soversions.mk): Likewise.
Emit definition for abi-name variable.
if [__USE_BSD].
(CALL_ERRNO_LOCATION): Define.
(__SYSCALL_STRING, __CLONE_SYSCALL_STRING): Use it.
* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
(CALL_ERRNO_LOCATION): Define.
(__SYSCALL_STRING, __CLONE_SYSCALL_STRING): Use it.
* sysdeps/unix/sysv/linux/sparc/sparc64/brk.S (__brk): Use
HIDDEN_JUMPTARGET for __errno_location call in libc.so.
2008-05-21 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
(CALL_ERRNO_LOCATION): Define.
(__SYSCALL_STRING, __CLONE_SYSCALL_STRING): Use it.
* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
(CALL_ERRNO_LOCATION): Define.
(__SYSCALL_STRING, __CLONE_SYSCALL_STRING): Use it.
* sysdeps/unix/sysv/linux/sparc/sparc64/brk.S (__brk): Use
HIDDEN_JUMPTARGET for __errno_location call in libc.so.
(FIRST_FRAME_POINTER): Define.
* sysdeps/sparc/sparc64/backtrace.c: New file.
2008-05-20 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h
(FIRST_FRAME_POINTER): Define.
2008-05-09 David S. Miller <davem@davemloft.net>
* sysdeps/sparc/sparc64/backtrace.c: New file.
* sysdeps/sparc/sparc-mcount.S: Likewise.
* sysdeps/sparc/Makefile: Add sparc-mcount target to
sysdep_routines in gmon directory.
2008-05-14 David S. Miller <davem@davemloft.net>
* sysdeps/sparc/machine-gmon.h: New file.
* sysdeps/sparc/sparc-mcount.S: Likewise.
* sysdeps/sparc/Makefile: Add sparc-mcount target to
sysdep_routines in gmon directory.
answer was too short don't try to read that answer's header.
* resolv/res_send.c (send_dg): In case of timeout and there are
two queries and one has been answered, return value indicating
success.
whether this is in response of a cache refill. Check alignment
of package data. Revamp waking of pruning thread.
(prune_cache): Small optimization.
* nscd/nscd.h: Adjust cache_add prototypes.
* nscd/aicache.c: Adjust cache_add calls.
* nscd/grpcache.c: Likewise.
* nscd/hstcache.c: Likewise.
* nscd/initgrcache.c: Likewise.
* nscd/pwdcache.c: Likewise.
* nscd/servicescache.c: Likewise.
* nscd/connections.c (restart): Really disable cache use before
exec attempt. If it fails, reenable cache.
(nscd_run_prune): Initialize wakeup_time. After wakeup, set wakeup
time to max to be able to notice concurrent cache additions. Unlock
prune_lock while performing gc. Afterwards compute wakeup time with
current wakeup_time value in mind.
no answers return NSS_STATUS_NOTFOUND.
(gaih_getanswer): Don't call gaih_getanswer_slice if the answer
buffer does not have any content.
* nscd/servicescache.c: Likewise.
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.
* elf/dl-runtime.c (_dl_fixup, _dl_profile_fixup): Or in
DL_LOOKUP_GSCOPE_LOCK into flags after THREAD_GSCOPE_SET_FLAG ().
* elf/dl-sym.c (do_sym): Likewise.
* include/link.h (struct link_map): Add l_serial field.
* elf/dl-object.c (_dl_new_object): Initialize l_serial.
* elf/dl-lookup.c (add_dependency): Add flags argument.
Remember map->l_serial, if DL_LOOKUP_GSCOPE_LOCK is among
flags, use THREAD_GSCOPE_RESET_FLAG before and
THREAD_GSCOPE_SET_FLAG after
__rtld_lock_lock_recursive (GL(dl_load_lock)) to avoid deadlock.
Don't dereference map until it has been found on some list.
If map->l_serial changed, return -1.
type __THROW marker of splice, vmsplice, and tee.
* sysdeps/unix/sysv/linux/ia64/bits/fcntl.h: Likewise.
* sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h: Likewise.
* sysdeps/unix/sysv/linux/s390/bits/fcntl.h: Likewise.
* sysdeps/unix/sysv/linux/sh/bits/fcntl.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/bits/fcntl.h: Likewise.
* sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h: Likewise.
* sysdeps/unix/sysv/linux/alpha/bits/fcntl.h: Likewise.
* sysdeps/unix/sysv/linux/syscalls.list: Mark splice, vmsplice, and tee
as cancellation points.
* rt/Makefile (headers): Add bits/mqueue2.h.
* rt/mqueue.h: Include bits/mqueue2.h if -D_FORTIFY_SOURCE=2,
optimizing with GCC and __va_arg_pack_len is defined.
* rt/bits/mqueue2.h: New file.
* rt/mq_open.c (__mq_open): Renamed from mq_open.
(mq_open): New strong_alias.
(__mq_open_2): New function.
* sysdeps/unix/sysv/linux/mq_open.c (__mq_open): Renamed from mq_open.
(mq_open): New strong_alias.
(__mq_open_2): New function.
* debug/Versions (libc): Export __fortify_fail@@GLIBC_PRIVATE.
* Versions.def (librt): Add GLIBC_2.7 version.
* debug/fortify_fail.c (__fortify_fail): Add libc_hidden_def.
* include/stdio.h (__fortify_fail): Add libc_hidden_proto.
* misc/sys/cdefs.h (__errordecl, __va_arg_pack_len): Define.
* io/fcntl.h: Include bits/fcntl2.h when __va_arg_pack_len
is defined rather than when not C++.
* io/bits/fcntl2.h (__open_alias, __open64_alias, __openat_alias,
__openat64_alias): New redirects.
(__open_too_many_args, __open_missing_mode, __open64_too_many_args,
__open64_missing_mode, __openat_too_many_args, __openat_missing_mode,
__openat64_too_many_args, __openat64_missing_mode): New __errordecls.
(open, open64, openat, openat64): Rewrite as __extern_always_inline
functions instead of function-like macros.
* misc/bits/syslog.h (syslog): When __va_arg_pack is defined,
implement as __extern_always_inline function.
(vsyslog): Define as __extern_always_inline function unconditionally.
* libio/bits/stdio2.h (sprintf, snprintf, printf, fprintf):
When __va_arg_pack is defined, implement as __extern_always_inline
functions.
(vsprintf, vsnprintf, vprintf, vfprintf): Define as
__extern_always_inline functions unconditionally.
* libio/bits/stdio.h (vprintf): Ifdef out the inline when
bits/stdio2.h will be included.
* wcsmbs/bits/wchar2.h (__swprintf_alias): New redirect.
(swprintf, wprintf, fwprintf): When __va_arg_pack is defined,
implement as __extern_always_inline functions.
(vswprintf, vwprintf, vfwprintf): Define as
__extern_always_inline functions unconditionally.
* debug/tst-chk1.c (do_test): Enable remaining tests for C++.
2007-09-03 Jakub Jelinek <jakub@redhat.com>
* misc/sys/cdefs.h (__extern_inline, __extern_always_inline): Only
define in C++ for GCC 4.3+, in C++ always use __gnu_inline__
attribute.
* include/features.h (__USE_EXTERN_INLINES): Define only when
__extern_inline is defined.
* stdlib/stdlib.h: Include bits/stdlib.h when __extern_always_inline
is defined instead of when not __cplusplus.
* misc/sys/syslog.h: Include bits/syslog.h when __extern_always_inline
is defined instead of when not __cplusplus.
* socket/sys/socket.h: Include bits/socket2.h when
__extern_always_inline is defined instead of when not __cplusplus.
* libio/stdio.h: Include bits/stdio2.h when __extern_always_inline
is defined instead of when not __cplusplus.
* posix/unistd.h: Include bits/unistd.h when __extern_always_inline
is defined instead of when not __cplusplus.
* string/string.h: Include bits/string3.h when __extern_always_inline
is defined instead of when not __cplusplus.
* wcsmbs/wchar.h: Include bits/wchar2.h when __extern_always_inline
is defined instead of when not __cplusplus.
(btowc, wctob): Don't guard the inlines with ifndef __cplusplus.
* io/fcntl.h: Don't include bits/fcntl2.h if __extern_always_inline
is not defined.
* misc/bits/syslog-ldbl.h: Guard *_chk stuff with
defined __extern_always_inline instead of !defined __cplusplus.
* libio/bits/stdio-ldbl.h: Likewise.
* wcsmbs/bits/wchar-ldbl.h: Likewise.
* misc/bits/syslog.h (syslog): Don't define for C++.
(vsyslog): Use __extern_always_inline function for C++ instead of
a macro.
* libio/bits/stdio.h (__STDIO_INLINE): Define to __extern_inline
whenever that macro is defined.
(vprintf): Don't provide the inline for C++.
(fread_unlocked, fwrite_unlocked): Don't define the macros for C++.
* libio/bits/stdio2.h (sprintf, snprintf, printf, fprintf): Don't
define the macros for C++.
(vsprintf, vsnprintf, vprintf, vfprintf): Define as
__extern_always_inline functions for C++.
* io/sys/stat.h (stat, lstat, fstat, fstatat, mknod, mknodat,
stat64, lstat64, fstat64, fstatat64): Don't define if not
__USE_EXTERN_INLINES.
* wcsmbs/bits/wchar2.h: Fix #error message.
(swprintf, wprintf, fwprintf): Don't define the macros for C++.
(vswprintf, vwprintf, vfwprintf): Define using
__extern_always_inline functions for C++.
* string/bits/string3.h: Don't #undef macros if __cplusplus.
(memcpy, memmove, mempcpy, memset, bcopy, bzero, strcpy, stpcpy,
strncpy, strcat, strncat): Define as __extern_always_inline
functions instead of macros for C++.
* math/bits/cmathcalls.h: Guard __extern_inline routines with
defined __extern_inline.
* sysdeps/alpha/fpu/bits/mathinline.h (__MATH_INLINE): Define
to __extern_inline whenever that macro is defined.
* sysdeps/ia64/fpu/bits/mathinline.h (__MATH_INLINE): Likewise.
* sysdeps/i386/fpu/bits/mathinline.h (__MATH_INLINE): Likewise.
* sysdeps/i386/i486/bits/string.h (__STRING_INLINE): Likewise.
* sysdeps/s390/bits/string.h (__STRING_INLINE): Likewise.
* sysdeps/s390/fpu/bits/mathinline.h (__MATH_INLINE): Likewise.
* sysdeps/powerpc/fpu/bits/mathinline.h (__MATH_INLINE): Likewise.
* sysdeps/x86_64/fpu/bits/mathinline.h (__MATH_INLINE): Likewise.
* sysdeps/sparc/fpu/bits/mathinline.h (__MATH_INLINE): Likewise.
* sysdeps/unix/sysv/linux/sys/sysmacros.h (gnu_dev_major,
gnu_dev_minor, gnu_dev_makedev): Remove __extern_inline from
prototypes. Only provide __extern_inline routines if
__USE_EXTERN_INLINES.
* debug/Makefile: Add rules to build and run tst-{,lfs}chk{4,5,6}
tests.
* debug/tst-chk1.c (do_prepare, do_test): Allow compilation as C++.
For now avoid some *printf tests in C++. Skip all testing
if __USE_FORTIFY_LEVEL is defined, but __extern_always_inline macro
is not.
* debug/tst-chk4.cc: New file.
* debug/tst-chk5.cc: New file.
* debug/tst-chk6.cc: New file.
* debug/tst-lfschk4.cc: New file.
* debug/tst-lfschk5.cc: New file.
* debug/tst-lfschk6.cc: New file.
* include/wchar.h (__vfwprintf_chk, __vswprintf_chk): Avoid
prototypes in C++.
* include/stdio.h (__sprintf_chk, __snprintf_chk, __vsprintf_chk,
__vsnprintf_chk, __printf_chk, __fprintf_chk, __vprintf_chk,
__vfprintf_chk, __fgets_unlocked_chk, __fgets_chk): Likewise.
zero if not defined.
(make_request): Recognize optimistic addresses and treat them like
deprecated addresses.
Reported by Neil Horman <nhorman@redhat.com>.
2007-08-21 Ulrich Drepper <drepper@redhat.com>
[BZ #4936]
* iconv/gconv.c (__gconv): If flush was successful, clear rest of
the state.
* iconvdata/Makefile: Add rules to build and run bug-iconv5.
* iconvdata/bug-iconv5.c: New file.
[BZ #4896]
2007-08-16 Andreas Jaeger <aj@suse.de>
* locale/localeinfo.h: Make _nl_category_name_idxs extern.
Reported by Peter Festner <peter.festner@ewetel.net>.