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.