Ulrich Drepper [Mon, 4 Oct 2004 02:27:39 +0000 (02:27 +0000)]
Update.
2004-03-18 Jakub Jelinek <jakub@redhat.com>
* malloc/arena.c (aligned_heap_area): New variable.
(new_heap): If aligned_heap_area != NULL, attempt to use that
first. If HEAP_MAX_SIZE << 1 area is already HEAP_MAX_SIZE bytes
aligned, remember the second half in aligned_heap_area.
(delete_heap): Clear aligned_heap_area if deleting the area right
before aligned_heap_area.
Ulrich Drepper [Sun, 3 Oct 2004 21:11:37 +0000 (21:11 +0000)]
Update.
Dynamically create new threads if necessary.
* nscd/connections.c (fd_ready): If no thread available for processing
the request, create a new one unless the limit is reached.
(start_threads): Check errors from pthread_create.
* nscd/nscd.h: Declare max_nthreads.
* nscd/nscd_conf.c: Parse max-nthreads entry.
* nscd/nscd.conf: Add max-threads entry.
* nscd/nscd_stat.c: Print current and maximum number of threads.
Ulrich Drepper [Sun, 3 Oct 2004 19:33:48 +0000 (19:33 +0000)]
Update.
Implement paranoia mode.
* nscd/connections.c (nscd_init): Mark database and socket descriptors
as close on exec.
(restart): New function.
(restart_p): New function.
(nscd_run): Add missing descrement of nready in case readylist is
empty.
(main_loop_poll): Call restart_p and restart.
(main_loop_epoll): Likewise.
(begin_drop_privileges): Save original UID and GID.
* nscd/nscd.c: Define new variables paranoia, restart_time,
restart_interval, oldcwd, old_gid, old_uid.
(main): Disable paranoia mode if we are not forking.
(check_pid): When re-execing, the PID file contains the same PID as
the current process. Do not fail in this case.
* nscd/nscd.conf: Add paranoia and restart-interval entries.
* nscd/nscd.h: Define RESTART_INTERVAL. Declare new variables.
* nscd/nscd_conf.c: Parse paranoia and restart-internal configurations.
* nscd/nscd_stat.c: Print paranoia and restart-internal values.
Ulrich Drepper [Sun, 3 Oct 2004 07:33:54 +0000 (07:33 +0000)]
Update.
2004-10-03 Ulrich Drepper <drepper@redhat.com>
* nscd/connections.c: Implement alternative loop for main thread
which uses epoll.
* sysdeps/unix/sysv/linux/Makefile [subdir=nscd]
(CFLAGS-connections.c): Add -DHAVE_EPOLL.
* nscd/Makefile (CFLAGS-initgrcache.c): Add to CFLAGS-* variables,
don't replace old content.
Ulrich Drepper [Sun, 3 Oct 2004 01:21:47 +0000 (01:21 +0000)]
Update,
* nscd/connections.c: Rewrite handling of incoming connections. All
are handled by one thread which then hands of the descriptors for the
real work to the worker threads.
* nscd/Makefile: Link nscd with librt.
* nscd/selinux.c: Pretty printing.
* nscd/dbg_log.c (dbg_log): Don't add unnecessary newline to
output. Let syslog do the formatting if debug_level == 0.
Roland McGrath [Fri, 1 Oct 2004 22:49:43 +0000 (22:49 +0000)]
[BZ #420]
2004-10-02 Simon Josefsson <jas@extundo.com>
[BZ #420]
* sysdeps/generic/memmem.c [!_LIBC]: Define __builtin_expect, to
make the file usable inside gnulib.
Roland McGrath [Fri, 1 Oct 2004 22:49:36 +0000 (22:49 +0000)]
[BZ #420]
2004-10-02 Simon Josefsson <jas@extundo.com>
[BZ #420]
* sysdeps/generic/memmem.c [!_LIBC]: Define __builtin_expect, to
make the file usable inside gnulib.
Ulrich Drepper [Fri, 1 Oct 2004 10:33:03 +0000 (10:33 +0000)]
Update.
2004-10-01 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
(__lll_mutex_timedlock_wait): I woken but cannot get the lock,
make sure 2 is stored in the futex and we looked at the old value.
* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
(__lll_mutex_timedlock_wait): Likewise. Fix a few other problems
which might very well made the code not working at all before.
* nscd/nscd-client.h (__nscd_get_map_ref): Drop volatile from last
parameter.
(__nscd_drop_map_ref): Change second parameter to be a referenc to
a variable. Update variable when cycle count changed.
* nscd/nscd_helper.c (__nscd_get_map_ref): Remove volatile here, too.
* nscd/nscd_getai.c: Correctly use __nscd_drop_map_ref. Reinitialize
all variables and avoid memory leak in case of retries.
* nscd/nscd_getgr_r.c: Likewise.
* nscd/nscd_gethst_r.c: Likewise.
* nscd/nscd_getpw_r.c: Likewise.
* nscd/nscd_initgroups.c: Likewise.
* nscd/nscd.h: Add declaretion of addinitgroups and
readdinitgroups.
(__nscd_get_map_ref): Drop volatile from last parameter. (__nscd_drop_map_ref): Change second parameter to be a referenc to a variable. Update variable when cycle count changed.
* sysdeps/generic/glob.c (glob_in_dir): Don't blindly trust
readdir results; for symlinks or files of unknown type check using
stat whether the file exists.
* posix/tst-gnuglob.c (find_file): Handle leading "./". Fix
recognition of files.
* sunrpc/rpc_parse.c (get_type): Use "quad_t" for TOK_HYPER.
Otherwise isvectordef will loop infinitely if typedef hyper int64_t
is seen.
(unsigned_dec): Use "u_quad_t" for similar reasons.
(get_type): Use "long long" for TOK_HYPER. Otherwise isvectordef will loop infinitely if typedef hyper int64_6 is seen. (unsigned_dec): Use "unsigned long long" for similar reasons.
Roland McGrath [Tue, 28 Sep 2004 01:42:49 +0000 (01:42 +0000)]
* posix/tst-waitid.c (do_test): Add tests for waitpid with WCONTINUED.
* posix/sys/wait.h [__WIFCONTINUED] (WIFCONTINUED): New macro.
* stdlib/stdlib.h [__WIFCONTINUED] (WIFCONTINUED): New macro.
* sysdeps/generic/bits/waitstatus.h (__W_CONTINUED): New macro.
[WCONTINUED] (__WIFCONTINUED): New macro.
(__WIFSIGNALED): Rewritten to exclude __W_CONTINUED value, and have no
branches.
Update.
* elf/readlib.c (process_file): Before complaining about too-short
file, check that it potentially be an ELF file. Also complain about
empty files. [BZ #151].
* sysdeps/posix/getaddrinfo.c (getaddrinfo): Remove incorrect
requirement on socktype and protocol.
(gaih_inet): If numeric port number is given, return records for all
possible socket types.
* posix/tst-getaddrinfo2.c: New file.
* posix/Makefile (tests): Add tst-getaddrinfo2. [BZ #358]
Update.
* locale/loadlocale.c (_nl_intern_locale_data): Recognize LC_CTYPE
data where _nl_value_type_LC_CTYPE does not contain the type
information. Add range checks.
Reported by John Lumby <johnlumby@hotmail.com> [BZ #356].
Update.
* libio/vasprintf.c (_IO_vasprintf): Fix condition to decide
whether to realloc or not.
Reported by Pavel Kankovsky <peak@argo.troja.mff.cuni.cz> [BZ #346].
Update.
* intl/dcigettext.c (DCIGETTEXT): Protect tfind/tsearch calls.
* intl/dcigettext.c (_nl_find_msg): Call _nl_load_domain also if
decided < 0.
* intl/finddomain.c (_nl_find_domain): Likewise.
* intl/l10nflist.c (_nl_make_l10nflist): Initialize lock.
* intl/loadinfo.h (struct loaded_l10nfile): Add lock element.
* intl/loadmsgcat.c (_nl_load_domain): Set decided to 1 only once we
are done. First set to -1 to signal initialization is ongoing.
Protect against concurrent callers with recursive lock.
duplicate address recognition does not copy junk. [BZ #322]
* sysdeps/posix/getaddrinfo.c (getaddrinfo): If determinination of
source address fails, initialized source_addr_len field so that
duplicate address recognition does not copy junk.
Roland McGrath [Sat, 25 Sep 2004 10:04:29 +0000 (10:04 +0000)]
[BZ #406]
2004-09-25 Roland McGrath <roland@redhat.com>
[BZ #406]
* sysdeps/i386/i686/pt-machine.h: Don't #include "../useldt.h" if
[_TLS_H], since sysdeps/i386/tls.h includes it after including us.
Roland McGrath [Sat, 25 Sep 2004 10:04:15 +0000 (10:04 +0000)]
[BZ #406]
2004-09-25 Roland McGrath <roland@redhat.com>
[BZ #406]
* sysdeps/i386/i686/pt-machine.h: Don't #include "../useldt.h" if
[_TLS_H], since sysdeps/i386/tls.h includes it after including us.
Update.
* pthread_create.c (__pthread_create_2_1): Remember whether thread
is created detached and if yes, do not try to free the stack in case
the thread creation failed.
* sysdeps/pthread/createthread.c (do_clone): Free stack here if clone
call fails. Don't depend on INTERNAL_SYSCALL_ERRNO return zero in
case there has been no error. [BZ #405]
static, add always_inline attribute.
(elf_machine_rela): Likewise.
(elf_machine_lazy_rel): Likewise.
* elf/dynamic-link.h (elf_get_dynamic_info): Make static
dependend on !RESOLVE so that it's not defined in local
scope.
* locale/weight.h (findidx): Remove static, it's not supported
anymore with GCC 4.0 in a block scope.
* locale/weightwc.h (findidx): Likewise.
* posix/regcomp.c (seek_collating_symbol_entry): Likewise.
(lookup_collation_sequence_value): Likewise.
(build_range_exp): Likewise.
(build_collating_symbol): Likewise.
* iconv/iconvconfig.c (write_output): Likewise.
* elf/do-rel.h (elf_dynamic_do_rel): Likewise.
* sysdeps/generic/bits/dlfcn.h: Add RTLD_DEEPBIND.
* elf/dl-object.c (_dl_new_object): Add new parameter mode. If mode
has RTLD_DEEPBIND set add local searchlist before global scope.
* sysdeps/generic/ldsodefs.h (_dl_new_object): Adjust prototype.
* elf/rtld.c: Adjust callers of _dl_new_object.
* elf/dl-load.c: Likewise.
(_dl_map_object_from_fd): If RTLD_DEEPBIND is used, don't do anything
for DF_SYMBOLIC.
* elf/dl-open.c (dl_open_writer): Pass RTLD_DEEPBIND flag on to
_dl_map_object_deps.
* elf/tst-deep1.c: New file.
* elf/tst-deep1mod1.c: New file.
* elf/tst-deep1mod2.c: New file.
* elf/tst-deep1mod3.c: New file.
* elf/Makefile: Add rules to build and run new tests.