* sysdeps/unix/sysv/linux/getsysstats.c (next_line): Make sure there
are always at least 4 bytes in the returned line.
2009-04-15 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/getsysstats.c (__get_nprocs): Check
__libc_use_alloca (8192), if the stack is too small use 512 bytes
instead of 8K. Stop searching in /proc/stat after hitting first
line not starting with cpu.
(next_line): Truncate too long
lines at buffer size * 3/4 instead of pretending there were line
breaks inside of large lines.
* sysdeps/x86_64/add_n.S: New file.
* sysdeps/x86_64/addmul_1.S: New file.
* sysdeps/x86_64/lshift.S: New file.
* sysdeps/x86_64/mul_1.S: New file.
* sysdeps/x86_64/rshift.S: New file.
* sysdeps/x86_64/sub_n.S: New file.
* sysdeps/x86_64/submul_1.S: New file.
* stdio-common/printf.h (struct printf_info): Add user element.
New types printf_arginfo_size_function, printf_va_arg_function.
Declare register_printf_specifier, register_printf_modifier,
register_printf_type.
* stdio-common/printf-parse.h (struct printf_spec): Add size element.
(union printf_arg): Add pa_user element.
Adjust __printf_arginfo_table type.
Add __printf_va_arg_table, __printf_modifier_table,
__handle_registered_modifier_mb, and __handle_registered_modifier_wc
declarations.
* stdio-common/printf-parsemb.c: Recognize registered modifiers.
If registered arginfo call failed try normal specifier.
* stdio-common/printf-prs.c: Pass additional parameter to arginfo
function.
* stdio-common/Makefile (routines): Add reg-modifier and reg-type.
* stdio-common/Versions: Export register_printf_modifier,
register_printf_type, and register_printf_specifier for GLIBC_2.10.
* stdio-common/reg-modifier.c: New file.
* stdio-common/reg-type.c: New file.
* stdio-common/reg-printf.c (__register_printf_specifier): New
function. Mostly the old __register_printf_function function but
uses locking and type of third parameter changed.
(__register_printf_function): Implement using
__register_printf_specifier.
* stdio-common/vfprintf.c (vfprintf): Collect argument sizes in
calls to arginfo functions. Allocate enough memory for user-defined
types. Call new va_arg functions to get user-defined types.
Try installed handlers even for existing format specifiers first.
* resolv/res_init.c (res_setoptions): Recognize single-request option.
* resolv/res_send.c (send_dg): If we sent two requests at once and
only get one reply before timeout switch to mode where we send the
second request only after the first answer has been received.
* misc/Versions: Export preadv, preadv64, pwritev, pwritev64 for
GLIBC_2.10.
* misc/sys/uio.h: Declare preadv, preadv64, pwritev, pwritev64.
* sysdeps/unix/sysv/linux/kernel-features.h: Add entries for preadv
and pwritev.
* misc/preadv.c: New file.
* misc/preadv64.c: New file.
* misc/pwritev.c: New file.
* misc/pwritev64.c: New file.
* sysdeps/posx/preadv.c: New file.
* sysdeps/posx/preadv64.c: New file.
* sysdeps/posx/pwritev.c: New file.
* sysdeps/posx/pwritev64.c: New file.
* sysdeps/unix/sysv/linux/preadv.c: New file.
* sysdeps/unix/sysv/linux/preadv64.c: New file.
* sysdeps/unix/sysv/linux/pwritev.c: New file.
* sysdeps/unix/sysv/linux/pwritev64.c: New file.
* sysdeps/unix/sysv/linux/wordsize-64/preadv64.c: New file.
* sysdeps/unix/sysv/linux/wordsize-64/pwritev64.c: New file.
__ASSUME_COMPLETE_READV_WRITEV.
* sysdeps/unix/sysv/linux/readv.c: No need for userlevel fallback
with modern kernels.
* sysdeps/unix/sysv/linux/writev.c: Likewise.
* sysdeps/posix/readv.c: Since read is a cancellation point we have
to free a possible malloced buffer in case of cancellation.
* sysdeps/posix/writev.c: Likewise for write.
* config.make.in: Add nss-crypt entry.
* crypt/Makefile: If nss-crypt==yes, don't build md5.c, sha256.c,
sha512.c. Don't run md5test, sha256test, sha512test. Pass -DUSE_NSS
and include path for NSS directory to compiler for md5-crypt,
sha256-crypt, sha512-crypt. Link libcrypt.so with -lfreebl3.
* crypt/md5-crypt.c: If USE_NSS is defined, don't use local hash
function implementation, use NSS. Introduce wrappers around the
hash function calls. Little code size optimization.
* crypt/sha256-crypt.c: Likewise.
* crypt/sha512-crypt.c: Likewise.
* scripts/check-local-headers.sh: Ignore nss3 directory.
* configure.in: Rename pic_default to libc_cv_pic_default.
* config.make.in: Likewise.
Jakub Jelinek [Mon, 23 Mar 2009 11:49:01 +0000 (11:49 +0000)]
[BZ #9985]
* charmaps/UTF-8: Fix encoding of <U1080>..<U109F>, <U12AF>.
Based on patch by Keith Stribley <devel@thanlwinsoft.org>.
2009-03-23 Jakub Jelinek <jakub@redhat.com>
[BZ #9985]
* charmaps/UTF-8: Fix encoding of <U1080>..<U109F>, <U12AF>.
Based on patch by Keith Stribley <devel@thanlwinsoft.org>.
Ulrich Drepper [Mon, 16 Mar 2009 02:16:30 +0000 (02:16 +0000)]
[BZ #9733]
* elf/dl-load.c (_dl_map_object_from_fd): Only call audit hooks
if we are not loading a new audit library.
* elf/dl-reloc (_dl_relocate_object): Third parameter is now a bitmask.
Only use profiling trampoline for auditing if we are not relocating
an audit library.
* elf/dl-open.c (dl_open_worker): Adjust _dl_relocate_object call.
* elf/rtld.c: Likewise.
* sysdeps/generic/ldsodefs.h: Adjust _dl_relocate_object prototype.
Ulrich Drepper [Sun, 15 Mar 2009 20:35:02 +0000 (20:35 +0000)]
[BZ #9880]
* inet/inet6_rth.c (inet6_rth_reverse): Compute number of segments
correctly. Set segleft member in output as required.
Patch partly by Yang Hongyang <yanghy@cn.fujitsu.com>.
* inet/tst-inet6_rth.c (do_test): Add tests for inet6_rth_reverse.
Ulrich Drepper [Sun, 15 Mar 2009 00:26:14 +0000 (00:26 +0000)]
* elf/dl-runtime.c (reloc_offset): Define.
(reloc_index): Define.
(_dl_fixup): Rename reloc_offset parameter to reloc_arg.
(_dl_fixup_profile): Likewise. Use reloc_index instead of
computing index from reloc_offset.
(_dl_call_pltexit): Likewise.
* sysdeps/x86_64/dl-trampoline.S (_dl_runtime_resolve): Just pass
the relocation index to _dl_fixup.
(_dl_runtime_profile): Likewise for _dl_fixup_profile and
_dl_call_pltexit.
* sysdeps/x86_64/dl-runtime.c: New file.
Ulrich Drepper [Sat, 14 Mar 2009 23:57:33 +0000 (23:57 +0000)]
[BZ #9893]
* sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): Fix
alignement of La_x86_64_regs. Store xmm parameters.
Patch mostly by Jiri Olsa <olsajiri@gmail.com>.
Ulrich Drepper [Sat, 14 Mar 2009 20:15:21 +0000 (20:15 +0000)]
[BZ #9913]
* string/strverscmp.c (__strverscmp): Fix case of different digits
in fractional part of string.
Patch by Jingyu Liu <jyliu@fortinet.com>.
* string/Makefile (tests): Add tst-svc2.
* string/tst-svc2.c: New file.
* string/strverscmp.c (__strverscmp): Optimize size of tables.
_POSIX2_C_DEV, _POSIX2_SW_DEV, _POSIX2_LOCALEDEF): Define to
200809L instead of 200112L.
(_XOPEN_VERSION): For __USE_XOPEN2K8 define to 700.
* posix/tst-sysconf.c (STDVER): Define to 200809L instead of 200112L.
Ulrich Drepper [Sun, 8 Mar 2009 19:53:12 +0000 (19:53 +0000)]
* stdlib/Makefile (routines): Add quick_exit, at_quick_exit, and
cxa_at_quick_exit.
(static-only-routines): Add at_quick_exit.
* stdlib/Versions: Export quick_exit and __cxa_at_quick_exit for
GLIBC_2.10.
* stdlib/quick_exit.c: New file.
* stdlib/at_quick_exit.c: New file.
* stdlib/cxa_at_quick_exit.c: New file.
* stdlib/cxa_atexit.c (__cxa_atexit): Move body to new function. Call
it appropriately.
(__internal_atexit): New function.
(__new_exitfn): Now takes parameter to point to the list to use.
* stdlib/cxa_finalize.c: Remove quick_exit handlers, don't call them.
* stdlib/exit.c (__run_exit_handlers): New function. Split from...
(exit): ...here. Just call __run_exit_handlers appropriately.
* stdlib/exit.h: Declare __quick_exit_funcs, __run_exit_handlers,
__internal_atexit, __cxa_at_quick_exit. Adjust __new_exitfn.
* stdlib/on_exit.c: Adjust call to __new_exitfn.
* stdlib/stdlib.h: Declare at_quick_exit and quick_exit.
Ulrich Drepper [Mon, 2 Mar 2009 16:15:58 +0000 (16:15 +0000)]
* sysdeps/unix/sysv/linux/fallocate.c: New file.
* sysdeps/unix/sysv/linux/fallocate64.c: New file.
* sysdeps/unix/sysv/linux/wordsize-64/fallocate64.c: New file.
* sysdeps/unix/sysv/linux/wordsize-64/fallocate.c: New file.
* sysdeps/unix/sysv/linux/i386/fallocate64.c: New file.
* sysdeps/unix/sysv/linux/i386/fallocate.c: New file.
* sysdeps/unix/sysv/linux/Versions: Export fallocate and fallocate64
for GLIBC_2.10.
* sysdeps/unix/sysv/linux/Makefile [subdir=io] (sysdep_routines):
Add fallocate and fallocate64.