Commit Graph

18 Commits

Author SHA1 Message Date
Ulrich Drepper
8dab36a119 Update.
2003-09-12  Ulrich Drepper  <drepper@redhat.com>

	* grp/Makefile (CFLAGS-getgrgid_r.c, CFLAGS-getgrnam_r.c,
	CFLAGS-fgetgrent.c, CFLAGS-fgetgrent_r.c, CFLAGS-putgrent.c,
	CFLAGS-initgroups.c, CFLAGS-getgrgid.c): Add -fexceptions.
	* inet/Makefile (CFLAGS-either_ntoh.c, CFLAGS-either_hton.c,
	CFLAGS-getnetgrent.c, CFLAGS-getnetgrent_r.c): Likewise.
	* io/Makefile (CFLAGS-posix_fallocate.c, CFLAGS-posix_fallocate64.c):
	Likewise.
	* misc/Makefile (CFLAGS-err.c): Likewise.
	* posix/Makefile (CFLAGS-getaddrinfo.c, CFLAGS-spawn.c,
	CFLAGS-spawnp.c, CFLAGS-spawni.c, CFLAGS-pause.c, CFLAGS-glob.c,
	CFLAGS-glob64.c): Likewise.
	* pwd/Makefile (CFLAGS-getpw.c): Likewise.
	* shadow/Makefile (CFLAGS-fgetspent.c, CFLAGS-fgetspent_r.c,
	CFLAGS-putspent.c, CFLAGS-getspnam.c, CFLAGS-getspnam_r.c): Likewise.
	* stdio-common/Makefile (CFLAGS-cuserid.c): Likewise.
	* sunrpc/Makefile (CFLAGS-openchild.c): Likewise.

	* stdlib/Makefile (CFLAGS-mkstemp.c): Remove definition.

	* libio/stdio.h: Remove __THROW from cuserid prototype.

	* locale/loadarchive.c: Use only non-cancelable interfaces.
	* resolv/herror.c (herror): Likewise.

	* malloc/hooks.c: Before using IO stream mark stream so it uses
	only non-cancelable interfaces.
	* malloc/malloc.c: Likewise.
	* posix/getopt.c: Likewise.


2003-09-11  Jakub Jelinek  <jakub@redhat.com>

	* Makerules (LDFLAGS-c.so): Remove -u __register_frame.

2003-09-12  Ulrich Drepper  <drepper@redhat.com>

	* stdio-common/stdio_ext.h: Mark most functions with __THROW.

	* misc/err.h: Remove __THROW from all prototypes.

	* posix/getopt.h (__THROW): Define if not already defined.  Add
	__THROW to the getopt functions.

2003-09-11  Ulrich Drepper  <drepper@redhat.com>

	* io/Makefile (CFLAGS-lockf.c): Add -fexceptions.
	(CFLAGS-fts.c): Likewise.
	* io/fcntl.h: Remove __THROW from lockf prototypes.
	* io/fts.h: Remove most __THROW.
2003-09-12 22:37:19 +00:00
Ulrich Drepper
f6e50e66ad Update.
2002-11-05  Jakub Jelinek  <jakub@redhat.com>

	* iconv/gconv_dl.c (free_mem): Clear loaded.
	* locale/loadarchive.c (_nl_archive_subfreeres): Call locale_data's
	cleanup if any.

	* sysdeps/unix/sysv/linux/fexecve.c: Include <stdio.h>.
