2004-10-15 Ulrich Drepper <drepper@redhat.com>
* nscd/nscd.h (_PATH_NSCD_PASSWD_DB): Move to /var/db.
(_PATH_NSCD_GROUP_DB): Likewise.
(_PATH_NSCD_HOSTS_DB): Likewise.
(_PATH_NSCD_XYZ_DB_TMP): New #define, point to /var/run.
* nscd/connections.c (nscd_init): Non-persistent database files
are created with the _PATH_NSCD_XYZ_DB_TMP path.
* nscd/nscd.init: Create /var/db/nscd if necessary.
2004-10-14 Richard Henderson <rth@redhat.com>
* sysdeps/alpha/dl-machine.h (elf_machine_rela,
elf_machine_rela_relative, elf_machine_lazy_rel): Mark auto
instead of static.
* sysdeps/unix/sysv/linux/adjtime.c (ADJTIME): Use prototype
style definition.
* sysdeps/unix/sysv/linux/alpha/adjtime.c (ADJTIME): If
__ASSUME_TIMEVAL64, define __adjtime directly rather than
via strong_alias.
* nscd/Makefile: When using compilers without -fpie support, also
link with -lselinux if necessary.
Patch by Arkadiusz Miskiewicz <arekm@pld-linux.org>.
2004-10-14 Jakub Jelinek <jakub@redhat.com>
* elf/rtld.c (_dl_start): Fix one last dl_loaded.
* elf/dl-load.c (_dl_map_object_from_fd): Avoid definition of
label when it is not needed.
* elf/dl-close.c (_dl_close): Typo: & -> &&.
Update.
Add support for namespaces in the dynamic linker.
* dlfcn/Makefile (libdl-routines): Add dlmopen.
* dlfcn/Versions [libdl, GLIBC_2.3.4]: Add dlmopen.
* dlfcn/dlfcn.h: Define Lmid_t, LM_ID_BASE, and LM_ID_NEWLM.
Declare dlmopen. Document RTLD_DI_LMID.
* dlfcn/dlinfo.c: Handle RTLD_DI_LMID.
* dlfcn/dlmopen.c: New file.
* dlfcn/dlopen.c: Pass new parameter to _dl_open.
* dlfcn/dlopenold.c: Likewise.
* elf/dl-addr.c: Adjust for removal of GL(dl_loaded).
* elf/dl-caller.c: Likewise.
* elf/dl-close.c: Likewise.
* elf/dl-conflict.c: Likewise.
* elf/dl-debug.c: Likewise.
* elf/dl-lookup.c: Likewise.
* elf/dl-sym.c: Likewise.
* elf/dl-version.c: Likewise.
* elf/do-lookup.h: Likewise.
* elf/rtld.c: Likewise.
* sysdeps/unix/sysv/linux/i386/dl-librecon.h: Likewise.
* elf/dl-depsc: Likewise. Add new parameter to _dl_map_object.
* elf/dl-fini.c: Call destructors in all namespaces.
* elf/dl-iteratephdr.c: Compute total nloaded. Adjust for removal of
GL(dl_loaded).
* elf/dl-libc.c: Pass new parameter to _dl_open. Adjust for removal
of GL(dl_loaded).
* elf/dl-load.c (_dl_map_object_from_fd): Don't load ld.so a second
time. Reuse the one from the main namespace in all others.
Pass new parameter to _dl_new_object.
Adjust for removal of GL(dl_loaded).
* elf/dl-object.c: Take new parameter. Use it to initialize l_ns.
Adjust for removal of GL(dl_loaded).
* elf/dl-open.c (_dl_open): Take new parameter.
Adjust for removal of GL(dl_loaded).
* elf/dl-support.c: Replace global _dl_loaded etc variables with
_dl_ns variable.
* include/dlfcn.h: Adjust prototype of _dl_open.
Define __LM_ID_CALLER.
* include/link.h: Add l_real, l_ns, and l_direct_opencount elements.
* sysdeps/generic/dl-tls.c: Bump TLS_STATIC_SURPLUS. Since libc is
using TLS we need memory appropriate to the number of namespaces.
* sysdeps/generic/ldsodefs.h (struct rtld_global): Replace _dl_loaded,
_dl_nloaded, _dl_global_scope, _dl_main_searchlist, and
_dl_global_scope_alloc with _dl_ns element. Define DL_NNS.
Adjust prototypes of _dl_map_object and member in rtld_global_ro.
* malloc/malloc.c: Include <dlfcn.h>.
* malloc/arena.c (ptmalloc_init): If libc is not in primary namespace,
never use brk.
* elf/Makefile: Add rules to build and run tst-dlmopen1 and
tst-dlmopen2.
* elf/tst-dlmopen1.c: New file.
* elf/tst-dlmopen1mod.c: New file.
* elf/tst-dlmopen2.c: New file.
* elf/dl-close.c: Improve reference counting by tracking direct loads.
* elf/dl-lookup.c (add_dependency): Likewise.
* elf/dl-open.c (dl_open_worker): Likewise.
* elf/rtld.c (dl_main): Likewise.
2004-09-09 GOTO Masanori <gotom@debian.or.jp>
[BZ #77]
* elf/dl-close.c: Count down l_opencount to check not only for
l_reldeps, but also l_initfini.
2004-10-13 Ulrich Drepper <drepper@redhat.com>
2004-10-11 Ulrich Drepper <drepper@redhat.com>
* elf/dl-sym.c (do_sym): Avoid using global variable.
* elf/dl-addr.c (_dl_addr): Really use match everywhere.
2004-10-09 Andreas Schwab <schwab@suse.de>
* sysdeps/m68k/memcopy.h (WORD_COPY_BWD): Remove use of cast as
lvalue.
* sysdeps/m68k/fpu/bits/mathinline.h: Remove __THROW from inline
definitions.
* posix/tst-getaddrinfo2.c: Include stdlib.h and string.h.
(do_test): Use %p instead of 0x%08X to print a pointer.
* malloc/malloc.c: Include stdio-common/_itoa.h.
2004-10-06 Jakub Jelinek <jakub@redhat.com>
* sysdeps/s390/jmpbuf-unwind.h: Include bits/wordsize.h.
(JMPBUF_CFA_UNWINDS_ADJ): Subtract 96 resp. 160 bytes from CFA.
2004-10-05 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/x86_64/sysconf.c (__sysconf): Return 200112L
for _SC_CPUTIME or _SC_THREAD_CPUTIME.
* nscd/Makefile (nscd-cflags): Set to -DIS_IN_nscd=1, plus
-fpie if building PIE.
(CFLAGS-*.c): Use it.
* nscd/Makefile (relro-LDFLAGS): Add -Wl,-z,now if have-z-relro.
($(objpfx)nscd): Add $(relro-LDFLAGS).
* sysdeps/unix/sysv/linux/i386/sysconf.c: Include hp-timing.h.
(__sysconf): Return -1 for _SC_CPUTIME or _SC_THREAD_CPUTIME if
!HP_TIMING_AVAIL.
2004-10-05 Ulrich Drepper <drepper@redhat.com>
* nscd/Makefile (distribute): Remove TODO.
* nscd/TODO: Removed.
* nscd/gai.c: Define __no_netlink_support if NEED_NETLINK is
defined and __ASSUME_NETLINK_SUPPORT is zero.
* sysdeps/unix/sysv/linux/Makefile (CFLAGS-gai.c): Add
-DNEED_NETLINK.
2004-10-04 Ulrich Drepper <drepper@redhat.com>
* malloc/mtrace.pl: Avoid calling location unless it is needed for
output. Patch by Edward Bishop <binutils@gmail.com>.
* nscd/Makefile (CFLAGS-gai.c): Add -fpie.
to rtld_errno.
* sysdeps/generic/errno.c [RTLD_PRIVATE_ERRNO] (rtld_errno): Define it,
and don't define any other errno names.
* sysdeps/unix/alpha/sysdep.h [RTLD_PRIVATE_ERRNO]: Use rtld_errno in
place of errno.
* sysdeps/unix/i386/sysdep.S: Likewise.
* sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise.
* sysdeps/unix/sysv/linux/ia64/sysdep.S: Likewise.
* sysdeps/unix/sysv/linux/m68k/sysdep.h: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h: Likewise.
* sysdeps/unix/sysv/linux/sh/sysdep.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h: Likewise.
* sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise.
* sysdeps/unix/x86_64/sysdep.S: Likewise.
* sysdeps/generic/errno.c [! USE___THREAD] (errno): Use `nocommon'
attribute instead of `section'.
are handled by one thread which then hands off the descriptors for the
* nscd/connections.c (start_threads): Use sysconf in case
_POSIX_CLOCK_SELECTION or _POSIX_MONOTONIC_CLOCK is not greater zero.
* nscd/nscd.c: Remove getaddrinfo stub definition.
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.
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.
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.
* 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.
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.
* nscd/nscd.c (termination_handler): Reset timestamp so that
client immediately stop using the database.
(__nscd_drop_map_ref): Change second parameter to be a reference to
* nscd/nscd.h: Add declaration of addinitgroups and
2004-09-30 Ulrich Drepper <drepper@redhat.com>
* 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.
2004-09-29 Ulrich Drepper <drepper@redhat.com>
* 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.
2004-09-29 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/ia64/bits/siginfo.h (si_segvflags):
Renamed from si+flags due to comflict with si_flags from <elf.h>.
2004-09-28 Ulrich Drepper <drepper@redhat.com>
* sysdeps/posix/getaddrinfo.c (gaih_inet): If NAME is a numerical IP
address and AI_CANONNAME is set, return copy of NAME as ai_canonname.
2004-09-27 Ulrich Drepper <drepper@redhat.com>
* 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.
* 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].
Update.
2004-09-26 Ulrich Drepper <drepper@redhat.com>
* 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]
2004-09-25 Ulrich Drepper <drepper@redhat.com>
* 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.
2004-09-25 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/i386/setuid.c (__setuid): Remove second
result declaration.
2004-09-22 Andreas Schwab <schwab@suse.de>
* sysdeps/unix/sysv/linux/ia64/sysdep.h: Adjust whitespace.
2004-09-23 Ulrich Drepper <drepper@redhat.com>
* 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.
* elf/dl-deps.c: Pretty printing.
2004-09-20 Roland McGrath <roland@frob.com>
* elf/dl-load.c (__stack_prot): Only use PROT_GROWSUP/PROT_GROWSDOWN
in initializer #if defined.
2004-09-18 Paul Eggert <eggert@cs.ucla.edu>
[BZ #391]
* stdlib/getsubopt.c: Merge fixes from gnulib.
(__strchrnul) [!_LIBC]: Define and include "strchrnul.c".
(getsubopt): Use prototypes, not K&R style.
Fix bug: memcmp(A,B,N) was being invoked on a memory block B
whose size might be smaller than N. Use strncmp to avoid the bug.
2004-09-20 Ulrich Drepper <drepper@redhat.com>
* elf/dl-load.c (_dl_map_object_from_fd): Add some error checking.
Reorder code slightly.
* elf/rtld.c (dl_main): No need to check whether l_info[DT_HASH]
is non-null, _dl_setup_hash will do that.
* sysdeps/unisx/sysv/linux/dl-execstack.c: Get protection flag
from memory.
* elf/dl-load.c (_dl_map_object_from_fd): Add PROT_EXEC flag to
__stack_flags.
2004-09-17 Ulrich Drepper <drepper@redhat.com>
* include/link.h (struct link_map): Add l_used element.
* sysdeps/generic/ldsodefs.h: Define DL_DEBUG_UNUSED.
* elf/rtld.c (process_dl_debug): Recognize unused.
(dl_main): When unused debug flag is set check for unused direct
dependencies.
When printing dependencies and SONAME starts with /, omit the SONAME =>
part.
* elf/dl-lookup.c (_dl_lookup_symbol_x): Mark object in which the
symbol has been found as used.
* elf/ldd.bash.in: Add -u option.
Update.
2004-09-18 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/nscd_setup_thread.c (setup_thread):
Do nothing if __NR_set_tid_address is not defined. [BZ #390]
2004-09-17 Ulrich Drepper <drepper@redhat.com>
* sysdeps/posix/getaddrinfo.c: Use gethostbyname3_r NSS function
in case it is available.
* nscd/aicache.c: Prefer using gethostbyname3_r NSS callback to also
get ttl and canonical name. Use these two values.
* resolv/Versions: Export _nss_dns_gethostbyname3_r from libnss_dns.
* resolv/nss_dns/dns-host.c (getanswer_r): Take two new parameters.
If nonnull fill with TTL and pointer to canonical name respectively.
(_nss_dns_gethostbyaddr_r): Pass NULL in new parameters of getanswer_r.
(_nss_dns_gethostbyname2_r): Just wrapper around
_nss_dns_gethostbyname3_r.
(_nss_dns_gethostbyname3_r): Renamed from _nss_dns_gethostbyname2_r.
Take two new parameters which as passed to getanswer_r.
2004-09-12 Ulrich Drepper <drepper@redhat.com>
* nss/getent.c: Don't preconstruct help message. Do it only when
needed.
* locale/programs/locale.c: Simplify help message printing.
2004-09-11 Thorsten Kukuk <kukuk@suse.de>
* nis/nss_compat/compat-grp.c: Check that buflen is greater zero
before writing data into the buffer with negative offset.
* nis/nss_compat/compat-initgroups.c: Likewise.
* nis/nss_compat/compat-pwd.c: Likewise.
* nis/nss_compat/compat-spwd.c Likewise.
Update.
* misc/syslog.c (vsyslog): Fix copying of PID in case of
out-of-memory situation. [BZ #365].
* sysdeps/alpha/fpu/bits/mathinline.h: Use __NTH instead of
__THROW in inline function definitions.
* posix/spawn.h [__USE_GNU]: Define POSIX_SPAWN_USEVFORK.
* posix/spawnattr_setflags.c: Check whether any unknown bit is set
in FLAGS parameter and fail if this is the case.
* sysdeps/posix/spawni.c: Use vfork if POSIX_SPAWN_USEVFORK flag is
set.
2004-09-10 Kaz Kojima <kkojima@rr.iij4u.or.jp>
* sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Decrement
__nwaiters. If pthread_cond_destroy has been called and this is
the last waiter, signal pthread_cond_destroy caller and avoid
using the pthread_cond_t structure after unlock.
* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
2004-09-10 Ulrich Drepper <drepper@redhat.com>
* nscd/nscd_stat.c: Improve output by also printing .shared and
.persistent.
* nscd/connections.c: Allow cache sharing to be really disabled.
* malloc/malloc.c (_int_free): Add inexpensive double free and
memory corruption tests.
(malloc_printf_nc): Renamed to malloc_printerr. Second parameter
is no format string anymore. Don't use stdio. Adjust all callers.
* malloc/hooks.c: Adjust malloc_printf_nc callers.
* nscd/connections.c: Implement r/o sharing of nscd's cache with client
processes via shared memory.
* nscd/nscd-client.h: Likewise.
* nscd/nscd.h: Likewise.
* nscd/nscd_conf.c: Likewise.
* nscd/nscd_getgr_r.c: Likewise.
* nscd/nscd_getpw_r.c: Likewise.
* nscd/nscd_gethst_r.c: Likewise.
* nscd/nscd.conf: Add new config parameters.
* nscd/Makefile (aux): Add nscd_helper.
* nscd/nscd_helper.c: New file.
* nscd/mem.c (gc): Indicate beginning and end of the gc cycle.
* nscd/hstcache.c: Simplify a lot. We cache only the request itself,
no derived information.
* connections.c (nscd_init): Fix bug in testing size of the persistent.
* nis/Makefile (aux): Add nis_hash.
* nis/nis_hash.c: New file. Split out from nis_util.c.
* nis/nis_util.c: Move __nis_hash code in separate file.
* csu/tst-atomic.c: Improve atomic_increment_val test which would
not have found a ppc bug.
2004-09-06 Ulrich Drepper <drepper@redhat.com>
* sysdeps/posix/getaddrinfo.c (gaih_inet): Fix problem with
AF_UNSPEC lookup with AI_CANONNAME of name which has only IPv6
addresses.
Update.
2004-09-01 Jakub Jelinek <jakub@redhat.com>
[BZ #361]
* posix/fnmatch_loop.c (FCT): For backslash between brackets, branch
to normal_bracket after fetching the next character.
* posix/tst-fnmatch.input: Add 25 new tests.
Reported by Markus Oberhumer <markus@oberhumer.com>.
(WSTOPPED, WEXITED, WCONTINUED, WNOWAIT): New macros.
* sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_WAITID_SYSCALL):
New macro.
* sysdeps/unix/sysv/linux/waitid.c: New file. Use new syscall when
available, or fall back to the waitpid-based generic code.
clobber the `ebp' register.
* sysdeps/mach/hurd/i386/Makefile (CFLAGS-init-first.c): Removed.
Reverts change from 2004-05-07 by Jeroen Dekkers.
* sysdeps/mach/hurd/i386/init-first.c (init): Changed the type of
NEWSP from `void *' to `int *'. Changed all casts accordingly.
later sets from output.
* Makerules (check-abi): Pass option to set that with value of
LIB-abi-frozen variable if one is set.
* abilist/libcidn.abilist: New file (empty).
2004-08-30 Jakub Jelinek <jakub@redhat.com>
* posix/bits/posix1_lim.h (_POSIX_CHILD_MAX, _POSIX_OPEN_MAX): If
not __USE_XOPEN2K, use the Unix98 mandated values.
indicating --enable-add-ons with no explicit list.
(running add-on fragments): Allow a fragment to modify $libc_add_on
and have that affect its place in the list of add-ons to use.
* configure: Regenerated.
2004-08-26 Ulrich Drepper <drepper@redhat.com>
* nscd/cache.c: Major rewrite. The data is now optionally kept in
a mmaped memory region which is automatically mirrored on disk.
This implements persistent data storage. The Memory handled
needed to be completely revamped, it now uses a garbage collection
mechanism instead of malloc.
* nscd/connections.c: Likewise.
* nscd/nscd.c: Likewise.
* nscd/nscd.h: Likewise.
* nscd/nscd_conf.c: Likewise.
* nscd/nscd_stat.c: Likewise.
* nscd/grpcache.c: Likewise.
* nscd/hstcache.c:: Likewise.
* nscd/pwdcache.c:: Likewise.
* nscd/Makefile: Add rules to build mem.c.
* nscd/mem.c: New file.
* nscd/nscd.conf: Describe new configuration options.
* sysdeps/powerpc/powerpc64/bits/atomic.h
(__arch_compare_and_exchange_bool_32_acq): Fix case where oldval
is negative.
(__arch_compare_and_exchange_bool_32_rel): Likewise.
2004-08-25 Richard Henderson <rth@redhat.com>
* sysdeps/alpha/elf/start.S (_start): Use $15 as frame unwind
instead of $31. Zero $15.
* sysdeps/unix/sysv/linux/alpha/clone.S (thread_start): Likewise.
2004-08-25 Ulrich Drepper <drepper@redhat.com>
* nscd/connections.c: Make socket nonblocking so that threads
don't get stuck on accept. Fix locking.
* nscd/grpcache.c (cache_addgr): Use cope of original key in hash
entry with alternative key.
* nscd/pwdcache.c (cache_addpw): Likewise.
* malloc/hooks.c (DEFAULT_CHECK_ACTION): Moved to malloc.c.
(check_action): Likewise.
When printing error messages, use malloc_printf_nc now instead of
fiddling with the streams cancellation flag in every place.
* malloc/malloc.c (DEFAULT_CHECK_ACTION): New definition. Change
default to 3.
(check_action): New variable.
(unlink): Print error message and eventually terminate in case list
is corrupted.
(malloc_printf_nc): New function. Use it in _int_free.
Change proposed by Arjan van de Ven.
2004-08-21 Ulrich Drepper <drepper@redhat.com>
* dlfcn/Makefile: Don't build eval.c anymore.
pointer in new variable ORIG_NAME and use this pointer when
2004-08-19 Ulrich Drepper <drepper@redhat.com>
* nis/nss_compat/compat-initgroups.c (getgrent_next_nss):
Initialize mysize with limits only if latter is >= 0. Use mysize
in malloc call.
2004-08-19 Jakub Jelinek <jakub@redhat.com>
* sysdeps/posix/getaddrinfo.c (gaih_inet): Cast canon to (char *)
to avoid warning.
* resolv/nss_dns/dns-canon.c (_nss_dns_getcanonname_r): Initialize
status to NSS_STATUS_UNAVAIL.
2004-08-19 Ulrich Drepper <drepper@redhat.com>
* sysdeps/posix/getaddrinfo.c (gaih_inet): Use h->h_name in the
cannoname lookup since it has the FQDN even if the original NAME
value has not.
2004-08-18 Ulrich Drepper <drepper@redhat.com>
* sysdeps/posix/getaddrinfo.c (gaih_inet): Store NAME parameter
pointer in new variable ORIG_NAME and se this pointer when
determination of canonical name failed, not the possibly IDN
translated value of NAME.
2004-08-16 Ulrich Drepper <drepper@redhat.com>
* resolv/nss_dns/dns-canon.c (_nss_dns_getcanonname_r): Don't use
CNAME records, we better follow the chain of CNAME records which
can be accomplished with A/AAAA lookups.
2004-08-15 Roland McGrath <roland@redhat.com>
[BZ #227]
* sysdeps/unix/sysv/linux/kernel-features.h
(__ASSUME_BRK_PAGE_ROUNDED): New macro.
* sysdeps/unix/sysv/linux/dl-sysdep.c (frob_brk)
[! __ASSUME_BRK_PAGE_ROUNDED]: Adjust the break up if it falls within
the partial page after the dynamic linker's own data segment.
* sysdeps/posix/getaddrinfo.c (gaih_inet): Optimize generation of
v4-mapped addresses a bit.
(gethosts): Move alloca out of macro, so that it is done only once.
* sysdeps/posix/getaddrinfo.c (gaih_addrtuple): Change type of
addr to avoid casts.
(gethosts): Removed.
(gethosts2): Renamed to gethosts. Make it usable for family !=
AF_UNSPEC. Fix AI_V4MAPPED.
(gaih_inet): Remove use of old gethosts. Always use what used to be
gethosts2. If entry is found, try to use the same NSS module's
getcanonname_r function. Use gethostbyaddr for AI_CANONNAME only
if getcanonname_r was not available. Fix filtering of AI_V4MAPPED
addresses. Numerous cleanups.
* resolv/nss_dns/dns-canon.c: New file.
* resolv/Makefile (libnss_dns-routines): Add dns-canon.
* resolv/Versions (libnss_dns): Add _nss_dns_getcanonname_r.
* elf/Makefile: Add rules to build and run tst-dlopenrpath.
* elf/tst-dlopenrpath.c: New file.
* elf/tst-dlopenrpathmod.c: New file.
* intl/tst-gettext.sh: Adjust for change of de.po file to UTF-8.
* sysdeps/mach/hurd/configure: Regenerated.
* sysdeps/posix/getaddrinfo.c (getaddrinfo): If RFC3484 sorting is
performed, make sure it is still the first entry after sorting
that has the ai_canonname information.
* sysdeps/posix/getaddrinfo.c (getaddrinfo): I rfc3484 sorting is
performed, make sure it is still the first entry after sotring
which has the ai_canonname information.
* nis/nss_nis/nis-netgrp.c: Remove locking by using data in struct
__netgrent object passed in instead of global variables.
Optimize.
* nis/nss_nisplus/nisplus-netgrp.c: Remove locking by using data
in struct __netgrent object passed in instead of global variables.
* inet/netgroup.h (struct __netgrent): Add service_user field.
Move cursor in anonymous union, add new field location to that
union.
* inet/getnetgrent_r.c: Extensive rewrite to really enable
concurrent uset of set/get/endnetgrent and innetgr.
* inet/getnetgrent_r.c (innetgr): We must get the lock used for
the set/get/end interfaces since we call all these functions in
succession and must not be interrupted doing this.
Reported by Chuck Simmons.
* inet/netgroup.h (struct name_list): Replace name pointer with
zero-sized array.
* inet/getnetgrent_r.c: Adjust code for change in name_list
layout. Numerous strdup and free calls removed.
2004-08-13 Ulrich Drepper <drepper@redhat.com>
* elf/sprof.c (read_symbols): When comparing aliases, prefer
strong over weak symbols if both don't start with '_'.
* malloc/malloc.c: Use strong_alias instead of weak_alias wherever
possible.
2004-08-10 GOTO Masanori <gotom@debian.or.jp>
* locale/C-time.c: Change default ERA value from NULL to "".
* locale/tst-C-locale.c: Add test case for ERA keywords.
2004-08-11 Ulrich Drepper <drepper@redhat.com>
* time/tzset.c (tzset_internal): Add new parameter which is
nonzero if called through tzset. Use TZDEFAULT name including
name comparison if the new parameter is zero. This means implicit
tzset calls will not cause files to be opened and read by tzfile.c
all the time.
2004-08-11 Jakub Jelinek <jakub@redhat.com>
* time/tzfile.c (__tzfile_read): Free transitions only if it will
not be reused.
2004-08-10 Jakub Jelinek <jakub@redhat.com>
* libio/bits/stdio.h (fread_unlocked): Cast 0 to (size_t).
(fwrite_unlocked): When checking if size * n is <= 8, cast each
argument to size_t individually. Cast n to (void) instead of
(size_t), surround with (), return (size_t) 0 if one of n or size
is 0. [BZ #316]
* stdio-common/Makefile (tests): Add tst-unlockedio.
* stdio-common/tst-unlockedio.c: New test.
Update.
* libio/bits/stdio.h (fread_unlocked): Add a couple of (size_t)
casts to handle funny calls with floating point argument values
and signed values correctly and without warning.
(fwrite_unlocked): Likewise. [BZ #309]
Update.
* malloc/memusage.c (me): Use creat64, not creat.
* malloc/memusagestat.c: Fix handling of very large sizes. [BZ #285]
Patch by Guy Maor <guymaor@yahoo.com>.
Update.
2004-08-09 Ulrich Drepper <drepper@redhat.com>
* iconv/gconv_charset.h (strip): Also allow comma which is what is
used to separate options. [BZ #194]
Update.
2004-08-09 Ulrich Drepper <drepper@redhat.com>
* time/tzset.c (tzset_internal): If TZ is not set do not compare
old and new tz value since it might be /etc/localtime in both
cases although the file changed. [BZ #154]
Patch by Christian Franke <franke@computer.org>.
* time/tzfile.c (__tzfile_read): Determine dev/ino of file.
Compare with values of previously opened file. Don't do anything
is they match.
Update.
* elf/dl-load.c (_dl_map_object): If __RTLD_CALLMAP flag is set,
reset loader before the actual loading.
* elf/dl-open.c (dl_open_worker): If file name contains no path
element determine map of caller. Pass caller map in this case to
_dl_map_object. Set __RTLD_CALLMAP in mode.
* include/dlfcn.h (__RTLD_CALLMAP): Define. [BZ #116]
Patch by Greg Wolodkin <greg@mathworks.com>.
2004-07-30 Guido Guenther <agx@sigxcpu.org>
* nss/getent.c (passwd_keys): Use strtoul instead of isdigit to
test if the key is numeric or not.
(group_keys): Likewise.
Ulrich Drepper <drepper@redhat.com>
* wcsmbs/mbsrtowcs_l.c (__mbsrtowcs_l): Don't read more input
character than necessary.
2004-08-05 Ulrich Drepper <drepper@redhat.com>
* wcsmbs/Makefile (tests): Add tst-mbsrtowcs.
* wcsmbs/tst-mbsrtowcs.c: New file.
* po/fr.po: Update from translation team.
2004-08-04 Jakub Jelinek <jakub@redhat.com>
If neither IPv4 nor IPv6 interface is present we cannot make any
Update.
2004-08-04 Jakub Jelinek <jakub@redhat.com>
* resolv/inet_pton.c (inet_pton4): Disallow octal numbers. Reported
by A. Guru <a.guru@sympatico.ca>. [BZ #295]
2004-08-05 Ulrich Drepper <drepper@redhat.com>
* sysdeps/posix/getaddrinfo.c (gaih_inet): Recognize all the IPv4
numeric address formats inet_addr knows.
(getaddrinfo): Allow AI_NUMERICSERV flag.
If neither IPv4 nor IPv6 inerface is present we cannot make any
decision for AI_ADDRCONFIG. Fail if AI_NUMERICSERV is set and the
string is not just a number. Remove useless freeaddrinfo call.
* resolv/netdb.h (AI_NUMERICSERV): Define.
Based on a patch by a.guru@sympatico.ca.
2004-08-04 Jakub Jelinek <jakub@redhat.com>
* stdlib/strfmon_l.c (__vstrfmon_l): Memset whole info structure
instead of trying to initialize some, but not all, fields one by
one.
* stdio-common/printf_size.c (printf_size): Initialize fb_info
structure with *info instead of trying to initialize some, but not
all, fields from it.
* nscd/connections.c (handle_request): Check if req->type is in
LASTDBREQ .. LASTREQ range instead of req.
* locale/programs/linereader.c (lr_create): Initialize
lr->return_widestr to 0.
* elf/dl-close.c (free_slotinfo): Add __libc_freeres_fn_section.
(free_mem): Call free_slotinfo just once.
* stdio-common/tst-fmemopen.c (main): Check for MAP_FAILED instead
of NULL.
* locale/localeinfo.h (_nl_locale_subfreeres): New prototype.
* locale/setlocale.c (free_category): Add __libc_freeres_fn_section.
(free_mem): Rename to _nl_locale_subfreeres.
* iconv/gconv_db.c: Include locale/localeinfo.h.
(free_derivation, free_modules_db): Add __libc_freeres_fn_section.
(free_mem): Call _nl_locale_subfreeres.
* iconv/gconv_dl.c (do_release_all): Add __libc_freeres_fn_section.
Fix typo: $(add_ons) -> $(add-ons).
(Makeconfig-add-on): New variable. When doing $(sysdep-makeconfigs)
include, use black magic to get it set to an add-on's name during the
include of the add-on's Makeconfig.
* configure.in: Use variable name `libc_add_on' when sourcing add-on
configure fragments, so they can refer to this.
* configure: Regenerated.
2004-08-02 Jakub Jelinek <jakub@redhat.com>
* iconvdata/ibm932.c (BODY): Avoid binary search for ch >= 0xffff.
Always treat high as highest number in range + 1.
* iconvdata/ibm943.c (BODY): Likewise.
2004-07-31 Bruno Haible <bruno@clisp.org>
* iconvdata/JISX0213.TXT: Updated to JISX0213 plane 1 version 2004.
* iconvdata/jisx0213.c (__jisx0213_to_ucs_main,
__jisx0213_to_ucs_pagestart, __jisx0213_from_ucs_level1,
__jisx0213_from_ucs_level2): Regenerated.
* iconvdata/jisx0213.h (jisx0213_added_in_2004_p): New function.
* iconvdata/iso-2022-jp-3.c (JISX0213_1_2000_set): Renamed from
JISX0213_1_set.
(JISX0213_1_2004_set): New enum value.
(BODY for FROM_LOOP): Treat ESC $ ( Q like ESC $ ( O.
(BODY for TO_LOOP): For JISX 0213 plane 1 characters, emit ESC $ ( O
when possible, ESC $ ( Q when needed.
* iconvdata/testdata/EUC-JISX0213: Add the 10 new characters.
* iconvdata/testdata/EUC-JISX0213..UTF8: Update.
* iconvdata/testdata/SHIFT_JISX0213: Add the 10 new characters.
* iconvdata/testdata/SHIFT_JISX0213..UTF8: Update.
* iconvdata/testdata/ISO-2022-JP-3: Add the 10 new JISX0213 characters.
* iconvdata/testdata/ISO-2022-JP-3..UTF8: Update.
2004-07-22 Bruno Haible <bruno@clisp.org>
* iconvdata/gconv-modules (ISO-8859-7): Add alias ISO_8859-7:2003.
2004-07-29 David S. Miller <davem@redhat.com>
* sysdeps/sparc/sparc64/sparcv9b/memcpy.S (memcpy): Optimize
better for smaller than 256 byte copies. Also, use only one
unrolled loop instead of two for the large copy case.
2004-07-30 Richard Henderson <rth@redhat.com>
* sysdeps/alpha/divq.S: Save t3 before it gets clobbered.
* sysdeps/alpha/remq.S: Likewise.
* sysdeps/alpha/div.S, sysdeps/alpha/ldiv.S: Rewrite with the
new division algorithms in divl.S and divq.S respectively.
2004-07-27 Ulrich Drepper <drepper@redhat.com>
* nscd/grpcache.c (cache_addgr): If necessary, add entry also
under the name the user provided.
* nscd/pwdcache.c (cache_addpw): Likewise.
2004-07-26 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/ifreq.c (__ifreq): Assign pointer for
new buffer at the right time.
Reported by Jakub Bogusz <qboosh@pld-linux.org>.
2004-07-23 Ulrich Drepper <drepper@redhat.com>
* posix/bits/posix1_lim.h: Fix values for _POSIX_CHILD_MAX and
_POSIX_OPEN_MAX. Add _POSIX_HOST_NAME_MAX, _POSIX_SYMLINK_MAX,
_POSIX_SYMLOOP_MAX, and _POSIX_RE_DUP_MAX.
Reported by Andrew Josey.
* include/features.h: Document _POSIX_C_SOURCE == 200112L.
* grp/grp.h: Define gid_t if __USE_XOPEN2K is defined.
* pwd/pwd.h: Define uid_t and gid_t if __USE_XOPEN2K is defined.
* io/sys/stat.h: Define dev_t, gid_t, ino_t, mode_t, nlink_t,
off_t, time_t, and uid_t if __USE_XOPEN2K is defined.
* signal/signal.h: Define pid_t if __USE_XOPEN2K is defined.
* posix/unistd.h: Define gid_t, off_t, pid_t, uid_t, and
useconds_t if __USE_XOPEN2K is defined.
* io/utime.h: Define time_t if __USE_XOPEN2K is defined.
* libio/stdio.h: Declare fseeko and ftello if __USE_XOPEN2K is defined.
2004-07-19 Thorsten Kukuk <kukuk@suse.de>
* nis/nss_compat/compat-initgroups.c (getgrent_next_nss): Don't
allocate memory for large temporary variables with alloca.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S: Compatibility
code must have version GLIBC_2.0. Patch by Dwayne McConnell.
2004-07-21 Jakub Jelinek <jakub@redhat.com>
* resolv/res_libc.c (res_init): If RES_INIT is set and
_res.nscount > 0, call __res_nclose and free nsaddrs.
* resolv/Makefile: Add rules to build and run tst-leaks2.
* resolv/tst-leaks2.c: New test.
after AC_CANONICAL_HOST and default setting of $machine et al.
Don't set $subdirs from $add_ons.
Instead, source add-on/configure fragments early on.
(base_machine): If it's already set, don't set it based on $machine.
(libc_config_ok): New variable, set to no. If an add-on fragment sets
it to yes, skip the tuple sanity check as if --enable-hacker-mode.
(sysnames): Try appending add-on names after machine as well.
* configure: Regenerated.
* config.make.in (add-ons): Set from @add_ons@ instead of @subdirs@.
* Makeconfig ($(common-objpfx)config.status): Also depend on configure
files in $(add_ons) dirs.
* sysdeps/unix/sysv/linux/bits/in.h (struct ip_mreq): Remove
definition, now in netinet/in.h proper.
long. Rewrite example code so that it takes into account l64a output
* sysdeps/unix/sysv/linux/mips/Makefile ($(objpfx)syscall-%.h):
Sort by syscalls. Make sure we get headers such as sgidefs.h from
the build tree before just-installed ones.
* sysdeps/mips/atomicity.h, sysdeps/mips/dl-machine.h,
sysdeps/mips/machine-gmon.h, sysdeps/mips/bits/setjmp.h,
sysdeps/mips/fpu/bits/mathdef.h,
sysdeps/mips/mips64/__longjmp.c,
sysdeps/mips/mips64/setjmp_aux.c,
sysdeps/unix/sysv/linux/mips/kernel_stat.h,
sysdeps/unix/sysv/linux/mips/pread.c,
sysdeps/unix/sysv/linux/mips/pread64.c,
sysdeps/unix/sysv/linux/mips/ptrace.c,
sysdeps/unix/sysv/linux/mips/pwrite.c,
sysdeps/unix/sysv/linux/mips/pwrite64.c,
sysdeps/unix/sysv/linux/mips/sigaction.c,
sysdeps/unix/sysv/linux/mips/sigcontextinfo.h,
sysdeps/unix/sysv/linux/mips/bits/fcntl.h,
sysdeps/unix/sysv/linux/mips/bits/sigcontext.h,
sysdeps/unix/sysv/linux/mips/bits/stat.h,
sysdeps/unix/sysv/linux/mips/sys/procfs.h,
sysdeps/unix/sysv/linux/mips/sys/ptrace.h,
sysdeps/unix/sysv/linux/mips/sys/tas.h,
sysdeps/unix/sysv/linux/mips/sys/ucontext.h,
sysdeps/unix/sysv/linux/mips/sys/user.h: Use standard names
for ABI macros, include sgidefs.h where appropriate.
sysdeps/unix/sysv/linux/mips/Makefile ($(objpfx)syscall-%.h):
Likewise.
sysdeps/unix/sysv/linux/mips/configure.in (asm-unistd.h):
Likewise.
sysdeps/unix/sysv/linux/mips/configure: Rebuilt.
Update.
2004-07-16 Steven Munroe <sjmunroe@us.ibm.com>
[BZ #269]
* setjmp/Makefile (tests): Add bug269-setjmp.
* setjmp/bug269-setjmp.c: New file.
* sysdeps/powerpc/powerpc64/__longjmp-common.S [SHARED && !IS_IN_rtld]:
Store R2 from jmpbuf in callers TOC save area.
* sysdeps/powerpc/powerpc64/bsd-_setjmp.S [SHARED && !IS_IN_rtld]:
Store R2 in TOC save area.
* sysdeps/powerpc/powerpc64/setjmp-common.S [SHARED && !IS_IN_rtld]:
Copy TOC save area from previous frame as R2 (TOC) in jmpbuf.
2004-07-16 Jakub Jelinek <jakub@redhat.com>
* locale/newlocale.c: Include bits/libc-lock.h.
(__libc_setlocale_lock): Extern decl.
(__newlocale): Use it.
Reported by Ulrich Weigand <Ulrich.Weigand@de.ibm.com>.
* sysdeps/unix/sysv/linux/fcntl.c (__fcntl_nocancel): Remove
static inline __attribute ((always_inline)). Don't define if
NO_CANCELLATION.
(__libc_fcntl): Use INLINE_SYSCALL directly instead of
__fcntl_nocancel.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/fcntl.c (__fcntl_nocancel):
Remove static inline __attribute ((always_inline)). Don't define
if NO_CANCELLATION.
(__libc_fcntl): Use INLINE_SYSCALL directly instead of
__fcntl_nocancel.
* sysdeps/unix/sysv/linux/i386/fcntl.c (__fcntl_nocancel): Define to
__libc_fcntl if NO_CANCELLATION and __ASSUME_FCNTL64 == 0.
Don't define at all if NO_CANCELLATION and __ASSUME_FCNTL64 > 0.
(__libc_fcntl): Don't define if __fcntl_nocancel is a macro.
Update.
2004-07-15 Jakub Jelinek <jakub@redhat.com>
[BZ #262]
* sysdeps/i386/elf/start.S (_start): Use @GOT instead of @GOTOFF
for main.
* elf/Makefile: Add rules to build and run tst-pie1.
* elf/tst-pie1.c: New test.
* elf/tst-piemod1.c: New file.
Update.
2004-07-14 Jakub Jelinek <jakub@redhat.com>
[BZ #266]
* manual/string.texi (l64a): Note that the static buffer is 7 bytes
long. Rewrite example code so that it takes account l64a output
shorter than 6 characters.
Reported by Julian Graham <julian.graham@aya.yale.edu>.
2004-07-12 Paul Eggert <eggert@cs.ucla.edu>
[BZ #263]
* sysdeps/unix/sysv/linux/getloadavg.c (getloadavg): Don't store
outside the buffer if the read returns 0. __strtod_l can't set
endp to NULL, so remove a test for that case.
2004-07-10 Ulrich Drepper <drepper@redhat.com>
* elf/ldconfig.c: Define PROCINFO_CLASS as static before including
ldsodefs.h.
* sysdeps/generic/ldsodefs.h: Only define PROCINFO_CLASS if it is not
already defined.
* sysdeps/i386/dl-procinfo.c: Define PROCINFO_CALLS only if not
already defined.
* elf/rtld.c (print_statistics): Mark with noinline attribute.
* sysdeps/i386/dl-machine.h (elf_machine_rel): Mark with always_inline
attribute.
(elf_machine_rel_relative): Likewise.
* include/string.h: Add libc_hidden_proto for __strtok_r and
__strsep_g.
* sysdeps/generic/strsep.c: Add libc_hidden_def.
* sysdeps/generic/strtok_r.c: Likewise.
* sysdeps/i386/strtok_r.S: Add alias for internal symbol.
* sysdeps/i386/i686/strtok_r.S: Likewise.
* sysdeps/x86_64/strtok_r.S: Likewise.
2004-07-09 Alexandre Oliva <aoliva@redhat.com>
* inet/getnetgrent_r.c (internal_setnetgrent): Make it hidden
instead of internal-linkage, such that we can alias to it.
(internal_endnetgrent, internal_getnetgrent_r): Likewise.
2004-07-09 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/fcntl.c (__fcntl_nocancel): Move attribute
to the front for gcc 3.5+.
* sysdeps/unix/sysv/linux/i386/fcntl.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/fcntl.c: Likewise.
* include/fcntl.h: Don't declare __fcntl_nocancel here if
NO_CANCELLATION is defined.
2004-07-07 Jakub Jelinek <jakub@redhat.com>
* elf/dl-fini.c (_dl_fini): Add nloaded variable, load
GL(dl_nloaded) into it while still in critical section.
(glibc-%.tar rule): Make separate tar files for add-ons listed there.
Depend on their configure files.
(dist-do-separate-dirs): New canned sequence to do that.
(dist-separate-libidn, dist-separate-linuxthreads): New variables.
(dist): Depend on add-on tar files based on $(dist-separate).
(dist-version): New variable, default to $(version).
(tag-for-dist, dist): Use that in place of $(version) in deps.
2004-07-05 Ulrich Drepper <drepper@redhat.com>
* elf/dl-init.c: Don't define and use _dl_starting_up if
HAVE_INLINED_SYSCALLS is defined and the variable is not used.
* elf/dl-support.c: Likewise.
* elf/rtld.c: Likewise.
* elf/dl-misc.c (_dl_debug_vdprintf): Use writev syscall directly
if HAVE_INLINED_SYSCALLS is defined.
* sysdeps/powerpc/powerpc64/dl-machine.h: Don't rest _dl_starting_up
here.
* sysdeps/powerpc/powerpc32/dl-start.S: Likewise.
* sysdeps/unix/sysv/linux/configure.in: Define HAVE_INLINED_SYSCALLS.
* config.h.in: Add entry for HAVE_INLINED_SYSCALLS.
* sysdeps/posix/profil.c: If compiled for ld.so, omit code which
is needed to stop profiling.
* elf/dl-open.c (dl_open_worker): If a newly opened object is to be
profile make sure it cannot be unloaded.
* sysdeps/unix/sysv/linux/dl-origin.c: Inline readlink syscall.
* sysdeps/unix/sysv/linux/fcntl.c: If compiled without cancellation
support, make sure the helper function is inlined.
* sysdeps/unix/sysv/linux/pread.c: Likewise.
* sysdeps/unix/sysv/linux/pwrite.c: Likewise.
* sysdeps/unix/sysv/linux/i386/fcntl.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/fcntl.c: Likewise.
2004-07-05 Jakub Jelinek <jakub@redhat.com>
* sysdeps/powerpc/novmx-longjmp.c (__libc_longjmp,
__libc_siglongjmp): Remove symbol_version.
* sysdeps/powerpc/longjmp.c (__libc_longjmp, __libc_siglongjmp):
Export @@GLIBC_PRIVATE, not @@GLIBC_2.3.4.
* sysdeps/powerpc/sigjmp.c (__sigjmp_save): Use strong_alias
unconditionally.
* sysdeps/powerpc/novmx-sigjmp.c (__sigjmp_save): Remove.
* sysdeps/powerpc/powerpc32/__longjmp.S (__longjmp): Use
strong_alias instead of default_symbol_version, remove
symbol_version.
* sysdeps/powerpc/powerpc64/__longjmp.S (__longjmp): Likewise.
* sysdeps/powerpc/powerpc32/bsd-setjmp.S (__novmx__setjmp): Change
into strong_alias to __novmxsetjmp.
(__vmx__setjmp): Similarly with __vmxsetjmp.
(__setjmp): Make it strong_alias to __vmx__setjmp, remove
default_symbol_version and symbol_version.
* sysdeps/powerpc/powerpc64/bsd-setjmp.S (__novmx__setjmp): Change
into strong_alias to __novmxsetjmp.
(__vmx__setjmp): Similarly with __vmxsetjmp.
(__setjmp): Make it strong_alias to __vmx__setjmp, remove
default_symbol_version and symbol_version.
* nscd/nscd_getgr_r.c: Include stdio-common/_itoa.h.
2004-07-04 Matthew Reppert <arashi@kai.vm.bytemark.co.uk>
* sysdeps/unix/sysv/linux/i386/glob64.c (glob64): Use libc_hidden_ver
instead of libc_hidden_def.
* Makeconfig ($(common-objpfx)shlib-versions.v.i): Move top-level
$(..)shlib-versions file to last in deps list. This lets add-ons give
more-specific matches that override defaults in the top-level file.
* sysdeps/unix/sysv/linux/configure.in: If arch_minimum_kernel was
already set, don't set it or libc_cv_gcc_unwind_find_fde.
* sysdeps/unix/sysv/linux/configure: Regenerated.
2004-06-11 Dwayne Grant McConnell <dgm69@us.ibm.com>
* sysdeps/powerpc/fpu/s_lround.c: Removed.
* sysdeps/powerpc/fpu/s_lroundf.c: Removed.
* sysdeps/powerpc/powerpc32/fpu/s_ceilf.S: New file.
* sysdeps/powerpc/powerpc32/fpu/s_ceil.S: New file.
* sysdeps/powerpc/powerpc32/fpu/s_floorf.S: New file.
* sysdeps/powerpc/powerpc32/fpu/s_floor.S: New file.
* sysdeps/powerpc/powerpc32/fpu/s_lrint.c: Removed.
* sysdeps/powerpc/powerpc32/fpu/s_lrint.S: New file.
* sysdeps/powerpc/powerpc32/fpu/s_lroundf.S: New file.
* sysdeps/powerpc/powerpc32/fpu/s_lround.S: New file.
* sysdeps/powerpc/powerpc32/fpu/s_rintf.S: New file.
* sysdeps/powerpc/powerpc32/fpu/s_rint.S: New file.
* sysdeps/powerpc/powerpc32/fpu/s_roundf.S: New file.
* sysdeps/powerpc/powerpc32/fpu/s_round.S: New file.
* sysdeps/powerpc/powerpc32/fpu/s_truncf.S: New file.
* sysdeps/powerpc/powerpc32/fpu/s_trunc.S: New file.
2004-06-30 Ulrich Drepper <drepper@redhat.com>
* include/net/if.h: Handle if_nameindex and if_freenameindex with
libc_proto_hidden.
* sysdeps/unix/sysv/linux/netlinkaccess.h: New file.
* sysdeps/unix/sysv/linux/ifaddrs.c: Export netlink handling functions.
* sysdeps/unix/sysv/linux/if_index.c (if_nameindex): Implement using
netlink if possible. Fall back on ioctl method if necessary.
* include/unistd.h: Declare __truncate.
* sysdeps/generic/truncate.c: Also define __truncate.
* sysdeps/mach/hurd/truncate.c: Likewise.
* sysdeps/unix/common/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/truncate64.c: Use __truncate, not truncate.
2004-06-28 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/if_index.c (if_nameindex): Use extend_alloca.
2004-06-28 GOTO Masanori <gotom@debian.or.jp>
* iconv/gconv_simple.c: Use get16/put16 for user given buffer
in ucs2/ucs2reverse when unaligned memory access is attempted.
* iconv/tst-iconv5.c: New file.
* iconv/Makefile (tests): Add tst-iconv5.
2004-06-19 Roland McGrath <roland@redhat.com>
* sysdeps/posix/waitid.c (do_waitid) [DO_WAITID]: Define function
under this macro name instead.
[NO_DO_WAITID]: Don't define it at all.
(do_waitid) [WNOWAIT, WEXITED]: If these POSIX.1 waitid flag bits are
defined, then return ENOTSUP for combinations of selection bits other
than WEXITED and WEXITED|WSTOPPED, which this version cannot support.
* posix/tst-waitid.c: New file.
* posix/Makefile (tests): Add it.
2004-06-28 Jakub Jelinek <jakub@redhat.com>
Update.
2004-06-21 Jakub Jelinek <jakub@redhat.com>
[BZ #231]
* sysdeps/unix/alpha/Makefile: New file.
* sysdeps/unix/alpha/rt-sysdep.S: New file.
Reported by Jakub Bogusz <qboosh@pld-linux.org>.
Update.
2004-06-17 Thorsten Kukuk <kukuk@suse.de>
* sysdeps/unix/sysv/linux/sched_setaffinity.c
(__sched_setaffinity_new): Set errno to EINVAL and return -1 if
cpuset is wrongly set.
2004-06-15 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/powerpc64/memcpy.S: Improve instruction scheduling
for POWER4 machines.
2004-06-14 Jakub Jelinek <jakub@redhat.com>
[BZ #218]
* sunrpc/pmap_prot2.c (xdr_pmaplist): When freeing, remember pml_next
in a local variable, point rp to that local variable afterwards.
2004-06-11 Jakub Jelinek <jakub@redhat.com>
* sysdeps/ieee754/dbl-64/e_sqrt.c (__ieee754_sqrt): Handle special
cases properly.
2004-06-17 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/if_index.c (if_indextoname): Correct
error value for unknown interface. [BZ #198]
2004-06-18 Roland McGrath <roland@frob.com>
[BZ #209]
* ChangeLog: Another attempt to test the loginfo script.
[BZ #209]
* ChangeLog: Another attempt to test the loginfo script.
2004-06-18 Roland McGrath <roland@frob.com>
[BZ #209]
* ChangeLog: Another attempt to test the loginfo script.
2004-06-18 Roland McGrath <roland@frob.com>
[BZ #209]
* ChangeLog: Another attempt to test the loginfo script.
* NEWS: Fix a typo. Update bug-reporting instructions.
(memchr, __memrchr, strlen, strcmp, strncmp, __strchr_g, __strchr_c,
__strchrnul_g, __strchrnul_c, strspn, strcspn, strpbrk): Add memory
the asm uses as its input, either of size __n where __n is known or
0xfffffff.
(strstr): Add "memory" clobber.
2004-06-14 Jakub Jelinek <jakub@redhat.com>
[BZ #219]
* nss/nsswitch.c (free_mem): Don't try to close a library handle
if the handle is invalid. Patch by David Kimdon <kimdon@esrf.fr>.
2004-06-11 Dmitry V. Levin <ldv@altlinux.org>
[BZ #217]
* debug/xtrace.sh: Fix typo in error diagnostics.
2004-06-08 Jakub Jelinek <jakub@redhat.com>
[BZ #199]
* crypt/md5-crypt.c (__md5_crypt): Only update buflen if realloc
succeeds. Reported by Miles Ohlrich <miles@cray.com>.
* elf/chroot_canon.c (chroot_canon): Avoid segfault if first malloc
fails. Avoid memory leak if realloc fails.
NULL, "" or contains '=' character in it. Reported by
Michael T Kerrisk <mtk-lists@gmx.net>.
* stdlib/tst-environ.c: Include errno.h.
(main): Add tests for these arguments to setenv/unsetenv.
2004-06-05 Andreas Jaeger <aj@suse.de>
* sysdeps/unix/sysv/linux/x86_64/makecontext.c (__makecontext):
Handle more than 6 args correctly. Based on a patch by Masahide
Washizawa.
2004-06-04 Ulrich Drepper <drepper@redhat.com>
* nscd/nscd_gethst_r.c (nscd_gethst_r): Use __nss_not_use_nscd_hosts
in all places, not __nss_not_use_nscd_group.
Reported by Philippe Gregoire.
2004-05-07 Dmitry V. Levin <ldv@altlinux.org>
* argp/argp-help.c (__argp_error, __argp_failure): Check result
of __asprintf call and don't use string if it failed.
* stdio-common/psignal.c (psignal): Likewise.
* locale/programs/localedef.c (more_help): Likewise.
* resolv/res_hconf.c (arg_service_list, arg_trimdomain_list,
arg_bool, parse_line): Check result of __asprintf calls and
don't use string if they failed.
* sunrpc/svc_simple.c (registerrpc, universal): Likewise.
* elf/ldconfig.c (parse_conf_include): Check result of __asprintf
call and exit if it failed.
(IMPLINK_IP, IMPLINK_LOWEXPER, IMPLINK_HIGHEXPER): Macros removed.
These are long obsolete in BSD systems where they originated.
* conform/data/netinet/in.h-data: Remove `allow IMPLINK_*'
2004-05-26 Jakub Jelinek <jakub@redhat.com>
* include/string.h (mempcpy, stpcpy): Add libc_hidden_builtin_proto.
* string/bits/string2.h (memset): Disable macro for GCC 3.0+.
(__mempcpy): Use __builtin_mempcpy for GCC 3.4+.
(strchr): For GCC 3.2+, only use __rawmemchr if second argument is
constant '\0' and first argument is not constant.
(__stpcpy): Use __builtin_stpcpy for GCC 3.4+.
(strncpy): Remove #ifdef _USE_STRING_ARCH_mempcpy variant.
For GCC 3.2+ use __builtin_strncpy.
(strncat): For GCC 3.2+ use __builtin_strncat.
(strcmp): For GCC 3.2+ use __builtin_strcmp if both arguments are
constant.
(strcspn, strspn, strpbrk): For GCC 3.2+, use builtin function
if both arguments are constant.
2004-05-26 Ulrich Drepper <drepper@redhat.com>
* nss/nss_files/files-hosts.c: Fix condition for looking up IPv4
mapped addresses in gethostbyaddr.
2004-05-25 Ulrich Drepper <drepper@redhat.com>
* nss/digits_dots.c (__nss_hostname_digits_dots): Remove typep and
flags parameter, convert afp to simple int parameter. Adjust code.
typep was never != NULL and flags therefore also unused. *afp is
never modified.
* nss/nsswitch.h: Adjust __nss_hostname_digits_dots prototype.
* nss/getXXbyYY.c: Remove HAVE_TYPE handling. Adjust af parameter
handling for __nss_hostname_digits_dots calls.
* nss/getXXbyYY_r.c: Likewise.
* elf/dl-load.c (_dl_map_object_from_fd): Map DSOs with MAP_DENYWRITE.
2004-05-25 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/fpu/Makefile: Make ld.so a dependency of libm.so.
* sysdeps/powerpc/fpu/bits/mathinline.h [__LIBC_INERNAL_MATH_INLINES]
(__ieee754_sqrt): Define as __MATH_INLINE using fsqrt instruction.
(__ieee754_sqrtf): Define as __MATH_INLINE using fsqrts instruction.
* sysdeps/powerpc/fpu/e_sqrt.c (__slow_ieee754_sqrt): Moved
implementation from w_sqrt.c.
* sysdeps/powerpc/fpu/e_sqrtf.c (__slow_ieee754_sqrtf): Moved
implementation from w_sqrtf.c.
* sysdeps/powerpc/fpu/w_sqrt.c (__sqrt): Wrapper implementation
using inline __ieee754_sqrt().
* sysdeps/powerpc/fpu/w_sqrtf.c (__sqrtf): Wrapper implementation
using inline __ieee754_sqrtf().
* sysdeps/powerpc/powerpc32/sysdep.h [__ASSEMBLER__]: Include
<sysdeps/powerpc/sysdep.h> independent of __ASSEMBLER__.
* sysdeps/powerpc/sysdep.h [__ASSEMBLER__] (PPC_FEATURE_*): Define
PPC_FEATURE_* independent of __ASSEMBLER__.
2004-05-25 Jakub Jelinek <jakub@redhat.com>
* sysdeps/pthread/aio_notify.c: Use <> instead of "" for aio_misc.h
include.
(aio_start_notify_thread): Define if not defined.
(notify_func_wrapper): Use it.
* sysdeps/pthread/aio_misc.c: Use <> instead of "" for aio_misc.h
include.
(aio_create_helper_thread): Define if not defined.
(__aio_create_helper_thread): New function.
(__aio_enqueue_request): Use aio_create_helper_thread.
* nis/ypclnt.c (ypall_data, ypall_foreach): Remove.
(struct ypresp_all_data): New type.
(__xdr_ypresp_all): Change second argument to
struct ypresp_all_data *. Replace ypall_foreach and
ypall_data with objp->foreach and objp->data.
(yp_all): Remove status variable, add data. Replace
all uses of status with data.status. Initialize data.foreach
and data.data instead of ypall_foreach and ypall_data.
2004-05-24 Jakub Jelinek <jakub@redhat.com>
* elf/dl-lookup.c (add_dependency): Set DF_1_NODELETE bit
in l_flags_1, not in l_flags.
2004-05-20 Paul Eggert <eggert@cs.ucla.edu>
* malloc/obstack.c (_obstack) [!defined _LIBC]: Remove; not used.
Add comment explaining why libc still defines it.
2004-05-13 Jakub Jelinek <jakub@redhat.com>
* libio/genops.c (_IO_default_xsputn): Avoid one overflow per char if
count is negative, yet write_ptr < write_end.
(_IO_default_xsgetn): Avoid one underflow per char if count is
negative, yet read_ptr < read_end.
2004-05-10 Andreas Jaeger <aj@suse.de>
* sysdeps/unix/sysv/linux/x86_64/makecontext.c (__makecontext):
Correctly compute alignment.
Patch by Michael Matz <matz@suse.de>.
* sysdeps/unix/sysv/linux/ifreq.c (__ifreq): Fix memory handling.
* sysdeps/generic/ifreq.c (__ifreq): Fix memory handling.
* resolv/res_hconf.c (_res_hconf_reorder_addrs): Make clear that
realloc cannot fail.
* nss/nss_files/files-netgrp.c (EXPAND): Free buffer which cannot
be expanded.
* nis/nis_table.c: Clean up memory handling.
* nis/nis_subr.c (nis_getnames): Clean up memory handling.
* nis/nis_removemember.c (nis_removemember): Add comment
explaining use of realloc.
2004-04-23 Jakub Jelinek <jakub@redhat.com>
* sysdeps/ia64/fpu/libm_support.h (__libm_error_support): Add
libc_hidden_proto. Define to __GI___libm_error_support for
assembly going into libc.so.
* sysdeps/ia64/fpu/libc_libm_error.c (__libm_error_support): Add
libc_hidden_def.
* include/libc-symbols.h (HIDDEN_BUILTIN_JUMPTARGET): Define.
* sysdeps/ia64/bcopy.S (bcopy): Use it for jump to memmove.
* sysdeps/unix/sysv/linux/ia64/sysdep.S (__syscall_error): Access
gprel errno if RTLD_PRIVATE_ERRNO or __thread __libc_errno/errno
if USE___THREAD.
2004-04-29 Philip Blundell <pb@nexus.co.uk>
* sysdeps/arm/dl-machine.h (RTLD_START): Avoid unnecessary GOT
entries.
[BZ #140]
* sysdeps/unix/sysv/linux/sys/sysctl.h: Remove linux/compiler.h
include.
(_LINUX_KERNEL_H, _LINUX_TYPES_H, _LINUX_LIST_H): Only define if not
yet defined, #undef back after including linux/sysctl.h if defined
here.
(__LINUX_COMPILER_H, __user): Define if not yet defined, #undef
back after including linux/sysctl.h if defined here.
2004-04-29 Jakub Jelinek <jakub@redhat.com>
* sysdeps/sparc/sparc64/soft-fp/qp_qtoi.c (_Qp_qtoi): Use %f31
for single precision register, add it to __asm clobbers [BZ #139].
* sysdeps/sparc/sparc64/soft-fp/qp_qtoui.c (_Qp_qtoui): Use %f31
for single precision register, add it to __asm clobbers.
* sysdeps/sparc/sparc64/soft-fp/qp_qtoux.c (_Qp_qtoux): Use fqtox
instead of fqtoi in QP_HANDLE_EXCEPTIONS.
* sysdeps/sparc/sparc64/soft-fp/qp_qtox.c (_Qp_qtox): Likewise.
Reported by M. H. VanLeeuwen <vanl@megsinet.net>.
2004-04-22 Philip Blundell <philb@gnu.org>
* sysdeps/arm/dl-machine.h (elf_machine_rela): Don't use INTUSE
when calling _dl_signal_error.
(elf_machine_rel): Likewise.
2004-04-21 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/ia64/setjmp.S: Define _GI___sigsetjmp
and use it internally instead of __sigsetjmp.
* sysdeps/ia64/fpu/s_frexpf.c (frexpf): Use _GI___libm_frexp_4f.
* sysdeps/ia64/fpu/s_frexpl.c (frexpl): Use _GI___libm_frexp_4l.
* sysdeps/ia64/fpu/libm_frexp4.S: Define _GI___libm_frexp_4.
* sysdeps/ia64/fpu/libm_frexp4f.S: Define _GI___libm_frexp_4f.
* sysdeps/ia64/fpu/libm_frexp4l.S: Define _GI___libm_frexp_4l.
* sysdeps/ia64/fpu/s_frexp.c (frexp): Use _GI___libm_frexp_4.
* sysdeps/ia64/fpu/libm_support.h: Declare _GI___libm_frexp_4,
_GI___libm_frexp_4f, _GI___libm_frexp_4l.
* sysdeps/ia64/fpu/bits/mathinline.h: New file.
* sysdeps/unix/sysv/linux/ia64/__start_context.S: Use
HIDDEN_JUMPTARGET for exit call.
* sysdeps/unix/sysv/linux/ia64/clone2.S: Use HIDDEN_JUMPTARGET for
_exit call.
* sysdeps/ia64/bcopy.S: Use HIDDEN_JUMPTARGET for memmove call.
* sysdeps/ia64/strcat.S: Use HIDDEN_JUMPTARGET for strlen and
strcpy calls.
2004-04-21 Jakub Jelinek <jakub@redhat.com>
* posix/tst-chmod.c (do_test): Fix a typo.
* elf/lateglobal.c (main): Fix error checks.
Patch by Stephen Clarke <stephen.clarke@st.com>.
* manual/ctype.texi (isblank, iswblank): Mark as ISO functions,
mention they have been added in ISO C99.
Reported by Ben Pfaff <blp@cs.stanford.edu>.
2004-03-31 H.J. Lu <hongjiu.lu@intel.com>
* sysdeps/ieee754/ldbl-128/bits/huge_vall.h: Fix typo.
2004-04-20 Jakub Jelinek <jakub@redhat.com>
* stdio-common/vfscanf.c (_IO_vfscanf): When skipping whitespace,
do input_error () instead of conv_error () and don't look at errno.
Don't eat any whitespace before %% if skip_space == 0.
* stdio-common/tst-sscanf.c (int_tests): New array.
(main): Run int_tests.
See ChangeLog.14 for earlier changes.
2004-04-19 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/mq_unlink.c (mq_unlink): Change EPERM into
EACCES.
* rt/Makefile (tests): Add tst-mqueue9.
* rt/tst-mqueue9.c: New test.
* rt/tst-mqueue4.c (do_test): Add test for mq_unlink of a too long
name component.
2004-04-19 Ulrich Drepper <drepper@redhat.com>
* rt/tst-mqueue7.c (do_test): Make newargv const.
2004-04-18 Randolph Chung <tausq@debian.org>
* sysdeps/hppa/elf/entry.h: New file.
* sysdeps/hppa/machine-gmon.h: New file.
* sysdeps/unix/sysv/linux/hppa/profil-counter.h: Don't use x86 version.
2004-04-04 Carlos O'Donell <carlos@baldric.uwo.ca>
* sysdeps/hppa/Dist: Add bits/link.h elf/entry.h.
* sysdeps/hppa/bits/link.h: New file.
* sysdeps/hppa/dl-machine.h (__hppa_init_bootstrap_fdesc_table):
Initialze the fdesc table for the generic code.
(elf_machine_dynamic): Use asm version.
(elf_machine_load_addresss): Simplify asm by calling
elf_machine_dynamic.
(elf_machine_fixup_plt): Correct comment.
(elf_machine_profile_fixup_plt): New.
(elf_machine_runtime_setup): Check PLT exists, if lazy=1 process
normally, else relocate all the absolute entries.
(RTLD_START): Fix comments.
(TRAMPOLINE_TEMPLATE): Reformat assembly, add return pointer for
calls to profile_fixup.
(ELF_MACHINE_SIZEOF_JMP_SLOT, DL_STATIC_FUNCTION_ADDRESS,
DL_PLATFORM_INIT): Define.
(DL_FUNCTION_ADDRESS): Remove.
(dl_platform_init): New.
(elf_machine_rela): Use generic fdesc code, and process all COPY
relocations. Use __attribute__((always_inline)).
(elf_machine_rela_relative): Add sanity checks, remove IPLT
processing, print error message in default case. Use
__attribute__((always_inline)).
(elf_machine_lazy_rel): Use __attribute__((always_inline)).
2004-04-05 Carlos O'Donell <carlos@baldric.uwo.ca>
* sysdeps/hppa/fpu/feupdateenv.c (feupdateenv): Use only sw[0]
and call feraiseexcept.
2003-11-15 Randolph Chung <tausq@debian.org>
* gmon/gmon.c (__monstartup): Round kcountsize to multiples of
the froms[] array so the array is properly aligned.
2004-04-05 H.J. Lu <hongjiu.lu@intel.com>
* Makeconfig (libgcc_eh): Add -Wl,.
* configure.in: Add -lgcc_s for --as-needed check.
2004-04-16 Kaz Kojima <kkojima@rr.iij4u.or.jp>
* sysdeps/sh/elf/configure.in: New file.
* iconvdata/gconv-modules: Add PT154 and RK1048 entries.
* iconvdata/tst-tables.sh: Add PT154 and RK1048.
* iconvdata/Makefile (modules): Add PT154 anhd RK1048.
(distribute): Add pt154.c and rk1048.c.
(gen-8bit-gap-modules): Add pt154 and rk1048.
* icondata/pt154.c: New file.
* iconvdata/rk1048.c: New file.
2004-04-16 Jakub Jelinek <jakub@redhat.com>
* misc/syslog.c (vsyslog): Avoid freeing failbuf.
2004-04-15 Jakub Jelinek <jakub@redhat.com>
* rt/Makefile (tests): Add tst-timer4.
* rt/tst-timer4.c: New test.
2004-04-15 Jakub Jelinek <jakub@redhat.com>
* rt/tst-mqueue5.c (rtmin_code): New variable.
(rtmin_handler): Set it.
(thr, do_child, do_test): Also check rtmin_code.
2004-04-14 Jakub Jelinek <jakub@redhat.com>
* rt/Makefile (tests): Add tst-mqueue7.
(tst-mqueue7-ARGS): Set.
* rt/tst-mqueue7.c: New test.
2004-04-13 Jakub Jelinek <jakub@redhat.com>
* rt/Makefile (tests): Add tst-mqueue5 and tst-mqueue6.
* rt/tst-mqueue1.c (do_one_test): Bitwise or check_attrs () into
result instead of replacing it. Use TEMP_FAILURE_RETRY around
waitpid, kill child if waitpid failed.
(do_test): Bitwise or check_attrs () into result instead of replacing
it. Change temp mq name.
* rt/tst-mqueue5.c: New test.
* rt/tst-mqueue6.c: New test.
* rt/tst-mqueue.h: Include stdio.h, unistd.h, sys/uio.h.
(temp_mq_list, delete_temp_mqs): Remove.
(temp_mq_fd): New variable.
(do_cleanup, do_prepare): New functions.
(add_temp_mq): Rewritten to use a temp file.
(PREPARE): Define.
(CLEANUP_HANDLER): Change to do_cleanup ().
* rt/tst-timer3.c: Don't fail if _POSIX_THREADS is not available.
2004-04-13 Thorsten Kukuk <kukuk@suse.de>
* sysdeps/s390/ffs.c: Include limits.h
2004-04-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
* sysdeps/unix/sysv/linux/sh/sysdep.h (SUBSTITUTE_ARGS_1,
SUBSTITUTE_ARGS_2, SUBSTITUTE_ARGS_3, SUBSTITUTE_ARGS_4,
SUBSTITUTE_ARGS_5, SUBSTITUTE_ARGS_6, SUBSTITUTE_ARGS_7): Load
argument values into temporary variables.
2004-04-08 Ulrich Drepper <drepper@redhat.com>
* rt/tst-mqueue3.c: New file.
* rt/Makefile (tests): Add tst-mqueue3.
2004-04-08 Jakub Jelinek <jakub@redhat.com>
* rt/tst-mqueue1.c: New file.
* rt/tst-mqueue2.c: New file.
* rt/tst-mqueue4.c: New file.
* rt/Makefile (tests): Add tst-mqueue1, tst-mqueue2, tst-mqueue4.
* rt/Versions (librt): Add mq_*@@GLIBC_2.3.4.
* rt/Makefile (headers): Add mqueue.h and bits/mqueue.h.
(mq-routines): Set.
(librt-routines): Use it.
* rt/mqueue.h: New file.
* include/mqueue.h: New file.
* sysdeps/generic/bits/mqueue.h: New file.
* sysdeps/generic/mq_setattr.c: New file.
* sysdeps/generic/mq_getattr.c: New file.
* sysdeps/generic/mq_notify.c: New file.
* sysdeps/generic/mq_close.c: New file.
* sysdeps/generic/mq_send.c: New file.
* sysdeps/generic/mq_unlink.c: New file.
* sysdeps/generic/mq_receive.c: New file.
* sysdeps/generic/mq_timedreceive.c: New file.
* sysdeps/generic/mq_timedsend.c: New file.
* sysdeps/generic/mq_open.c: New file.
* sysdeps/unix/sysv/linux/bits/local_lim.h (MQ_PRIO_MAX): Define.
* sysdeps/unix/sysv/linux/bits/mqueue.h: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Add mq_timedsend,
mq_timedreceive and mq_setattr.
* sysdeps/unix/sysv/linux/mq_getattr.c: New file.
* sysdeps/unix/sysv/linux/mq_notify.c: New file.
* sysdeps/unix/sysv/linux/mq_close.c: New file.
* sysdeps/unix/sysv/linux/mq_send.c: New file.
* sysdeps/unix/sysv/linux/mq_unlink.c: New file.
* sysdeps/unix/sysv/linux/mq_receive.c: New file.
* sysdeps/unix/sysv/linux/mq_open.c: New file.
2004-04-09 Thorsten Kukuk <kukuk@suse.de>
* sysdeps/s390/ffs.c: Don't add ffsl weak alias on s390x.
2004-04-09 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/unix/sysv/linux/powerpc/powerpc64/umount.c: New file.
2004-03-30 H.J. Lu <hongjiu.lu@intel.com>
* Makeconfig (link-libc-static): Use $(static-gnulib) instead
of $(gnulib).
(libgcc_eh): New variable.
(gnulib): Use it variable.
(static-gnulib): New variable.
* Makerules (LDLIBS-c.so): Use $(static-gnulib) instead of $(gnulib).
* config.make.in (have-as-needed): New variable.
* configure.in: Check if linker supports --as-needed.
2004-04-02 Jakub Jelinek <jakub@redhat.com>
* nis/nss: Add SERVICES_AUTHORITATIVE.
* nis/nss-nis.h (NSS_FLAG_SET, NSS_FLAG_NETID_AUTHORITATIVE,
NSS_FLAG_SERVICES_AUTHORITATIVE): Define.
(_nis_default_nss_flags, _nis_check_default_nss): New decls.
(_nis_default_nss): New inline.
* nis/nss-nis.c: Include ctype.h, stdio.h and stdio_ext.h.
(_nis_default_nss_flags, default_nss): New variables.
(_nis_check_default_nss): New function.
* nis/nss_nis/nis-initgroups.c: Don't include stdio.h and
stdio_ext.h.
(check_default_nss, default_nss): Move to nss-nis.c.
(init): Removed.
(_nss_nis_initgroups_dyn): Use _nis_default_nss ().
* nis/nss_nis/nis-services.c (_nss_nis_getservbyname_r): If
NSS_FLAG_SERVICES_AUTHORITATIVE and services.byservicename lookup
fails, return immediately.
* time/difftime.c (__difftime): New renamed. Make old name alias.
Use __difftime in recursive call.
* sysdeps/powerpc/fpu/bits/mathinline.h: Add __signbitf and
2004-04-01 Ulrich Drepper <drepper@redhat.com>
* elf/elf.h: Define more ppc64 specific dynamic tags.
* libio/fileops.c (new_do_write): Return _IO_size_t to make 64-bit
2004-03-30 Jakub Jelinek <jakub@redhat.com>
* nis/nss_nis/nis-service.c (_nss_nis_getservbyname_r): If protocol
== NULL, try name/tcp and name/udp first before falling back into
the sequential scanning. Use services.byname database for
sequential scanning.
(_nss_nis_getservbyport_r): Likewise. Just allocate sizeof (int) * 3
chars for integer.
* nis/nss_nis/nis-service.c (_nss_nis_getservbyport_r): Convert
proto to host by order for snprintf.
* nss/getent.c (services_keys): Don't implement lookups with
missing protocol using getservent loop, just pass NULL.
2004-03-30 Ulrich Drepper <drepper@redhat.com>
* nis/nss_nis/nis-initgroups.c: Implement getting the information
from the netid.byname map if the system administrator allows this.
* grp/initgroups.c (initgroups): Limit the initial allocation to 64
entries to not allocate too much on systems with really high limits.
2004-03-30 Jakub Jelinek <jakub@redhat.com>
* nis/nss_nis/nis-service.c (struct search_t): New type.
(dosearch): New function.
(_nss_nis_getservbyname_r): Use it. Call yp_get_default_domain
unconditionally.
(_nss_nis_getservbyport_r): Likewise.
* nis/nss_nis/nis-rpc.c (saveit): Improve memory handling. No need to
* nis/nss_nis/nis-proto.c (saveit): Improve memory handling. No need
(internal_nis_endprotoent): Adjust accordingly.
* nis/nss_nis/nis-initgroups.c (saveit): Improve memory handling. No
need to allocate multiple blocks.
* nis/nss_nis/nis-ethers.c (saveit): Improve memory handling. No need
to allocate multiple blocks.
* nis/nss_nis/nis-service.c (saveit): Improve memory handling. No need
to allocate multiple blocks.
* nis/nss_nis/nis-rpc.c (saveit): Improve memory. No need to
allocate multiple blocks.
(internal_nis_endrpcent): Adjust accordingly.
* nis/nss_nis/nis-proto.c (saveit): Improve memory. No need to
allocate multiple blocks.
(internal_nis_endprotoent): Adjust accordingly.
* nis/nss_nis/nis-initgroups.c (saveit): Improve memory. No need
to allocate multiple blocks.
(_nss_nis_initgroups_dyn): Adjust accordingly.
* nis/nss_nis/nis-ethers.c (saveit): Improve memory. No need to
allocate multiple blocks.
(internal_nis_endetherent): Adjust accordingly.
* nis/nss_nis/nis-service.c (saveit): Improve memory. No need to
allocate multiple blocks.
(internal_nis_endservent): Adjust accordingly.
2004-03-24 Jakub Jelinek <jakub@redhat.com>
* stdlib/strtod_l.c (INTERNAL (__STRTOF)): Clear the rest of retval,
not just one limb if RETURN_LIMB_SIZE > 2. Fix shifting up if
RETURN_LIMB_SIZE > 2.
* stdio-common/printf_fp.c (__printf_fp): For IEEE quad long double
on 32-bit architectures reserve 8 limbs instead of 4.
2004-03-22 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/getpagesize.c
(__getpagesize): Avoid warning about writing into read-only memory.
* string/Makefile (routines): Add xpg-strerror.
* string/string.h (strerror_r): If __USE_XOPEN2K but not __USE_GNU,
redirect strerror_r to __xpg_strerror_r.
* string/Versions (libc): Add __xpg_strerror_r@@GLIBC_2.3.4.
* sysdeps/generic/xpg-strerror.c: New file.
* sysdeps/mach/xpg-strerror.c: New file.
2004-03-22 Joseph S. Myers <jsm@polyomino.org.uk>
* sunrpc/rpc/xdr.h (IXDR_GET_LONG, IXDR_PUT_LONG): Do not use
casts as lvalues.
2004-03-22 Andreas Jaeger <aj@suse.de>
* elf/tst-dlmodcount.c (unload): Remove unused variable.
* misc/tst-mntent.c (main): Use tmpfile instead of tmpnam.
2004-03-19 Ulrich Drepper <drepper@redhat.com>
* time/tzfile.c (__tzfile_default): Correct setting of rule_stdoff
and rule_dstoff after reading the posixrules file.
(parse_conf): Call it to parse lines starting with "include".
Remaining words are glob patterns for more config files to read.
Take additional bool argument to disable opt_chroot processing.
(main): Update caller.
* sysdeps/unix/sysv/linux/ia64/ioperm.c (_iopl): Match EPERM error
the x86 code produces in case of mission permissions.
Patch by Bernd Schmidt <bernds@redhat.com>.
2004-03-14 Ulrich Drepper <drepper@redhat.com>
Make the non-_l functions wrappers around the _l functions.
* include/monetary.h: Declare __vstrmon_l.
* include/string.h: Add libc_hidden_proto for __strcoll_l and
__strxfrm_l.
* include/time.h: Define ptime_locale_status. Declare
__strptime_internal.
* include/wchar.h: Add libc_hidden_proto for __wcscoll_l and
__wcsxfrm_l.
* stdlib/strfmon.c: Move the code to strfmon_l.c. Add little
wrapper around __vstrfmon_l.
* stdlib/strfmon_l.c: Add real implementation. Split into new
function __vstrfmon_l to allow calling it from strfmon.
* stdlib/strtod.c: Move real code to strtod_l.c and add wrapper.
* stdlib/strtod_l.c: Add real implementation.
* stdlib/strtof.c: Adjust to changed strtod.c.
* stdlib/strtof_l.c: Include strtod_l.c now.
* stdlib/strtold.c: New file.
* stdlib/strtold_l.c: Removed.
* string/strcoll.c: Move real code to strcoll_l.c: Add wrapper.
* string/strcoll_l.c: Add real implementation.
* string/strxfrm.c: Move real code to strxfrm_l.c: Add wrapper.
* string/strxfrm_l.c: Add real implementation.
* sysdeps/generic/strtol.c: Move real implementation to strtol_l.c.
Add wrappers.
* sysdeps/generic/strtol_l.c: Add real implementation.
* sysdeps/generic/strtold.c: Removed.
* sysdeps/generic/strtold_l.c: New file.
* sysdeps/generic/strtoll_l.c: Include strtol_l.c now. Adjust
#defines.
* sysdeps/generic/strtoul_l.c: Likewise.
* sysdeps/generic/strtoull_l.c: Likewise.
* sysdeps/generic/wcstol_l.c: Likewise.
* sysdeps/generic/wcstoll_l.c: Likewise.
* sysdeps/generic/wcstoul_l.c: Likewise.
* sysdeps/generic/wcstoull_l.c: Likewise.
* sysdeps/ieee754/ldbl-128/strtold.c: Removed.
* sysdeps/ieee754/ldbl-128/strtold_l.c: New file.
* sysdeps/ieee754/ldbl-96/strtold.c: Removed.
* sysdeps/ieee754/ldbl-96/strtold_l.c: New file.
* sysdeps/m68k/strtold.c: Removed.
* sysdeps/m68k/strtold_l.c: New file.
* time/strftime.c: Move real code to strftime_l.c. Add wrapper.
* time/strftime_l.c: Add real implementation.
* time/strptime.c: Move real code to strptime_l.c. Add wrapper.
* time/strptime_l.c: Add real implementation.
* time/wcsftime.c: Simplify since only wrappers are defined in
strftime.c.
* time/wcsftime_l.c: Include strftime_l.c.
* wcsmbs/wcscoll.c: Simplify since the file is not used by wcscoll_l.c
anymore.
* wcsmbs/wcscoll_l.c: Include strcoll_l.c.
* wcsmbs/wcsxfrm.c: Simplify since the file is not used by wcsxfrm_l.c
anymore.
* wcsmbs/wcsxfrm_l.c: Include strxfrm_l.c.
* wcsmbs/wcstod.c: Prepare to include new strtod.c.
* wcsmbs/wcstod_l.c: Include strtod_l.c.
* wcsmbs/wcstof.c: Prepare to include new strtof.c.
* wcsmbs/wcstof_l.c: Include strtof_l.c.
* wcsmbs/wcstold.c: Prepare to include new strtold.c.
* wcsmbs/wcstold_l.c: Include strtold_l.c.
* locale/uselocale.c: Use _NL_CURRENT_LOCALE instead of __libc_tsd_get.
* sysdeps/generic/strcasecmp.c: Optimize a bit. It's better to get
a reference to the current locale and then use the _l functions.
* sysdeps/generic/strncase.c: Likewise.
2004-03-12 Ulrich Drepper <drepper@redhat.com>
* posix/getconf.c (vars): Add _SC_ values for cache information.
* sysdeps/generic/bits/confname.h: Add _SC_* values for cache
information.
* sysdeps/unix/sysv/linux/sysconf.c (__sysconf): Reorganize to
allow yet another sysconf function to include the one in this file.
* sysdeps/unix/sysv/linux/i386/sysconf.c: New file.
* sysdeps/generic/sysconf.c: Add default handling for cache line info.
* sysdeps/powerpc/powerpc32/__longjmp.S (JB_SIZE): Undefine before
including __longjmp-common.S again.
* sysdeps/powerpc/powerpc64/__longjmp.S (JB_SIZE): Likewise.
* sysdeps/powerpc/powerpc32/setjmp.S (JB_SIZE): Undefine before
including setjmp-common.S again.
* sysdeps/powerpc/powerpc64/setjmp.S (JB_SIZE): Likewise.
* sysdeps/powerpc/novmxsetjmp.h (__novmx__longjmp): Fix type of
first argument in the prototype.
* sysdeps/powerpc/longjmp.c (__vmx__longjmp, __vmx__libc_longjmp):
Remove bogus semicolons.
2004-03-11 Jakub Jelinek <jakub@redhat.com>
* sysdeps/s390/dl-tls.h: Only add __tls_get_offset assembly if
IS_IN_rtld.
(__TLS_GET_ADDR): Use __tls_get_offset, not __tls_get_addr.
2004-03-10 Ulrich Drepper <drepper@redhat.com>
* elf/dl-sym.c: Unify _dl_sym and _dl_vsym code and make the entry
points wrappers around the unified code.
2004-03-10 Jakub Jelinek <jakub@redhat.com>
* include/libc-symbols.h [__ASSEMBLY__] (compat_text_section,
compat_data_section): Define.
* sysdeps/unix/sysv/linux/alpha/adjtime.c (ADJTIME): Add
attribute_compat_text_section.
* sysdeps/unix/sysv/linux/alpha/wordexp.c (__old_wordexp): Likewise.
* sysdeps/unix/sysv/linux/alpha/oldglob.c (__old_glob,
__old_globfree): Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/chown.c (__chown_is_lchown):
Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c
(__posix_fadvise64_l32): Likewise.
* sysdeps/unix/sysv/linux/msgctl.c (__old_msgctl): Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/posix_fadvise64.c
(__posix_fadvise64_l32): Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/semctl.c (__old_semctl):
Likewise.
* sysdeps/unix/sysv/linux/semctl.c (__old_semctl): Likewise.
* sysdeps/unix/sysv/linux/posix_fadvise64.c (__posix_fadvise64_l32):
Likewise.
* sysdeps/unix/sysv/linux/shmctl.c (__old_shmctl): Likewise.
* hurd/compat-20.c (_hurd_proc_init_compat_20): Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S
(__swapcontext, __novec_swapcontext): Use END instead of PSEUDO_END.
(__novec_swapcontext, __swapcontext_stub): Add compat_text_section.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S
(__makecontext_stub): Likewise.
(__novec_makecontext): Likewise. Fix name in END () to match
function name.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S
(__setcontext): Use END instead of PSEUDO_END.
(__novec_setcontext): Add compat_text_section. Use END instead of
PSEUDO_END, fix the name in END () to match function name.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S
(__getcontext, __novec_getcontext): Use END instead of PSEUDO_END.
(__novec_getcontext, __getcontext_stub): Add compat_text_section.
2004-03-10 Kaz Kojima <kkojima@rr.iij4u.or.jp>
* sysdeps/sh/dl-machine.h: Don't use GL macro if not appropriate.
(COPY_UNALIGNED_WORD): Remove cast used as lvalue.
2004-03-10 Ulrich Drepper <drepper@redhat.com>
* sysdeps/i386/dl-procinfo.h (HWCAP_IMPORTANT): Remove mmx, add sse2.
2004-03-10 Richard Henderson <rth@redhat.com>
* sysdeps/generic/errno.c: Disable versioning for rtld.
* sysdeps/generic/Makefile (elf/shared): Add unwind-pe.
* sysdeps/generic/unwind-pe.c: New file.
* sysdeps/generic/unwind-pe.h: Only prototypes for _LIBC without
_LIBC_DEFINITIONS.
* posix/regexec.c: Likewise.
2004-03-08 Paul Eggert <eggert@cs.ucla.edu>
Merge from gnulib. We now assume C89 or better.
* posix/getopt1.c (const): Remove.
* posix/getopt.c (const): Likewise.
* posix/getopt1.c (getopt_long, _getopt_long_r, getopt_long_only,
_getopt_long_only_r, main): Use prototypes, not old-style definitions.
* posix/getopt.c (exchange, _getopt_initialize, _getopt_internal_r,
_getopt_internal, getopt, main): Likewise.
* posix/getopt.h (getopt, getopt_long, getopt_long_only): Likewise.
* posix/getopt.c [!defined VMS || !HAVE_STRING_H]:
Include <string.h> regardless. No need for <strings.h>.
[!defined _LIBC]: Include "gettext.h" rather than rolling it ourselves.
(_): Define to gettext always.
(my_index): Remove: all uses changed to strchr.
(strlen): Remove declaration.
* posix/getopt.h (struct option.name): Always const char *.
2004-03-08 Marcus Brinkmann <marcus@gnu.org>
* posix/getopt.h (_getopt_internal): Move to ...
* posix/getopt_int.h: ... here. New file.
* include/getopt_int.h: New file.
* include/getopt.h: Remove libc_hidden_proto for getopt_long
and getopt_long_only.
* posix/getopt1.c: Include "getopt_int.h". Remove
libc_hidden_def for getopt_long and getopt_long_only.
(_getopt_long_r, _getopt_long_only_r): New functions.
* posix/getopt.c: Include "getopt_int.h".
(__getopt_initialized): Variable removed.
(nextchar, ordering, posixly_correct, first_nonopt, last_nonopt):
Static variables removed.
(nonoption_flags_max_len, nonoption_flags_len) [_LIBC &&
USE_NONOPTION_FLAGS]: Static variables removed.
(getopt_data): New static variable.
(SWAP_FLAGS): Use d->__nonoption_flags_len instead
nonoption_flags_len.
(exchange): Add new argument D of type struct getopt_data *.
Replace optind with d->optind, optarg with d->optarg, opterr with
d->opterr, optopt with d->optopt, nextchar with d->__nextchar,
first_nonopt with d->__first_nonopt, last_nonopt with
d->__last_nonopt, d->ordering with d->__ordering,
d->posixly_correct with d->__posixly_correct (which is now an
int instead a string, so fix users), nonoption_flags_len
with d->__nonoption_flags_len, nonoption_flags_max_len with
d->__nonoption_flags_max_len.
(_getopt_initialize): Likewise.
(_getopt_internal): Rename to ...
(_getopt_internal_r): ... this. Also add new argument D of type
struct getopt_data * and use of members of D rather than global or
static variables as described for exchange() above. Add new argument
to invocations of _getopt_initialize and exchange.
(_getopt_internal): Reimplement in terms of _getopt_internal_r.
* argp/argp-parse.c: Include <getopt_int.h>.
[_LIBC]: Do not include <bits/libc-lock.h>.
[!_LIBC && HAVE_CTHREADS_H]: Do not include <cthreads.h>.
[!_LIBC] (_argp_hang): Make static.
(getopt_lock, LOCK_GETOPT, UNLOCK_GETOPT): Remove.
(_argp_unlock_xxx): Remove.
(parser_init): Do not use LOCK_GETOPT.
(parser_finalize): Do not use UNLOCK_GETOPT.
(struct parser): New member OPT_DATA.
(parser_init): Initialize parser->opt_data. Use
parser->opt_data.opterr instead of opterr.
(parser_parse_opt): Use parser->opt_data.optarg instead optarg.
(parser_parse_next): Likewise. Use parser->opt_data.optind
instead optind. Use parser->opt_data.optopt instead of optopt.
Call _getopt_long_only_r and _getopt_long_r instead of
getopt_long_only and getopt_long, and pass the extra argument.
* iconv/gconv_db.c: Don't define lock as static. Rename to
__gconv_lock and export from the file.
* iconv/gconv_int.h: Declare __gconv_lock.
* libio/iofclose.c [_LIBC] (_IO_new_fclose): Lock gconv lock
before __gconv_release_step calls.
Patch by Shunichi Sagawa <s-sagawa@jp.fujitsu.com>.
* iconv/gconv_simple.c (internal_ucs4_loop): Fix typo in last change.
* iconv/gconv_db.c
* sysdeps/i386/dl-machine.h: Define ARCH_FIXUP_ATTRIBUTE and use
it in the fixup function declarations.
* elf/dl-runtime.c: If ARCH_FIXUP_ATTRIBUTE is not defined,
provide dummy definition. Use macro in fixup function
definitions.
* config.h.in: Add entry for HAVE_LIBIDN.
* configure.in: If libidn add-on present define HAVE_LIBIDN.
* Versions.def: Add entry for libcidn.
2004-03-07 Simon Josefsson <jas@extundo.com>
* resolv/netdb.h [__USE_GNU]: Add new AI_IDN ai_flags for addrinfo.
[__USE_GNU]: Add new error code EAI_IDN_ENCODE for getaddrinfo.
* sysdeps/posix/getaddrinfo.c: Add prototype for __idna_to_ascii_lz
and define IDNA_SUCCESS.
(gaih_inet): If ai_flags have AI_IDN, invoke __idna_to_ascii_lz.
(getaddrinfo): Fix EAI_BADFLAGS test to include AI_IDN.
All changes only applicable when glibc is compiled with the libidn
add-on.
2004-03-07 Ulrich Drepper <drepper@redhat.com>
2004-03-06 Ulrich Drepper <drepper@redhat.com>
* elf/dl-lookup.c: We don't need for specialized lookup functions.
Combining the functionality does not slow down relocation processing,
it might even speed it up a little.
* sysdeps/generic/ldsodefs.h: Adjust prototypes for lookup function.
Add only one function pointer to rtlf_global_ro.
* elf/do-lookup.h: Replace #ifs with ifs.
* elf/dl-libc.c: Adjust _dl_lookup_* callers.
* elf/dl-reloc.c: Likewise.
* elf/dl-runtime.c: Likewise.
* elf/dl-sym.c: Likewise.
* elf/rtld.c: Likewise. Adjust _rtld_global_ro initialization.
* sysdeps/generic/ldsodefs.h (__rtld_local_attribute__,
__rtld_global_attribute__): Undef after use.
(_rtld_local_ro): Define __rtld_local_attribute__ with just hidden
if available.
* sysdeps/alpha/Subdirs: New file.
* sysdeps/alpha/soft-fp/Makefile: New file.
* sysdeps/alpha/soft-fp/Versions: New file.
* sysdeps/alpha/soft-fp/local-soft-fp.h: New file.
* sysdeps/alpha/soft-fp/ots_add.c: New file.
* sysdeps/alpha/soft-fp/ots_cmp.c: new file.
* sysdeps/alpha/soft-fp/ots_cmpe.c: New file.
* sysdeps/alpha/soft-fp/ots_cvtqux.c: New file.
* sysdeps/alpha/soft-fp/ots_cvtqx.c: New file.
* sysdeps/alpha/soft-fp/ots_cvttx.c: New file.
* sysdeps/alpha/soft-fp/ots_cvtxq.c: New file.
* sysdeps/alpha/soft-fp/ots_cvtxt.c: New file.
* sysdeps/alpha/soft-fp/ots_div.c: New file.
* sysdeps/alpha/soft-fp/ots_mul.c: New file.
* sysdeps/alpha/soft-fp/ots_nintxq.c: New file.
* sysdeps/alpha/soft-fp/ots_sub.c: New file.
2004-03-06 Ulrich Drepper <drepper@redhat.com>
* elf/dl-open.c: No need to pass any parameter to _dl_start_profile.
They are the same in both places.
* elf/dl-profile.c: Likewise.
* elf/rtld.c: Likewise.
* sysdeps/generic/ldsodefs.h: Likewise.
* elf/dl-support.c: Define _dl_profile_output variable. Initialize it.
* sysdeps/generic/ldsodefs.h (struct rtld_global): Move
dl_debug_fd to rtld_global_ro.
* elf/rtld.c: Use GLRO instead of GL for dl_debug_fd.
* elf/dl-misc.c: Likewise.
2004-02-29 Paolo Bonzini <bonzini@gnu.org>
* posix/regexec.c (transit_state): Don't handle state == NULL.
Move state log and backreference management...
(merge_state_with_log): ... to this function.
(find_recover_state): New function.
(check_matching): Use find_recover_state to get a non-NULL
state when an invalid state is reached. Compute the amount
of initial characters to be skipped less conservatively when
multi-byte character sets are in use. Do not check
dfa->nbackref if the state log is NULL. Initialize err.
(acquire_init_state_context): Expect err to be initialized.
Fix spacing.
2004-03-05 Jakub Jelinek <jakub@redhat.com>
* sysdeps/sparc/sparc32/elf/start.S: Handle PIEs.
* sysdeps/sparc/sparc64/elf/start.S: Likewise.
2004-03-04 Jakub Jelinek <jakub@redhat.com>
* iconv/iconv_prog.c (process_block): Handle omit_invalid.
If iconv returns EILSEQ with omit_invalid, continue converting
and return 1 if no other errors are seen.
(main): Set status to EXIT_FAILURE whenever process_* returns
nonzero, but only stop processing further files if iy returns
negative value.
2004-03-02 Andreas Schwab <schwab@suse.de>
* sysdeps/unix/sysv/linux/powerpc/powerpc32/xstat.c: New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/fxstat.c: New file.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/lxstat.c: New file.
2004-03-01 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/kernel-features.h: Add support for
__ASSUME_GETDENTS32_D_TYPE.
* sysdeps/unix/sysv/linux/getdents.c: For 2.6.4+ kernels you
getdents syscall again since it provides d_type information.
* manual/install.texi (Tools for Compilation): Autoconf 2.53 is
required.
* elf/rtld.c (dl_main): Adjust l->l_ld of the vDSO by l->l_addr.
* sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Only set
GL(dl_sysinfo) if non-zero.
2004-02-26 Ulrich Drepper <drepper@redhat.com>
* nss/getXXbyYY_r.c: Pass result also to the nscd_* function. Don't
set *result here.
* nscd/nscd_proto.h: Add new argument for pointer to result pointer
to all nscd_* functions.
* nscd/nscd_getgr_r.c (nscd_getgr_r): Add new parameter. Store result
pointer in the address provided by the new parameter if successful.
Otherwise store NULL. Return zero if no entry found.
(__nscd_getgrnam_r, __nscd_getgrgid_r): Add new parameter and pass
it on.
* nscd/nscd_gethst_r.c (nscd_gethst_r): Add new parameter. Store
result pointer in the address provided by the new parameter if
successful. Otherwise store NULL. Return zero if no entry found.
(__nscd_gethostbyname_r, __nscd_gethostbyname2_r,
__nscd_gethostbyaddr_r): Add new parameter and pass it on.
* nscd/nscd_getpw_r.c (nscd_getpw_r): Add new parameter. Store result
pointer in the address provided by the new parameter if successful.
Otherwise store NULL. Return zero if no entry found.
(__nscd_getpwnam_r, __nscd_getpwuid_r): Add new parameter and pass
it on.
2004-02-26 Jakub Jelinek <jakub@redhat.com>
* elf/rtld.c (dl_main): Correctly set up l_map_end and l_addr
in vDSO's link_map, don't assume l_addr == 0. Set GL(dl_sysinfo)
from e_entry only if AT_SYSINFO not present and adjust by l_addr.
Take vDSO into account when inserting rtld into _dl_loaded chain.
* sunrpc/svcauth_des.c (authdes_getucred): Removed fixed limit on
number of groups in the cache. Relax the disconnect between the
interface of authdes_getucred and netname2user a bit.
* sunrpc/auth_unix.c (authunix_create_default): Don't allocate
huge arrays on the stack.
2004-02-24 Arnold D. Robbins <arnold@skeeve.com>
* posix/regex_internal.c (build_wcs_upper_buffer): Enclose
`offsets_needed' label in `#ifdef _LIBC' to silence `unused label'
compiler warning.
2004-02-24 Nelson H.F. Beebe <beebe@math.utah.edu>
* posix/regex_internal.c (build_wcs_buffer): Add cast to char* in call
to `wcrtomb'.
* posix/regex_internal.h (bitset_not, bitset_merge, bitset_not_merge,
bitset_mask, re_string_char_size_a, re_string_wchar_at,
re_string_elem_size_at): Change to use prototypes.
(re_string_char_size_at, re_string_wchar_at,
re_string_elem_size_at): Declare as `internal_function'.
* wcsmbs/mbrtowc.c (__mbrtowc): Cap s + n at the end of address space.
* stdlib/Makefile (tests): Add testmb2.
(testmb2-ENV): New.
* stdlib/testmb2.c: New test.
2004-02-23 Jakub Jelinek <jakub@redhat.com>
2004-02-23 Jakub Jelinek <jakub@redhat.com>
* sysdeps/posix/getaddrinfo.c (gaih_inet): If _res has not been
inited yet, try to init it before saving old _res.options.
* posix/Makefile (xtests): Add bug-ga2.
(generated): Add bug-ga2.mtrace and bug-ga2-mem.
(xtests): Depend on bug-ga2-mem.
($(objpfx)bug-ga2-mem, bug-ga2-ENV): New.
* posix/bug-ga2.c: New test.
2004-02-22 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/posix_fadvise64.S: Pop register
content also in case of an overflow in the parameter.
Reported by Momchil Velikov <velco@fadata.bg>.
2004-02-21 Ulrich Drepper <drepper@redhat.com>
* elf/dynamic-link.h (elf_get_dynamic_info): Recognize DF_1_NOW.
In ld.so, neither DT_FLAGS nor DT_FLAGS_1 must be used.
2004-02-19 Carlos O'Donell <carlos@baldric.uwo.ca>
* sysdeps/generic/framestate.c [__USING_SJLJ_EXCEPTIONS__]
(__frame_state_for): Set frame_State_for to abort if the compiler
is using sjlj.
* sysdeps/generic/unwind-dw2.c: Allow sjlj enabled compilers to
build the code by removing __USING_SJLJ_EXCEPTIONS__ wrapper.
2004-02-20 Alexandre Oliva <aoliva@redhat.com>
* resolv/Versions: Remove semicolon from the end of libresolv's
GLIBC_2.3.2 version block.
* Versions.def (libresolv): Add GLIBC_2.3.2.
2004-02-20 Ulrich Drepper <drepper@redhat.com>
* dlfcn/dlsym.c: Get ld.so loading lock before the call into ld.so.
* dlfcn/dlvsym.c: Likewise.
* elf/dl-addr.c: Get loading lock while using _dl_loaded data.
* elf/dl-fini.c: Likewise.
Patch by Shunichi Sagawa <s-sagawa@jp.fujitsu.com>.
2004-02-19 Jakub Jelinek <jakub@redhat.com>
* sysdeps/sparc/sparc32/bits/atomic.h: Add __make_section_unallocated
for .gnu.linkonce.b.__sparc32_atomic_locks section.
(__sparc32_atomic_locks): Add __sec_comment at the end of section name.
2004-02-19 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/generic/libc-start.c [LIBC_START_DISABLE_INLINE] (STATIC):
Define as static.
* sysdeps/powerpc/elf/libc-start.c: Define LIBC_START_DISABLE_INLINE
because gcc does not allow inline of functions that call setjmp.
2004-02-19 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/powerpc64/Makefile: Use -finline-limit.
2004-02-19 Jakub Jelinek <jakub@redhat.com>
* elf/rtld.c (_dl_argv): If DL_ARGV_NOT_RELRO defined, don't
use attribute_relro for _dl_argv.
* sysdeps/alpha/dl-machine.h (DL_ARGV_NOT_RELRO): Define.
* sysdeps/ia64/dl-machine.h (DL_ARGV_NOT_RELRO): Define.
* sysdeps/sparc/sparc32/dl-machine.h (DL_ARGV_NOT_RELRO): Define.
* sysdeps/sparc/sparc64/dl-machine.h (DL_ARGV_NOT_RELRO): Define.
vfork instead of fork.
Update.
* nscd/nscd_conf.c (nscd_parse_file): Little optimization.
2004-02-14 Thorsten Kukuk <kukuk@suse.de>
* nscd/dbg_log.c (set_logfile): Only save name of logfile,
don't open it.
(init_logfile): New function, open logfile if requested.
* nscd/dbg_log.h: Adjust protoype for set_logfile, add init_logfile.
* nscd/nscd.c (main): Call init_logfile after forking in background.
* nscd/nscd_conf.c (nscd_parse_file): Adjust for new set_logfile.
2004-02-16 Ulrich Drepper <drepper@redhat.com>
ld.so.preload is not present [BZ #18].
2004-02-13 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/powerpc64/__longjmp-common.S: New file.
* sysdeps/powerpc/powerpc64/__longjmp.S [NOT_IN_libc](__longjmp):
Non-versioned __longjmp for rtld-__longjmp.
[!NOT_IN_libc](__vmx__longjmp): Add VMX reg support and define as
default version of __longjmp.
[SHARED && SHLIB_COMPAT (libc, GLIBC_2_3, GLIBC_2_3_4)]
(__novmx__longjmp): Original version of __longjmp.
* sysdeps/powerpc/powerpc64/bsd-_setjmp.S [NOT_IN_libc](_setjmp):
Non-versioned _setjmp for rtld-_setjmp.
[!NOT_IN_libc](__vmx_setjmp): Branch to __vmx__sigsetjmp and define
as default version of _setjmp.
[SHARED && SHLIB_COMPAT (libc, GLIBC_2_3, GLIBC_2_3_4)]
(__novmx_setjmp): Original version of _setjmp.
* sysdeps/powerpc/powerpc64/bsd-setjmp.S (__vmxsetjmp): Branch to
__vmx__sigsetjmp and define as default version of setjmp.
[SHARED && SHLIB_COMPAT (libc, GLIBC_2_3, GLIBC_2_3_4)]
(__novmxsetjmp): Original version of setjmp.
* sysdeps/powerpc/powerpc64/setjmp-common.S: New file.
* sysdeps/powerpc/powerpc64/setjmp.S [NOT_IN_libc](__setjmp):
Non-versioned __sigsetjmp for rtld-setjmp.
[!NOT_IN_libc](__vmx__sigsetjmp): Add VMX reg support and define
as default version of __sigsetjmp.
[SHARED && SHLIB_COMPAT (libc, GLIBC_2_3, GLIBC_2_3_4)]
(__novmx__sigsetjmp): Original version of __sigsetjmp.
* sysdeps/powerpc/powerpc32/__longjmp-common.S: New File
* sysdeps/powerpc/powerpc32/__longjmp.S [NOT_IN_libc](__longjmp):
Non-versioned __longjmp for rtld-__longjmp.
[!NOT_IN_libc](__vmx__longjmp): Add VMX reg support and define as
default version of __longjmp.
[SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)]
(__novmx__longjmp): Original version of __longjmp.
* sysdeps/powerpc/powerpc32/bsd-_setjmp.S [NOT_IN_libc](_setjmp):
Non-versioned _setjmp for rtld-_setjmp.
[!NOT_IN_libc](__vmx_setjmp): Branch to __vmx__sigsetjmp and define
as default version of _setjmp.
[SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)]
(__novmx_setjmp): Original version of _setjmp.
* sysdeps/powerpc/powerpc32/bsd-setjmp.S (__vmxsetjmp): Branch to
__vmx__sigsetjmp and define as default version of setjmp.
[SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)]
(__novmxsetjmp): Original version of setjmp.
* sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S: New file.
* sysdeps/powerpc/powerpc32/fpu/__longjmp.S [NOT_IN_libc](__longjmp):
Non-versioned __longjmp for rtld-__longjmp.
[!NOT_IN_libc](__vmx__longjmp): Add VMX reg support and define as
default version of __longjmp.
[SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)]
(__novmx__longjmp): Original version of __longjmp.
* sysdeps/powerpc/powerpc32/fpu/setjmp-common.S: New file.
* sysdeps/powerpc/powerpc32/fpu/setjmp.S [NOT_IN_libc](__setjmp):
Non-versioned __sigsetjmp for rtld-setjmp.
[!NOT_IN_libc](__vmx__sigsetjmp): Add VMX reg support and define
as default version of __sigsetjmp.
[SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)]
(__novmx__sigsetjmp): Original version of __sigsetjmp.
* sysdeps/powerpc/powerpc32/setjmp-common.S: New file.
* sysdeps/powerpc/powerpc32/setjmp.S [NOT_IN_libc](__setjmp):
Non-versioned __sigsetjmp for rtld-setjmp.
[!NOT_IN_libc](__vmx__sigsetjmp): Add VMX reg support and define
as default version of __sigsetjmp.
[SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)]
(__novmx__sigsetjmp): Original version of __sigsetjmp.
* sysdeps/powerpc/Dist: New File.
* sysdeps/powerpc/Makefile (sysdep_routines): Add novmx-longjmp.c
and novmx-sigjmp.c
* sysdeps/powerpc/Versions (libc): To GLIBC_2.3_4 add _longjmp,
__sigsetjmp, _setjmp, longjmp, and setjmp. To GLIBC_PRIVATE add
__novmx__libc_longjmp, __novmx__libc_siglongjmp, __vmx__libc_longjmp,
and __vmx__libc_siglongjmp.
* sysdeps/powerpc/bits/setjmp.h: Define JB_VRSAVE, JB_VRS, and adjust
JB_SIZE to add VMX regs to __jmp_buf.
* sysdeps/powerpc/longjmp.c: New file.
* sysdeps/powerpc/novmxsetjmp.h: New file.
* sysdeps/powerpc/novmx-longjmp.c: New file.
* sysdeps/powerpc/novmx-sigjmp.c: New file.
* sysdeps/powerpc/sigjmp.c: New file.
2004-02-12 Jakub Jelinek <jakub@redhat.com>
* math/libm-test.inc (lrint_test): Add new test.
(llrint_test, lround_test, llround_test): Likewise.
* sysdeps/ieee754/ldbl-128/s_lroundl.c (__lroundl): Fix special case
with result taking up 48 bits.
* sysdeps/ieee754/ldbl-128/s_lrintl.c (__lrintl): Likewise.
* sysdeps/ieee754/ldbl-128/s_llroundl.c (__llroundl): Likewise.
* sysdeps/ieee754/ldbl-96/s_llrintl.c (__llrintl): Fix special case
with result taking up 31 bits.
of duplicated code from __yp_bind.
(__yp_bind_file): New, binding dir code from __yp_bind.
(__yp_bind_client_create): New, ypbind code from __yp_bind.
(__ypclnt_call): New, make NIS query.
(do_ypcall): At first use cached data, then try data from
binding directory, after this ask ypbind for a working ypserv.
Based on a patch from Jeff Bastian <jmbastia@ti.com> and
Chris Barrera <cbarrera@ti.com>
#Update.
2004-02-09 Ulrich Drepper <drepper@redhat.com>
* libio/genops.c (_IO_cleanup): Do not use locking when flushing
the buffers. Some thread might be using a stream.
* sysdeps/x86_64/memcpy.S: Fix alignment [BZ #7].
* stdio-common/_i18n_number.h: Support printing localized decimal
point and thousand separator.
* wctype/wctrans.c: Add __wctrans alias.
* include/wctype.h: Declare __wctrans.
Based on a patch by Hamed Malek.
Update.
2004-02-09 Ulrich Drepper <drepper@redhat.com>
* sysdeps/i386/fpu/fclrexcpt.c (__feclearexcept): Don't touch bits
other than the status bits [BZ #10].
2004-02-06 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/powerpc32/dl-machine.c: Declare __cache_line_size as
weak extern.
(__elf_machine_runtime_setup): Invalidate the instruction cache over
the whole range of the PLT.
2004-02-05 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h: Define
_HAVE_STAT_NSEC and _HAVE_STAT64_NSEC. Patch by Anton Blanchard.
2004-02-02 Paolo Bonzini <bonzini@gnu.org>
* posix/regexec.c (check_matching): Add P_MATCH_FIRST parameter.
(re_search_internal): Pass new parameter to check_matching.
(check_matching): Unless a parenthesized group is found at the
beginning of the regexp, advance P_MATCH_FIRST until we entered
a state different from the initial state.
* math/libm-test.inc (lround_test): Add new test.
(llround_test): Likewise.
(lrint_test): Likewise.
(llrint_test): Likewise.
* sysdeps/ieee754/dbl-64/s_lround.c (__lround): Fix special case
with result taking up 20 bits.
* sysdeps/ieee754/dbl-64/s_lrint.c (__lrint): Likewise.
* sysdeps/ieee754/dbl-64/s_llrint.c (__llrint): Likewise..
* sysdeps/ieee754/ldbl-96/s_lroundl.c (__lroundl): Fix special
case with result taking up 31 bits.
* sysdeps/ieee754/ldbl-96/s_lrintl.c (__lrintl): Likewise.
2004-01-22 Jakub Jelinek <jakub@redhat.com>
* elf/dl-reloc.c (_dl_relocate_object): Move PT_GNU_RELRO protection
into...
(_dl_protect_relro): New routine.
* sysdeps/generic/ldsodefs.h (_dl_protect_relro): New prototype.
* elf/rtld.c (_dl_start_final): Copy l_relro_addr and l_relro_size
from bootstrap_map.
(_dl_main): Don't set GL(_dl_loaded)->l_relro_{addr,size} here.
Call _dl_protect_relro for libraries if prelinking.