2002-08-20 Ulrich Drepper <drepper@redhat.com>
* elf/Versions [ld] (GLIBC_PRIVATE): Add _dl_get_tls_static_info.
* sysdeps/generic/dl-tls.c (_dl_allocate_tls_storage): Move dtv
memory allocation to...
(allocate_dtv): ...here. New function.
(_dl_allocate_tls): Change to take parameter. If parameter is non-NULL
call allocate_dtv instead of _dl_allocate_tls_storage.
(_dl_deallocate_tls): New parameter. Deallocate TCB only if true.
(_dl_get_tls_static_info): New function.
* sysdeps/generic/ldsodefs.h: Adjust prototypes of _dl_allocate_tls
and _dl_deallocate_tls. Add prototype for _dl_get_tls_static_info.
2002-08-15 Ulrich Drepper <drepper@redhat.com>
* csu/Makefile: Define elide-routines.os not static-only-routines.
* include/sched.h (__clone): Add varargs at the end.
* elf/rtld.c (_dl_start): All TLS_INIT_TP to fail and stop in that
case.
(TLS_INIT_HELPER): If defined use it.
* sysdeps/generic/libc-tls.c (TLS_INIT_HELPER): Likewise.
* 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.
the type of locale_data_t's elements.
* locale/programs/locarchive.c (cmpcategorysize): New static function.
(add_locale): Use that to sort the categories by size and put all
those that fit into two pages into the LC_ALL block, instead of
hard-coding it to do everything but LC_CTYPE and LC_COLLATE.
(show_archive_content): Detect categories inside LC_ALL block
directly, instead of hard-coding.
2002-08-14 Jakub Jelinek <jakub@redhat.com>
* locale/programs/locarchive.c (struct oldlocrecent): New.
(oldlocrecentcmp): New.
(enlarge_archive): Re-add locales in the order they were added
to the archive.
(add_locale): Put all the small locale files together, if the small
locale file block would occupy less pages if page size aligned, align
it.
(show_archive_content): Adjust for locale archives optimized for speed.
2002-08-14 Roland McGrath <roland@frob.com>
* configure.in: Use "MISSING" as not-found value for MIG.
* sysdeps/mach/configure.in: Fatal if mig not found.
* configure, sysdeps/mach/configure: Regenerated.
2002-08-11 Philip Blundell <philb@gnu.org>
* sysdeps/arm/Makefile: New file.
2002-08-08 Jakub Jelinek <jakub@redhat.com>
* posix/regcomp.c (parse_reg_exp): If '|' is immediately followed
by another '|', end of regex or enclosing ')', clear branch.
* posix/bug-regex9.c: New test.
* posix/Makefile (tests): Add bug-regex9.
start count condition, use TOTAL instead of variable that was never
set. Fix outer loop termination condition to TOTAL >= after update.
* sysdeps/generic/libc-tls.c (__libc_setup_tls): Initialize
dl_tls_static_align and dl_tls_static_nelem.
* include/signal.h: No libc_hidden_proto for raise,
__libc_current_sigrtmin, __libc_current_sigrtmax.
These need to be overridden by linuxthreads.
* sysdeps/posix/raise.c: Reverted.
* sysdeps/generic/raise.c: Reverted.
* signal/allocrtsig.c: Reverted.
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-08 Jakub Jelinek <jakub@redhat.com>
* sysdeps/wordsize-64/wcstol_l.c (wcstoll_l): Define to something
else and undefine after including wcstol_l.c.
* sysdeps/wordsize-64/wcstoul_l.c (wcstoull_l): Similarly.
2002-05-24 Robert Love <rml@tech9.net>
* posix/Makefile (routines): Add sched_getaffinity and
sched_setaffinity.
* posix/sched.h: Add declarations for sched_getaffinity and
sched_setaffinity.
* sysdeps/generic/sched_getaffinity.c: New file.
* sysdeps/generic/sched_setaffinity.c: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Add sched_getaffinity and
sched_setaffinity.
2002-08-06 Andreas Schwab <schwab@suse.de>
* sysdeps/unix/utime.c: If TIMES is NULL pass it through to utimes.
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.
* sysdeps/generic/ldsodefs.h (struct rtld_global): Replace member
`bool _dl_initial_dtv_malloced' with `void *_dl_initial_dtv'.
* elf/rtld.c (dl_main): Set it to the new dtv for the main thread.
* sysdeps/generic/dl-tls.c (__tls_get_addr): When reallocating the
dtv, check if it matches _dl_initial_dtv; if so, malloc and copy the
old data, abandoning the original memory allocated by rtld at startup,
instead of calling realloc normally.
actually iterate over the elements. Fix typo p_type -> p_vaddr.
* include/pthread.h: Don't declare __pthread_initialize_minimal as
weak here; we declare it weak or strong in the one place we use it.
* sysdeps/generic/libc-start.c: ... which is here.
Don't make the decl weak if [USE_TLS], since static programs need TLS
setup even when single-threaded.
cppflags-iterator.mk, must append .c to $(tests) and $(xtests)
words. Combine the two loops into one on the concatenated list,
including those as well as $(test-srcs).
* elf/dl-minimal.c (__libc_memalign): Guts of malloc moved here,
since we align here with optimally minimal waste anyway.
(malloc): Just call that.
* sysdeps/generic/libc-tls.c (__libc_setup_tls): Set l_tls_offset to
the right variable.
* elf/dl-load.c (_dl_map_object_from_fd): Use p_vaddr, not p_offset,
to compute memory location for l_tls_initimage.
* elf/rtld.c (_dl_start): Likewise.
* sysdeps/generic/libc-tls.c (__libc_setup_tls): Likewise.
* libio/oldiopopen.c: Move #include's before #if SHLIB_COMPAT,
because the .d file is generated in the non-shared case and
so fails to catch them otherwise.
* sysdeps/generic/dl-tls.c (_dl_allocate_tls_storage): New function,
split out of _dl_allocate_tls.
(_dl_allocate_tls_init): Likewise.
(_dl_allocate_tls): Call those.
* sysdeps/generic/ldsodefs.h: Declare them with attribute_hidden.
* elf/rtld.c (dl_main): Call them separately instead of calling
_dl_allocate_tls. Delay _dl_allocate_tls_init until after relocation
is finished, so that the initializer data has been relocated before we
copy it into the main thread's TLS block.
* sysdeps/generic/dl-tls.c (_dl_allocate_tls): Fix off-by-one error in
loop conditions, prevented the last used module from being initialized.
* sysdeps/generic/dl-tls.c (_dl_allocate_tls_storage): New function,
split out of _dl_allocate_tls.
(_dl_allocate_tls_init): Likewise.
(_dl_allocate_tls): Call those.
* sysdeps/generic/ldsodefs.h: Declare them with attribute_hidden.
* elf/rtld.c (dl_main): Call them separately instead of calling
_dl_allocate_tls. Delay _dl_allocate_tls_init until after relocation
is finished, so that the initializer data has been relocated before we
copy it into the main thread's TLS block.
* sysdeps/generic/dl-tls.c (_dl_allocate_tls): Fix off-by-one error in
loop conditions, prevented the last used module from being initialized.
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.
* include/libc-symbols.h: Fix [__ASSEMBLY__] -> [__ASSEMBLER__].
[__ASSEMBLER__] (hidden_weak): Define using hidden_def, or to empty.
[__ASSEMBLER__] (HIDDEN_JUMPTARGET): New macro.
* sysdeps/unix/sysv/linux/i386/makecontext.S: Use it for exit.