2002-11-05 19:21:56 +00:00
Roland McGrath
c877418f2e * include/libc-symbols.h (__libc_freeres_fn_section, libc_freeres_fn):
New macros.
	* elf/dl-close.c (free_mem): Use libc_freeres_fn macro, remove
	text_set_element.
	* elf/dl-libc.c (free_mem): Likewise.
	* iconv/gconv_conf.c (free_mem): Likewise.
	* iconv/gconv_db.c (free_mem): Likewise.
	* iconv/gconv_dl.c (free_mem): Likewise.
	* iconv/gconv_cache.c (free_mem): Likewise.
	* intl/finddomain.c (free_mem): Likewise.
	* intl/dcigettext.c (free_mem): Likewise.
	* locale/setlocale.c (free_mem): Likewise.
	* misc/fstab.c (fstab_free): Likewise.
	* nss/nsswitch.c (free_mem): Likewise.
	* posix/regcomp.c (free_mem): Likewise.
	* resolv/gai_misc.c (free_res): Likewise.
	* stdlib/fmtmsg.c (free_mem): Likewise.
	* sunrpc/clnt_perr.c (free_mem): Likewise.
	* sysdeps/generic/setenv.c (free_mem): Likewise.
	* sysdeps/unix/sysv/linux/shm_open.c (freeit): Likewise.
	* sysdeps/pthread/aio_misc.c (free_res): Likewise.
	* time/tzset.c (free_mem): Likewise.
	* malloc/mtrace.c (release_libc_mem): Add __libc_freeres_fn_section.
	* locale/loadarchive.c (_nl_archive_subfreeres): Likewise.
	* malloc/set-freeres.c (__libc_freeres): Likewise.

	* login/getutent.c: Include stdlib.h instead of stddef.h.
	(buffer): Change into pointer to utmp, add libc_freeres_ptr.
	(__getutent): Allocate buffer the first time it is run.
	* login/getutid.c: Include stdlib.h instead of stddef.h.
	(buffer): Change into pointer to utmp, add libc_freeres_ptr.
	(__getutid): Allocate buffer the first time it is run.
	* login/getutline.c: Include stdlib.h instead of stddef.h.
	(buffer): Change into pointer to utmp, add libc_freeres_ptr.
	(__getutline): Allocate buffer the first time it is run.
	* malloc/mtrace.c (malloc_trace_buffer): Change into char *.
	(mtrace): Allocate malloc_trace_buffer.
	* resolv/nsap_addr.c (inet_nsap_ntoa): Decrease size of tmpbuf.
	* resolv/ns_print.c (ns_sprintrrf): Decrease size of t.
	* string/strerror.c: Include libintl.h and errno.h.
	(buf): New variable.
	(strerror): Only allocate buffer if actually needed (unknown error).
	* time/tzfile.c (transitions): Add libc_freeres_ptr.
	(freeres): Remove.

2002-10-25  Jakub Jelinek  <jakub@redhat.com>

	* include/libc-symbols.h (libc_freeres_ptr): New macro.
	* malloc/set-freeres.c (__libc_freeres_ptrs): Define using
	symbol_set_define.
	(__libc_freeres): Free all pointers in that section.
	* Makerules (build-shlib): Add $(LDSEDCMD-$(@F:lib%.so=%).so) to sed
	commands when creating .lds script.
	(LDSEDCMD-c.so): New variable.
	* inet/rcmd.c (ahostbuf): Change into char *.  Add libc_freeres_ptr.
	(rcmd_af): Use strdup to allocate ahostbuf.
	* inet/rexec.c (ahostbuf): Change into char *.  Add libc_freeres_ptr.
	(rexec_af): Use strdup to allocate ahostbuf.
	* stdio-common/reg-printf.c (printf_funcs): Remove.
	(__printf_arginfo_table): Change into printf_arginfo_function **.
	Add libc_freeres_ptr.
	(__register_printf_function): Allocate __printf_arginfo_table
	and __printf_function_table the first time it is called.
	* stdio-common/printf-parse.h (__printf_arginfo_table): Change into
	printf_arginfo_function **.
	(parse_one_spec): Add __builtin_expect.
	* grp/fgetgrent.c (buffer): Add libc_freeres_ptr.
	(free_mem): Remove.
	* inet/getnetgrent.c (buffer): Add libc_freeres_ptr.
	(free_mem): Remove.
	* intl/localealias.c (libc_freeres_ptr): Define if !_LIBC.
	(string_space, map): Add libc_freeres_ptr.
	(free_mem): Remove.
	* misc/efgcvt.c (FCVT_BUFPTR): Add libc_freeres_ptr.
	(free_mem): Remove.
	* misc/mntent.c (getmntent_buffer): Add libc_freeres_ptr.
	(free_mem): Remove.
	* crypt/md5-crypt.c (libc_freeres_ptr): Define if !_LIBC.
	(buffer): Add libc_freeres_ptr.
	(free_mem): Remove for _LIBC.
	* nss/getXXbyYY.c (buffer): Add libc_freeres_ptr.
	(free_mem): Remove.
	* nss/getXXent.c (buffer): Add libc_freeres_ptr.
	(free_mem): Remove.
	* pwd/fgetpwent.c (buffer): Add libc_freeres_ptr.
	(free_mem): Remove.
	* resolv/res_hconf.c (ifaddrs): Add libc_freeres_ptr.
	(free_mem): Remove.
	* shadow/fgetspent.c (buffer): Add libc_freeres_ptr.
	(free_mem): Remove.
	* sysdeps/posix/ttyname.c (getttyname_name): Add libc_freeres_ptr.
	(free_mem): Remove.
	* sysdeps/unix/sysv/linux/getsysstats.c (mount_proc): Add
	libc_freeres_ptr.
	(free_mem): Remove.
	* sysdeps/unix/sysv/linux/ttyname.c (getttyname_name, ttyname_buf): Add
	libc_freeres_ptr.
	(free_mem): Remove.

