2001-04-05 David S. Miller <davem@redhat.com>
* elf/elf.h (HWCAP_SPARC_ULTRA3): Define it.
* sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.h: Add it to
capability flags table and HWCAP_IMPORTANT, increase
_DL_HWCAP_COUNT to 6.
* sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.h: Likewise.
options after $(build-module), which is no longer a single command.
(LDFLAGS-link-rpcuserlibs): New variable to hold those options.
(LDFLAGS-libmachuser-link.so, LDFLAGS-libhurduser-link.so): New
variables using it. Reported by Mark Kettenis <kettenis@gnu.org>.
2001-03-11 Roland McGrath <roland@frob.com>
* elf/rtld.c (dl_main): Add cast to quiet warning.
* elf/dl-load.c (_dl_map_object_from_fd): Likewise.
* iconv/gconv_conf.c (__gconv_get_path): Likewise.
(__gconv_read_conf): Likewise.
* iconv/gconv_db.c (gen_steps): Likewise.
(__gconv_find_transform): Likewise.
* locale/programs/charmap-dir.c (fopen_uncompressed): Likewise.
(fopen_uncompressed): Use const in second argument's type.
2001-03-11 Roland McGrath <roland@frob.com>
* sysdeps/mach/hurd/dl-sysdep.c (__writev): New function.
* mach/mach_error.h: Fix ancient #endif syntax.
* hurd/hurdmalloc.c: Likewise.
* sysdeps/generic/atomicity.h (exchange_and_add, atomic_add,
compare_and_swap): Add volatile qualifier to first arg, to bring
these prototypes in line with all the other implementations.
Add a #warning to remind the builder that these are not atomic.
2001-03-04 Roland McGrath <roland@frob.com>
* hurd/vpprintf.c (vpprintf) [USE_IN_LIBIO]: Use innermore first
member of TEMP_F so its type is _IO_FILE * as expected.
* hurd/fopenport.c (seekio): Conditionalize type of POS argument
on [USE_IN_LIBIO]. Check the value for overflow, since for libio
it might exceed off_t's range.
2001-02-25 Roland McGrath <roland@frob.com>
* sysdeps/mach/hurd/sysd-stdio.c (__stdio_reopen): Use prototype.
* sysdeps/unix/bsd/getpt.c (__posix_openpt): Likewise.
* sysdeps/mach/hurd/i386/intr-msg.h (SYSCALL_EXAMINE): Make this a
macro instead of an inline function,
(MSG_EXAMINE): Likewise.
* hurd/hurd/ioctl.h (_HURD_HANDLE_IOCTLS_1): Remove extraneous ##.
* hurd/get-host.c: Include <string.h> for decls of built-ins.
* hurd/hurdchdir.c: Likewise.
* sysdeps/mach/hurd/i386/sigreturn.c: Likweise.
* sysdeps/mach/hurd/opendir.c: Likewise.
* mach/mach_init.c: Include <unistd.h> for _exit decl.
* mach/errsystems.awk: Give output file a trailing newline.
* mach/Machrules (MIG): Prepend CC='${CC}' to the mig command, so that
the script will use our compiler for the cpp stage.
With --enable-all-warnings we get a whole bunch of warnings,
and these are just a few fixes; there are more needed to silence it.
* mach/mach/mig_support.h (__mig_strncpy, mig_strncpy): Add extern
decls before extern inline defns to quiet gcc warning.
* hurd/hurd/threadvar.h (__hurd_threadvar_location_from_sp): Likewise.
* sysdeps/mach/i386/machine-sp.h (__thread_stack_pointer): Likewise.
* elf/cache.c: Mark and have translated a few more messages.
2001-03-19 Martin Schwidefsky <schwidefsky@de.ibm.com>
* elf/cache.c: Add case for FLAG_S390_LIB64.
* sysdeps/generic/ldconfig.h: Add define for FLAG_S390_LIB64.
* sysdeps/unix/sysv/linux/s390/ldconfig.h: New file.
* sysdeps/unix/sysv/linux/s390/readelflib.c: New file.
2001-03-19 Ulrich Drepper <drepper@redhat.com>
2001-03-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
* shlib-versions: Add rule for Linux on 64 bit S/390.
* sysdeps/s390/s390-64/pt-machine.h: New file.
* sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c: New file.
2001-03-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
* sysdeps/s390/pt-machine.h: Move to...
* sysdeps/s390/s390-32/pt-machine.h: ...here.
Add defines for FLOATING_STACK and ARCH_STACK_MAX_SIZE.
2001-03-12 Jakub Jelinek <jakub@redhat.com>
* csu/Makefile (abi-tag.h): Define OS and version separately, allow
version to be overriden from config.h.
* csu/abi-note.S: Use OS and version separately, include config.h.
* elf/dl-load.c (_dl_osversion): New.
(_dl_map_object_from_fd): Kill some warnings.
(open_verify): Check .note.ABI-tag of the library if present.
* elf/Makefile (CPPFLAGS-dl-load.c): Add -I$(csu-objpfx).
* elf/cache.c (struct cache_entry): Add osversion.
(print_entry): Print osversion.
(print_cache): Pass osversion to it.
(compare): Sort according to osversion.
(save_cache): Set osversion.
(add_to_cache): Add osversion argument.
* sysdeps/generic/ldconfig.h (add_to_cache, process_file,
process_elf_file): Add osversion argument.
* elf/readlib.c (process_file): Likewise.
* sysdeps/generic/readelflib.c (process_elf_file): Likewise.
* sysdeps/unix/sysv/linux/ia64/readelflib.c (process_elf_file,
process_elf32_file, process_elf64_file): Likewise.
* sysdeps/unix/sysv/linux/i386/readelflib.c (process_elf_file,
process_elf32_file, process_elf64_file): Likewise.
* sysdeps/unix/sysv/linux/sparc/readelflib.c (process_elf_file,
process_elf32_file, process_elf64_file): Likewise.
* elf/ldconfig.c (manual_link): Pass it.
(search_dir): Issue diagnostic if two libs with the same soname in
the same directory have different .note.ABI-tag. Record osversion in
dlib_entry and use it from there.
(struct lib_entry): Remove.
(struct dlib_entry): Add osversion.
* sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Check
osversion.
* sysdeps/generic/dl-cache.h (struct file_entry_new): Replace __unused
field with osversion.
* sysdeps/generic/ldsodefs.h (_dl_osversion): Declare.
* sysdeps/unix/sysv/linux/init-first.c: Include ldsodefs.h.
* sysdeps/unix/sysv/linux/dl-osinfo.h (DL_SYSDEP_OSCHECK): Save kernel
version in _dl_osversion.
* sysdeps/unix/sysv/linux/configure.in: Define __ABI_TAG_VERSION.
* Makerules (build-shlib-helper, build-module-helper): New.
(build-shlib, build-module-helper): Make sure .note.ABI-tag comes
early.
* config.h.in (__ABI_TAG_VERSION): Add.
* elf/dl-minimal.c (__strtoul_internal): Set endptr on return.
* sysdeps/unix/sysv/linux/i386/dl-librecon.h (EXTRA_LD_ENVVARS):
Handle LD_ASSUME_KERNEL.
* sysdeps/unix/sysv/linux/dl-librecon.h: New.
2001-03-07 David Mosberger <davidm@hpl.hp.com>
* sysdeps/ia64/bits/fenv.h (FE_NONIEEE_ENV): New macro.
2001-03-07 Jes Sorensen <jes@linuxcare.com>
* sysdeps/unix/sysv/linux/ia64/ioperm.c (_ioperm): Remove unused
variables addr & len.
2001-02-22 Jes Sorensen <jes@linuxcare.com>
* sysdeps/ia64/fpu/feenablxcpt.c (feenableexcept): Remove
punctuation in asm constraint.
2001-03-07 Mark Kettenis <kettenis@gnu.org>
* resolv/netdb.h [__USE_GNU]: Define __need_timespec and include
<time.h> to get definition of `struct timespec'.
2001-03-08 Jakub Jelinek <jakub@redhat.com>
* elf/rtld.c (dl_main): If tracing, warn about undefined symbols if
LD_WARN=1, not if LD_WARN is unset.
2001-03-07 Andreas Schwab <schwab@suse.de>
* elf/ldconfig.h: Moved to ...
* sysdeps/generic/ldconfig.h: ... here.
* sysdeps/unix/sysv/linux/i386/ldconfig.h: New file.
* sysdeps/unix/sysv/linux/m68k/ldconfig.h: New file.
* sysdeps/unix/sysv/linux/ia64/ldconfig.h: New file.
* elf/readlib.c (interpreters, known_libs): Use
SYSDEP_KNOWN_INTERPRETER_NAMES and SYSDEP_KNOWN_LIBRARY_NAMES
instead of hard coding old names.
2001-03-09 Andreas Jaeger <aj@suse.de>
* sysdeps/s390/dl-machine.h (elf_machine_matches_host): Handle
both new and old EM_S390 values.
(EM_S390_OLD): New constant.
* elf/elf.h (EM_S390): Use official value.
2001-02-27 Philip Blundell <pb@futuretv.com>
* elf/elf.h: Add new ARM definitions from latest (B-01)
specification. Correct naming of EF_ARM_ALIGN8 et al.
2001-03-04 Ulrich Drepper <drepper@redhat.com>
* stdio-common/tst-printf.sh: Remove bashisms.
Patch by Matthew Clarke <Matthew_Clarke@mindlink.bc.ca>.
* shlib-versions: Add entry for libanl.
* Versions.def: Add libanl definition.
* shlig-versions: Add entry for libanl.
* resolv/Makefile (distribute): Add gai_misc.h and ga_test.c.
(routines): Add gai_sigqueue.
(extra-libs): Add libanl.
(libanl-routines): New variable.
Add rules to build libanl and ga_test.
* resolv/Versions [libc] (GLIBC_2.2.3): Add __gai_sigqueue.
[libanl]: New library.
* resolv/netdb.h: Add definitions for libanl.
* resolv/getaddrinfo_a.c: New file.
* resolv/gai_cancel.c: New file.
* resolv/gai_error.c: New file.
* resolv/gai_misc.c: New file.
* resolv/gai_misc.h: New file.
* resolv/gai_notify.c: New file.
* resolv/gai_suspend.c: New file.
* resolv/ga_test.c: New file.
* sysdeps/generic/gai_sigqueue.c: New file.
* sysdeps/unix/sysv/linux/gai_sigqueue.c: New file.
* sysdeps/generic/bits/siginfo.h: Allow __need_sigevent_t being defined
and provide only that definition.
* sysdeps/unix/sysv/linux/alpha/bits/siginfo.h: Likewise.
* sysdeps/unix/sysv/linux/bits/siginfo.h: Likewise.
* sysdeps/unix/sysv/linux/ia64/bits/siginfo.h: Likewise.
* sysdeps/unix/sysv/linux/mips/bits/siginfo.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/bits/siginfo.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/bits/siginfo.h: Likewise.
* rt/aio_misc.c: Fix typos in comments.
* rt/lio_listio.c: Pretty printing. Little optimization in request
list handling.
* elf/rtld.c: Remove commented out code.
2001-02-28 Ulrich Drepper <drepper@redhat.com>
* sysdeps/alpha/dl-machine.h (elf_machine_rela): Don't handle
relocations which are not in ld.so if RTLD_BOOTSTRAP is defined.
* sysdeps/powerpc/dl-machine.c (__process_machine_rela): Fix typo.
* elf/dl-misc.c (_dl_debug_vdprintf): Fix type visible on 64-bit
machines.
* sysdeps/unix/sysv/linux/powerpc/sysdep.h (C_TEXT): Define.
* stdlib/Makefile (tests): Don't run tst-fmtmsg when
cross-compiling.
($(objpfx)tst-fmtmsg.out): Pass run-program-prefix.
* stdlib/tst-fmtmsg.sh (test): Use run_program_prefix for static
only builds.
* elf/Makefile (tests): Only run tst-pathopt with shared libs.
2001-02-01 Ulrich Drepper <drepper@redhat.com>
* Makerules (build-shlib): Add $(extra-B-$(@F:lib%.so=%).so).
* configure.in: Test for -z initfirst linker option.
* config.make.in: Add have-z-initfirst.
* elf/dl-init.c (_dl_init): Split out actual initialization code in
new function call_init. If _dl_initfirst is non-NULL initialize first.
* elf/dl-load.c (_dl_map_from_fd): If DF_1_INITFIRST flag is set
remember object in _dl_initfirst.
* elf/soinit.c: Remove special support for calling
__pthread_initialize_minimal.
* conform/conformtest.pl: Add missing $prepend in type test.
* elf/elf.h (SHT_CHECKSUM): New definition.
* posix/tst-fnmatch.input: Add tests for [. .] in locales.
* elf/rtld.c (process_envvars): Call __strtoul_internal instead of
strtoul.
* elf/dl-minimal.c (strtol, __strtol_internal, strtoul): Removed.
(__sigjmp_save): Set __mask_was_saved to zero since we don't save
anything.
* dlfcn/eval.c (__strtol_internal): Define here.
(eval): Use __strtol_internal instead of strtol.
2001-01-11 H.J. Lu <hjl@gnu.org>
* elf/dl-libc.c (do_dlopen): Move DL_STATIC_INIT to ...
* elf/dl-open.c (_dl_open): Here.
* sysdeps/unix/sysv/linux/ia64/dl-static.c (_dl_static_lock):
Make it static.
(_dl_static_init): Initialize the variables every time when possible.
* sysdeps/unix/sysv/linux/ia64/ldsodefs.h (DL_STATIC_INIT):
Undefine it first.
2001-01-05 H.J. Lu <hjl@gnu.org>
* elf/dl-support.c (non_dynamic_init): Move the auxiliary
vector checking to ...
(_dl_aux_init): Here. New function. Defined only if
HAVE_AUX_VECTOR is defined.
* sysdeps/generic/libc-start.c (__libc_start_main): Call
_dl_aux_init for static binaries if HAVE_AUX_VECTOR is defined.
* sysdeps/powerpc/elf/libc-start.c (__libc_start_main): Call
_dl_aux_init.
* sysdeps/unix/sysv/linux/ldsodefs.h (DL_FIND_AUXV): Removed.
(HAVE_AUX_VECTOR): Defined.
(_dl_aux_init): Declared.
* elf/dl-support.c (non_dynamic_init): Don't define DL_FIND_AUXV
if it is not available. Instead use it only if it is available.
* sysdeps/unix/sysv/linux/ldsodefs.h: New file.
2001-01-04 H.J. Lu <hjl@gnu.org>
* elf/dl-support.c (DL_FIND_AUXV): New. Defined if not defined.
(_dl_clktck): Declared.
(non_dynamic_init): Take 3 arguments.
Set _dl_pagesize, _dl_platform and _dl_clktck from AUX.
2001-01-01 Bruno Haible <haible@clisp.cons.org>
Finish implementation of plural form handling.
* intl/dcigettext.c (known_translation_t): Rename 'domain' field to
'domainname'. Remove 'plindex' field. Add 'domain' and
'translation_length' fields.
(transcmp): Don't compare 'plindex' fields.
(plural_lookup): New function.
(DCIGETTEXT): Change cache handing in the plural case. Don't call
plural_eval before the translation and its catalog file have been
found. Remove plindex from cache key. Add 'translation_length' and
'domain' to cache result.
(_nl_find_msg): Remove index argument, return length of translation
to the caller instead. Weaken comparison of string lengths, to account
for plural entries. Call iconv() on the entire result string, not
only on the portion needed so far.
* intl/loadinfo.h (_nl_find_msg): Remove index argument, add lengthp
argument.
* intl/loadmsgcat.c (_nl_load_domain): Adapt to _nl_find_msg change.
2000-12-28 Wolfram Gloger <wg@malloc.de>
* malloc/malloc.c (MALLOC_COPY): Handle case if source and
destination overlap. Assume dest is always below source if
overlapping.
2000-12-30 Ulrich Drepper <drepper@redhat.com>
* elf/dl-close.c (_dl_close): We can ignore the NODELETE flag if the
object was not yet initialized.
2000-12-28 H.J. Lu <hjl@gnu.org>
* elf/dl-deps.c (_dl_map_object_deps): Make sure the DSO state
is always consistent even if its dependency is failed.
* elf/dl-open.c (_dl_open): Increment the open count before
calling _dl_close () in case of failure.
* elf/neededtest4.c: New file.
* elf/neededobj5.c: New file.
* elf/neededobj6.c: New file.
* elf/Makefile (distribute): Add neededobj5.c and neededobj6.c.
(tests): Add neededtest4.
(modules-names): Add neededobj5 and neededobj6.
($(objpfx)neededobj6.so): New target.
($(objpfx)neededtest4): New target.
($(objpfx)neededtest4.out): New target.
2000-12-27 Ben Collins <bcollins@debian.org>
* elf/dl-open.c (_dl_open): Correctly set the new objname pointer
when reallocating the error strings.
Reported by Kalle Olavi Niemitalo <kon@iki.fi>
2000-12-08 Jakub Jelinek <jakub@redhat.com>
* elf/dl-open.c (_dl_open): If objname points right after errstring,
allocate it together with errstring using alloca.
* elf/dl-error.c (_dl_signal_error): If malloc failed, set objname
to "", because it might point to local stack.
2000-12-08 Jakub Jelinek <jakub@redhat.com>
* elf/dl-load.c (fillin_rpath): Don't assume there is '\0' at
cp + len. Compute where from dirname.
Reported by <jreiser@BitWagon.com>.
2000-12-08 Richard Henderson <rth@twiddle.net>
* sysdeps/alpha/_mcount.S: Fix typo.
* sysdeps/alpha/strncpy.S: Likewise.
* sysdeps/alpha/alphaev6/Implies: New file.
* sysdeps/alpha/alphaev67/Implies: New file.
* sysdeps/alpha/alphaev67/ffs.S: New file.
* sysdeps/alpha/alphaev67/ffsll.S: New file.
* sysdeps/alpha/alphaev67/rawmemchr.S: New file.
* sysdeps/alpha/alphaev67/stpcpy.S: New file.
* sysdeps/alpha/alphaev67/stpncpy.S: New file.
* sysdeps/alpha/rawmemchr.S: New file.
* sysdeps/alpha/strcat.S: Tail call to __stxcpy.
* sysdeps/alpha/strcpy.S: Likewise.
From GMP 3.1.1:
* sysdeps/alpha/alphaev6/addmul_1.s: New file.
From rick.gorton@alpha-processor.com:
* sysdeps/alpha/alphaev6/memchr.S: New file.
* sysdeps/alpha/alphaev6/memcpy.S: New file.
* sysdeps/alpha/alphaev6/memset.S: New file.
* sysdeps/alpha/alphaev6/stxcpy.S: New file.
* sysdeps/alpha/alphaev6/stxncpy.S: New file.
* sysdeps/alpha/alphaev67/strcat.S: New file.
* sysdeps/alpha/alphaev67/strchr.S: New file.
* sysdeps/alpha/alphaev67/strlen.S: New file.
* sysdeps/alpha/alphaev67/strncat.S: New file.
* sysdeps/alpha/htonl.S: Use a shorter sequence.
2000-12-08 Jakub Jelinek <jakub@redhat.com>
* inet/getnameinfo.c (getnameinfo): Fix NI_NOFQDN support.
Reported by <pspencer@fields.utoronto.ca>.
2000-12-07 Jes Sorensen <jes@linuxcare.com>
* sysdeps/ia64/elf/start.S (__data_start): Add __data_start variable.
Pointed out by Hans Boehm.
2000-12-07 H.J. Lu <hjl@gnu.org>
* elf/dl-version.c (match_symbol): Check map->l_name[0] for printing.
2000-12-07 Andreas Jaeger <aj@suse.de>
* misc/error.c: Add format attributes for __error and __error_at_line.
* nscd/dbg_log.h: Add format attribute.
2000-12-08 Ulrich Drepper <drepper@redhat.com>
* misc/sys/syslog.h: Add format attributes to syslog and vsyslog.
Patch by Joseph S. Myers <jsm28@cam.ac.uk>.
* sysdeps/generic/dl-cache.c (HWCAP_CHECK): Fix access to _dl_hwcap.
* manual/install.texi: Recommend to set LANGUAGE=C LC_ALL=C during
2000-11-20 Jakub Jelinek <jakub@redhat.com>
* iconvdata/bug-iconv2.c (main): Use %zd in format string.
* io/test-lfs.c (do_test): Cast statbuf.st_size to long long.
* malloc/tst-valloc.c (main): Cast valloc return value to long.
* malloc/tst-obstack.c (verbose_malloc): Use %zd in format string.
* math/test-fpucw.c (main): Use %lx in format string, cast
control words to long.
* stdio-common/tst-fmemopen.c (main): Use %td in format strings.
* stdlib/tst-strtol.c (tests): Avoid (bogus?) decimal constant is so
large that it is unsigned warning.
* sysdeps/unix/sysv/linux/sparc/bits/types.h (__ssize_t): Changing
it to long on sparc64.
2000-11-20 Andreas Jaeger <aj@suse.de>
* nscd/nscd.h (termination_handler): Add noreturn attribute.
(receiv_print_stats): Likewise.
* elf/ldconfig.c (path_hwcap): Cast -1 for proper comparison.
2000-11-15 H.J. Lu <hjl@gnu.org>
* sysdeps/generic/ldsodefs.h (DL_DT_INIT_ADDRESS): Defined if
ELF_FUNCTION_PTR_IS_SPECIAL is not defined.
(DL_DT_FINI_ADDRESS): Likewise.
* sysdeps/ia64/dl-lookupcfg.h (_dl_lookup_address): Set the
return type to ElfW(Addr).
(_dl_function_address): New prototype.
(DL_FUNCTION_ADDRESS): Defined.
(DL_DT_INIT_ADDRESS): Defined as DL_FUNCTION_ADDRESS.
(DL_DT_FINI_ADDRESS): Likewise.
* sysdeps/ia64/Versions (GLIBC_2.2): Add _dl_function_address.
* sysdeps/ia64/dl-machine.h (_dl_start_address): Removed.
(ELF_MACHINE_START_ADDRESS): Changed to DL_FUNCTION_ADDRESS.
* sysdeps/ia64/dl-symaddr.c (_dl_start_address): Renamed to ...
(_dl_function_address): This.
* elf/dl-fini.c (_dl_fini): Use DL_DT_FINI_ADDRESS to get the
function pointer for DT_FINI.
* elf/dl-close.c (_dl_close): Likewise.
* elf/dl-init.c (_dl_init): Use DL_DT_INIT_ADDRESS to get the
function pointer for DT_INIT.
2000-11-16 Jakub Jelinek <jakub@redhat.com>
* sysdeps/generic/printf_fphex.c (__printf_fphex): Compute correctly
end of wexpbuf buffer.
2000-10-28 Ulrich Drepper <drepper@redhat.com>
* elf/dl-load.c (open_verify): Only try to load ET_DYN and ET_EXEC
objects. Reject all other types.
(_dl_map_object_from_fd): Optimize a bit.
* elf/dl-lookup.c (add_dependency): Fix test to check whether
dependency already exists.
* elf/Makefile: Add testobj1 and testobj2 as dependencies of testobj6.
* elf/loadtest.c (main): Add test at the end that everything is
unloaded.
* elf/dl-open.c (dl_open_worker): Fix typo in comment.
* elf/dl-close.c (_dl_close): Don't free memory for global scope
list immediately when empty. Move code to...
(free_mem): ...here. Called as part of __libc_subfreeres list.
* elf/dl-deps.c (_dl_map_object_deps): Put l_initfini array before
r_list array in allocated memory.
* elf/dl-close.c (_dl_close): Optimize access to l_initfini list
and remove use of r_list.
2000-10-24 Ulrich Drepper <drepper@redhat.com>
* elf/dl-close.c (_dl_close): Use correct list (l_initfini) when
computing new opencounts.
* elf/Makefile: Add rules to build and run neededtest3.
* neededtest3.c: New file.
* neededobj4.c: New file.
* elf/neededtest.c (main): Correct tests for failing dlopen.
2000-10-24 Ulrich Drepper <drepper@redhat.com>
Complete revamp of the reference counter handling.
* include/link.h (struct link_map): Add l_idx field.
* elf/dl-close.c: Handle decrementing of reference counters more
correctly. If necessary decrement reference counters of dependencies
of dependencies.
* elf/dl-lookup.c (add_dependency): Only increment reference counter
of the object itself and not also its dependencies.
* elf/dl-open.c: Increment reference counters here.
* elf/dl-deps.c: Remove reference counter handling here.
* elf/dl-load.c: Likewise.
* elf/rtld.c: Adjust for _dl_map_deps not handling reference counters.
* elf/loadtest.c: Print loaded objects at the beginning.
* include/link.h (struct link_map): New bit field l_faked.
* elf/dl-deps.c: Use l_faked field in struct link_map instead of
the magic l_opencount==0.
* elf/dl-load.c: Likewise.
* elf/dl-version.c: Likewise.
* elf/rtld.c: Likewise.
* elf/unload.c: Generate more debugging output.
* elf/neededtest.c: Make it more complicated.
* elf/neededtest2.c: New file.
* elf/Makefile: Add rules to build and run neededtest2.
* elf/dl-load.c (_dl_map_object_from_fd): Split out ELF file
verification in open_verify.
(open_verify): New function. Called instead of open. Ignores valid
files for other architectures.
(open_path): Call open_verify instead of open.
(_dl_map_object): Likewise.
Somewhat based on a patch by Don Dugger <n0ano@valinux.com>.
* io/pwd.c (main): The output was missing a newline.
2000-10-21 Ulrich Drepper <drepper@redhat.com>
* elf/dl-open.c (add_to_global): New function. Split out from
dl_open_worker.
(dl_open_worker): Call add_to_global not only for new objects, also for
previously loaded objects when (mode & RTLD_GLOBAL) and the object
was not yet in the global scope.
* elf/Makefile: Add rules to build and run lateglobal.
* elf/lateglobal.c: New file.
* elf/ltglobmod1.c: New file.
* elf/ltglobmod2.c: New file.
* include/link.h (struct link_map): Add l_soname_added bitfield.
* elf/dl-load.c (_dl_map_object): Remember when we added the
SONAME to the l_libname list and don't try it again.
* elf/dl-close.c: Decrement opencount for all dependencies which can
be removed even if the object is not yet unloaded.
* elf/dl-deps.c (_dl_map_object_deps): If dependency is already in
the list decrement opencount of all dependencies.
* elf/dl-load.c (_dl_map_object_from_fd): Increment object of object
and all dependencies.
(_dl_map_object): Likewise.
* elf/dl-lookup.c (add_dependency): Likewise.
* elf/loadtest.c: Add debug when with more output.
2000-10-19 H.J. Lu <hjl@gnu.org>
* elf/Makefile (distribute): Add neededtest.c, neededobj1.c,
neededobj2.c and neededobj3.c.
(tests): Add neededtest.
(modules-names): Add neededobj1, neededobj2 and neededobj3.
($(objpfx)neededobj1.so): New target.
($(objpfx)neededobj2.so): Likewise.
($(objpfx)neededobj3.so): Likewise.
($(objpfx)neededtest): Likewise.
($(objpfx)neededtest.out): Likewise.
* elf/neededtest.c: New. Based on the bug report from
Allen Bauer <kylix_rd@hotmail.com>.
* elf/neededobj1.c: Likewise.
* elf/neededobj2.c: Likewise.
* elf/neededobj3.c: Likewise.
2000-10-20 Ulrich Drepper <drepper@redhat.com>
* elf/dl-close.c (_dl_close): Decrement reference counter for all
dependencies even if the DSO does not get unloaded.
* elf/dl-load.c (_dl_map_object_from_fd): Pass pointer to ELF header
to elf_machine_matches_host.
* sysdeps/alpha/dl-machine.h (elf_machine_matches_host): Parameter
is now pointer to ELF header.
* sysdeps/arm/dl-machine.h: Likewise.
* sysdeps/generic/dl-machine.h: Likewise.
* sysdeps/hppa/dl-machine.h: Likewise.
* sysdeps/i386/dl-machine.h: Likewise.
* sysdeps/ia64/dl-machine.h: Likewise.
* sysdeps/m68k/dl-machine.h: Likewise.
* sysdeps/mips/dl-machine.h: Likewise.
* sysdeps/mips/mips64/dl-machine.h: Likewise.
* sysdeps/powerpc/dl-machine.h: Likewise.
* sysdeps/s390/dl-machine.h: Likewise.
* sysdeps/sh/dl-machine.h: Likewise.
* sysdeps/sparc/sparc32/dl-machine.h: Likewise.
* sysdeps/sparc/sparc64/dl-machine.h: Likewise.
Patch by Martin Schwidefsksy <schwidefsky@de.ibm.com>.
2000-10-20 Jakub Jelinek <jakub@redhat.com>
* include/limits.h: Include bits/wordsize.h, use #if __WORDSIZE == 64
check instead of #ifdef __alpha__.
* include/bits/xopen_lim.h (WORD_BIT, LONG_BIT): Don't count on
INT_MAX, __INT_MAX__, LONG_MAX or __LONG_MAX__ being defined when
this is included.
* posix/wordexp-tst.sh (testout): Place output file in build
directory. Patch by Joseph S. Myers <jsm28@cam.ac.uk>.
2000-10-15 Ulrich Drepper <drepper@redhat.com>
* elf/dl-error.c (_dl_signal_error): Allocate memory for objname
as well. Reported by Alexander V. Lukyanov <lav@yars.free.net>.
2000-10-14 Ulrich Drepper <drepper@redhat.com>
* math/libm-test.inc (frexp_test): Add L suffix also to parameters.
(hypot_test): Likewise.
* sysdeps/generic/printf_fphex.c: Compute width of decimal point
string correctly. Handle padding correctly.
* sysdeps/ia64/fpu/printf_fphex.c: Use sizeof in _itowa parameters
correctly.
* sysdeps/ieee754/ldbl-128/printf_fphex.c: Likewise.
* sysdeps/ieee754/ldbl-96/printf_fphex.c: Likewise.
2000-10-12 Alan Modra <alan@linuxcare.com.au>
* FAQ.in: Add --start-group and --end-group.
2000-10-12 Alan Modra <alan@linuxcare.com.au>
* malloc/memusage.c: Conditionalize stack usage calculation on
stack direction.
2000-10-12 Alan Modra <alan@linuxcare.com.au>
* config.h.in: Add ASM_LINE_SEP.
* configure.in: Add test for comment and line separators.
* include/libc-symbols.h: Define and use ASM_LINE_SEP, and add tabs to
placate some hppa assemblers.
* sysdeps/hppa/sysdep.h: Likewise.
* sysdeps/gnu/siglist.c: Insert \n and \t into inline asm.
* sysdeps/unix/sysv/linux/errlist.c: Likewise.
2000-10-12 David Huggins-Daines <dhd@linuxcare.com>
* sysdeps/unix/sysv/linux/Makefile: Include <bits/initspin> in
$(sysdep_headers).
* sysdeps/unix/sysv/linux/bits/initspin.h: Dummy version for
non-threaded platforms.
2000-10-12 David Huggins-Daines <dhd@linuxcare.com>
* configure.in: Add definitions for hppa.
* elf/elf.h: Add PLABEL32 relocation for hppa ELF32, comments
for IPLT and EPLT relocations.
* shlib-versions: Version symbol definitions for hppa-linux.
* sysdeps/unix/sysv/linux/configure.in: Define $arch_minimum_kernel
for hppa.
2000-10-12 David Huggins-Daines <dhd@linuxcare.com>
* sysdeps/hppa/Makefile: New file.
* sysdeps/hppa/Versions: New file.
* sysdeps/hppa/setjmp.S: New file.
* sysdeps/hppa/__longjmp.S: New file.
* sysdeps/hppa/bits/setjmp.h: New file.
* sysdeps/hppa/frame.h: New file.
* sysdeps/hppa/add_n.s: Don't use %r19 (linkage table pointer).
* sysdeps/hppa/sub_n.s: Likewise.
* sysdeps/hppa/lshift.s: Likewise.
* sysdeps/hppa/rshift.s: Likewise.
* sysdeps/hppa/udiv_qrnnd.s: Likewise.
* sysdeps/hppa/hppa1.1/addmul_1.s: Likewise.
* sysdeps/hppa/hppa1.1/submul_1.s: Likewise.
* sysdeps/hppa/hppa1.1/mul_1.s: Likewise.
* sysdeps/hppa/hppa1.1/udiv_qrnnd.s: Likewise.
* sysdeps/hppa/dl-machine.h: New file.
* sysdeps/hppa/dl-fptr.c: New file (note that this is almost
identical to the IA-64 one).
* sysdeps/hppa/dl-lookupcfg.h: Likewise.
* sysdeps/hppa/dl-symaddr.c: Likewise.
* sysdeps/hppa/elf/initfini.c: New file.
* sysdeps/hppa/elf/start.S: New file.
* sysdeps/hppa/fpu/bits/fenv.h: New file.
* sysdeps/hppa/fpu/fclrexcpt.c: New file.
* sysdeps/hppa/fpu/fedisblxcpt.c: New file.
* sysdeps/hppa/fpu/feenablxcpt.c: New file.
* sysdeps/hppa/fpu/fegetenv.c: New file.
* sysdeps/hppa/fpu/fegetexcept.c: New file.
* sysdeps/hppa/fpu/fegetround.c: New file.
* sysdeps/hppa/fpu/feholdexcpt.c: New file.
* sysdeps/hppa/fpu/fesetenv.c: New file.
* sysdeps/hppa/fpu/fesetround.c: New file.
* sysdeps/hppa/fpu/feupdateenv.c: New file.
* sysdeps/hppa/fpu/fegetexcptflg.c: New file.
* sysdeps/hppa/fpu/fraiseexcpt.c: New file.
* sysdeps/hppa/fpu/fsetexcptflg.c: New file.
* sysdeps/hppa/fpu/ftestexcept.c: New file.
* sysdeps/unix/sysv/linux/hppa/Makefile: New file.
* sysdeps/unix/sysv/linux/hppa/Versions: New file.
* sysdeps/unix/sysv/linux/hppa/syscalls.list: New file.
* sysdeps/unix/sysv/linux/hppa/sysdep.c: New file.
* sysdeps/unix/sysv/linux/hppa/sysdep.h: New file.
* sysdeps/unix/sysv/linux/hppa/bits/fcntl.h: New file.
* sysdeps/unix/sysv/linux/hppa/bits/ioctls.h: New file.
* sysdeps/unix/sysv/linux/hppa/bits/mman.h: New file.
* sysdeps/unix/sysv/linux/hppa/bits/sigaction.h: New file.
* sysdeps/unix/sysv/linux/hppa/bits/signum.h: New file.
* sysdeps/unix/sysv/linux/hppa/brk.c: New file.
* sysdeps/unix/sysv/linux/hppa/clone.S: New file.
* sysdeps/unix/sysv/linux/hppa/socket.S: New file.
* sysdeps/unix/sysv/linux/hppa/syscall.S: New file.
* sysdeps/unix/sysv/linux/hppa/setrlimit.c: New file.
* sysdeps/unix/sysv/linux/hppa/getrlimit.c: New file.
* sysdeps/unix/sysv/linux/hppa/getrlimit64.c: New file.
* sysdeps/unix/sysv/linux/hppa/kernel_sigaction.h: New file.
* sysdeps/unix/sysv/linux/hppa/kernel_stat.h: New file.
* sysdeps/unix/sysv/linux/hppa/mmap.c: New file.
* sysdeps/unix/sysv/linux/hppa/profil-counter.h: New file.
* sysdeps/unix/sysv/linux/hppa/procfs.h: New file.
* sysdeps/unix/sysv/linux/hppa/ucontext.h: New file.
* sysdeps/unix/sysv/linux/hppa/umount.c: New file.
2000-10-12 Alan Modra <alan@linuxcare.com.au>
* sysdeps/hppa/hppa1.1/Implies: New file.
* sysdeps/hppa/memusage.h: New file.
2000-10-05 Jakub Jelinek <jakub@redhat.com>
* sysdeps/sparc/sparc64/fpu/libm-test-ulps: New file.
2000-10-02 Jakub Jelinek <jakub@redhat.com>
* sunrpc/svc_udp.c (svcudp_recv): Set msg_controllen to all
remaining xp_pad space.
2000-10-05 Jakub Jelinek <jakub@redhat.com>
* elf/dl-close.c (_dl_close): Check imap's l_flags_1 for
DF_1_NODELETE, not list[i]'s.
2000-10-02 Jakub Jelinek <jakub@redhat.com>
* elf/nextmod1.c (failing_rtld_next_use): Ensure it is not tail call
optimized.
* sysdeps/sparc/sparc32/fpu/libm-test-ulps: New file.
2000-09-29 Ulrich Drepper <drepper@redhat.com>
* elf/chroot_canon.c: Don't report a failure if the last path
component is not available.
* elf/ldconfig.c (parse_conf): Use canonicalized name when reporting
error.
* elf/cache.c (print_cache): Use stat64 instead of stat.
* elf/ldconfig.c (chroot_stat): Likewise.
(create_links): Likewise.
(manual_link): Likewise.
(search_dir): Likewise.
* elf/readlib.c (process_file): Likewise.
* Makefile (install): Set LC_ALL and LANGUAGE to C before running
ldconfig.
2000-09-29 Jakub Jelinek <jakub@redhat.com>
* elf/chroot_canon.c: New file.
* elf/Makefile: Build and distribute it.
* elf/ldconfig.h (process_file): Add real_file_name argument.
(chroot_canon): Add prototype.
* elf/ldconfig.c (cache_file): Remove const.
(chroot_stat): New.
(create_links): Add real_path argument.
If opt_chroot, maintain both real and given filenames.
(manual_link): Likewise.
(search_dir): Likewise.
(parse_conf): If opt_chroot, use chroot_canon to find the real
config file.
(main): For -r, try to use chroot, if it fails, leave opt_chroot set
and use chroot_canon where appropriate to do the same as if chroot
succeeded.
* elf/readlib.c (process_file): Add real_file_name argument, pass it
to fopen.
2000-09-29 Ulrich Drepper <drepper@redhat.com>
* math/complex.h (_Complex): We can be more specific when _Complex
is defined by the compiler.
2000-09-29 H.J. Lu <hjl@gnu.org>
* sysdeps/unix/sysv/linux/ia64/dl-cache.h: New.
* elf/cache.c (print_entry): Replace 64bit with IA-64 in message
for x86/IA-64 binary.
2000-09-29 Andreas Schwab <schwab@suse.de>
* sysdeps/unix/sysv/linux/ia64/readelflib.c: New file.
* elf/cache.c (print_entry): Check for FLAG_IA64_LIB64.
2000-09-26 Jakub Jelinek <jakub@redhat.com>
* sysdeps/sparc/sparc32/bits/endian.h: Remove.
* sysdeps/sparc/sparc32/ieee754.h: New.
* sysdeps/sparc/sparc64/bits/endian.h: Move...
* sysdeps/sparc/bits/endian.h: ...here.
* sysdeps/unix/sysv/linux/sparc/sparc32/clone.S (__clone): Optimize.
* sysdeps/unix/sysv/linux/sparc/sparc64/clone.S (__clone): Check
%o1, not %o0 to see if we're parent or child. Optimize.
2000-09-26 Jes Sorensen <jes@linuxcare.com>
* sysdeps/unix/sysv/linux/ia64/fork.S: New file (based on code
by Hans Boehm).
* sysdeps/unix/sysv/linux/ia64/vfork.S: New file (based on
code by Hans Boehm).
* sysdeps/unix/sysv/linux/ia64/fork.c: Deleted (obsoleted by fork.S).
2000-09-20 H.J. Lu <hjl@gnu.org>
* sysdeps/ia64/fpu/printf_fphex.c: New file.
* sysdeps/ia64/fpu/libm-test-ulps: New file.
2000-09-17 H.J. Lu <hjl@gnu.org>
* sysdeps/ia64/Makefile (long-double-fcts): New. Defined as yes.
* sysdeps/ia64/fpu/s_isinfl.c: New file. Include
sysdeps/i386/fpu/s_isinfl.c.
* sysdeps/ia64/fpu/s_isnanl.c: New file. Include
sysdeps/i386/fpu/s_isnanl.c.
* sysdeps/ia64/fpu/s_nextafterl.c: New file. Include
sysdeps/i386/fpu/s_nextafterl.c.
* sysdeps/ia64/fpu/bits/mathdef.h: New file. Copied from
sysdeps/i386/fpu/bits/mathdef.h.
2000-09-16 H.J. Lu <hjl@gnu.org>
* sysdeps/generic/ldsodefs.h (DL_UNMAP): New. Defined if
DL_UNMAP_IS_SPECIAL is not defined.
* sysdeps/ia64/dl-lookupcfg.h (DL_UNMAP_IS_SPECIAL): Defined.
(_dl_unmap): New prototype.
(DL_UNMAP): New. Defined as _dl_unmap.
* sysdeps/ia64/Versions [ld] (GLIBC_2.2): Add _dl_unmap.
* elf/dl-close.c (_dl_close): Replace __munmap with DL_UNMAP.
2000-09-16 H.J. Lu <hjl@gnu.org>
* sysdeps/generic/ldsodefs.h (DL_LOOKUP_ADDRESS): New. Defined
if ELF_FUNCTION_PTR_IS_SPECIAL is not defined.
* sysdeps/ia64/dl-lookupcfg.h (_dl_lookup_address): New
prototype.
(DL_LOOKUP_ADDRESS): New. Defined as _dl_lookup_address.
* sysdeps/ia64/dl-fptr.c (_dl_lookup_address): New. Lookup
the memory location of a function from a function descriptor.
* sysdeps/ia64/Versions [ld] (GLIBC_2.2): Add _dl_lookup_address.
* elf/dl-addr.c (_dl_addr): Use DL_LOOKUP_ADDRESS to get the
memory location.
2000-09-14 Jes Sorensen <jes@linuxcare.com>
* sysdeps/ia64/bits/byteswap.h (__bswap_16): Don't mark output
variable as input argument.
(__bswap_32): Likewise.
* sysdeps/ia64/dl-machine.h: Add missing stop bit in RTLD_START()
- found by Jim Wilson <wilson@cygnus.com>
2000-09-26 Ulrich Drepper <drepper@redhat.com>
* string/strxfrm.c: Only require alignment on __alignof__ (int32_t)
instead of 4.
2000-09-26 Andreas Schwab <schwab@suse.de>
* locale/programs/ld-collate.c (collate_output): Only require
alignment on __alignof__ (int32_t) instead of 4.
* locale/loadlocale.c (_nl_load_locale): Likewise.
* string/strcoll.c: Likewise.
2000-09-26 Jes Sorensen <jes@linuxcare.com>
* sysdeps/ieee754/ldbl-96/e_atan2l.c (__ieee754_atan2l): Add
parentheses around arithmetic used in | statement to kill compiler
warning.
* math/math_private.h: Add prototype for __finitel.
(__ilogbl): Likewise.
(__isinfl): Likewise.
(__isnanl): Likewise.
(__atanl): Likewise.
(__copysignl): Likewise.
(__expm1l): Likewise.
(__floorl): Likewise.
(__frexpl): Likewise.
(__ldexpl): Likewise.
(__log1pl): Likewise.
(__nanl): Likewise.
(__rintl): Likewise.
(__scalbnl): Likewise.
(__sqrtl): Likewise.
(fabsl): Likewise.
(__sincosl): Likewise.
(si_isr) [USE_GNU]: Likewise.
(ILL_BREAK) [USE_GNU]: Likewise.
(FPE_DECOVF) [USE_GNU]: Likewise.
(FPE_DECDIV) [USE_GNU]: Likewise.
(FPE_DECERR) [USE_GNU]: Likewise.
(FPE_INVASC) [USE_GNU]: Likewise.
(FPE_INVDEC) [USE_GNU]: Likewise.
(TRAP_BRANCH) [USE_GNU]: Likewise.
(TRAP_HWBKPT) [USE_GNU]: Likewise.
* sysdeps/ieee754/flt-32/s_exp2f.c: Likewise.
* elf/ldconfig.c (add_dir): Move logic to add entry to list to new
function add_single_dir.
(add_single_dir): New function.
(search_dir): Use add_single_dir instead of recursing.
2000-09-24 Ulrich Drepper <drepper@redhat.com>
* elf/ldconfig.c (search_dir): Make more use of d_type
information.
2000-09-23 Ulrich Drepper <drepper@redhat.com>
* stdio-common/printf-parse.h (parse_one_spec): Clear
spec->info.i18n. Patch by Joseph S. Myers <jsm28@cam.ac.uk>.
2000-09-16 Jakub Jelinek <jakub@redhat.com>
* sysdeps/ia64/Implies: Reorder ieee754 implies so that ldbl-* comes
first.
* sysdeps/m68k/Implies: Likewise.
* sysdeps/sparc/sparc64/Implies: Likewise.
2000-09-16 Jakub Jelinek <jakub@redhat.com>
* elf/readlib.c (process_file): Don't error for stale .so links either.
* elf/dl-load.c (_dl_map_object_from_fd): Add one more
__builtin_expect.
* elf/rtld.c (_dl_dynamic_weak): Set to 1 by default for now.
* elf/dl-support.c: Likewise.
necessary. Move includes of POSIX and Unix limits files to the end.
2000-09-15 Ulrich Drepper <drepper@redhat.com>
* elf/Makefile (distribute): Add nextmod1.c and nextmod2.c.
(tests): Add next.
(modules-names): Add nextmod1 and nextmod2.
Add rules to build and run next.
* elf/next.c: New file.
* elf/nextmod1.c: New file.
* elf/nextmod2.c: New file.
2000-09-14 Jakub Jelinek <jakub@redhat.com>
* elf/dl-lookup.c (_dl_lookup_symbol_skip): Fix a typo.
* intl/Makefile (tests): Depend in mtrace-tst-gettext.
Make this a new rule depending on tst-gettext.out and run mtrace.
* intl/tst-gettext.c: Call mtrace.
* intl/tst-gettext.sh: Put MALLOC_TRACE in environment of tst-gettext.
* elf/dl-reloc.c: Add a few more __builtin_expect.
* configure.in: Remove --with-gettext option.
* intl/dcigettext.c (free_mem): Correct freeing of
_nl_domain_bindings list.
* sysdeps/generic/ldsodefs.h: Add declaration for _dl_all_dirs and
_dl_all_init_dirs.
* include/link.h (struct r_search_path_struct): New.
(struct link_map): Use it for l_rpath_dirs and l_runpath_dirs.
* elf/Versions [ld] (GLIBC_2.2): Add _dl_all_dirs and
_dl_all_init_dirs.
* elf/dl-close.c (_dl_close): Free l_rpath_dirs and l_runpath_dirs.
* elf/dl-libc.c (free_mem): Free _dl_all_dirs list except elements
added at startup time.
* elf/dl-load.c: Fix memory handling. r_search_path_struct
contains element to remember fact that we can free memory.
(all_dirs): Renamed to _dl_all_dirs. Made global.
(_dl_init_all_dirs): New variable.
(fillin_rpath): Save one malloc call.
(decompose_rpath): Change interface. New first parameter points to
r_search_path_struct.
(_dl_init_paths): Adjust for changes. Mark all memory as not
deletable. Set _dl_init_all_paths value.
(open_path): Remove may_free_dirs parameter. r_search_path_elem ***
parameter replaced with r_search_path_struct *. Information about
freeing now contained in r_search_path_struct.
(_dl_map_object): Adjust for above changes.
* elf/dl-open.c (dl_open_worker): Change format of debug info a bit.
2000-08-27 Bruno Haible <haible@clisp.cons.org>
* string/strxfrm.c (strxfrm, wcsxfrm): Include <sys/param.h>.
If nrules == 0 and srclen < n, copy only srclen + 1 characters.
* sysdeps/generic/getdomain.c (getdomainname): Include <sys/param.h>.
If the result is fits in the buffer, copy only as many bytes as needed.
* sysdeps/generic/_strerror.c (__strerror_r): Don't zero-fill the
buffer after copying numbuf into it.
* sysdeps/mach/_strerror.c (__strerror_r): Likewise.
2000-08-27 Bruno Haible <haible@clisp.cons.org>
* posix/confstr.c (confstr): When string_len > len, NUL-terminate
the result. When string_len < len, don't clear the rest of the buffer.
2000-08-27 Bruno Haible <haible@clisp.cons.org>
Support for new LC_COLLATE format.
* locale/coll-lookup.h: New file.
* locale/weightwc.h (findidx): When size == 0, call
collidx_table_lookup.
* wcsmbs/wcscoll.c: Include coll-lookup.h.
* wcsmbs/wcsxfrm.c: Likewise.
* posix/fnmatch.c: Likewise.
* posix/fnmatch_loop.c (internal_fnwmatch): When size == 0, call
collseq_table_lookup.
* locale/programs/3level.h: New file.
* locale/programs/ld-ctype.c: (wcwidth_table, wctrans_table): Define
by including "3level.h".
* locale/programs/ld-collate.c (wchead_table, collidx_table,
collseq_table): New types, defined by including "3level.h".
(locale_collate_t): New wcheads_3level, wcseqorder_3level fields.
(encoding_mask, encoding_byte): Remove.
(utf8_encode): Use simple shifts instead.
(collate_finish): When !oldstyle_tables, set plane_size and plane_cnt
to 0, and initialize and fill wcheads_3level and wcseqorder_3level.
(collate_output): New local variable tablewc_3level. When
!oldstyle_tables, set table_size to 0 and names to NULL and fill
tablewc_3level instead of tablewc. Change format of TABLEWC and
COLLSEQWC entries written to the file.
* locale/C-collate.c (collseqwc): Change format.
(_nl_C_LC_COLLATE): Set HASH_SIZE and HASH_LAYERS to 0, change format
of COLLSEQWC.
* locale/Makefile (distribute): Add coll-lookup.h, programs/3level.h.
2000-08-27 Bruno Haible <haible@clisp.cons.org>
* locale/programs/ld-ctype.c (MAX_CHARNAMES_IDX): New macro.
(locale_ctype_t): New charnames_idx field.
(ctype_startup): Initialize charnames_idx field.
(find_idx): Speed up dramatically by using charnames_idx inverse table.
2000-08-27 Bruno Haible <haible@clisp.cons.org>
* locale/C-ctype.c: Switch to new locale format.
(_nl_C_LC_CTYPE_names): Remove array.
(STRUCT_CTYPE_CLASS): New macro.
(_nl_C_LC_CTYPE_class_{upper,lower,alpha,digit,xdigit,space,print,
graph,blank,cntrl,punct,alnum}, _nl_C_LC_CTYPE_map_{toupper,tolower}):
New three-level tables.
(_nl_C_LC_CTYPE_width): Change from array to three-level table.
(_nl_C_LC_CTYPE): Fix nstrings value. Set HASH_SIZE and HASH_LAYERS
to 0. Change WIDTH format. Set CLASS_OFFSET and MAP_OFFSET. Add
12 class tables and 2 map tables at the end.
* ctype/ctype-info.c (_nl_C_LC_CTYPE_names): Remove declaration.
(_nl_C_LC_CTYPE_class_{upper,lower,alpha,digit,xdigit,space,print,
graph,blank,cntrl,punct,alnum}, _nl_C_LC_CTYPE_map_{toupper,tolower}):
New declarations.
(b): Remove trailing semicolon.
(__ctype_names, __ctype_width): Don't initialize.
(__ctype32_wctype, __ctype32_wctrans, __ctype32_width): Initialize.
2000-08-27 Bruno Haible <haible@clisp.cons.org>
* elf/dl-load.c (open_path): Add a argument telling whether *dirsp
is guaranteed to be allocated with the same malloc() and may be
passed to free().
(_dl_map_object): Update open_path calls. If rtld_search_dirs has
been set to empty by an earlier open_path call, don't pass it again.
* elf/Versions [ld] (GLIBC_2.2): Export _dl_debug_files.
* elf/dl-close.c (_dl_close): Print debug message if object is not
unloaded.
* elf/dl-open.c (dl_open_worked): Print message about opencount before
returning to caller.
2000-08-26 Ulrich Drepper <drepper@redhat.com>
* elf/Makefile (distribute): Add unloadmod.c, reldepmod1.c,
reldepmod2.c, reldepmod3.c, and reldepmod4.c.
(tests): Add unload, reldep, reldep2, and reldep3.
(modules-names): Add unloadmod, reldepmod1, reldepmod2, reldepmod3,
and reldepmod4.
Add rules to build and run unload, reldep, reldep2, and reldep3.
* elf/dl-lookup.c (_dl_lookup_symbol): Add new parameter explicit.
Don't create relocation dependency if it is nonzero.
(_dl_lookup_symbol_skip): Remove relocation dependency stuff. This
can never happen here.
(_dl_lookup_versioned_symbol): Add new parameter explicit.
Don't create relocation dependency if it is nonzero.
(_dl_lookup_versioned_symbol_skip): Remove relocation dependency
stuff. This can never happen here.
* sysdeps/generic/ldsodefs.h: Change prototypes.
* elf/dl-reloc.c (RESOLVE_MAP): Pass 0 in explicit parameter to
_dl_lookup_up and _dl_lookup_versioned_symbol.
(RESOLV): Likewise.
* elf/dl-runtime.c (fixup): Likewise.
(profile_fixup): Likewise.
* elf/dl-libc.c (do_dlsym): Pass 1 in explicit parameter to
_dl_lookup_symbol.
* elf/dl-symbol.c (_dl_symbol_value): Likewise.
* elf/rtld.c (dl_main): Likewise.
* elf/dl-sym.c (_dl_sym): Pass 1 in explicit parameter to
_dl_lookup_symbol if handle is not RTLD_DEFAULT. Always compute
and pass down the caller map.
(_dl_vsym): Likewise.
* elf/reldep.c: New file.
* elf/reldep2.c: New file.
* elf/reldep3.c: New file.
* elf/reldepmod1.c: New file.
* elf/reldepmod2.c: New file.
* elf/reldepmod3.c: New file.
* elf/reldepmod4.c: New file.
* elf/unload.c: New file.
* elf/unloadmod.c: New file.
* elf/do-lookup.h: Remove unused undef_name parameter.
* elf/dl-lookup.c: Adjust callers.
2000-08-25 Ulrich Drepper <drepper@redhat.com>
* elf/Makefile (LDFLAGS-nodelete): Add -rdynamic.
* elf/nodelete.c (fini_ran): New global variable.
(do_test): Before every dlclose call clear fini_ran and test
afterwards that it is not set by the destructors.
* elf/nodelmod1.c: Add destructor which sets fini_ran.
* elf/nodelmod2.c: Likewise.
* elf/nodelmod4.c: Likewise.
* elf/Makefile (distribute): Add dl-osinfo.h.
* sysdeps/generic/dl-osinfo.h: New file.
* sysdeps/unix/sysv/linux/dl-osinfo.h: New file.
* sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Use DL_SYSDEP_OSCHECK
if defined.
* sysdeps/unix/sysv/linux/init-first.c: Perform kernel version test
only for !SHARED case. Get the code from dl-osinfo.h.
2000-08-19 Ulrich Drepper <drepper@redhat.com>
* elf/Versions [ld] (GLIBC_2.2): Export _dl_check_map_versions.
* elf/dl-deps.c (_dl_map_object_deps): If object was dependency of
a dynamically loaded object remove old l_initfini list.
* elf/dl-libc.c (free_mem): Used as __libc_subfreeres callback to
remove some dynamically allocated memory blocks in the dynamic
loading data structures.
* elf/dl-load.c (add_name_to_object): Initialize dont_free to 0.
* elf/dl-open.c (dl_open_workder): Don't call _dl_check_all_versions.
Instead call _dl_check_map_versions only for the dependencies.
* elf/rtld.c: Avoid unneccessary initializations. Mark l_libname
information of initial objects as not free-able.
* sysdeps/generic/ldsodefs.h (struct libname_list): Add dont_free
element.
* elf/filter.c: Call mtrace.
* elf/restest1.c: Likewise. Close the objects.
* elf/loadtest.c: Call mtrace. Check result of dlclose. Print more
debug information.
* elf/constload1.c: Add comment explaining not freed memory.
2000-08-17 Ulrich Drepper <drepper@redhat.com>
* stdio-common/printf_fp.c: Fix chars_needed computation.
Patch by Greg McGary <greg@mcgary.org>.
2000-08-17 Jakub Jelinek <jakub@redhat.com>
* elf/dl-load.c (_dl_map_object): Don't crash if both loader and
_dl_loaded are NULL.
2000-08-17 Jakub Jelinek <jakub@redhat.com>
* manual/arith.texi (feholdexcept): Returns 0 on success.
2000-08-17 Andreas Jaeger <aj@suse.de>
* sysdeps/gnu/net/if.h (struct ifreq): Add ifru_newname.
(ifr_newname): New.
Reported by Andi Kleen <ak@suse.de>.
2000-08-17 Jakub Jelinek <jakub@redhat.com>
* sysdeps/alpha/fpu/fedisblxcpt.c: New file.
* sysdeps/alpha/fpu/feenablxcpt.c: New file.
* sysdeps/alpha/fpu/fegetexcept.c: New file.
2000-08-16 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/xstatconv.c (xstat32_conv): Test sizes
of buf->st_ino and kbuf->st_ino, not __st_ino.
If _HAVE_STAT64___ST_INO is not defined, don't use __st_ino at all.
* sysdeps/unix/sysv/linux/getdents64.c: Change path in #include
directive so that only linux/getdents.c is used, not some
architecture specific one.
2000-08-16 Jakub Jelinek <jakub@redhat.com>
* sysdeps/i386/fpu/fegetexcept.c (fegetexcept): Return currently
enabled, not disabled exceptions.
* sysdeps/i386/fpu/fedisblxcpt.c (fedisableexcept): Likewise.
* sysdeps/i386/fpu/feenablxcpt.c (feenableexcept): Likewise.
($(addprefix $(objpfx),$(tests)),
$(addprefix $(objpfx),$(librt-tests))):
* include/link.h: Undo last patches. Hurd now has stat64.