into a macro. Use preprocessor to decide how to initialize
attempts [Coverity CID 67].
* io/fts.c (fts_build): Comment out dead code [Coverity CID 68].
* sunrpc/rpc_parse.c (def_union): Comment out dead code
[Coverity CID 70].
* locale/programs/linereader.c (lr_token): Remove duplicate
handling of EOF [Coverity CID 71].
* locale/programs/ld-numeric.c (numeric_read) [case tok_grouping]:
We bail out early if ignore_content is set, so there is no need to
check it later again [Coverity CID 72].
* inet/inet6_option.c (inet6_option_find): Check *tptrp for NULL,
not tptrp [Coverity CID 73].
* inet/inet6_option.c (inet6_option_next): Check *tptrp for NULL,
not tptrp [Coverity CID 74].
* misc/tsearch.c (__tsearch): Don't rotate tree if memory
allocation failed [Coverity CID 78].
invalid length [Coverity CID 106].
* nss/nss_files/files-key.c (search): Close stream before
successful return [Coverity CID 107].
* io/fts.c (fts_open): Don't allocate parent if *argv==NULL
[Coverity CID 108].
* sunrpc/rpc_cout.c (inline_struct): Free sizestr after use
[Coverity CID 110, 109].
* sunrpc/rpc_scan.c (docppline): Free file string if it is not
going to be used [Coverity CID 111].
* sysdeps/unix/sysv/linux/getsourcefilter.c (getsourcefilter): Free
memory if socket level value cannot be retrieved [Coverity CID 112].
* nis/nis_clone_dir.c (nis_clone_directory): Free all memory in
error case [Coverity CID 114].
* nis/nis_clone_res.c (nis_clone_result): Free all memory in the
error cases [Coverity CID 115].
* sunrpc/rpc_parse.c (get_definition): Free defp if tok ==
TOK_EOF [Coverity CID 116].
* sysdeps/unix/sysv/linux/setsourcefilter.c (setsourcefilter): Free
memory if socket level value cannot be retrieved [Coverity CID 117].
* elf/cache.c (save_cache): Initialize pad to avoid writing
uninitialized data to disk.
* elf/cache.c (save_cache): Free file_entries_new [Coverity CID 118].
* intl/finddomain.c (_nl_find_domain): Avoid strdup of expand
locale name, use strdupa. Remove free call [Coverity CID 119].
* sunrpc/rpc_main.c (generate_guard): Avoid extra allocation and
the resulting leak [Coverity CID 121].
* sunrpc/rpc_main.c (mkfile_output): Free all allocated memory
[Coverity CID 122].
* sunrpc/rpc_main.c (h_output): Free guard after we are done
[Coverity CID 123].
* sunrpc/svc_udp.c (cache_set): Free victim if newbuf allocation
fails [Coverity CID 126].
* sunrpc/svc_udp.c (svcudp_enablecache): Free memory in error
cases [Coverity CID 127].
* nis/nis_table.c (__create_ib_request): Free ibreq in case strdup
fails [Coverity CID 128].
* nis/nis_getservlist.c (nis_getservlist): Free all memory in case
of an error [Coverity CID 130, 129].
* nis/nis_print_group_entry.c (nis_print_group_entry): If
nis_lookup call failed, return. Free lookup result in error
cases [Coverity CID 131].
* nis/nis_removemember.c (nis_removemember): Free all memory in
error cases [Coverity CID 132].
* nis/nss_nisplus/nisplus-alias.c (_nss_nisplus_getaliasbyname_r):
Always free lookup result [Coverity CID 134].
* nis/nss_nisplus/nisplus-ethers.c (_nss_nisplus_gethostton_r):
Always free lookup result [Coverity CID 135].
* nis/nss_nisplus/nisplus-ethers.c (_nss_nisplus_getntohost_r):
Always free lookup result [Coverity CID 136].
* nis/nss_nisplus/nisplus-network.c (_nss_nisplus_getnetbyaddr_r):
Before retrying, free old result [Coverity CID 137].
* nis/nss_nisplus/nisplus-publickey.c (_nss_nisplus_netname2user):
Free res in case UID is zero [Coverity CID 138].
* nis/ypclnt.c (yp_update): Always free master string
[Coverity CID 140].
* nis/nis_creategroup.c (nis_creategroup): Free all memory in
error cases [Coverity CID 143, 142, 141].
* nis/nss_nis/nis-publickey.c (_nss_nis_getpublickey): Free result
if yp_match call succeeded [Coverity CID 155].
* nis/nss_nis/nis-publickey.c (_nss_nis_getsecretkey): Free string
allocated in yp_match at all times [Coverity CID 157, 156].
* nscd/nscd.c (write_pid): Close stream also if writing failed
[Coverity CID 165].
* nis/nis_table.c (nis_add_entry): Move test for NULL parameter
ahead of first use [Coverity CID 167].
* nis/nss_nis/nis-alias.c (_nss_nis_getaliasbyname_r): Move test
for NULL parameter ahead of first use [Coverity CID 168].
* intl/finddomain.c (_nl_find_domain): We never return NULL if we
found the locale [Coverity CID 169].
* inet/getnameinfo.c (getnameinfo): __getservbyport_r does not set
herrno [Coverity CID 178].
* nis/nis_checkpoint.c (nis_checkpoint): Don't access and returned
freed object [Coverity CID 182].
* inet/netinet/icmp6.h: More updates for RFC3542.
* inet/netinet/ip6.h: Likewise.
* sysdeps/unix/sysv/linux/bits/in.h: Adjust for current kernel sources.
Patch by David L Stevens <dlstevens@us.ibm.com>.
(setup): Remove FUNC_NAME and ALL arguments, assume they are always
"setnetgrent" and 1.
(endnetgrent_hook): New function.
(internal_endnetgrent): Use it.
(__internal_setnetgrent_reuse): Use it. Adjust setup caller.
If status is NSS_STATUS_SUCCESS, yet action is continue, call
endnetgrent hook.
(internal_getnetgrent_r): Use __nss_lookup_function rather than
setup. Recompute getfct pointer after successful
__internal_setnetgrent_reuse. Don't use __nss_next.
(innetgr): Use __nss_lookup_function instead of __nss_lookup.
Adjust setup caller.
* nss/nss_files/files-netgrp.c (_nss_files_endnetgrent): Always clear
data_size and cursor. Add libnss_files_hidden_proto and
libnss_files_hidden_def.
(_nss_files_setnetgrent): Call _nss_files_endnetgrent on failure.
* nis/nss_nis/nis-netgrp.c (internal_endnetgrent): Always clear
data_size and cursor.
(_nss_nis_setnetgrent): Don't call internal_endnetgrent.
(_nss_nis_getnetgrent_r): Remove result->cursor == NULL handling.
* nis/nss_nisplus/nisplus-netgrp.c (internal_endnetgrent): Always clear
data_size and position.
(_nss_nisplus_setnetgrent): Don't call internal_endnetgrent.
2005-09-09 Ulrich Drepper <drepper@redhat.com>
* nss/getent.c (netgroup_keys): Call endnetgrent.
(main): Call mtrace.
* nss/nss_files/files-netgrp.c (_nss_files_setnetgrent): We don't
need locking for the stream. Use feof_unlocked.
2005-09-09 Jakub Jelinek <jakub@redhat.com>
* intl/dcigettext.c (_nl_find_msg): Add a cast.
* nis/nis_clone_dir.c (nis_clone_directory): Use char * for ADDR.
* nis/nis_clone_obj.c (nis_clone_object): Likewise.
* nis/nis_clone_res.c (nis_clone_result): Likewise.
* resolv/nss_dns/dns-network.c (getanswer_r): Use const unsigned char *
for END_OF_MESSAGE and CP.
* resolv/res_send.c (send_dg): Add else branch for case impossible
unless `poll' is buggy.
* crypt/crypt_util.c (__setkey_r): Add a cast.
* locale/programs/linereader.c (get_toplvl_escape): Use size_t for
NBYTES, and unsigned char * for BYTES.
* locale/programs/charmap.c (charmap_new_char): Use size_t and
unsighed char * for NBYTES, BYTES parameters.
* sysdeps/generic/dl-hash.h (_dl_elf_hash): Take const char * argument
and cast it.
* sysdeps/i386/i686/dl-hash.h (_dl_elf_hash): Likewise.
* sunrpc/create_xid.c (_create_xid): Don't use unsigned long for RES.
* sunrpc/svcauth_des.c (_svcauth_des): Fix cast type.
* sunrpc/auth_des.c (authdes_create): Don't use u_char for PKEY_DATA.
(authdes_marshal): Don't use unsigned int for LEN.
* sunrpc/xdr.c (xdr_hyper): Don't use unsigned long for T2.
(xdr_u_hyper): Likewise.
(xdr_u_short): Don't use u_long for L.
* sunrpc/xdr_intXX_t.c (xdr_int64_t): Don't use uint32_t for T2.
* inet/rexec.c (rexec_af): Use socklen_t.
* sunrpc/key_call.c (getkeyserv_handle): Likewise.
* sunrpc/rtime.c (rtime): Likewise.
* resolv/res_send.c (send_vc, send_dg): Likewise.
* nis/nis_callback.c (__nis_create_callback): Likewise.
* sysdeps/generic/libc-start.c: Use unsigned int for nthreads ptr.
* sysdeps/posix/getaddrinfo.c (gaih_inet): Fix type of ADDR local.
* libio/libio.h (_IO_BE): Add parenthesis around EXPR.
* intl/dcigettext.c (INTVARDEF, INTUSE): Macros removed.
(_nl_default_dirname): Use libc_hidden_data_def instead of INTVARDEF.
(libc_freeres_fn, DCIGETTEXT): Don't use INTUSE.
* intl/bindtextdom.c (INTUSE): Macro removed.
(_nl_default_dirname): Use libc_hidden_proto.
(set_binding_values): Don't use INTUSE.
* include/libintl.h (_libc_intl_domainname_internal): Decl removed.
(_libc_intl_domainname): Use libc_hidden_proto.
* posix/regex_internal.h (gettext): Remove INTUSE on it.
* locale/SYS_libc.c (_libc_intl_domainname): Use libc_hidden_data_def
rather than INTDEF.
* include/libintl.h (_): Don't use *_internal name.
* ctype/ctype-extn.c (__ctype_tolower, __ctype_toupper): Use int32_t,
not uint32_t.
* locale/lc-ctype.c (_nl_postload_ctype): Likewise for assignments.
* iconv/gconv_open.c (__gconv_open): Remove useless cast.
[BZ #721]
* sysdeps/i386/dl-machine.h (ELF_MACHINE_NO_RELA): Define this outside
of [RESOLVE_MAP].
* sysdeps/sh/dl-machine.h (ELF_MACHINE_NO_REL): Likewise.
* sysdeps/powerpc/powerpc32/dl-machine.h
(elf_machine_rel, elf_machine_rel_relative): Removed.
* sysdeps/powerpc/powerpc64/dl-machine.h
(elf_machine_rel, elf_machine_rel_relative): Removed.
2005-02-03 Alexandre Oliva <aoliva@redhat.com>
[BZ #721]
* elf/dynamic-link.h: Don't declare nested auto functions that are
not going to be defined.
2004-07-23 Jakub Jelinek <jakub@redhat.com>
[BZ #284]
* include/features.h (_POSIX_SOURCE, _POSIX_C_SOURCE): Define
if _XOPEN_SOURCE >= 500 even if __STRICT_ANSI__ is defined.
2005-02-16 Roland McGrath <roland@redhat.com>
* 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-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-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>
* inet/rcmd.c: Provide better error message in case of unknown
host. Remove USE_IN_LIBIO.
* nscd/nscd.init: Updated version, more conforming with current
init file standards.
* nscd/nscd-client.h (_PATH_NSCDPID): Move the file into
/var/run/nscd directory.
(_PATH_NSCDSOCKET): Likewise.
* test-skeleton.c (timeout_handler): Fix error message.
2003-10-27 Ulrich Drepper <drepper@redhat.com>
* inet/rcmd.c (__validuser2_sa): Remove unnecessary code to skip
rest of line. We use getline which means this cannot happen.
* inet/rcmd.c (rresvport_af): Avoid using invliad values. Wrap
around in search if port IPPORT_RESERVED/2 has been test.
2002-02-20 Paolo Bonzini <bonzini@gnu.org>
* posix/regcomp.c: Remove inclusions.
* posix/regexec.c: Likewise.
* posix/regex_internal.c: Likewise.
* posix/regex_internal.h: Add inclusions here.
* posix/regex.c: Only include sys/types.h before regex.h. Include
regex_internal.h here. Include regex_internal.c before regcomp.c
and regexec.c (might expose more opportunities to the C compiler).
* posix/regcomp.c (parse_expression): Fix construct rejected by SGI CC.
* posix/regex_internal.h [!_LIBC] (__mempcpy): Fix typo.
[!_LIBC] (__wcrtomb): New definition.
[!_LIBC]: Conditionalize enabling of I18N on HAVE_WCSCOLL and
HAVE_LOCALE_H as well.
2003-02-20 Ulrich Drepper <drepper@redhat.com>
2003-02-07 Jakub Jelinek <jakub@redhat.com>
* resolv/res_libc.c (_res): Ensure _res is not common symbol,
so that it can have aliases.
* inet/herrno.c (h_errno): Put it into .bss not .data section.
Patch by Lance Larsh <Lance.Larsh@oracle.com>.
Grok AF_LINK if defined.
From Momchil Velikov <velco@fadata.bg>.
* sysdeps/gnu/ifaddrs.c (getifaddrs): If ioctl fails for netmask,
brdaddr, or dstaddr, just set those pointers to null and don't fail.
Reported by Momchil Velikov <velco@fadata.bg>.
* sysdeps/generic/ifreq.h (__if_nextreq) [_HAVE_SA_LEN]: If sa_len
is > sizeof IFR->ifa_addr, advance past the whole longer length.
(__ifreq): Count up NIFS that way too.
Reported by Momchil Velikov <velco@fadata.bg>.
* sysdeps/mach/hurd/lchmod.c: Include <fcntl.h>.
2002-11-20 Ulrich Drepper <drepper@redhat.com>
* inet/getnameinfo.c: Use extend_alloca where appropriate.
* sysdeps/posix/getaddrinfo.c: Likewise.
* include/alloca.h (extend_alloca): New define. Based on stack
direction it'll try to append to the previouls allocated buffer.
2002-11-07 Thorsten Kukuk <kukuk@suse.de>
* sysdeps/posix/getaddrinfo.c (gaih_inet): If AF_UNSPEC is set,
use the same service for AF_INET and AF_INET6.
2002-11-19 Ulrich Drepper <drepper@redhat.com>
* intl/localealias.c (read_alias_file): Use only about 400 bytes
of stack space instead of 16k.
* sysdeps/generic/errno.c (__libc_errno): Remove alias.
* inet/herrno.c (__libc_h_errno): Likewise.
* resolv/res_libc.c (__libc_res): Likewise.
[USE___THREAD]: Use this in place of [USE_TLS && HAVE___THREAD].
(__res_state) [! USE___THREAD]: Don't define as weak.
* csu/Versions: Revert last change.
* resolv/Versions: Revert last change.
[HAVE_ELF && SHARED && DO_VERSIONING] (errno, _errno): Declare these
with compat_symbol so they are not link-time visible.
[! USE___THREAD] (__libc_errno): New alias for errno.
* csu/Versions [!(USE_TLS && HAVE___THREAD)] (libc: GLIBC_PRIVATE):
Add __libc_errno here.
* inet/herrno.c [USE___THREAD]: Use this conditional
in place of [USE_TLS && HAVE___THREAD].
[! USE___THREAD] [HAVE_ELF && SHARED && DO_VERSIONING]
(h_errno, _h_errno): Declare these with compat_symbol so they are not
link-time visible.
[! USE___THREAD] (__libc_h_errno): New alias for h_errno.
* resolv/res_libc.c [! USE___THREAD]
[HAVE_ELF && SHARED && DO_VERSIONING] (_res): Likewise.
(_res): Use __attribute__ ((section (".bss"))) so we can have an alias.
(__libc_res): Define as alias for _res.
* resolv/Versions [!(USE_TLS && HAVE___THREAD)] (libc: GLIBC_PRIVATE):
Add __libc_h_errno and __libc_res here.
2002-11-14 Jakub Jelinek <jakub@redhat.com>
* csu/Versions (errno): Move STT_TLS symbol to GLIBC_PRIVATE for now.
* resolv/Versions (h_errno, _res): Likewise.
2002-11-14 Roland McGrath <roland@redhat.com>
file-specific variable override so it compiles properly when using
--with-headers.
* NEWS: Added item for powerpc64-linux port.
* include/libc-symbols.h [HAVE_ASM_GLOBAL_DOT_NAME]
(C_SYMBOL_DOT_NAME): Insure that C_SYMBOL_DOT_NAME works for
various gcc versions. Dot names required for powerpc64.
[HAVE_ASM_GLOBAL_DOT_NAME] (_weak_extern): Add .weakext '.'ed symbol.
[HAVE_ASM_GLOBAL_DOT_NAME] (strong_alias): Add .global
C_SYMBOL_DOT_NAME(alias).
[HAVE_ASM_GLOBAL_DOT_NAME] (strong_data_alias): New macro. Same as
original strong_alias macro.
[HAVE_ASM_GLOBAL_DOT_NAME] (weak_alias): Add .weakext/.weak
C_SYMBOL_DOT_NAME(alias).
[HAVE_ASM_GLOBAL_DOT_NAME] (_symbol_version): Add .symver '.'ed name.
[HAVE_ASM_GLOBAL_DOT_NAME] (_default_symbol_version): Add .symver
'.'ed name.
Add comments on libc_hidden_data_def and libc_hidden_data_weak usage.
[HAVE_ASM_GLOBAL_DOT_NAME] (hidden_dot_def1): New macro. Generate
.global C_SYMBOL_DOT_NAME(alias). Otherwise an empty macro.
(hidden_def): Append hidden_dot_def1 macro to definition.
(hidden_ver): Append hidden_dot_def1 macro to definition.
(hidden_data_def): New macro. Same as original hidden_def macro.
(hidden_data_ver): New macro. Same as original hidden_ver macro.
[HAVE_ASM_GLOBAL_DOT_NAME] (hidden_dot_weak1): New macro. Generate
.weakext C_SYMBOL_DOT_NAME(alias). Otherwise an empty macro.
(hidden_weak): Append hidden_dot_weak1 macro to definition.
(hidden_data_weak): New macro. Same as original hidden_weak macro.
[HAVE_ASM_GLOBAL_DOT_NAME] (HIDDEN_JUMPTARGET): Define as .__GI_name.
Otherwise defined as __GI_name.
(libc_hidden_data_def): New macro. Use hidden_data_def.
(libc_hidden_data_weak): New macro. Use hidden_data_weak.
(libc_hidden_data_ver): New macro. Use hidden_data_ver.
(rtld_hidden_data_def): New macro. Use hidden_data_def.
(rtld_hidden_data_weak): New macro. Use hidden_data_weak.
(rtld_hidden_data_ver): New macro. Use hidden_data_ver.
(libm_hidden_data_def): New macro. Use hidden_data_def.
(libm_hidden_data_weak): New macro. Use hidden_data_weak.
(libm_hidden_data_ver): New macro. Use hidden_data_ver.
* inet/in6_addr.c: Replace libc_hidden_def with libc_hidden_data_def.
name to find codeset name (if any) and normalize it. If the
normalized name differs, look up only that in the archive.
* locale/programs/locarchive.c (add_locale_to_archive): If the name
contains a codeset, normalize the codeset store only the normalized
name in the archive. If not, add an alias containing the locale's
normalized codeset name. Apply codeset name normalization when
matching entries in the alias file.
* locale/programs/locarchive.c (delete_locales_from_archive): Don't
decrement HEAD->namehash_used here.
(add_locale): Only need to insert name string when name_offset != 0.
* locale/programs/localedef.c (options): Add -A/--alias-file.
(alias_file): New variable.
(parse_opt): Grok -A, set that.
* locale/programs/localedef.h: Declare it.
* locale/programs/locarchive.c (insert_name): New function, broken out
of ...
(add_locale_to_archive): ... here. Call that.
(add_alias): New function.
(add_locale): New static function, add_locale_to_archive renamed.
(add_locale_to_archive): Call that and use add_alias to add an alias
for the name with codeset if the given name lacks it.
(enlarge_archive): Call add_locale instead of add_locale_to_archive.
* locale/Makefile (routines): Add loadarchive.
* locale/loadarchive.c: New file, started from code by Ulrich Drepper.
(_nl_load_locale_from_archive): New function.
* locale/localeinfo.h: Declare it.
* locale/findlocale.c (_nl_find_locale): If using default locale path,
try _nl_load_locale_from_archive first.
* locale/loadlocale.c (_nl_intern_locale_data): New function,
broken out of _nl_load_locale.
(_nl_load_locale): Call that.
* locale/localeinfo.h: Declare it.
(struct locale_data): Replace member `mmaped' with `alloc', an enum.
(struct locale_data): Remove unused member `options'.
* locale/findlocale.c (_nl_remove_locale): Update uses.
* locale/loadlocale.c (_nl_load_locale, _nl_unload_locale): Likewise.
* locale/C-collate.c: Update initializer.
* locale/C-identification.c: Likewise.
* locale/C-measurement.c: Likewise.
* locale/C-telephone.c: Likewise.
* locale/C-address.c: Likewise.
* locale/C-name.c: Likewise.
* locale/C-paper.c: Likewise.
* locale/C-time.c: Likewise.
* locale/C-numeric.c: Likewise.
* locale/C-monetary.c: Likewise.
* locale/C-messages.c : Likewise.
* locale/C-ctype.c: Likewise.
* locale/hashval.h [! LONGBITS]: Include <limits.h> here and
use CHAR_BIT instead of BITSPERBYTE.
* locale/localeinfo.h (_nl_find_locale, _nl_load_locale,
_nl_unload_locale): Add `internal_function attribute_hidden' to decls.
* locale/findlocale.c (_nl_find_locale): Add internal_function to defn.
(_nl_remove_locale): Likewise.
* locale/loadlocale.c (_nl_load_locale, _nl_unload_locale): Likewise.
* locale/findlocale.c (_nl_default_locale_path): New variable.
(_nl_find_locale): If LOCALE_PATH is null, default to that.
* locale/localeinfo.h: Declare it.
* locale/setlocale.c (setlocale): Use _nl_default_locale_path
in place of LOCALEDIR. If no LOCPATH, pass null to _nl_find_locale.
* locale/newlocale.c (__newlocale): Likewise.
* misc/err.c (vwarnx, vwarn): Fix typos in libc_hidden_def uses.
* inet/rexec.c (rexec_af): Add libc_hidden_def.
* sysdeps/generic/morecore.c: Likewise.
* signal/allocrtsig.c (__libc_current_sigrtmin): Likewise.
(__libc_current_sigrtmax): Likewise.
2002-08-08 Roland McGrath <roland@redhat.com>
* locale/loadlocale.c (_nl_load_locale): Don't use MAP_INHERIT.
* catgets/open_catalog.c (__open_catalog): Likewise.
* locale/programs/locarchive.c (INITIAL_NUM_NAMES): Renamed
from typo INITIAL_NUM_NANES.
(create_archive): Update use.
Use libc_hidden_proto for getopt_long, getopt_long_only.
* posix/getopt1.c [_LIBC]: Include <getopt.h> instead of "getopt.h".
Add libc_hidden_def.
* sysdeps/generic/unwind-dw2-fde-glibc.c [_LIBC] (dl_iterate_phdr):
Define as a macro for __dl_iterate_phdr.
* inet/getnetgrent_r.c (internal_setnetgrent): Renamed from __ name,
made static. Add __ name as a strong alias.
(internal_endnetgrent): Likewise.
(internal_getnetgrent_r): Likewise.
2002-08-04 Ulrich Drepper <drepper@redhat.com>
* stdio-common/psignal.c: Declare _sys_siglist_internal. Use USEINT
to access _sys_siglist.
* string/strsignal.c: Likewise.
* sysdeps/generic/siglist.c: Add _sys_siglist_internal alias.
* sysdeps/gnu/siglist.c: Likewise.
* sysdeps/unix/siglist.c: Likewise.
* sysdeps/unix/sysv/linux/arm/siglist.c: Likewise.
* libio/fileops.c: Add missing INTUSEs for _IO_file_jumps.
* libio/wfileops.c: Add missing INTUSE for _IO_file_close.
* intl/dcigettext.c: Define _nl_default_dirname_internal as hidden
alias and use it.
* intl/bindtextdom.c: Use _nl_default_dirname_internal.
* include/netinet/in.h: Add declaration of in6addr_loopback_internal.
* inet/in6_addr.c: Add INTVARDEF for in6addr_loopback.
* sysdeps/posix/getaddrinfo.c: Use INTUSE for in6addr_loopback access.
* include/time.h: Add libc_hidden_proto for __gmtime_r.
* time/gmtime.c (__gmtime_r): Add libc_hidden_def.
* iconv/Versions: Replace __gconv_alias_db, __gconv_modules_db,
and __gconv_cache with __gconv_get_alias_db, __gconv_get_modules_db,
and __gconv_get_cache respectively.
* iconv/gconv_cache.c (gconv_cache): Renamed for __gconv_cache and
defined static. Change all users.
(__gconv_get_cache): New function.
* iconv/gconv_db.c (__gconv_get_modules_db): New function.
(__gconv_get_alias_db): New function.
* iconv/gconv_int.h (__gconv_alias_db): Declare as hidden.
(__conv_modules_db): Likewise.
Add prototypes for __gconv_get_cache, __gconv_get_modules_db,
and __gconv_get_alias_db.
* iconv/iconv_prog.c: Use the new functions instead of accessing the
variables.
* include/stdlib.h: Add prototype and libc_hidden_proto for
__default_morecore.
* sysdeps/generic/morecore.c: Include <stdlib.h>.
* malloc/obstack.c: Remove fputs macro.
* malloc/mtrace.c: Remove fopen macro.
[USE_TLS && HAVE___THREAD]: Just include the sysdeps/generic file,
which does the right thing when __thread support is available.
* descr.h (struct _pthread_descr_struct) [USE_TLS && HAVE___THREAD]:
Omit `p_libc_specific', `p_errnop', `p_errno', `p_h_errnop',
`p_h_errno', `p_resp', and `p_res' members.
* pthread.c (__pthread_initialize_minimal) [USE_TLS && HAVE___THREAD]:
Don't initialize `p_errnop' and `p_h_errnop' members.
(__pthread_reset_main_thread): Likewise.
(__pthread_initialize_manager): Likewise.
* manager.c (__pthread_manager, pthread_handle_create): Likewise.
* pthread.c (pthread_initialize) [USE_TLS && HAVE___THREAD]:
Don't initialize `p_resp' member.
(__pthread_reset_main_thread): Likewise.
* manager.c (pthread_handle_create): Likewise.
* specific.c (libc_internal_tsd_set, libc_internal_tsd_get):
Conditionalize these on [!(USE_TLS && HAVE___THREAD)].
* errno.c [USE_TLS && HAVE___THREAD]
(__h_errno_location, __res_state): Don't define these at all.
* sysdeps/i386/tls.h (INSTALL_DTV): Add parens around arguments!
(INSTALL_NEW_DTV, GET_DTV): Likewise.
* sysdeps/sh/tls.h (INSTALL_DTV, INSTALL_NEW_DTV, GET_DTV): Likewise.
* weaks.c: Don't include <errno.h> here.
2002-08-01 Roland McGrath <roland@redhat.com>
* sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT): New macro, broken out of
TLS_INIT_TP.
(TLS_DO_SET_THREAD_AREA): New macro, uses thread_set_area syscall.
(TLS_SETUP_GS_SEGMENT): New macro, try one or the other or both.
(TLS_INIT_TP): Use that.
This implementation supports only IPv4.
* inet/ifaddrs.h: New file.
* sysdeps/generic/ifaddrs.c: New file.
* sysdeps/gnu/ifaddrs.c: New file.
* inet/test-ifaddrs.c: New file.
* inet/Makefile (routines): Add ifaddrs.
(headers): Add ifaddrs.h here.
(tests): Add test-ifaddrs.
* inet/Versions (GLIBC_2.3): New set, add getifaddrs and freeifaddrs.
* resolv/res_hconf.c (_res_hconf_reorder_addrs): Use an explicit
socket call to get an AF_INET socket, instead of using __opensock.
The SIOCGIFNETMASK ioctl will work only with a PF_INET socket.
* sysdeps/generic/ifreq.h (__ifreq): Take third argument SOCKFD,
if not -1 use it instead of calling __opensock.
* sysdeps/unix/sysv/linux/ifreq.h (__ifreq): Likewise.
* sysdeps/mach/hurd/ifreq.h (__ifreq): Take new argument and ignore it.
* resolv/res_hconf.c (_res_hconf_reorder_addrs): Pass new argument.
* sysdeps/mach/hurd/ifreq.h: New file.
* sysdeps/generic/ifreq.h (__if_freereq): Take second argument NUM_IFS.
* sysdeps/unix/sysv/linux/ifreq.h (__if_freereq): Likewise.
* resolv/res_hconf.c (_res_hconf_reorder_addrs): Update caller.
2002-05-21 Isamu Hasegawa <isamu@yamato.ibm.com>
* posix/regex.c: Define `inline' as a macro into nothing for the
compilers which lack the keyword.
* posix/regex.h: (RE_SYNTAX_GNU_AWK): Remove RE_CONTEXT_INVALID_OPS
for the compatibility of gawk.
* posix/regcomp.c: Add fake implementation of isblank() for the
environments which lack the function.
Don't use free_charset() in case of non-i18n envs.
(build_range_exp): Don't use i18n related code in case of non-i18n
envs.
(build_collating_symbol): Likewise.
(build_equiv_class): Likewise.
(build_charclass): Likewise.
(re_compile_fastmap_iter): Likewise.
(parse_bracket_exp): Likewise.
(build_word_op): Likewise.
(regfree): Don't use free_charset() in case of non-i18n envs.
* posix/regex_internal.h: Remove COMPLEX_BRACKET from
re_token_type_t in case of non-i18n envs.
Don't define re_charset_t in case of non-i18n envs.
Change the type of wcs of re_string_t from wchar_t to wint_t,
since we store also WEOF.
* posix/regex_internal.c: (re_string_realloc_buffers): Change
the type of wcs of re_string_t from wchar_t to wint_t.
(re_string_reconstruct): Likewise.
(create_ci_newstate): Don't use i18n related code in case of
non-i18n envs.
(create_cd_newstate): Likewise.
2002-05-24 Ulrich Drepper <drepper@redhat.com>
* iconv/loop.c: Fix typo.
2002-05-23 Jakub Jelinek <jakub@redhat.com>
* inet/ether_line.c (ether_line): Fix a typo causing only
lower 4 bits of each ethernet address byte being assigned.
Don't modify what line points to.
* inet/tst-ether_aton.c (main): Add ether_line tests.
2002-05-23 Marcus Brinkmann <marcus@gnu.org>
* manual/filesys.texi: Don't make readlink example leak memory
when readlink fails.
2002-04-02 Jakub Jelinek <jakub@redhat.com>
* inet/ether_ntoh.c (__nss_ethers_lookup): Add internal_function.
* inet/ether_hton.c (__nss_ethers_lookup): Likewise.
* inet/getnetgrent_r.c (__nss_netgroup_lookup): Likewise.
* sunrpc/netname.c (__nss_publickey_lookup): Likewise.
* sunrpc/publickey.c (__nss_publickey_lookup): Likewise.
2002-03-30 Jakub Jelinek <jakub@redhat.com>
* elf/dynamic-link.h (elf_get_dynamic_info): Don't abort on unknown
dynamic tags.
2002-03-29 Jakub Jelinek <jakub@redhat.com>
* sysdeps/i386/fpu/s_fabs.S: New file.
* sysdeps/i386/fpu/s_fabsf.S: New file.
* sysdeps/i386/fpu/s_fabsl.S: New file.
* sysdeps/sparc/sparc64/fpu/s_fabs.c: New file.
* sysdeps/sparc/sparc64/fpu/s_fabsf.c: New file.
* sysdeps/sparc/sparc64/fpu/s_fabsl.c: New file.
2002-04-02 Ulrich Drepper <drepper@redhat.com>
* rt/tst-shm.c (do_test): Add one more test for size of shared
memory object.
2002-03-29 Wolfram Gloger <wg@malloc.de>
* malloc/malloc.c: Add short description and prototypes for
malloc_get_state, malloc_set_state and posix_memalign, for
consistency and to avoid warnings with -Wstrict-prototypes.
Reported by Andreas Jaeger <aj@suse.de>.
2002-04-02 Ulrich Drepper <drepper@redhat.com>
* po/gl.po: Update from translation team.
2001-12-06 Ulrich Drepper <drepper@redhat.com>
* libio/vasprintf.c (_IO_vasprintf): Free buffer on failure.
* assert/assert.c: Check result of __asprintf call and don't use
string if it failed.
* assert/assert-perr.c: Likewise.
* inet/rcmd.c: Likewise.
* locale/programs/localedef.c (main): Check result of
construct_output_path and exit if it failed.
(construct_output_path): Check result of asprintf and mkdir calls and
fail if they failed.
* posix/getopt.c: Check result of __asprintf calls and fail if
they failed.
Patch by Dmitry V. Levin <ldv@alt-linux.org>.
2001-07-06 Paul Eggert <eggert@twinsun.com>
* manual/argp.texi: Remove ignored LGPL copyright notice; it's
not appropriate for documentation anyway.
* manual/libc-texinfo.sh: "Library General Public License" ->
"Lesser General Public License".
2001-07-06 Andreas Jaeger <aj@suse.de>
* All files under GPL/LGPL version 2: Place under LGPL version
2.1.
2001-04-08 Hans-Peter Nilsson <hp@axis.com>
* sysdeps/unix/sysv/linux/cris/Dist: New file.
* sysdeps/unix/sysv/linux/cris/Makefile: New file.
* sysdeps/unix/sysv/linux/cris/_G_config.h: New file.
* sysdeps/unix/sysv/linux/cris/bits/fcntl.h: New file.
* sysdeps/unix/sysv/linux/cris/bits/mman.h: New file.
* sysdeps/unix/sysv/linux/cris/bits/resource.h: New file.
* sysdeps/unix/sysv/linux/cris/brk.c: New file.
* sysdeps/unix/sysv/linux/cris/chown.c: New file.
* sysdeps/unix/sysv/linux/cris/clone.S: New file.
* sysdeps/unix/sysv/linux/cris/fchown.c: New file.
* sysdeps/unix/sysv/linux/cris/fcntl.c: New file.
* sysdeps/unix/sysv/linux/cris/fxstat.c: New file.
* sysdeps/unix/sysv/linux/cris/getegid.c: New file.
* sysdeps/unix/sysv/linux/cris/geteuid.c: New file.
* sysdeps/unix/sysv/linux/cris/getgid.c: New file.
* sysdeps/unix/sysv/linux/cris/getgroups.c: New file.
* sysdeps/unix/sysv/linux/cris/getresgid.c: New file.
* sysdeps/unix/sysv/linux/cris/getresuid.c: New file.
* sysdeps/unix/sysv/linux/cris/getrlimit.c: New file.
* sysdeps/unix/sysv/linux/cris/getrlimit64.c: New file.
* sysdeps/unix/sysv/linux/cris/getuid.c: New file.
* sysdeps/unix/sysv/linux/cris/lchown.c: New file.
* sysdeps/unix/sysv/linux/cris/lockf64.c: New file.
* sysdeps/unix/sysv/linux/cris/lxstat.c: New file.
* sysdeps/unix/sysv/linux/cris/mmap.S: New file.
* sysdeps/unix/sysv/linux/cris/mmap64.S: New file.
* sysdeps/unix/sysv/linux/cris/msgctl.c: New file.
* sysdeps/unix/sysv/linux/cris/profil-counter.h: New file.
* sysdeps/unix/sysv/linux/cris/register-dump.h: New file.
* sysdeps/unix/sysv/linux/cris/semctl.c: New file.
* sysdeps/unix/sysv/linux/cris/setegid.c: New file.
* sysdeps/unix/sysv/linux/cris/seteuid.c: New file.
* sysdeps/unix/sysv/linux/cris/setfsgid.c: New file.
* sysdeps/unix/sysv/linux/cris/setfsuid.c: New file.
* sysdeps/unix/sysv/linux/cris/setgid.c: New file.
* sysdeps/unix/sysv/linux/cris/setgroups.c: New file.
* sysdeps/unix/sysv/linux/cris/setregid.c: New file.
* sysdeps/unix/sysv/linux/cris/setresgid.c: New file.
* sysdeps/unix/sysv/linux/cris/setresuid.c: New file.
* sysdeps/unix/sysv/linux/cris/setreuid.c: New file.
* sysdeps/unix/sysv/linux/cris/setrlimit.c: New file.
* sysdeps/unix/sysv/linux/cris/setuid.c: New file.
* sysdeps/unix/sysv/linux/cris/shmctl.c: New file.
* sysdeps/unix/sysv/linux/cris/socket.S: New file.
* sysdeps/unix/sysv/linux/cris/sys/ucontext.h: New file.
* sysdeps/unix/sysv/linux/cris/syscall.S: New file.
* sysdeps/unix/sysv/linux/cris/sysdep.S: New file.
* sysdeps/unix/sysv/linux/cris/sysdep.h: New file.
* sysdeps/unix/sysv/linux/cris/vfork.S: New file.
* sysdeps/unix/sysv/linux/cris/xstat.c: New file.
2001-04-08 Hans-Peter Nilsson <hp@axis.com>
* sysdeps/cris/Dist: New file.
* sysdeps/cris/Implies: New file.
* sysdeps/cris/Makefile: New file.
* sysdeps/cris/__longjmp.S: New file.
* sysdeps/cris/_mcount.S: New file.
* sysdeps/cris/bits/endian.h: New file.
* sysdeps/cris/bits/setjmp.h: New file.
* sysdeps/cris/bits/string.h: New file.
* sysdeps/cris/dl-machine.h: New file.
* sysdeps/cris/elf/start.S: New file.
* sysdeps/cris/machine-gmon.h: New file.
* sysdeps/cris/memcopy.h: New file.
* sysdeps/cris/memusage.h: New file.
* sysdeps/cris/setjmp.S: New file.
* sysdeps/cris/sysdep.h: New file.
* sysdeps/cris/wordcopy.c: New file.
2001-04-08 Hans-Peter Nilsson <hp@axis.com>
* elf/elf.h: Add new relocations for CRIS.
2001-04-08 Hans-Peter Nilsson <hp@axis.com>
* shlib-versions: Add cases for Linux on CRIS.
2001-04-08 Hans-Peter Nilsson <hp@axis.com>
* configure.in (ASM_LINE_SEP tests): Handle CRIS assembly, with
';' for comments and '@' for line separator.
2001-04-08 Hans-Peter Nilsson <hp@axis.com>
* sysdeps/unix/sysv/linux/hppa/sysdep.h (INLINE_SYSCALL): Fix
typo; s/==/=/ for assignment.
2001-04-08 Hans-Peter Nilsson <hp@axis.com>
* malloc/Makefile: Correct comment; mtrace is Perl, not AWK.
2001-04-08 Hans-Peter Nilsson <hp@axis.com>
* iconv/gconv_simple.c (internal_ucs4_loop_unaligned): Check for
empty input before checking full output.
2001-04-08 Hans-Peter Nilsson <hp@axis.com>
* iconv/gconv.c (__gconv): Don't derefer parameter cd before
checking if == -1L.
2001-04-08 Ulrich Drepper <drepper@redhat.com>
* inet/rexec.c (rexec_af): Avoid calling perror with errno being set.
2001-03-17 Ulrich Drepper <drepper@redhat.com>
* inet/Makefile (tests): Remove left-over comment.
* posix/unistd.h: Change type of second parameter back to size_t
as per upcoming XPG6.
* sysdeps/unix/sysv/aix/gethostname.c: Change type of second
parameter back to size_t as per upcoming XPG6.
* sysdeps/unix/sysv/sysv4/gethostname.c: Likewise.
* sysdeps/unix/sysv/gethostname.c: Likewise.
* sysdeps/mach/hurd/gethostname.c: Likewise.
* sysdeps/generic/gethostname.c: Likewise.
* inet/arpa/inet.h: Don't include <sys/types.h>. Define socklen_t
if not already happened.
* inet/netinet/in.h: Don't include <sys/types.h>, use <bits/types.h>.
Don't include <limits.h> and <bits/sockaddr.h>.