2002-10-30  Jakub Jelinek  <jakub@redhat.com>

	* malloc/obstack.c [_LIBC] (obstack_free): Change into strong_alias
	instead of duplicating the whole function in libc.
2002-11-01 20:44:15 +00:00
Roland McGrath
0f283ffc5e * sysdeps/generic/libc-tls.c (__pthread_initialize_minimal): Pass
TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN instead of 0, 1.

	* include/getopt.h: Include <features.h> before <posix/getopt.h>.

	* locale/findlocale.c (_nl_remove_locale): Don't search in
	_nl_locale_file_list if DATA->alloc is ld_archive.
	Use _nl_unload_locale to do the rest of the work.

	* locale/loadarchive.c (_nl_load_locale_from_archive): Set usage_count
	of new structure to UNDELETABLE.

	* wctype/wctype.h (iswalnum, iswalpha, iswcntrl, iswdigit, iswlower,
	iswgraph, iswprint, iswpunct, iswspace, iswupper, iswxdigit, iswblank,
	towlower, towupper): Macros removed.
	* ctype/ctype.h (__tobody): Put parens around macro argument.
	(__isctype): Macro removed.
	(__ctype_b, __ctype_tolower, __ctype_toupper): Decls removed.
	(isalnum, isalpha, iscntrl, isdigit, islower, isgraph, isprint,
	ispunct, isspace, isupper, isxdigit, isblank, _tolower, _toupper,
	tolower, toupper): Macros and inlines removed.
	* include/ctype.h [! NOT_IN_libc]
	(isalnum, isalpha, iscntrl, isdigit, islower, isgraph, isprint,
	ispunct, isspace, isupper, isxdigit, isblank, _tolower, _toupper,
	tolower, toupper): Define here instead, using _NL_CURRENT.
	* ctype/ctype.c (__ctype_tolower, __ctype_toupper): Define as macros
	using _NL_CURRENT.
	* ctype/ctype-extn.c (__ctype_tolower, __ctype_toupper): Likewise.
	* ctype/ctype-info.c (__ctype_b, __ctype_tolower, __ctype_toupper):
	Renamed these to __ctype_old_*. Define old names only for SHLIB_COMPAT.
	(__ctype32_b, __ctype32_tolower, __ctype32_toupper): Likewise.
	(__ctype32_wctrans, __ctype32_wctrans, __ctype32_width): Removed.
	* locale/lc-ctype.c (_nl_postload_ctype): Use renamed variables,
	conditional on SHLIB_COMPAT.  Don't set removed variables at all.
	* wctype/wcfuncs.c: Use _NL_CURRENT instead of those globals.
	* wcsmbs/wcwidth.h (internal_wcwidth): Likewise.
	* resolv/res_init.c [RESOLVSORT] (sort_mask): Renamed sort_mask_chars.
	(ISSORTMASK): Update use.
	* intl/localealias.c [__GNUC__]: #undef alloca before #define.
	* nss/nss_files/files-XXX.c (last_use): Rename `none' to `nouse'.
	(_nss_files_getENTNAME_r): Likewise.
	* nss/nss_files/files-alias.c (last_use, _nss_files_getaliasent_r):
	Likewise.

	* Makerules (all-nonlib): Renamed from all-tests.
	Include $(others) here too.
	* locale/Makefile (CPPFLAGS-locale, CPPFLAGS-localedef,
	CPPFLAGS-ld-ctype, CPPFLAGS-ld-time, CPPFLAGS-ld-numeric,
	CPPFLAGS-ld-monetary, CPPFLAGS-ld-collate, CPPFLAGS-ld-identification,
	CPPFLAGS-charmap, CPPFLAGS-locarchive, CPPFLAGS-linereader,
	CPPFLAGS-charmap-dir): Variables removed.  Instead, catch all
	the program modules via cppflags-iterator.mk.
	* sunrpc/Makefile (CPPFLAGS-rpc_main): Variable removed.
	Instead, catch all rpcgen-objs via cppflags-iterator.mk.

	* posix/tst-getconf.sh: If no third arg, work with static linking.
