the __ctype_* compat symbols, so the relocs generated bind to the
right versioned global symbol in the shared object.
* elf/do-rel.h (elf_dynamic_do_rel): Mask off 0x8000 bit (hidden flag)
from the value taken from the DT_VERSYM table.
* elf/dl-runtime.c (fixup, profile_fixup): Likewise.
* sysdeps/mips/dl-machine.h (__dl_runtime_resolve): Likewise.
(RESOLVE_GOTSYM): Likewise.
Variable declarations removed.
(__ctype_b_loc, __ctype_toupper_loc, __ctype_tolower_loc): Declare
these functions to replace them.
(__isctype, tolower, toupper, _tolower, _toupper): Use those accessor
functions plus an indirection rather than the old global variables.
* include/ctype.h (__isctype, tolower, _tolower, toupper, _toupper):
Macros removed.
(__ctype_b_loc, __ctype_toupper_loc, __ctype_tolower_loc): New extern
inline functions.
* ctype/ctype-info.c: Revert last reversion back the other way.
Define tsd vars CTYPE_B, CTYPE_TOLOWER, CTYPE_TOUPPER.
Define real function versions of include/ctype.h inlines here.
* ctype/Versions (libc: GLIBC_2.3): Add __ctype_b_loc,
__ctype_tolower_loc, __ctype_toupper_loc.
* locale/lc-ctype.c: Revert last reversion back the other way.
(_nl_postload_ctype): If current thread uses the global locale,
update its tsd vars.
* locale/uselocale.c (__uselocale): Update tsd vars from new locale.
* hurd/hurd/threadvar.h (enum __hurd_threadvar_index): Add CTYPE_B,
CTYPE_TOLOWER, CTYPE_TOUPPER.
* sysdeps/generic/bits/libc-tsd.h (__libc_tsd_address): New macro.
* sysdeps/mach/hurd/bits/libc-tsd.h (__libc_tsd_address): Renamed
from __libc_tsd_threadvar_location.
(__libc_tsd_set, __libc_tsd_get): Update uses.
* ctype/ctype.h: Undo the patch before the last one. Put back the
macro definitions for the standard functions to access the
classification and mapping arrays.
* include/ctype.h: Partly revert last patch. Move the macro
definitions for the exported functions back to the public header.
#undef all the macros defined here before redefining.
* ctype/ctype-info.c: Revert last patch.
* locale/lc-ctype.c: Revert last patch.
Instead, make the single allocation of the structure larger to hold
the name strings.
* locale/duplocale.c (__duplocale): Don't strdup names individually.
Instead, calculate size for a single allocation and copy into it.
* locale/freelocale.c (__freelocale): Don't free names individually.
* locale/uselocale.c (__uselocale): Return previous locale when
setting a new one.
* locale/newlocale.c: Commit changes from 2002-08-30
batch where I failed to commit this file:
(__newlocale): Fill in __names array.
2002-08-31 Ulrich Drepper <drepper@redhat.com>
* locale/localeinfo.h: Pretty printing.
* stdio-common/vfprintf.c (vfprintf): Remove duplicate ifs in
form_number handling.
(__aux_init_cache): New function.
(__aux_init_cache): New function.
* locale/programs/locarchive.c (struct oldlocrecent): New type.
(oldlocrecentcmp): New function.
* sysdeps/x86_64/fpu/bits/mathinline.h: New file.
* sysdeps/x86_64/fpu/s_copysign.S: New file.
* sysdeps/x86_64/fpu/s_copysignf.S: New file.
* sysdeps/x86_64/fpu/s_copysignl.S: New file.
* sysdeps/x86_64/fpu/s_finitel.S: New file.
* sysdeps/x86_64/fpu/s_fmax.S: New file.
* sysdeps/x86_64/fpu/s_fmaxf.S: New file.
* sysdeps/x86_64/fpu/s_fmaxl.S: New file.
* sysdeps/x86_64/fpu/s_fmin.S: New file.
* sysdeps/x86_64/fpu/s_fminf.S: New file.
* sysdeps/x86_64/fpu/s_fminl.S: New file.
* locale/programs/locarchive.c (struct nameent, struct dataent): New
types.
* sysdeps/unix/sysv/linux/x86_64/sys/io.h: New file.
* sysdeps/x86_64/fpu/s_llrint.S: New file.
* sysdeps/x86_64/fpu/s_llrintf.S: New file.
* sysdeps/x86_64/fpu/s_llrintl.S: New file.
* sysdeps/x86_64/fpu/s_lrint.S: New file.
* sysdeps/x86_64/fpu/s_lrintf.S: New file.
* sysdeps/x86_64/fpu/s_lrintl.S: New file.
* sysdeps/mips/fpu/fenv_libc.h (CAUSE_MASK): New macro.
(CAUSE_SHIFT): New macro.
* sysdeps/sparc/sparc64/configure.in: New file.
* sysdeps/unix/sysv/linux/x86_64/readelflib.c: New file.
* sysdeps/unix/sysv/linux/x86_64/bits/socket.h: New file.
* sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h: New file.
* sysdeps/unix/sysv/linux/x86_64/bits/shm.h: New file.
* sysdeps/x86_64/bits/setjmp.h: New file.
* sysdeps/unix/sysv/linux/x86_64/bits/sem.h: New file.
* sysdeps/unix/sysv/linux/x86_64/bits/resource.h: New file.
* elf/tst-tls1.c: Move #include "tls-macros.h" inside #ifdef USE_TLS.
* sysdeps/unix/sysv/linux/mips/sys/user.h: New file.
* config.h.in (HAVE_BUILTIN_MEMSET): New macro.
* elf/dl-deps.c (_dl_build_local_scope): New function.
* elf/dl-lookup.c (_dl_debug_bindings): New function.
(elf_machine_rela, elf_machine_rela_relative): New functions.
(elf_machine_rela, elf_machine_rela_relative): New functions.
* elf/dl-lookup.c (lookup_cache, lookup_cache_versioned): New
functions.
_nl_current_names; otherwise use the locale object.
2002-08-29 Roland McGrath <roland@frob.com>
* sysdeps/mach/hurd/bits/local_lim.h (NAME_MAX): New macro.
2002-08-29 Roland McGrath <roland@redhat.com>
Change argument type from int to intptr_t.
* locale/global-locale.c (__libc_tsd_LOCALE_data): Conditionalize the
initializer on [! _HURD_THREADVAR_H] (bad kludge).
* sysdeps/mach/hurd/i386/init-first.c (init): Initialize
_HURD_THREADVAR_LOCALE slot to &_nl_global_locale.
* hurd/hurdsig.c (_hurdsig_init): Likewise. Zero other slots.
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.
* locale/xlocale.c: Revert changes putting _nl_global_locale here.
This file again just defines _nl_C_locobj.
(_nl_C_locobj): Use a categories.def iterator in the initializer.
* locale/global-locale.c: New file. Define _nl_global_locale here,
using all weak references in the initializer.
* locale/Makefile (aux): Add global-locale.
* locale/localeinfo.h (_nl_global_locale, _NL_CURRENT_LOCALE): Make
these unconditional, along with the tsd decl.
[!SHARED && HAVE___THREAD && HAVE_WEAK_SYMBOLS] (NL_CURRENT_INDIRECT):
Define it under these conditions.
[NL_CURRENT_INDIRECT]: Test this instead of [! SHARED].
Don't declare _nl_current. Declare _nl_current_LC_FOO as
`extern __thread struct locale_data *const *'.
[NL_CURRENT_INDIRECT]
(_NL_CURRENT_DATA, _NL_CURRENT, _NL_CURRENT_WSTR): Add indirection.
[NL_CURRENT_INDIRECT] (_NL_CURRENT_DEFINE): Rewritten. Define
the thread variable _nl_current_LC_FOO and also a special absolute
symbol _nl_current_LC_FOO_used.
* locale/uselocale.c (__uselocale) [NL_CURRENT_INDIRECT]:
Set each _nl_current_LC_FOO symbol to point into the new locale,
using weak references to test if _nl_current_LC_FOO_used was linked in.
* locale/setlocale.c [! SHARED]: Replace this conditional ...
[NL_CURRENT_INDIRECT]: ... with this one.
(_nl_current, _nl_C): Variables removed.
[NL_CURRENT_INDIRECT] (_nl_current_used): New variable, table of
weak references to _nl_current_LC_FOO_used.
[NL_CURRENT_INDIRECT] (CATEGORY_USED): Define using that table.
(free_category): New function, broken out of ...
(free_mem): ... here. Call that.
(free_mem) [NL_CURRENT_INDIRECT]: Use a categories.def iterator
instead of a loop.
__USING_NAMESPACE_C99 depending on _GLIBCPP_USE_NAMESPACES.
* 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>
* locale/programs/locarchive.c (insert_name): Suppress warnings about
hash collisions if be_quiet.
* locale/locale.h (__newlocale, __duplocale, __freelocale,
__uselocale): Don't declare these any more.
* include/locale.h (__uselocale): Declare here instead, using __typeof.
* locale/locale.h (__newlocale, __duplocale, __freelocale,
__uselocale): Don't declare these any more.
* include/locale.h (__uselocale): Declare here instead, using __typeof.
2002-08-27 Ulrich Drepper <drepper@redhat.com>
* sysdeps/arm/Dist: Add bits/link.h.
* sunrpc/Makefile: Distribute thrsvc.
* stdio-common/Makefile: Remove more left-overs from old stdio.
* include/linewrap.h: Removed.
* libio/bug-mmap-fflush.c: Rewrite to not touch source directory.
* intl/Makefile (distribute): Add plural-eval.c.
* stdio-common/Makefile (headers): Remove bits/stdio_lim.h. This
file isn't distributed. Add special rules to install bits/stdio_lim.h.
* Make-dist: Remove traces of old stdio.
* Makeconfig: Likewise.
* locale/Makefile (localedef-aux): New variable. Only md5
assigned to it. These files are not ddistributed in this directory.
* sysdeps/unix/sysv/linux/s390/Dist: Add sys/procfs.h.
* sysdeps/unix/sysv/linux/s390/s390-64/Dist: Remove sys/procfs.h.
* sysdeps/unix/sysv/linux/s390/s390-32/Dist: Likewise.
* sysdeps/unix/sysv/linux/Dist: Remove sys/sendfile.h.
2002-08-26 Ulrich Drepper <drepper@redhat.com>
* libio/Makefile (tests): Add bug-fopena+.
* libio/bug-fopena+.c: New file.
* stdio-common/tst-swprintf.c (main): Add casts to avoid warnings.
* locale/xlocale.c: Fix the last change. The variable still has
to end in _data.
* sysdeps/generic/bits/libc-tsd.h [!(USE_TLS && HAVE___THREAD)]
(__libc_tsd_set): Add _data prefix to variable name.
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.
circular dependencies only if the locale in question hasn't
been finished.
* locale/programs/linereader.c (get_string): Pass LC_CTYPE not
CTYPE_LOCALE to load_locale.
* locale/programs/locfile.c (locfile_read): Don't include
unneeded but available locales in locale_mask.
* locale/programs/locarchive.c (enlarge_archive): If quiet, don't
print any messages about enlarging archive.
* 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.