* include/libc-symbols.h (stub_warning): Emit a marker section called
.gnu.glibc-stub.NAME.
* Makerules ($(objpfx)stubs): Depend on object files, not dep files.
Use objdump to collect those marker section names.
($(common-objpfx)shlib.lds): Discard .gnu.glibc-stub.* sections.
2005-02-09 Jakub Jelinek <jakub@redhat.com>
[BZ #710]
* stdlib/random_r.c (__initstate_r): Save old state.
* stdlib/Makefile (tests): Add tst-random2.
* stdlib/tst-random2.c: New test.
Reported by Peter Bergner <bergner@vnet.ibm.com>.
(s390-.*-.*, powerpc.*-.*-.*, sparc.*-.*-.*): Add WORDSIZE64 entries
for these mapping back to the above.
2005-02-10 Roland McGrath <roland@redhat.com>
[BZ #632]
* scripts/soversions.awk: Expect cpu, vendor, os as separate variables
from command line.
Grok shlib-versions lines with WORDSIZE* in second column.
Add new leading column to output, DEFAULT for existing output lines.
Also emit lines with WORDSIZE* for alternate configurations.
* Makeconfig ($(common-objpfx)soversions.i): Pass those variables.
($(common-objpfx)soversions.mk): Grok new column, use only DEFAULT.
($(common-objpfx)gnu/lib-names.stmp): Depend on soversions.i instead
of soversions.mk; replace inline shell script with use of ...
* scripts/lib-names.awk: New file. If input has non-DEFAULT lines,
emit multiple sets of macros under #if.
* shlib-versions (x86_64-.*-.*): Add WORDSIZE32 line mapping to i686.
(s390x-.*-.*): Likewise for s390.
(powerpc64-.*-.*): Likewise for powerpc.
(sparc64-.*-.*): Likewise for sparc.
* nscd/nscd.c (termination_handler): Avoid segfault if some database
is not enabled.
* nscd/nscd_getai.c (__nscd_getai): If ai_resp->found == -1, set
__nss_not_use_nscd_hosts and return -1.
* nscd/nscd_initgroups.c (__nscd_getgrouplist): If
initgr_resp->found == -1, set __nss_not_use_nscd_group and return -1.
Avoid leaking sockets.
2005-01-28 Andreas Schwab <schwab@suse.de>
H.J. Lu <hongjiu.lu@intel.com>
[BZ #677]
* elf/dl-runtime.c (fixup): Change return type to
DL_FIXUP_VALUE_TYPE. Use DL_FIXUP_VALUE_TYPE,
DL_FIXUP_MAKE_VALUE and DL_FIXUP_VALUE_CODE_ADDR for relocation
values. Use DL_FIXUP_VALUE_ADDR and DL_FIXUP_ADDR_VALUE to
store and retrieve relocation values.
(profile_fixup): Likewise.
* include/link.h (link_map): Use DL_FIXUP_VALUE_TYPE for
l_reloc_result.
* sysdeps/generic/dl-fptr.h (link_map): Forward declaration.
* sysdeps/generic/dl-lookupcfg.h (DL_FIXUP_VALUE_TYPE): New.
(DL_FIXUP_MAKE_VALUE): Likewise.
(DL_FIXUP_VALUE_CODE_ADDR): Likewise.
(DL_FIXUP_VALUE_ADDR): Likewise.
(DL_FIXUP_ADDR_VALUE): Likewise.
* sysdeps/ia64/dl-lookupcfg.h: Include <dl-fptr.h> for "struct fdesc".
(DL_FIXUP_VALUE_TYPE): New.
(DL_FIXUP_MAKE_VALUE): Likewise.
(DL_FIXUP_VALUE_CODE_ADDR): Likewise.
(DL_FIXUP_VALUE_ADDR): Likewise.
(DL_FIXUP_ADDR_VALUE): Likewise.
* sysdeps/ia64/dl-machine.h (elf_machine_profile_fixup_plt): Removed.
(elf_machine_profile_plt): Removed.
(elf_machine_fixup_plt): Change return type and type of value
parameter to struct fdesc.
(elf_machine_plt_value): Likewise.
(elf_machine_rela): Use DL_FIXUP_MAKE_VALUE to construct
argument for elf_machine_fixup_plt.
2005-02-07 Jakub Jelinek <jakub@redhat.com>
(dtv_t): Change pointer type to be a struct which also contains
information whether the memory pointed to is static TLS or not.
* sysdeps/generic/syslog.c (send_flags) [!send_flags]: Define it.
* shadow/sgetspent_r.c (FALSE): Macro renamed to ...
(FALSEP): ... this. Updated all references.
* libio/fmemopen.c: Include <stdint.h>.
Update.
2005-01-27 Paolo Bonzini <bonzini@gnu.org>
[BZ #558]
* posix/regcomp.c (calc_inveclosure): Return reg_errcode_t.
Initialize the node sets in dfa->inveclosures.
(analyze): Initialize inveclosures only if it is needed.
Check errors from calc_inveclosure.
* posix/regex_internal.c (re_dfa_add_node): Do not initialize
the inveclosure node set.
* posix/regexec.c (re_search_internal): If nmatch includes unused
subexpressions, reset them to { rm_so: -1, rm_eo: -1 } here.
* posix/regcomp.c (parse_bracket_exp) [!RE_ENABLE_I18N]:
Do build a SIMPLE_BRACKET token.
* posix/regexec.c (transit_state_mb): Do not examine nodes
where ACCEPT_MB is not set.
2005-01-27 Jakub Jelinek <jakub@redhat.com>
* stdlib/tst-fmtmsg.c: Include stdlib.h.
* stdio-common/tst-fmemopen2.c: Include string.h.
* posix/execvp.c: Include stdbool.h.
Update.
2004-12-13 Paolo Bonzini <bonzini@gnu.org>
Separate parsing and creation of the NFA. Avoided recursion on
the (very unbalanced) parse tree.
[BZ #611]
* posix/regcomp.c (struct subexp_optimize, analyze_tree, calc_epsdest,
re_dfa_add_tree_node, mark_opt_subexp_iter): Removed.
(optimize_subexps, duplicate_tree, calc_first, calc_next,
mark_opt_subexp): Rewritten.
(preorder, postorder, lower_subexps, lower_subexp, link_nfa_nodes,
create_token_tree, free_tree, free_token): New.
(analyze): Accept a regex_t *. Invoke the passes via the preorder and
postorder generic visitors. Do not initialize the fields in the
re_dfa_t that represent the transitions.
(free_dfa_content): Use free_token.
(re_compile_internal): Analyze before UTF-8 optimizations. Do not
include optimization of subexpressions.
(create_initial_state): Fetch the DFA node index from the first node's
bin_tree_t *.
(optimize_utf8): Abort on unexpected nodes, including OP_DUP_QUESTION.
Return on COMPLEX_BRACKET.
(duplicate_node_closure): Fix comment.
(duplicate_node): Do not initialize the fields in the
re_dfa_t that represent the transitions.
(calc_eclosure, calc_inveclosure): Do not handle OP_DELETED_SUBEXP.
(create_tree): Remove final argument. All callers adjusted. Rewritten
to use create_token_tree.
(parse_reg_exp, parse_branch, parse_expression, parse_bracket_exp,
build_charclass_op): Use create_tree or create_token_tree instead
of re_dfa_add_tree_node.
(parse_dup_op): Likewise. Also free the tree using free_tree for
"<re>{0}", and lower OP_DUP_QUESTION to OP_ALT: "a?" is equivalent
to "a|". Adjust invocation of mark_opt_subexp.
(parse_sub_exp): Create a single SUBEXP node.
* posix/regex_internal.c (re_dfa_add_node): Remove last parameter,
always perform as if it was 1. Do not initialize OPT_SUBEXP and
DUPLICATED, and initialize the DFA fields representing the transitions.
* posix/regex_internal.h (re_dfa_add_node): Adjust prototype.
(re_token_type_t): Move OP_DUP_PLUS and OP_DUP_QUESTION to the tokens
section. Add a tree-only code SUBEXP. Remove OP_DELETED_SUBEXP.
(bin_tree_t): Include a full re_token_t for TOKEN. Turn FIRST and
NEXT into pointers to trees. Remove ECLOSURE.
2004-12-28 Paolo Bonzini <bonzini@gnu.org >
[BZ #605]
* posix/regcomp.c (parse_bracket_exp): Do not modify DFA nodes
that were already created.
* posix/regex_internal.c (re_dfa_add_node): Set accept_mb field
in the token if needed.
(create_ci_newstate, create_cd_newstate): Set accept_mb field
from the tokens' field.
* posix/regex_internal.h (re_token_t): Add accept_mb field.
(ACCEPT_MB_NODE): Removed.
* posix/regexec.c (proceed_next_node, transit_states_mb,
build_sifted_states, check_arrival_add_next_nodes): Use
accept_mb instead of ACCEPT_MB_NODE.
in $(CFLAGS), add -DNO_TLS_DIRECT_SEG_REFS.
* sysdeps/unix/sysv/linux/i386/sysdep.h [USE___THREAD]
(SYSCALL_ERROR_HANDLER) [NO_TLS_DIRECT_SEG_REFS]: Load thread pointer
from %gs:0 and add to that value, rather that direct %gs:OFFSET access.
* sysdeps/unix/i386/sysdep.S [NO_TLS_DIRECT_SEG_REFS]: Likewise.
2005-01-22 Ulrich Drepper <drepper@redhat.com>
* posix/Makefile: Use CFLAGS-*.os instead of CFLAGS-*.c for frame
pointer option.
* stdlib/Makefile (CFLAGS-system.os): Use this instead of
CFLAGS-system.c for frame pointer option.
2005-01-21 Jakub Jelinek <jakub@redhat.com>
* elf/Makefile: Add rules to build and run tst-align2.
* elf/tst-align2.c: New test.
* elf/tst-alignmod2.c: New file.
* sysdeps/powerpc/tst-stack-align.h: New file.
* sysdeps/i386/dl-machine.h (RTLD_START): Align stack and clear frame
pointer before calling _dl_init.
* sysdeps/x86_64/dl-machine.h (RTLD_START): Likewise.
2005-01-20 Ulrich Drepper <drepper@redhat.com>
* posix/execl.c: Do not allocate potentially large buffers on the
stack.
* posix/execle.c: Likewise.
* posix/execlp.c: Likewise.
* posix/execlp.c: Likewise.
(script_execute): Removed.
(allocate_scripts_argv): New function. Called at most once to
allocate memory, not every time a script is run. Adjust caller.
* sysdeps/generic/wordexp.c (exec_comm): Add a few
TEMP_FAILURE_RETRY. Reorganize code to avoid multiple calls to
exec_comm_child.
(exec_comm_child): Can now be inlined.
* posix/Makefile: Add -fomit-frame-pointer for a few more files.
* stdlib/Makefile: Likewise.
2005-01-19 Roland McGrath <roland@redhat.com>
[BZ #681]
* sunrpc/openchild.c (_openchild): Use NULL instead of 0 for trailing
argument to execlp.
Reported by Marcus Meissner <meissner@suse.de>.
($(objpfx)nscd): Use that instead of selinux-LIBS.
* Makeconfig (link-extra-libs): Define just as $(LDLIBS-$(@F)).
(link-extra-libs-static): Define to $(link-extra-libs).
(link-extra-libs-bounded): Likewise.
ID if groupname starts with + or -.
* pwd/putpwent.c (putpwent): Don't write 0 as user or
group ID if user name starts with + or -.
2005-01-09 Kaz Kojima <kkojima@rr.iij4u.or.jp>
* sysdeps/generic/ldsodefs.h (struct audit_ifaces): Add sh variants.
* sysdeps/elf/tst-auditmod1.c: Add sh support.
* sysdeps/sh/bits/link.h: New.
* sysdeps/sh/dl-machine.h: Remove trampoline code here. Define
ARCH_LA_PLTENTER and ARCH_LA_PLTEXIT. Remove obsolete comments.
(RTLD_START): Define __fpscr_values.
* sysdeps/sh/dl-trampoline.S: New file.
* sysdeps/sh/sh4/dl-trampoline.S: New file.
* sysdeps/sh/sh4/Versions [ld]: Add __fpscr_values.
* sysdeps/sh/sh4/dl-machine.h: Remove.
2005-01-10 Jakub Jelinek <jakub@redhat.com>
* time/tst-strptime.c (day_tests): Add 2 new tests.
(test_tm, main): Issue an error instead of segfaulting if
strptime returns NULL.
2005-01-10 H.J. Lu <hongjiu.lu@intel.com>
* sysdeps/alpha/libc-tls.c (__tls_get_addr): Updated for dtv_t union.
* sysdeps/ia64/libc-tls.c (__tls_get_addr): Likewise.
2005-01-09 Ulrich Drepper <drepper@redhat.com>
* elf/dl-debug.c (_dl_debug_initialize): Take extra parameter and
use it to select the r_debug structure for that namespace.
* elf/dl-close.c (_dl_close): Adjust call to _dl_debug_initialize.
* elf/dl-load.c (_dl_map_object_from_fd): Likewise.
* elf/dl-open.c (_dl_open): Likewise.
* elf/rtld.c (dl_main): Likewise.
* sysdeps/generic/ldsodefs.h (struct link_namespaces): Add _ns_debug
member.
(_dl_debug_initialize): Add new parameter in declaration.
* elf/dl-close.c (_dl_close): Make sure auditing callbacks are not
called for the auditing objects themselves.
* elf/dl-load.c (_dl_map_object_from_fd): Likewise.
* sysdeps/powerpc/powerpc64/dl-machine.h
(elf_machine_runtime_setup): If profile != 0 does not anymore mean
GLRO(dl_profile) != NULL.
* sysdeps/powerpc/powerpc64/bits/link.h (struct la_ppc64_regs): Add
padding.
* sysdeps/powerpc/powerpc64/dl-trampoline.S: (_dl_profile_resolve):
Extend _dl_prof_resolve to add pass extra parameters to
_dl_profile_fixup and set up structure with register content.
* sysdeps/powerpc/powerpc32/dl-machine.c (__elf_machine_runtime_setup):
If profile != 0 does not anymore mean GLRO(dl_profile) != NULL.
* sysdeps/powerpc/powerpc32/bits/link.h: Fix types of some fields in
the register and result structures.
* sysdeps/powerpc/powerpc64/bits/link.h: Fix types of some fields
in the 32-bit register and result structures.
* sysdeps/powerpc/powerpc32/dl-trampoline.S (_dl_prof_resolve):
Extend _dl_prof_resolve to add pass extra parameters to
_dl_profile_fixup and set up structure with register content.
* misc/sys/cdefs.h (__attribute_warn_unused_result__): Define.
* stdlib/stdlib.h: Make realloc with
__attribute_warn_unused_result__ instead of __wur.
* malloc/malloc.h: Add __wur and __attribute_warn_unused_result__
markers as in <stdlib.h>.
2005-01-06 Ulrich Drepper <drepper@redhat.com>
* misc/sys/cdefs.h: Define __wur.
* libio/stdio.h: Use __wur for a number of interfaces.
* posix/unistd.h: Likewise.
* posix/regex_internal.c (free_state): Free word_trtable.
2005-01-05 Steven Munroe <sjmunroe@us.ibm.com>
* elf/rtld.c (dl_main) [NEED_DL_SYSINFO_DSO]: Insure l_map_end and
l_text_end are set for a VDSO with a single PT_LOAD entry.
* libio/iofopncook.c (_IO_cookie_seekoff): Define. Mark offset as
invalid to disable optimizations in fileops which won't work here.
(_IO_cookie_jumps): Use it.
(_IO_old_cookie_jumps): Likewise.
* libio/fmemopen.c (fmemopen_seek): Result must be returned in *P,
not the return value.
* stdio-common/Makefile (tests): Add tst-fmemopen2.
* stdio-common/tst-fmemopen2.c: New file.
2005-01-03 Andreas Jaeger <aj@suse.de>
* csu/Makefile (generated): Add start.os and start.ob.
* elf/Makefile (tests): Change rule for tst-pie1 so that make
clean works.
2004-12-29 Roland McGrath <roland@redhat.com>
[BZ #626]
* sysdeps/unix/alarm.c (alarm): Round return value to nearest rather
than always up; when nearest is zero, round up to one.
2004-04-27 Paolo Bonzini <bonzini@gnu.org>
* posix/regex_internal.h (struct re_dfastate_t): Make
word_trtable a pointer to the 512-item transition table.
* posix/regexec.c (build_trtable): Fill in either state->trtable
or state->word_trtable. Return a boolean indicating success.
(transit_state): Expect state->trtable to be a 256-item
transition table. Reorganize code to have less tests in
the common case, and to save an indentation level.
2004-12-21 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/i386/clone.S (__clone): Make sure %esp when
calling fn is 16 byte aligned.
* sysdeps/i386/tst-stack-align.h: New file.
* misc/efgcvt_r.c (FLOAT_MIN_10_EXP, FLOAT_MIN_10_NORM): Define.
(ecvt_r): Special case denormals.
* misc/qefgcvt_r.c (FLOAT_MIN_10_EXP, FLOAT_MIN_10_NORM): Define.
* misc/tst-efgcvt.c: Include float.h.
(ecvt_tests): Add 2 new tests.
New variables.
(options, parse_opt, main): Take new options --nostdlib and
--output/-o to set them. Under --nostdlib, skip GCONV_PATH dirs.
(write_output): If output_file is set, write the output there.
2004-12-19 Andreas Jaeger <aj@suse.de>NULL
Update.
2004-12-19 Andreas Jaeger <aj@suse.de>
[BZ #560]
* inet/netinet/in.h: Use __interface_addr instead of __interface.
[BZ #573]
* sunrpc/xcrypt.c (passwd2des_internal): Make it hidden instead of
internal linkage.
2004-12-17 Richard Henderson <rth@redhat.com>
* sysdeps/unix/sysv/linux/alpha/clone.S (__clone): Add support
for NPTL where the PID is stored at userlevel and needs to be
reset when CLONE_THREAD is not used.
2004-09-02 Steven Munroe <sjmunroe@us.ibm.com>
[BZ #610]
* sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S
(__novec_getcontext): Fix typo in store of fp29.
(__getcontext): Fix typo in store of fp29.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S
(__novec_swapcontext): Fix typo in store of fp29.
(__swapcontext): Fix typo in store of fp29.
2004-12-16 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/clone.S (__clone): Add support
for NPTL where the PID is stored at userlevel and needs to be reset
when CLONE_THREAD is not used.
* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
(SYSCALL_ERROR_HANDLER): If RTLD_PRIVATE_ERRNO, use rtld_errno
instead of errno.
* sysdeps/unix/sysv/linux/sparc/sparc64/socket.S: Include
sysdep-cancel.h instead of sysdep.h. Handle cancellation.
* sysdeps/sparc/sparc64/fpu/libm-test-ulps: Regenerate.
* sysdeps/ieee754/ldbl-128/e_expl.c: Include stdlib.h.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: Correct stack
alignment. Clean up flag bit tests.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: Correct stack
alignment. Clean up flag bit tests. Remove redundent SP assignment.
Add TOC register save/restore around function call.
local.
* sysdeps/powerpc/powerpc32/fpu/setjmp-common.S: Make no_vmx symbol
local.
* sysdeps/powerpc/powerpc64/__longjmp-common.S: Make no_vmx symbol
local.
* sysdeps/powerpc/powerpc64/setjmp-common.S: Make no_vmx and
aligned_save_vmx symbol local.
2004-09-08 H.J. Lu <hongjiu.lu@intel.com>
* Makeconfig (libunwind): New.
(libgcc_eh): Add $(libunwind).
(gnulib): Always set to -lgcc $(libgcc_eh).
(static-gnulib): Always set to -lgcc -lgcc_eh $(libunwind).
(libc.so-gnulib): New.
* Makerules (LDLIBS-c.so): Use $(libc.so-gnulib) instead of
$(static-gnulib).
* configure.in (libc_cv_cc_with_libunwind): Set to yes if gcc
uses -lunwind for static binaries.
2004-12-15 Jakub Jelinek <jakub@redhat.com>
* nis/nis_domain_of_r.c (nis_domain_of_r): Use libnsl_hidden_def,
not libnsl_hidden_proto.
* sysdeps/unix/sysv/linux/s390/s390-32/clone.S (__clone): Add support
for NPTL where the PID is stored at userlevel and needs to be reset
when CLONE_THREAD is not used.
* sysdeps/unix/sysv/linux/s390/s390-64/clone.S (__clone): Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S (__clone): Save
and restore r2 around call to fn.
2004-12-15 Andreas Jaeger <aj@suse.de>
* sysdeps/ia64/dl-machine.h (elf_machine_rela): Mark auto instead
of static, add always_inline attribute.
(elf_machine_rela_relative): Likewise.
(elf_machine_lazy_rel): Likewise.
__NTH instead of __THROW in the inline definition.
* sysdeps/unix/sysv/linux/mips/sys/tas.h (_test_and_set): Likewise.
* sysdeps/mips/bits/dlfcn.h (RTLD_DEEPBIND): New macro.
* sysdeps/unix/sysv/linux/mips/bits/mman.h
(PROT_GROWSDOWN, PROT_GROWSUP): New macros.
Update.
2004-10-19 Wolfram Gloger <wg@malloc.de>
* malloc/hooks.c (mem2chunk_check, top_check): Handle
non-contiguous arena. Reported by Michael Dalton
<mwdalton@stanford.edu> [BZ #457]. Add further checks for top chunk.
2004-12-13 Jakub Jelinek <jakub@redhat.com>
* posix/getconf.c (main): Prepend just $GETCONF_DIR/ instead of
$GETCONF_DIR/_ to spec.
* posix/confstr.c (confstr): Remove leading underscores for
_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS.
2004-12-12 Ulrich Drepper <drepper@redhat.com>
* elf/dl-load.c (_dl_map_object_from_fd): Fix computation of
mapping start. It must take the actual pagesize into account, not
the alignment in the file.
2004-12-11 Ulrich Drepper <drepper@redhat.com>
* malloc/malloc.c (_int_realloc): Add checks for corrupted memory.
(_int_free): Make clear message are result of free() calls.
* malloc/malloc.c (_int_realloc): Remove unnecessary tests for
oldmem and size == 0.
Update.
2004-12-08 Thorsten Kukuk <kukuk@suse.de>
* nis/nss_nisplus/nisplus-netgrp.c (_nss_nisplus_getnetgrent_r):
Add check if the value is not an empty string. [BZ #305]
2004-11-29 Jakub Jelinek <jakub@redhat.com>
* stdlib/strtod_l.c (INTERNAL (__STRTOF)): If densize > 2
and numsize < densize, always shift num up by empty + 1 limbs.
2004-12-07 Paolo Bonzini <bonzini@gnu.org>
* posix/regexec.c (proceed_next_node): Simplify treatment of epsilon
nodes. Pass the pushed node to push_fail_stack.
(push_fail_stack): Accept a single node rather than an array
of two epsilon destinations.
(build_sifted_states): Only walk non-epsilon nodes.
(check_arrival): Don't pass epsilon nodes to
check_arrival_add_next_nodes.
(check_arrival_add_next_nodes) [DEBUG]: Abort if an epsilon node is
found.
(check_node_accept): Do expensive checks later.
(add_epsilon_src_nodes): Cache result of merging the inveclosures.
* posix/regex_internal.h (re_dfastate_t): Add non_eps_nodes and
inveclosure.
(re_string_elem_size_at, re_string_char_size_at, re_string_wchar_at,
re_string_context_at, re_string_peek_byte_case,
re_string_fetch_byte_case, re_node_set_compare, re_node_set_contains):
Declare as pure.
* posix/regex_internal.c (create_newstate_common): Remove.
(register_state): Move part of it here. Initialize non_eps_nodes.
(free_state): Free inveclosure and non_eps_nodes.
(create_cd_newstate, create_ci_newstate): Allocate the new
re_dfastate_t here.
2004-12-01 Jakub Jelinek <jakub@redhat.com>
* posix/tst-regex.c: Use defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0
conditionals instead of defined _POSIX_CPUTIME.
(main): If _POSIX_CPUTIME == 0, call sysconf to see if CPUTIME
option is available.
* posix/tst-regex.c2: Use defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0
conditionals instead of defined _POSIX_CPUTIME.
(do_test): If _POSIX_CPUTIME == 0, call sysconf to see if CPUTIME
option is available.
* sysdeps/posix/sysconf.c (__sysconf): If _POSIX_CPUTIME resp.
_POSIX_THREAD_CPUTIME is defined to 0, return -1 for the corresponding
_SC_ argument.
piping to cat; when not, don't use the pipe at all.
Pipe to cat in all cases of running the executable.
When direct running exits with code 5, retry running via ${RTLD}.
* elf/rtld.c (process_envvars): If __libc_enable_secure and
mode != normal, exit with exitcode 5.
2004-12-07 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/ia64/clone2.S (__clone2): Add support for
NPTL where the PID is stored at userlevel and needs to be reset when
CLONE_THREAD is not used. Restore gp before calling _exit.
2004-12-07 Kaz Kojima <kkojima@rr.iij4u.or.jp>
* sysdeps/unix/sysv/linux/sh/clone.S: Clear the frame pointer when
starting a new thread. Add support for NPTL where the PID is stored
at userlevel and needs to be reset when CLONE_THREAD is not used.
2004-12-01 Jakub Jelinek <jakub@redhat.com>
* elf/rtld.c (process_envvars): Don't consider LD_SHOW_AUXV
and LD_DYNAMIC_WEAK if __libc_enable_secure.
If __libc_enable_secure, /etc/suid-debug doesn't exist and
program will be actually run, turn off all debugging.
* sysdeps/generic/unsecvars.h (UNSECURE_ENVVARS): Add LD_DEBUG,
LD_DYNAMIC_WEAK and LD_SHOW_AUXV.
Update.
2004-12-06 Jakub Jelinek <jakub@redhat.com>
* time/tzset.c (tzset_internal): If + or - is seen,
but no offset after it, reset offset to 0. [BZ #601]
* libio/ioseekpos.c (_IO_seekpos_unlocked): Call _IO_SEEKOFF not
for CLOCK_THREAD_CPUTIME_ID, not ENOTSUP.
Use SYSDEP_NANOSLEEP handler before validating CLOCK_ID value.
* rt/tst-timer4.c (TEST_CLOCK, TEST_CLOCK_NANOSLEEP): New macros.
Use them throughout in place of CLOCK_REALTIME and nanosleep.
(do_test) [TEST_CLOCK_MISSING]: Call this macro and if it returns
non-null, punt the test with a message using the string returned.
* rt/tst-timer5.c: New file.
* rt/Makefile (tests): Add it.
2004-12-01 Paolo Bonzini <bonzini@gnu.org>
* posix/regcomp.c (free_dfa_content, init_dfa): Remove
references to re_dfa_t's subexps field.
(parse_sub_exp, parse_expression): Do not use it. Use
completed_bkref_map instead.
(create_initial_state, peek_token): Store a backreference \N
with opr.idx = N-1.
* posix/regexec.c (proceed_next_node, check_dst_limits, get_subexp):
Likewise.
(check_subexp_limits): Remove useless condition.
* posix/regex_internal.h (re_subexp_t): Remove.
(re_dfa_t): Remove subexps and subexps_alloc field, add
completed_bkref_map.
2004-11-30 Andreas Schwab <schwab@suse.de>
* nis/ypclnt.c (ypprot_err): Remove unused entries.
2004-11-30 Paolo Bonzini <bonzini@gnu.org>
* posix/regexec.c (check_dst_limits_calc_pos_1): Check for
bkref_idx == -1, and don't recurse in that case.
2004-12-04 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/clone.S: Add support for NPTL where
the PID is stored at userlevel and needs to be reset when CLONE_THREAD
is not used.
* sysdeps/unix/sysv/linux/86_64/clone.S: Likewise.
* sysdeps/unix/sysv/linux/arm/clone.S: Update uses of RETINSTR.
* sysdeps/unix/sysv/linux/arm/mmap.S: Likewise.
* sysdeps/unix/sysv/linux/arm/mmap64.S: Likewise.
* sysdeps/unix/sysv/linux/arm/socket.S: Likewise.
* sysdeps/unix/sysv/linux/arm/sysdep.h: Likewise.
* sysdeps/unix/sysv/linux/arm/vfork.S: Likewise.
Use it instead of __THUMB_INTERWORK__. Make RETINSTR take
only a condition and a register.
* sysdeps/arm/dl-machine.h: Use __USE_BX__ instead of
__THUMB_INTERWORK__.
(_dl_start_user): Use BX.
* sysdeps/arm/strlen.S: Use DO_RET.
* sysdeps/unix/arm/brk.S, sysdeps/unix/arm/fork.S,
sysdeps/unix/arm/sysdep.S, sysdeps/unix/arm/sysdep.h: Likewise.
* sysdeps/unix/sysv/linux/arm/clone.S,
sysdeps/unix/sysv/linux/arm/mmap.S,
sysdeps/unix/sysv/linux/arm/mmap64.S,
sysdeps/unix/sysv/linux/arm/socket.S,
sysdeps/unix/sysv/linux/arm/sysdep.h,
sysdeps/unix/sysv/linux/arm/vfork.S: Update uses of RETINSTR.
$(lib)-static-only-routines is nonempty.
(extra-objs, o-iterator.mk rule): Filter out .oS from generators.
Add a special rule for .oS objects -> _nonshared.a library.
2004-11-27 Ulrich Drepper <drepper@redhat.com>
* posix/getconf.c (vars): Add support for _SC_IPV6 and
_SC_RAW_SOCKETS.
* sysdeps/posix/sysconf.c (__sysconf): Add support for _SC_IPV6
and _SC_RAW_SOCKETS.
* sysdeps/generic/bits/confname.h: Define _SC_IPV6 and
_SC_RAW_SOCKETS.
* posix/Makefile (install-others): Add $(inst_libexecdir)/getconf.
(CFLAGS-sysconf.c): Add -D_GETCONF_DIR.
(CFLAGS-getconf.c): New.
($(inst_libexecdir)/getconf): New.
* posix/confstr.c (confstr): Use __sysconf to query specifications
that don't have _POSIX_V6_* macros defined. Use __*_{C,LD}FLAGS
macros defined in bits/environments.h.
* sysdeps/posix/sysconf.c: Include stdlib.h, string.h and
sys/stat.h.
(__sysconf_check_spec): New routine.
(__sysconf): Use it.
* posix/getconf.c (specs): Change into structure array.
(main): If -v is not given, try to get default from
$(libexecdir)/getconf/default. If specification is not
supported by this getconf, try to execute
$(libexecdir)/getconf/$(specification).
* sysdeps/unix/bsd/bsd4.4/freebsd/bits/environments.h: New file.
* sysdeps/unix/sysv/linux/s390/bits/environments.h: New file.
* sysdeps/unix/sysv/linux/powerpc/bits/environments.h: New file.
* sysdeps/unix/sysv/linux/sparc/bits/environments.h: New file.
* sysdeps/unix/sysv/linux/i386/bits/environments.h: New file.
* sysdeps/unix/sysv/linux/x86_64/bits/environments.h: New file.
* sysdeps/generic/bits/environments.h (__ILP32_OFFBIG_CFLAGS):
Define.
2004-11-26 Jakub Jelinek <jakub@redhat.com>
2004-11-23 Paolo Bonzini <bonzini@gnu.org>
* posix/regcomp.c (analyze_tree): Always call calc_epsdest.
(calc_inveclosure): Use re_node_set_insert_last.
(parse_dup_op): Lower X{1,5} to (X(X(X(XX?)?)?)?)?
rather than X?X?X?X?X?.
* posix/regex_internal.h (re_node_set_insert_last): New declaration.
* posix/regex_internal.c (re_node_set_insert_last): New function.
* posix/PCRE.tests: Add testcases.
* sysdeps/mips/sgidefs.h: Prevent <asm/sgidefs.h> from being
included by kernel headers and undo its settings if already
included. Define _ABIO32, _ABIN32 and _ABI64 if missing and use
them to define _MIPS_SIM_ABI32, _MIPS_SIM_NABI32 and
2004-11-23 Jakub Jelinek <jakub@redhat.com>
* nss/nss_files/files-XXX.c (internal_getent): If parse_line returned
-1, also do H_ERRNO_SET (NETDB_INTERNAL).
2004-11-20 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/bits/socket.h (SCM_RIGHTS): Avoid
comma at the end of enum if __USE_BSD is not defined.
(calc_inveclosure, calc_eclosure): Skip OP_DELETED_SUBEXP nodes.
2004-11-19 Ulrich Drepper <drepper@redhat.com>
* malloc/malloc.c (_int_free): Add a few more cheap tests for
corruption.
* debug/fprintf_chk.c: Adjust all users.
Update.
2004-11-18 Jakub Jelinek <jakub@redhat.com>
[BZ #544]
* posix/regex.h (RE_NO_SUB): New define.
* posix/regex_internal.h (OP_DELETED_SUBEXP): New.
(re_dfa_t): Add subexp_map.
* posix/regcomp.c (struct subexp_optimize): New type.
(optimize_subexps): New routine.
(re_compile_internal): Call it.
(re_compile_pattern): Set preg->no_sub to 1 if RE_NO_SUB.
(free_dfa_content): Free subexp_map.
(calc_inveclosure, calc_eclosure): Skip OP_DELETED_SUBEXP
nodes.
* posix/regexec.c (re_search_internal): If subexp_map
is not NULL, duplicate registers as needed.
* posix/Makefile: Add rules to build and run tst-regex2.
* posix/tst-regex2.c: New test.
* posix/rxspencer/tests: Fix last two tests (\0 -> \1).
Add some new tests for nested subexpressions.
2004-11-15 Jakub Jelinek <jakub@redhat.com>
* posix/bug-regex24.c: Include string.h.
* nis/nis_clone_obj.c (nis_clone_object): Rename out3 label to out2
and out2 to out. Remove out label. Formatting.
2004-11-15 Ulrich Drepper <drepper@redhat.com>
* include/stdio.h: Do not mark __libc_message as noreturn.
* sysdeps/unix/sysv/linux/libc_fatal.c (__libc_fatal): Add loop to
fool gcc. Include <stdbool.h>.
* sysdeps/posix/libc_fatal.c (__libc_fatal): Add loop to fool gcc.
(__libc_message): Fix typo.
2004-11-13 Ulrich Drepper <drepper@redhat.com>
* malloc/malloc.c (malloc_state): stat_lock_* elements need only
be defined if THREAD_STATS is defined. Remove pad0_ since it does
not align with cache line sizes in general anyway.
2004-11-13 Jakub Jelinek <jakub@redhat.com>
* elf/rtld.c (print_statistics): Avoid segfaults if not all namespaces
are used. Fix computation of num_relative_relocations on RELA
architectures other than IA-64 and Alpha.
2004-11-13 Ulrich Drepper <drepper@redhat.com>
* malloc/malloc.c (_int_free): Use munmap_chunk for handling
mmaped memory.
2004-11-12 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/libc_fatal.c: Add new function __libc_message
which performs the printing and simple format string handling. The
string is written to tty, stderr, syslog in this order, stopping after
the first successful output.
(__libc_fatal): Call __libc_message.
* include/stdio.h: Declare __libc_message.
* malloc/malloc.c (malloc_printerr): Use __libc_message.
* debug/chk_fail.c: Also print message with __libc_message.
* debug/test-strcpy_chk.c: Ensure that debug messages are not printed
to the terminal or stderr.
* debug/tst-chk1.c: Likewise.
* posix/Makefile: Remove gpl2lgpl variable.
2004-11-12 Ulrich Drepper <drepper@redhat.com>
* posix/Makefile (tests): Add bug-regex24.
* posix/bug-regex24.c: New file.
2004-11-12 Paolo Bonzini <bonzini@gnu.org>
* posix/regexec.c (check_dst_limits_calc_pos_1): Use the map to
cut recursive paths. Make exit condition more precise.
(match_ctx_add_entry): Initialize the map.
* posix/regex_internal.h (struct re_backref_cache_entry): Add a map of
reachable subexpression nodes from each backreference cache entry.
2004-11-09 Paul Eggert <eggert@cs.ucla.edu.
[BZ #535]
* time/difftime.c: Fix a double-rounding bug on hosts with
64-bit time_t and long double being IEEE double. Also, port
to more valid C99 hosts, even those that have padding bits.
Don't include <values.h> since it is marked as an obsolescent
interface. Include <limits.h>, <float.h>, and <stdint.h> instead.
(TYPE_BITS, TYPE_FLOATING, TYPE_SIGNED): New macros.
(subtract): New static function, that works correctly without
double-rounding, even on hosts with 64-bit time_t. Also cater
to hosts with padding bits.
(__difftime): Use it. Use DBL_MANT_DIG and LDBL_MANT_DIG to
determine whether floating types are wide enough: the old
test (which used sizeof) could in theory report the wrong results
on hosts with padding bits in floating-point values.
2004-11-11 Simon Josefsson <jas@extundo.com>
[BZ #542]
* sysdeps/generic/strtok_r.c [HAVE_CONFIG_H]: Include config.h.
[!_LIBC]: Include strtok_r.h (in gnulib), map __strtok_r to
strtok_r and __rawmemchr to strch.
(__strtok_r): Use C89 prototype.
[weak_alias]: Move calls to libc_hidden_def and weak_alias into
this #ifdef.
2004-11-10 Paul Eggert <eggert@cs.ucla.edu>
[BZ #541]
* time/mktime.c (SHR): New macro, which is a portable
substitute for >> that should work even on Crays.
(TIME_T_MIDPOINT, ydhms_diff, __mktime_internal): Use it.
Problem reported by Mark D. Baushke in
<http://lists.gnu.org/archive/html/bug-gnulib/2004-11/msg00071.html>.
2004-11-09 Paolo Bonzini <bonzini@gnu.org>
* posix/regexec.c (transit_state): Remove the check for
out-of-bounds buffers.
(check_matching): Check here for out-of-bounds buffers.
(re_search_internal): Store into match_kind a set of bits
indicating which incantation of fastmap scanning must be
used. Use a switch statement instead of multiple ifs.
Exit the final "for (;;)" with goto free_return unless
the match succeeded, thus simplifying some conditionals.
* posix/regex_internal.c (re_string_reconstruct,
re_string_context_at): Add several branch predictions for
case-sensitive matching and no transition table being used.
2004-11-10 Ulrich Drepper <drepper@redhat.com>
* posix/tst-waitid.c: Don't use error to print error message, they
won't end up in the .out file.
* nscd/nscd_getgr_r.c: Likewise. Make map externally visible.
* nscd/nscd_gethst_r.c: Likewise.
* nscd/nscd-client.h (libc_locked_map_ptr): Add new first
parameter, used as class for definition.
* nscd/nscd_getpw_r.c: Adjust for libc_locked_map_ptr change.
(pw_map_free): Ensure no crash after memory is freed.
* nscd/nscd_getgr.c: Likewise. Make map externally visible.
* nscd/nscd_gethst.c: Likewise.
* nscd/nscd_getai.c: Use map from nscd_gethost.c.
* nscd/nscd_initgroups.c: Use map from nscd_getgr.c.
2004-11-04 Jakub Jelinek <jakub@redhat.com>
* libio/fileops.c (_IO_new_file_seekoff): If mode is 0 and
fp->_offset == _IO_pos_BAD, just call _IO_SYSSEEK (fp, 0, dir)
and if successful set fp->_offset.
* libio/Makefile (tests): Add bug-ungetc3.
* libio/bug-ungetc3.c: New test.
2004-11-08 Ulrich Drepper <drepper@redhat.com>
* posix/regcomp.c (utf8_sb_map): Define.
(free_dfa_content): Don't free dfa->sb_char if it's a pointer to
utf8_sb_map.
(init_dfa): Use utf8_sb_map instead of initializing memory when the
encoding is UTF-8.
* posix/regcomp.c (init_dfa): Get the codeset name outside glibc as
well. Check if it is spelled UTF8 as well as UTF-8, and check
case-insensitively. Set dfa->map_notascii manually when outside
glibc.
* posix/regex_internal.c (build_wcs_upper_buffer) [!_LIBC]: Enable
optimizations based on map_notascii.
* posix/regex_internal.h [HAVE_LANGINFO_H || HAVE_LANGINFO_CODESET
|| _LIBC]: Include langinfo.h.
* posix/regex_internal.h (struct re_backref_cache_entry): Add "more"
field.
* posix/regexec.c (check_dst_limits): Hoist computation of the source
and destination bkref_idx out of the loop. Pass it to
check_dst_limits_calc_pos.
(check_dst_limits_calc_pos_1): New function, containing the recursive
loop of check_dst_limits_calc_pos; uses the "more" field of
struct re_backref_cache to control the loop.
(check_dst_limits_calc_pos): Store into "boundaries" the position
relative to lim's start and end positions. Do not accept eclosures,
accept bkref_idx instead. Call check_dst_limits_calc_pos_1 to do the
work.
(sift_states_bkref): Use the "more" field of struct re_backref_cache
to control the loop. A big "if" was turned into a continue and the
function was reindented.
(get_subexp): Use the "more" field of struct re_backref_cache
to control the loop.
(match_ctx_add_entry): Initialize the bkref_ents' "more" field.
(search_cur_bkref_entry): Return -1 if out of bounds.
* posix/regexec.c (empty_set): Remove.
(sift_states_backward): Remove cur_src variable. Move inner loop
to build_sifted_states.
(build_sifted_states): Extract from sift_states_backward. Do not
use empty_set.
(update_cur_sifted_state): Do not use empty_set. Special case
dest_nodes->nelem == 0.
2004-11-03 Paolo Bonzini <bonzini@gnu.org>
* posix/regex_internal.h (struct re_backref_cache_entry): Remove flag
field.
(struct re_sift_context_t): Remove cur_bkref, cls_subexp_idx,
check_subexp fields. Move limits last.
* posix/regexec.c (match_ctx_clear_flag): Remove.
(sift_ctx_init): Remove check_subexp parameter. Do not set removed
fields. Callers adjusted.
(expand_bkref_cache): Remove last_str parameter. Callers adjusted.
(re_search_internal): Remove fast_translate variable.
(update_cur_sifted_state): Pass candidates as the final parameter
to sift_states_bkref.
(sift_states_bkref): Change last unused parameter to be "candidates",
do not fetch candidates into a local variable.
Remove dead test for "node == sctx->bkref", and the cur_bkref_idx
variable.
Remove loops that set/reset the flag field of backref cache entries.
(check_arrival_add_next_nodes): Use a signed int to hold the return
value of re_node_set_insert.
(group_nodes_into_DFAstates): Likewise.
(match_ctx_add_entry): Do not set the flag field of the new entry.
_dl_sysinfo_dso under [NEED_DL_SYSINFO_DSO] as well.
* elf/rtld.c (dl_main): Set up GLRO(dl_sysinfo_dso) under
[NEED_DL_SYSINFO_DSO] as well.
* sysdeps/generic/dl-sysdep.c (_dl_show_auxv): Always include
AT_SYSINFO and AT_SYSINFO_EHDR in name table.
(_dl_sysdep_start) [NEED_DL_SYSINFO_DSO]: Match AT_SYSINFO_EHDR.
* elf/dl-support.c (_dl_sysinfo_dso): Define also under
[NEED_DL_SYSINFO_DSO].
(_dl_aux_init) [NEED_DL_SYSINFO || NEED_DL_SYSINFO_DSO]:
Match AT_SYSINFO_EHDR and set GL(dl_sysinfo_dso).
2004-11-05 Roland McGrath <roland@redhat.com>
(elf_fpxregset_t): New type.
(struct elf_prpsinfo): If __WORDSIZE == 32, change pr_[ug]id type
to unsigned short int.
* sysdeps/unix/sysv/linux/x86_64/sys/user.h
(struct user_fpregs_struct): Fix comment.
* sysdeps/i386/fpu/bits/mathdef.h (float_t, double_t): If
__FLOAT_EVAL_METHOD__ is defined and 0, typedef to float resp. double.
* sysdeps/x86_64/fpu/bits/mathdef.h: Include bits/wordsize.h.
(float_t, double_t): If -m32 and not -mfpmath=sse, typedef to
long double.
* sysdeps/x86_64/fpu/bits/fenv.h: Include bits/wordsize.h.
(fenv_t): Remove __mxcsr field for -m32.
if pos is _IO_pos_BAD.
* libio/ftello64.c (ftello64): Likewise.
* libio/iofgetpos.c (_IO_new_fgetpos): Likewise.
* libio/iofgetpos64.c (_IO_new_fgetpos64): Likewise.
* libio/oldiofgetpos.c (_IO_old_fgetpos): Likewise.
* libio/oldiofgetpos64.c (_IO_old_fgetpos64): Likewise.
* libio/ioftell.c (_IO_ftell): Likewise.
Cast to long int instead of off_t when checking for overflow.
2004-11-04 Richard Henderson <rth@redhat.com>
* sysdeps/unix/sysv/linux/alpha/register-dump.h (regnames): Align.
(linefeed): Remove.
(register_dump): Rewrite to generate into a flat buffer instead
of into iovecs.
2004-10-31 Mariusz Mazur <mmazur@kernel.pl>
* sysdeps/unix/sysv/linux/alpha/setregid.c: New file.
* sysdeps/unix/sysv/linux/alpha/setresgid.c: New file.
* sysdeps/unix/sysv/linux/alpha/setresuid.c: New file.
* sysdeps/unix/sysv/linux/alpha/setreuid.c: New file.
2004-10-27 Derek R. Price <derek@ximbiot.com>
[BZ #487] This change is imported from gnulib.
* time/mktime.c (not_equal_tm) [DEBUG]: Remove redundant check.
2004-10-24 Paul Eggert <eggert@cs.ucla.edu>
[BZ #473]
* time/tst-mktime.c (main): Don't assume that mktime fails
when given time stamps before 1970. It returns negative
time_t values instead, for compatibility with BSD.
* time/tst-mktime2.c: New file.
* time/Makefile (tests): Add it.
[BZ #473] Import from gnulib. Revamp to avoid several problems near
time_t extrema, and on hosts with 64-bit time_t and 32-bit int.
This fixes Debian bug 177940.
* time/mktime.c (TIME_T_MIDPOINT): New macro.
(ydhms_diff): Renamed from ydhms_tm_diff, with a new signature,
which avoids overflow problems on hosts with 64-bit time_t and
32-bit int. All callers changed. Now an inline function.
Verify at compile-time that long int is wide enough to avoid
these overflow problems.
(guess_time_tm): New function.
(__mktime_internal): Use it. Avoid overflow when computing yday on
hosts with 64-bit long and 32-bit int. Remove tests for 69;
no longer needed. Use if rather than #ifdef for LEAP_SECONDS_POSSIBLE
so that the code is checked by more compilers.
Do not rely on floating point to probe: stick to integer arithmetic,
to avoid potential porting problems.
Repair potential overflow correctly in the Southern Hemisphere.
(localtime_offset): Add a FIXME for the case where time_t is unsigned.
* sysdeps/m68k/dl-machine.h (elf_machine_rela)
(elf_machine_rela_relative, elf_machine_lazy_rel): Mark auto
instead of static.
2004-10-30 Andreas Schwab <schwab@suse.de>
2004-10-30 Andreas Schwab <schwab@suse.de>
* sysdeps/unix/sysv/linux/waitid.c: Include <stddef.h> for NULL.
2004-10-30 Ulrich Drepper <drepper@redhat.com>
* malloc/malloc.c (_int_free): Use unique comments for the error
cases.
2004-10-27 Ulrich Drepper <drepper@redhat.com>
* elf/dl-load.c (_dl_map_object): Use cache_rpath to check for
existing rpath in main executable, not explicit test.
2004-10-27 Ulrich Drepper <drepper@redhat.com>
* elf/dl-fini.c (_dl_fini): Fix search for map in maps array.
Reverse order of namespaces.
* elf/Makefile: Add rules to build and run tst-dlmopen3.
* elf/tst-dlmopen3.c: New file.
* elf/tst-dlmopen1mod.c: Add check whether constructor runs.
2004-10-27 Jakub Jelinek <jakub@redhat.com>
* sysdeps/generic/glob.c (globfree): Clear gl_pathv after freeing it.
* posix/Makefile: Add rules to build and run bug-glob2 test.
* posix/bug-glob2.c: New test.