2002-09-01 12:39:40 +00:00
Ulrich Drepper
dd4f211573 Update.
2002-08-28  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/ia64/elf/configure.in (PI_STATIC_AND_HIDDEN): Define
	unconditionally.
	* sysdeps/alpha/elf/configure.in (libc_cv_alpha_hidden_gprel): New
	check.
	(PI_STATIC_AND_HIDDEN): Define if check succeeded.

2002-08-28  Jakub Jelinek  <jakub@redhat.com>

	* locale/loadarchive.c (_nl_load_locale_from_archive): Add fd >= 0
	check to close_and_out close.  Replace return NULL statements where
	fd might be >= 0 with goto close_and_out.  Close the file descriptor
	when it is no longer needed.
2002-08-28 22:37:20 +00:00
Roland McGrath
a3f9038c87 Roland McGrath <roland@redhat.com>
* locale/hashval.h (compute_hashval): Use prototype defn.
	(hashval_t): New macro, defined to unsigned long int
	if not already defined.
	(compute_hashval): Return hashval_t instead of unsigned long int.
	* locale/loadarchive.c (hashval_t): New macro.
	* locale/programs/locarchive.c: Include hashval.h directly instead
	of simple-hash.h.
	(compute_hashval, hashval_t): Define these macros first.
	(insert_name): Use archive_hashval instead of compute_hashval.
	(add_locale, delete_locales_from_archive): Likewise.

2002-08-28  Jakub Jelinek  <jakub@redhat.com>
2002-08-28 07:29:53 +00:00
Ulrich Drepper
6dd67bd565 Update.
2002-08-24  Ulrich Drepper  <drepper@redhat.com>

	* locale/programs/charmap.c (charmap_new_char): Don't use
	ULONG_MAX as maximum UCS4 value.

	* sysdeps/unix/sysv/linux/ia64/sys/user.h: New file.

	* sysdeps/generic/strtol.c: We don't need the isascii test in glibc.

	* malloc/hooks.c (public_sET_STATe): use size_t as type for i.
	* malloc/malloc.c (mALLINFo): Likewise.

	* libio/wstrops.c (_IO_wstr_pbackfail): Use WEOF in comparison.

	* libio/wfileops.c (_IO_wfile_overflow): Use EOF not WEOF when
	examining result of _IO_do_flush call.

	* stdio-common/vfprintf.c (vfprintf): Use correct type in va_arg.
	Use prec not spec when sizing buffers.

	* catgets/open_catalog.c (__open_catalog): Add casts to avoid warnings.
	* locale/loadarchive.c (_nl_load_locale_from_archive): Likewise.
	* locale/loadlocale.c (_nl_intern_locale_data): Likewise.
	* stdio-common/vfscanf.c (inchar): Likewise.
	* misc/efgcvt_r.c (fcvt_r): Likewise.
	* elf/dl-misc.c (_dl_debug_vdprintf): Likewise.
	* elf/readlib.c (process_file): Likewise.
	* elf/sprof.c (load_profdata): Likewise.
	* sysdeps/ia64/hp-timing.h (HP_TIMING_PRINT): Likewise.
	* locale/programs/linereader.c (get_toplvl_escape): Likewise.
	* locale/programs/charmap.c (charmap_read): Likewise.
	* libio/fileops.c: Likewise.
	* libio/fmemopen.c: Likewise.
	* stdlib/strtod.c: Likewise.
	* elf/dl-load.c: Likewise.
	* iconv/iconvconfig.c: Likewise.
	* iconv/iconv_prog.c (process_block): Likewise.

	* sysdeps/unix/sysv/linux/ia64/Makefile: Define _ASM_IA64_CURRENT_H
	macro to calm down the compiler.

	* iconv/gconv_cache.c (__gconv_load_cache): Add cast to avoid warning.

	* sysdeps/ia64/elf/initfini.c: Don't use newlines embedded in string.

	* sysdeps/unix/sysv/linux/i386/sysdep.S: Update comment regarding
	placement of errno definition.
	* sysdeps/unix/sysv/linux/m68k/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/mips/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S: Likewise.

	* resolv/nss_dns/dns-host.c (MAXPACKET): Increase minimum value
	from 1024 to 65536, to avoid buffer overrun.

2002-08-16  Paul Eggert  <eggert@twinsun.com>

	* resolv/gethnamaddr.c (MAXPACKET): Increase minimum value
	from 1024 to 65536, to avoid buffer overrun.
	* resolv/res_query.c (MAXPACKET): Likewise.

	architectures.
2002-08-25 04:51:08 +00:00
Andreas Jaeger
c0ad824e40 Update.
2002-08-23  Andreas Jaeger  <aj@suse.de>

	* locale/loadarchive.c: Include <stdlib.h> for prototypes of
	alloca, free, qsort.

	* dlfcn/bug-dlsym1-lib1.c (foo): Add prototype to avoid warning.

	* sysdeps/ieee754/flt-32/e_jnf.c: Remove unused variable.
	* sysdeps/ieee754/ldbl-96/e_j0l.c: Likewise.

	* sysdeps/generic/fgetxattr.c: New file.
	* sysdeps/generic/flistxattr.c: New file.
	* sysdeps/generic/fremovexattr.c: New file.
	* sysdeps/generic/fsetxattr.c: New file.
	* sysdeps/generic/getxattr.c: New file.
	* sysdeps/generic/listxattr.c: New file.
	* sysdeps/generic/lgetxattr.c: New file.
	* sysdeps/generic/llistxattr.c: New file.
	* sysdeps/generic/lremovexattr.c: New file.
	* sysdeps/generic/lsetxattr.c: New file.
	* sysdeps/generic/removexattr.c: New file.
	* sysdeps/generic/setxattr.c: New file.

	* misc/sys/xattr.h: New file, contributed by Christoph Hellwig
	<hch@lst.de>.

	* misc/Makefile (headers): Add sys/xattr.h.
	(routines): Add *xattr calls.

	* misc/Versions: Add *xattr calls with version 2.3.

	* sysdeps/unix/sysv/linux/m68k/Versions: Remove *xattr syscalls.
	* sysdeps/unix/sysv/linux/s390/s390-32/Versions: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/Versions: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/Versions: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/Versions: Likewise.
	* sysdeps/unix/sysv/linux/ia64/Versions: Likewise.
	* sysdeps/unix/sysv/linux/alpha/Versions: Likewise.
	* sysdeps/unix/sysv/linux/arm/Versions: Likewise.

	* sysdeps/powerpc/elf/libc-start.c
	* sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
2002-08-23 09:29:27 +00:00
Roland McGrath
4e20f1e215 * locale/loadarchive.c (_nl_load_locale_from_archive): Check max file
position indicated by locrectab against file bounds before rounding to
	page size.  In mapping loop, always set TO before breaking out of
	contiguous range coalescing loop.

	* locale/loadarchive.c (_nl_load_locale_from_archive): Use MAP_PRIVATE
	(or MAP_COPY if available) instead of MAP_SHARED.
2002-08-22 08:11:48 +00:00
Roland McGrath
b5560a4483 2002-08-20 Jakub Jelinek <jakub@redhat.com>
* locale/loadarchive.c (_nl_load_locale_from_archive): Handle
	partially overlapping mappings.	 Remove unneeded (char *) casts.
	Never allow duplication of ranges in mapped areas.
2002-08-20 19:39:58 +00:00
Roland McGrath
c88b47593a 2002-08-16 Jakub Jelinek <jakub@redhat.com>
* locale/loadarchive.c (_nl_load_locale_from_archive): Braino fix
	in change before last: MAX -> MIN.
2002-08-16 00:08:47 +00:00
Roland McGrath
dac68e4c88 2002-08-15 Roland McGrath <roland@redhat.com>
* locale/loadarchive.c (_nl_load_locale_from_archive) Store strdup of
	the name as passed, rather than the name in the archive dictionary.
2002-08-15 21:58:11 +00:00
Roland McGrath
5bb9991493 2002-08-15 Roland McGrath <roland@redhat.com>
* locale/loadarchive.c (_nl_load_locale_from_archive): Don't read the
	header separately, just map an initial window of 2MB from the file
	and remap if that is not large enough to cover the whole header.
2002-08-15 08:29:16 +00:00
Roland McGrath
7c6af01254 2002-08-13 Jakub Jelinek <jakub@redhat.com>
* locale/loadarchive.c (archfname): Add missing slash.

        * sysdeps/generic/strtold.c (__strtold_internal): Add libc_hidden_def.
        * wcsmbs/wcstold.c (__wcstold_internal): Add libc_hidden_def.
2002-08-13 17:17:02 +00:00
Roland McGrath
7a8bdff02c * sunrpc/svc_authux.c (_svcauth_unix): Remove spurious printf (ugh!).
* sysdeps/i386/bits/byteswap.h (__bswap_16, __bswap_32, __bswap_64):
	Evaluate argument exactly once.  Remove __volatile__ from asm's.

	* include/unistd.h: Use libc_hidden_proto for getdomainname
	and getlogin_r.
	* sysdeps/generic/getdomain.c: Add libc_hidden_def.
	* sysdeps/mach/hurd/getdomain.c: Likewise.
	* sysdeps/unix/getlogin_r.c: Likewise.
	* sysdeps/mach/hurd/getlogin_r.c: Likewise.
	* sysdeps/generic/getlogin_r.c: Likewise.

	* include/rpc/auth_des.h: Use libc_hidden_proto for rtime.
	* sunrpc/rtime.c: Add libc_hidden_def.

	* include/string.h: Use libc_hidden_proto for basename.
	* string/basename.c [_LIBC]: Add libc_hidden_def.

	* sysdeps/unix/sysv/linux/opensock.c (__opensock): socket -> __socket.

	* locale/loadarchive.c: munmap -> __munmap throughout.

	* include/netdb.h: Use libc_hidden_proto for gai_strerror.
	* sysdeps/posix/gai_strerror.c: Add libc_hidden_def.
	* sysdeps/generic/gai_strerror.c: Likewise.
2002-08-12 02:02:20 +00:00
Roland McGrath
f4c16ceedd * locale/loadarchive.c (LOCALEDIR): Remove debugging defn. Oops. 2002-08-11 20:04:32 +00:00
Roland McGrath
a89a3dab80 2002-08-10 Roland McGrath <roland@redhat.com>
* locale/loadarchive.c (_nl_archive_subfreeres): New function.
	* locale/localeinfo.h: Declare it.
	* locale/setlocale.c (free_mem): Don't call _nl_unload_locale on the
	current locale if it's not in the file list.
	Call _nl_archive_subfreeres.
	* include/wctype.h (iswalpha, iswdigit, iswlower, iswspace, iswxdigit,
	towlower, towupper): Add prototypes here too.  Add libc_hidden_proto.
	* wctype/wcfuncs.c (iswalpha, iswdigit, iswlower, iswspace, iswxdigit,
	towlower, towupper): Add libc_hidden_weak.
2002-08-10 23:55:20 +00:00
Roland McGrath
cb09a2cda2 * locale/loadarchive.c (_nl_load_locale_from_archive): Parse locale
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.
2002-08-10 06:22:37 +00:00