* elf/Makefile (tests): Add it.
($(objpfx)tst-tls-dlinfo): Depend on $(libdl).
($(objpfx)tst-tls-dlinfo.out): Depend on $(objpfx)tst-tlsmod2.so.
* dlfcn/dlfcn.h (RTLD_DI_PROFILENAME, RTLD_DI_PROFILEOUT): New enum
values, reserve unsupported requested names used on Solaris.
(RTLD_DI_TLS_MODID, RTLD_DI_TLS_DATA): New enum values.
(RTLD_DI_MAX): Likewise.
* dlfcn/dlinfo.c (dlinfo_doit): Handle RTLD_DI_TLS_MODID and
RTLD_DI_TLS_DATA.
* elf/dl-tls.c (_dl_tls_get_addr_soft): New function.
* sysdeps/generic/ldsodefs.h: Declare it.
* elf/Versions (ld: GLIBC_PRIVATE): Add it.
* elf/link.h (struct dl_phdr_info): New members dlpi_tls_modid,
dlpi_tls_data.
* elf/dl-iteratephdr.c (__dl_iterate_phdr): Fill them in.
* include/link.h: Don't copy contents from elf/link.h.
Instead, #include it while #define'ing around link_map.
* elf/dl-debug.c (_dl_debug_initialize): Add a cast.
Add bogus extern decl to verify link_map members.
* elf/loadtest.c (MAPS): New macro, cast _r_debug._r_map.
(OUT, main): Use it in place of _r_debug._r_map.
* elf/unload.c: Likewise.
* elf/unload2.c: Likewise.
* elf/neededtest.c (check_loaded_objects): Likewise.
* elf/neededtest2.c (check_loaded_objects): Likewise.
* elf/neededtest3.c (check_loaded_objects): Likewise.
* elf/neededtest4.c (check_loaded_objects): Likewise.
* elf/circleload1.c (check_loaded_objects): Likewise.
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.
2000-04-02 Ulrich Drepper <drepper@redhat.com>
* elf/dl-fini.c (_dl_fini): Increment j counter after swapping in
element at this position.
* elf/Versions [ld.so] (GLIBC_2.2): Export _dl_load_lock.
* elf/link.h (struct link_map): Add l_reldepsmax, l_reldepsact, and
l_reldeps elements.
* elf/dl-lookup.c (add_dependency): New function.
(_dl_lookup_symbol): Use it whenever symbol was found in a global,
dynamically loaded object.
(_dl_lookup_symbol_skip): Likewise.
(_dl_lookup_versioned_symbol): Likewise.
(_dl_lookup_versioned_symbol_skip): Likewise.
* elf/dl-open.c: Don't define _dl_load_lock here...
* elf/rtld.c: ...but here...
* elf/dl-support.c: ...and here.
* elf/dl-close.c (_dl_close): Close also dependent objects introduce
through relocation.
* elf/dl-fini.c (_dl_fini): Also take dependencies introduced through
relocations.
* dlfcn/Makefile (glrefmain.out): Test is not expected to fail
anymore.
* dlfcn/glrefmain.c: Add one more debug message.
* Makeconfig (preprocess-versions): Don't add $(CPPFLAGS) to compiler
command line.
* Makerules (sysd-versions): Use ( ) instead of { }.
* elf/dl-load.c: Use __builtin_expect to signal that compiler should
optimize for the non-debugging case.
* elf/dl-lookup.c: Likewise.
* sysdeps/generic/libc-start.c: Likewise.
2000-03-30 Ulrich Drepper <drepper@redhat.com>
Implement dynamic determination of constructor/destructor order in
the dynamic linker.
* elf/Versions [ld.so] (GLIBC_2.0): Remove _dl_init_next.
(GLIBC_2.2): Add _dl_init.
* elf/dl-close.c: Also call all destructors in FINI_ARRAY.
r_duplist is not anymore allocated separately. l_initfini is and
therefore free it if necessary.
* elf/dl-deps.c: If a searchlist has to be allocated, put all in one
malloc block. Otherwise allocate l_initfini list only.
Put dependencies for the object in l_initfini list.
Sort dependencies for the object to be loaded topologically.
* elf/dl-fini.c: Before running the destructors sort the topologically.
* elf/dl-init.c (_dl_init): Renamed from _dl_init_next. Rewrite to
call constructors instead of iterating over the pointers. Get list of
objects for which to run constructors from l_initfini element. Accept
argc, argv, and env as parameters and pass them to the constructors.
* elf/ld-load.c (_dl_map_object_from_fd): Initialize l_ldnum member
with size of dynamic section.
* elf/dl-open.c (dl_open_worker): Only call _dl_init instead of
_dl_init_next and calling constructors ourself.
* elf/dl-preinit.c (_dl_preinit): Renamed from _dl_preinit_next.
Take argc, argv, and env as parameters and pass them to the
constructors. Rewrite to call all constructors and not iterate over
the pointers.
* elf/dynamic-link.h: Don't relocate DT_FINI_ARRAY entry. Don't
precompute l_initcount and l_preinitcount.
* elf/link.h (struct link_map): Add l_ldnum member.
Make l_phdr_allocated part of the bitfield. Remove l_runcount,
l_initcount, and l_preinitcount. Add l_initfini.
* sysdeps/generic/ldsodefs.h: Replace _dl_init_next prototype with
one for _dl_init.
* sysdeps/i386/dl-machine (RTLD_START): Rewrite to match new init
function interface.
* sysdeps/unix/sysv/linux/init-first.h: Removed.
* sysdeps/unix/sysv/linux/Dist: Delete file here as well.
* sysdeps/unix/sysv/linux/init-first.c [PIC]: Don't use
SYSDEP_CALL_INIT. Make _init a strong alias of init. The calling
conventions now match.
* sysdeps/generic/libc-start.c: Calling __libc_init_first has no
effect for shared objects. Don't emit message and call only for
static library.
1999-07-24 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-fini.c: Handle DT_FINI_ARRAY.
* elf/link.h (struct link_map): Remove l_init_running. Add l_runcount
and l_initcount.
* elf/dl-init.c: Handle DT_INIT_ARRAY.
* elf/dynamic-link.h: Change parameters. Now only get link_map
pointer. Calculate l_initcount.
* elf/link.h (struct link_map): Add l_runpath_dirs.
* elf/dynamic-link.h: If RUNPATH is given, set RPATH to NULL.
* elf/dl-load.c: Pretty print.
(decompose_rpath): Take new parameter with info from where the path
comes. Pass it the fillin_rpath.
(_dl_init_paths): Initialize l_runpath_dirs.
(_dl_map_object): Don't search using RPATHs if object has RUNPATH.
Search using RUNPATH after LD_LIBRARY_PATH.
* elf/dl-support.c: Adjust comment.
* elf/rtld.c: Adjust help message.
* elf/link.h (struct link_map): New field l_phdr_allocated.
* elf/dl-load.c (_dl_map_object_from_fd): Don't depend on having
the program header being part of any loaded segment. If it is not
allocate memory and set l_phdr_allocated flag.
* elf/dl-close.c (_dl_close): Free l_phdr if necessary.
* elf/link.h (link_map): Add l_dev and l_ino.
* elf/dl-load.c (_dl_map_object_from_fd): Test dev/ino of newly
loaded shared object with all laoded objects. Initialize l_ino
and l_dev in case it's new.
* elf/rtld.c (dl_main): Explain situation is l_dev/l_ino with main
object.
* elf/Makefile: Compile and run new test.
* elf/multiload.c: New file.
1998-08-09 Geoff Keating <geoffk@ozemail.com.au>
* sysdeps/powerpc/Makefile [subdir=elf]: Add new files split out of
dl-machine.h.
* sysdeps/powerpc/dl-machine.c: New file.
* sysdeps/powerpc/dl-machine.h: Move much stuff into separate
files. Revise ELF_PREFERRED_ADDRESS to take account of
the new mapping information (fixes bug involving huge bloated
web browser). Set ELF_MACHINE_PLTREL_OVERLAP.
* sysdeps/powerpc/dl-start.S: New file.
* elf/dl-load.c (_dl_map_object_from_fd): Initialise l_map_start,
l_map_end.
* elf/do-rel.h: Call elf_machine_rel only once (to save space).
* elf/dynamic-link.h: Allow PLT relocs to be in the middle of the
others. Call elf_dynamic_do_##reloc only once (to save even more
space).
* elf/link.h: Add new members l_map_start and l_map_end to keep
track of the memory map.
* elf/rtld.c (_dl_start): Initialise l_map_start for ld.so and
the executable.
1998-09-01 11:53 Ulrich Drepper <drepper@cygnus.com>
* debug/Makefile (catchsegv): We need not rewrite SOVER anymore.
Reported by Andreas Jaeger.
* posix/glob.h: Use __size_t instead of size_t in definitions and
make sure this is defined.
* manual/locale.texi: Almost complete rewrite. Document more functions
1998-08-27 19:42 Ulrich Drepper <drepper@cygnus.com>
* elf/Makefile (distribute): Add dl-origin.h.
* sysdeps/generic/dl-origin.h: New file.
* sysdeps/unix/sysv/linux/dl-origin.h: New file.
* elf/link.h (struct link_map): Add l_origin field.
* elf/dl-load.c (expand_dynamic_string_token): New function.
(decompose_path): Remove WHERE argument, take link map pointer instead.
Call expand_dynamic_string_token instead of local_strdup to make copy
of rpath.
(_dl_init_paths): Call decompose_path with correct argument.
(_dl_map_object_from_fd): Define static is EXTERNAL_MAP_FROM_FD is
not defined.
Check EI_OSABI and EI_ABIVERSION fields in header.
(_dl_map_object): Call decompose_path with correct argument.
Call expand_dynamic_string_token instead of local_strdup to also
expand DST.
* elf/dl-object.c (_dl_new_object): Determine l_origin for all maps
but the main one.
* elf/dl-support.c: Define _dl_origin_path.
* elf/rtld.c: Likewise. Set _dl_origin_path based on LD_ORIGIN_PATH.
* elf/dl-close (_dl_close): Free l_name and l_origin.
* sysdeps/i386/useldt.h (THREAD_GETMEM, THREAD_SETMEM): Use P
modifier in asm, not c.
* sysdeps/mach/hurd/Makefile [subdirs==elf]: Define CFLAGS-dl-load.c
to -DEXTERNAL_MAP_FROM_FD to make _dl_map_object_from_fd extern.
1998-03-12 13:11 Tim Waugh <tim@cyberelk.demon.co.uk>
* posix/wordexp-test.c: More tests.
(main): Set up arena for pathname expansion tests (in a temporary
directory).
(testit): Don't check word count or word vector if return value is
non-zero.
* posix/wordexp.c (exec_comm): Always chop off terminating
linefeed (just like bash does).
(parse_param): Change lots of occurrences of "if (!*env)" to "if
(!env || !*env)".
(parse_param): For assignment inside parameter expansion, use all
expanded words in assignment rather than just the first.
(parse_param): Corrected return value for parameter expansion of
an unset variable when WRDE_UNDEF is in effect.
(parse_dollars): Don't field-split if quoted.
(wordexp): Opening brace character isn't allowed unquoted.
1998-03-12 Ulrich Drepper <drepper@cygnus.com>
* elf/dlerror.c: Fix concurrency problems with error string and
number.
* elf/dl-deps.c (_dl_map_object_deps): Print debug info when
filter/auxiliary are being loaded.
1998-03-12 14:24 Ulrich Drepper <drepper@cygnus.com>
* elf/dlerror.c (last_object_name): Removed.
(dlerror): Don't use last_object_name.
(_dl_error_run): Omit second argument to _dl_catch_error.
* elf/dl-error.c (struct catch): Remove objname member.
(_dl_signal_error): Construct string including objname when given.
(_dl_catch_error): Remove objname handling.
* elf/link.h (_dl_catch_error): Fix prototype and comment.
* elf/rtld.c (dl_main): Call _dl_catch_error correctly.
* elf/dl-deps.c (_dl_map_objet_deps): Likewise.
* nss/nsswitch.c (nss_dlerror_run): Likewise.
* iconv/gconv_dl.c (dlerror_run): Likewise.
[Corrects PR libc/501].
1998-03-10 17:54 Ulrich Drepper <drepper@cygnus.com>
* libc.map: Add _dl_debug_message.
* elf/dl-misc.c: Make _dl_debug_message a function. Print the PID
before every line.
* elf/fini.c: Correctly use new _dl_debug_message function.
* elf/init.c: Likewise.
* elf/dl-lookup.c: Likewise.
* sysdeps/unix/sysv/linux/libc-start.c: Likewise.
* elf/dl-load.c: Likewise. Add more debugging prints.
* elf/dl-reloc.c: Likewise.
* elf/dl-version.c: Likewise.
* elf/dl-support.c: Add variables for debugging.
* elf/rtld.c: Likewise. Recognize new debug options.
* elf/link.h: Declare new variables.
* elf/dl-deps.c (_dl_map_object_deps): Little optimizations.
* sysdeps/unix/sysv/linux/sys/quota.h: Extract information from
kernel headers. Patch by a sun <asun@saul7.u.washington.edu>.
1998-03-11 00:16 Tim Waugh <tim@cyberelk.demon.co.uk>
* posix/wordexp-test.c (command_line_test): New function to allow
testing of specific cases from the command-line.
1998-03-10 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-init.c (_dl_init_next): Print nicer messages.
* elf/dl-fini.c (_dl_fini): Likewise.
* sysdeps/unix/sysv/linux/libc-start.c (__libc_start_main): Likewise.
1998-03-06 17:04 Ulrich Drepper <drepper@cygnus.com>
* libc.map: Add _dl_debug_impcalls, _dl_debug_fd, _dl_sysdep_output,
__libc_start_main.
* csu/Makefile (routines): Add libc-start.
* elf/dl-error.c: Remove declaration of _dl_argv. Include <unitsd.h>.
* elf/dl-lookup.c: Likewise.
* elf/dl-version.c: Likewise.
* sysdeps/i386/dl-machine.h: Likewise.
* elf/link.h: Declare _dl_argv, _dl_debug_fd.
Declare _dl_sysdep_output. Make _dl_sysdep_fatal, _dl_sysdep_error and
_dl_sysdep_message macros which use _dl_sysdep_output.
* elf/dl-fini.c: Write out which destructor is called while debugging.
* elf/dl-init.c: Likewise for constructor.
* elf/dl-load.c: Use _dl_debug_message instead of _dl_sysdep_message.
* elf/dl-misc.c: Remove _dl_sysdep_fatal, _dl_sysdep_error and
_dl_sysdep_message. Add _dl_sysdep_output.
* elf/rtld.c: Recognize LD_DEBUG_OUTPUT. Set _dl_debug_fd if
this file can be opened.
For LD_DEBUG=libs also set _dl_debug_impcalls.
* sysdeps/generic/dl-cache.c: Include unistd.h.
* sysdeps/generic/libc-start.c: New file.
* sysdeps/i386/elf/start.S: Don't call main directly, call
* sysdeps/unix/sysv/linux/libc-start.c: New file.
__libc_start_main instead.
* elf/Makefile ($(objpfx)ld.so): Add $(load-map-file) as dependency.
1998-02-19 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sigqueue.c: Fix weak alias definition.
1998-02-19 17:16 Ulrich Drepper <drepper@cygnus.com>
* libc.map: More reordering for GLIBC_2.1 symbols.
1998-02-19 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* libc.map: Move some functions from version GLIBC_2.0 to
GLIBC_2.1, reorder declarations.
1998-02-19 Ulrich Drepper <drepper@cygnus.com>
* resolv/gethnamaddr.c (addrsort): Make this function extern.
Patch by zab@thebrain.grumblesmurf.net.
1998-02-19 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* nis/libnsl.map: NIS+ support is new in glibc 2.1, add
NIS+ functions with version GLIBC_2.1.
1998-02-19 14:05 Ulrich Drepper <drepper@cygnus.com>
* libc.map: Add __sbrk, __setpgid, __getpgid for binary compatibility
with 2.0 binaries. Reported by Thorsten Kukuk.
1998-02-19 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* elf/dlvsym.c (dlvsym_doit): Correct last patch.
* elf/dlsym.c (dlsym_doit): Likewise.
1998-02-19 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* elf/link.h: Correct typos.
* iconv/iconv_prog.c: Correct typo.
* elf/dl-open.c (_dl_open): Assign correct value to new->l_global.
1998-02-17 17:41 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-load.c (open_path): Take extra argument PRELOADED.
If PRELOADED is nonzero check in case of an SUID application
whether the shared object has the SUID bit set.
Fix some other problems with handling shared objects in system
specific directories.
(_dl_map_object): Also take extra parameter and pass it to open_path.
* elf/link.h (_dl_map_object): Correct prototype and comment.
* elf/rtld.c (dl_main): Call _dl_map_object correctly.
* elf/dl-open.c (_dl_open): Likewise.
* elf/dl-deps.c (openaux, _dl_map_object_deps): Likewise.
* sysdeps/libm-ieee754/s_modfl.c: Handle numbers > 1.0 correctly.
* math/libm-test.c (modf_test): Add test for 1.5.
1997-09-27 01:14 Ulrich Drepper <drepper@cygnus.com>
* Makeconfig (extra-objs): Depend in before-compile.
* configure.in: Locate Perl and substitute with complete path.
* config.make.in: Add PERL for substitution.
* elf/Makefile (routines): Add dl-addr.
* elf/dladdr.c: Move the real code into ...
* elf/dl-addr.c: New file.
* elf/link.h: Add prototype for _dl_addr.
* elf/dladdr.c (dladdr): Change address argument to be const.
* elf/dlfcn.h: Likewise.
* locale/C_name.c: Add _nl_POSIX_name.
* locale/localeinfo.h: Add declaration of _nl_POSIX_name.
* locale/findlocale.c (_nl_find_locale): Use _nl_POSIX_name.
(_nl_remove_locale): Free name of data set.
* locale/setlocale.c (clever_copy): Remove.
(new_composite_name): Use _nl_C_name and _nl_POSIX_name in compare.
(setname): Only remove old name when it is for category LC_ALL.
Change malloc, free, realloc, and memalign hooks for glibc to take
another parameter indicating the location of the caller.
* malloc/malloc.c: Change hook functions and variables.
* malloc/malloc.h: Likewise.
* malloc/mcheck.c: Likewise. Make sure later hooked function also
get the original caller address.
* malloc/mtrace.c: Likewise.
(tr_where): If no information in _mtrace_file is given use the
information about the caller.
* malloc/Makefile (distribute): Replace mtrace.awk by mtrace.pl.
Add rules to install mtrace.pl after rewriting.
* malloc/mtrace.pl: New file. Based on the old AWK script but
with extended functionality.
* malloc/mtrace.awk: Removed.
* po/fr.po: New version.
* string/Makefile: Do use builtins for tester.c and inl-tester.c.
* string/tester.c: Rewrite. Split in many small functions to not
exceed gcc's limits.
* sysdeps/unix/sysv/linux/syscalls.list: Add prctl.
1997-09-25 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* string/bits/string2.h (__stpcpy_small): Don't use casts as
lvalues.
1997-09-26 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/time.texi (Formatting Date and Time): Clarify
explanation of strftime flags a bit.
Suggested by Robert Bihlmeyer <robbe@orcus.priv.at>.
1997-09-25 00:13 David S. Miller <davem@tanya.rutgers.edu>
* sysdeps/libm-ieee754/s_exp2f.c: Protect _GNU_SOURCE definition.
Fix typo, it is FLT_MANT_DIG.
1997-09-24 18:52 H.J. Lu <hjl@gnu.ai.mit.edu>
* math/atest-exp2.c: Include <stdlib/gmp.h> instead of <gmp.h>.
1997-08-27 08:10 H.J. Lu <hjl@gnu.ai.mit.edu>
* libio/libio.h, libio/libioP.h: Support libio in libstdc++.
* libio/libio.h (_IO_peekc): Defined as _IO_peekc_unlocked if
_IO_MTSAFE_IO is undefined.
1997-09-24 23:27 Richard Henderson <rth@cygnus.com>
* elf/dl-runtime.c (fixup): Don't go through elf_machine_relplt, but
lookup the value of the target symbol ourselves and call the new
elf_machine_fixup_plt. This kills the ELF_FIXUP_RETURN_VALUE hack.
(profile_fixup): Likewise, but don't fix up the plt.
* elf/rtld.c (_dl_main): ELF_MACHINE_RELOC_NOPLT renamed _JMP_SLOT.
* sysdeps/alpha/dl-machine.h (ELF_MACHINE_RELOC_NOPLT): Renamed.
(elf_alpha_fix_plt): Renamed elf_machine_fixup_plt.
* sysdeps/i386/dl-machine.h (elf_machine_relplt): Killed.
(ELF_MACHINE_JMP_SLOT): Renamed.
(elf_machine_fixup_plt): New function.
* sysdeps/m68k/dl-machine.h: Likewise.
* sysdeps/powerpc/dl-machine.h: Likewise.
(elf_machine_rela): Moved JMP_SLOT fixup out to elf_machine_fixup_plt.
* sysdeps/sparc/sparc32/dl-machine.h: Likewise.
* sysdeps/sparc/sparc64/dl-machine.h: Likewise.
* sysdeps/stub/dl-machine.h: Update, sorta.
* sysdeps/alpha/dl-machine.h (elf_machine_runtime_setup): Do profiling.
(TRAMPOLINE_TEMPLATE): From the carcas of _RUNTIME_TRAMPOLINE, do
both normal and profile code.
(elf_machine_rela): Handle r_addend for .got and .plt too.
1997-08-14 03:14 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-minimal.c: Don't use relative #include paths.
(malloc): Don't try to initialize _dl_pagesize, it already is.
(__sigjmp_save, longjmp): Reformat.
* sysdeps/generic/dl-sysdep.c: Implement _dl_show_auxv function to
show content of auxiliary array.
(_dl_sysdep_start): Remember start of auxiliary vector.
* sysdeps/mach/hurd/dl-sysdep.c: (_dl_show_auxv): New dummy function.
* elf/link.h: Add prototype for _dl_show_auxv.
* elf/rtld.c (dl_main): Call _dl_show_auxv if LD_SHOW_AUXV envvar
is present.
* libio/iofdopen.c: Better prepare for use in libstdc++.
* libio/iofflush.c: Likewise.
* libio/iofgetpos.c: Likewise.
* libio/iofgets.c: Likewise.
* libio/iofopen.c: Likewise.
* libio/iofputs.c: Likewise.
* libio/iofread.c: Likewise.
* libio/iofsetpos.c: Likewise.
* libio/ioftell.c: Likewise.
* libio/iofwrite.c: Likewise.
* libio/iogetdelim.c: Likewise.
* libio/iogets.c: Likewise.
* libio/iopopen.c: Likewise.
* libio/ioputs.c: Likewise.
* libio/iosetbuffer.c: Likewise.
* libio/iosetvbuf.c: Likewise.
* libio/ioungetc.c: Likewise.
* libio/iovsprintf.c: Likewise.
* libio/iovsscanf.c: Likewise.
* manual/creature.texi: Mention _XOPEN_SOURCE_EXTENDED in correct
place.
* manual/math.texi: Add comment to sincos decsription to say it's a
GNU extension.
Fix description of random function.
* posix/fnmatch.h: Recognize Windog by _WINDOWS32 not WIN32.
* posix/glob.c: Likewise. Handle stupid system headers on SunOS.
Add casts for all __alloca calls.
* posix/glob.h: Recognize Windog by _WINDOWS32 not WIN32.
Declare additional GLOB_* constants also if _GNU_SOURCE is defined.
Patches by Paul D. Smith <psmith@BayNetworks.COM>.
* stdio-common/_itoa.c: Don't use relateive #include paths.
* sysdeps/i386/fpu/bits/mathinline.h: Enable optimizations even for
gcc 2.7.
(atan): Loading 1.0 from memory does not pay off.
(asinh): Fix typo.
1997-08-13 09:44 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/stub/accept.c: Use socklen_t where necessary.
* sysdeps/stub/bind.c: Likewise.
* sysdeps/stub/connect.c: Likewise.
* sysdeps/stub/getsockname.c: Likewise.
* sysdeps/stub/getsockopt.c: Likewise.
* sysdeps/stub/recvfrom.c: Likewise.
* sysdeps/stub/sendto.c: Likewise.
* sysdeps/stub/setsockopt.c: Likewise.
1997-08-11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* io/ftw.c (object_compare): Avoid memcmp when comparing scalar
types.
1997-08-12 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* math/libm-test.c (cbrt_test): Add epsilon for long double to
`cbrt (-0.001)'.
1997-08-11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/stub/bits/string.h: Fix comment.
1997-08-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/Makefile (routines): Remove dl-version.
(dl-routines): Add it here instead. This removes dead code from
libc.so.
1997-08-12 17:17 Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
* malloc/thread-m.h (thread_atfork, thread_atfork_static): New
macros to encapsulate pthread_atfork's functionality.
* malloc/malloc.c (ptmalloc_lock_all, ptmalloc_unlock_all): New
functions, registered via thread_atfork in the initialization
routine or via thread_atfork_static in global scope. This
ensures a consistent state of all locks across fork().
1997-08-11 23:00:32 1997 Mark Kettenis <kettenis@phys.uva.nl>
* login/programs/xtmp.c (compare_entry):
Partially undo patch made by Klaus Espenlaub. There
was no xtmp/utmp typo. Added comment to cclarify this.
* login/programs/xtmp.h: Likewise.
* posix/getopt.c: Recognize Windog by _WINDOWS32 not WIN32.
Patch by Paul D. Smith <psmith@BayNetworks.COM>.
1997-08-12 13:51 Ulrich Drepper <drepper@cygnus.com>
* login/getutid.c: Rename to __getutid and make getutid and getutxid
weak aliases.
Patch by ir. Mark M._Kettenis <kettenis@phys.uva.nl>.
1997-08-11 23:55 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/Makefile [subdir=misc] (sysdep_headers):
Add bits/mman.h.
1997-08-11 08:51:21 1997 H.J. Lu <hjl@gnu.ai.mit.edu>
* stdlib/fmtmsg.c (fmtmsg): Add static to
__libc_once_define macro.
* libc.map (__progname_full, __progname): Added.
1997-08-04 08:31 H.J. Lu <hjl@gnu.ai.mit.edu>
* sysdeps/unix/sysv/linux/if_index.c (if_nametoindex): Return 0
if SIOGIFINDEX is not defined.
(if_indextoname): Initialize "result" to NULL.
(if_nametoindex, if_nameindex): Fix ENOSYS setting.
1997-08-11 11:58 Richard Henderson <rth@cygnus.com>
Sparc ISO C 9x exception handling:
* sysdeps/sparc/fpu/bits/mathdef.h: New file.
* sysdeps/sparc/fpu/fclrexcpt.c: New file.
* sysdeps/sparc/fpu/fegetenv.c: New file.
* sysdeps/sparc/fpu/fegetround.c: New file.
* sysdeps/sparc/fpu/feholdexcpt.c: New file.
* sysdeps/sparc/fpu/fesetenv.c: New file.
* sysdeps/sparc/fpu/fesetround.c: New file.
* sysdeps/sparc/fpu/feupdateenv.c: New file.
* sysdeps/sparc/fpu/fgetexcptflg.c: New file.
* sysdeps/sparc/fpu/fraiseexcpt.c: New file.
* sysdeps/sparc/fpu/fsetexcptflg.c: New file.
* sysdeps/sparc/fpu/ftestexcept.c: New file.
* sysdeps/sparc/sparc32/fpu/bits/fenv.h: New file.
* sysdeps/sparc/sparc64/fpu/bits/fenv.h: New file.
1997-08-11 11:58 Richard Henderson <rth@cygnus.com>
Sparc64 merge:
* configure.in: Change up subdirectories, rename sparc8->sparcv8.
* csu/Makefile: Nuke need-nopic-initfini bits. The problem was
that sparc64 ld did not recognize pic relocs at all.
* elf/dl-deps.c: Include <string.h>.
* elf/do-rel.h (elf_dynamic_do_rel): Take reloc address and size
directly instead of the DT names to get them from.
* elf/dynamic-link.h (_ELF_DYNAMIC_DO_RELOC): New macro distilled
from ELF_DYNAMIC_DO_REL{,A}. Define a second version that accounts
for the possibility that DT_RELA and DT_JMPPLT overlap, as such is
the case on the Sparc.
* elf/elf.h: Stub out Elf64_Ver*, and make them the same as the
Elf32_Ver* bits. The linker does not even know to differentiate
between the word sizes. Someone should examine this and figure
out what the proper sizes of things should be for 64-bit hosts
before the sparc64 libraries are distributed.
* shlib-versions: Rename sparc64 ld.so to not conflict with sparc32
on the same machine.
Move old sysdeps/sparc contents to sysdeps/sparc/sparc32,
rename sparc8 subdir to sparcv8, move sysdeps/sparc64 content to
sysdeps/sparc/sparc64. Same for sysdeps/unix/sysv/linux/sparc.
* sysdeps/sparc/Implies: Do ieee754 here.
* sysdeps/sparc/configure.in: Move from sparc32/.
* sysdeps/sparc/sparc32/Implies: Do wordsize here.
* sysdeps/sparc/sparc64/Implies: Likewise.
* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_load_address):
Use uninitialized .got to find load address instead of AT_BASE, as
the later does not exist when running ld.so directly.
* sysdeps/sparc/sparc32/fpu/fpu_control.h: Move from ../.
* sysdeps/sparc/sparc64/fpu/fpu_control.h: Likewise.
* sysdeps/sparc/sparc32/udiv_qrnnd.S: Clean up PIC support.
* sysdeps/sparc/sparc64/Makefile (sysdep_routines): Add s_finitel
and s_signbitl for stdio.
* sysdeps/sparc/sparc64/configure.in: Remove, we no longer need
nopic_initfini.
* sysdeps/sparc/sparc64/bsd-_setjmp.S: Remove.
* sysdeps/sparc/sparc64/bsd-setjmp.S: Remove.
* sysdeps/unix/sysv/linux/sparc/sparc64/bsd-_setjmp.S: New empty file.
* sysdeps/unix/sysv/linux/sparc/sparc64/bsd-setjmp.S: New empty file.
* sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S: Add __longjmp alias.
* sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S: Add weak _setjmp
and setjmp entry points.
* sysdeps/sparc/sparc64/dl-machine.h: Finish real implementation.
* sysdeps/sparc/sparc64/elf/crtbegin.S: Add copyright, fix PIC.
* sysdeps/sparc/sparc64/elf/crtend.S: Likewise.
* sysdeps/unix/sysv/linux/sparc/bits/sigaction.h (struct sigaction):
Fix sa_flags size for sparc64; add sa_restorer for kernel.
* sysdeps/unix/sysv/linux/sparc/sparc64/brk.S: Fix PIC.
* sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/init-first.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S: New file.
1997-08-10 18:29:08 1997 Mark Kettenis <kettenis@phys.uva.nl>
* login/login.c (login): Check for correct return value of
utmpname.
1997-08-11 16:49 Ulrich Drepper <drepper@cygnus.com>
* time/tzset.c (__tzset_internal): Correctly handle TZ strings
following incorrect old POSIX specs.
Patch by Paul Eggert <eggert@twinsun.com>.
* sysdeps/generic/bits/sigaction.h: Correct comment for SA_RESTART.
* sysdeps/unix/bsd/osf/bits/sigaction.h: Likewise.
* sysdeps/unix/sysv/linux/alpha/bits/sigaction.h: Likewise.
* sysdeps/unix/sysv/linux/bits/sigaction.h: Likewise.
* sysdeps/unix/sysv/linux/mips/bits/sigaction.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/bits/sigaction.h: Likewise.
* sysdeps/unix/sysv/minix/bits/sigaction.h: Likewise.
* sysdeps/unix/sysv/sysv4/bits/sigaction.h: Likewise.
Reported by NIIBE Yutaka <gniibe@mri.co.jp>.
1997-08-09 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/math.texi: Define the macros @mul and @infinity and use
them to format the multiplication and infinity signs.
(FP Comparison Functions): Use @code, not @math, for C code
examples.
* elf/dl-profile.c: Add descriptions and implement reading of
1997-07-28 23:35 Ulrich Drepper <drepper@cygnus.com>
* csu/gmon-start.c (__gmon_start__): Call __monstartup not
monstartup.
* gmon/gmon.c: Rename moncontrol to __moncontrol and monstartup
to __monstartup.
* gmon/sys/gmon.h: Fix prototypes.
* gmon/sys/gmon_out.h: Pretty print.
* gmon/bb_exit_func.c (__bb_exit_func): Use memcpy instead of bcopy.
* gmon/gmon.c (__monstartup): Likewise.
(write_hist): Remove dependency on 32 int.
(_mcleanup): Don't call perror, use fprintf.
* elf/dl-load.c: Fix handling of current directory in search path.
* elf/Makefile (dl-routines): Add dl-profile.
* elf/dl-profile.c: New file.
* elf/dl-runtime.c (fixup): Add new parameter with address to store
relocation result in to elf_machine_relplt.
(profile_fixup): New function.
* elf/do-rel.h (elf_dynamic_do_rel): Add new parameter with address
to store relocation result in to elf_machine_relplt.
* elf/dl-support.c: Define _dl_profile and _dl_profile_map.
* elf/dynamic-link.h (ELF_DYNAMIC_RELOCATE): Add new parameter and
call elf_machine_runtime_setup with extra argument.
* elf/dl-reloc.c (_dl_relocate_object): Add new argument to
ELF_DYNAMIC_RELOCATE.
* elf/link.h: Add prototypes for new functions and variables.
* elf/rtld.c: Parse LD_PROFILE and LD_PROFILE_OUTPUT environment
variables and call _dl_start_profile if necessary.
* include/sys/gmon_out.h: New file.
* sysdeps/alpha/dl-machine.h (elf_machine_runtime_setup): Add
new parameter to enable profiling.
(elf_machine_rela): Add new parameter to specify place to store
result in.
* 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/sparc/dl-machine.h: Likewise.
* sysdeps/sparc64/dl-machine.h: Likewise.
* sysdeps/i386/dl-machine.h: Likewise.
(elf_machine_runtime_setup): Setup got[2] to _dl_runtime_resolve if
we do profiling.
(ELF_MACHINE_RUNTIME_TRAMPOLINE): Add code for _dl_runtime_profile.
* nis/nss_compat/compat-grp.c (internal_setgrent): Set FD_CLOEXEC
for stream on input file.
* nis/nss_compat/compat-pwd.c (internal_setpwent): Likewise.
* nis/nss_compat/compat-spwd.c (internal_setspent): Likewise.
* nss/nss_db/db-XXX.c (internal_setent): Likewise.
* nss/nss_db/db-alias.c (internal_setent): Likewise.
* nss/nss_db/db-netgrp.c (internal_setent): Likewise.
* nss/nss_files/files-XXX.c (internal_setent): Likewise.
* nss/nss_files/files-alias.c (internal_setent): Likewise.
* nss/nss_files/files-netgrp.c (internal_setent): Likewise.
* string/string.h: Pretty print.
* sysdeps/i386/fpu/bits/mathinline.h: Major update by John Bowman.
Add float and long double versions.
1997-07-27 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/rtld.c (print_unresolved): Replace empty object name by main
program name.
1997-07-27 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/generic/htons.c (htons): Renamed from __htons.
1997-07-27 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/bits/byteswap.h: New file.
1997-07-27 23:50 Philip Blundell <Philip.Blundell@pobox.com>
* inet/netinet/icmp6.h: Update for new drafts of POSIX.1g and IPv6
advanced API.
* inet/netinet/in.h: Likewise.
* inet/netinet/ip6.h: Likewise.
* sysdeps/unix/sysv/linux/bits/socket.h: Likewise.
* posix/sys/types.h: Add socklen_t.
* manual/socket.texi: Document some more IPv6 things.
* manual/libc.texinfo: Likewise.
1997-07-26 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* libc.map: Define missing symbol.
1997-07-27 14:31 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* nis/Makefile: Add nis_findserv.
* nis/lckcache.c: Fix typo.
* nis/nis_call.c: Fix problems with multihomed servers.
* nis/nis_findserv.c: New file.
* nis/nis_intern.h: Add more prototypes.
* nis/nis_lookup.c (nis_lookup): Don't try the next server if network
is unreachable.
* nis/nis_table.c (nis_list): Likewise.
* nis/nis_ping.c (nis_ping): Use MASTER_ONLY, don't call abort()
in error case.
* nis/nis_util.c (__nis_finddirectory): Give the right error code
back.
* nis/ypclnt.c: Make sure, that all sockets are closed.
1997-07-26 04:14 Ulrich Drepper <drepper@cygnus.com>
* elf/Makefile (distribute): Add genrtldtbl.awk.
(before-compile): Add rtldtbl.h.
(GAWK): New variable.
(generated): Add trusted-dirs.h and rtldtbl.h.
($(objpfx)rtldtbl.h): New rule. File is needed by dl-load.c.
* elf/dl-load.c: Rewrite. Now use cache and look for shared
objects in machine dependent directories.
* elf/dl-object.c (_dl_new_object): Initialize l_rpath_dirs member.
* elf/dl-support.c: Rename function to non_dynamic_init and add
initialization for _dl_platform, _dl_platformlen, _dl_pagesize
and call to initializer for search path.
* elf/elf.h: Add AT_PLATFORM and AT_HWCAP.
* elf/genrtldtbl.awk: New file.
* elf/link.h: Add type definitions and declarations for search
path cache.
* elf/rtld.c: Add definitions of variables used for search path cache.
* sysdeps/generic/dl-sysdep.c: Let auxiliary vector initialize
_dl_platform. Initialize _dl_pagesize early and use this value.
* sysdeps/i386/dl-machine.h: Add code for _dl_platform handling.
* sysdeps/mach/hurd/dl-sysdep.c: Initialize _dl_pagesize.
* sysdeps/unix/sysv/linux/dl-sysdep.c: Use _dl_pagesize instead
of calling getpagesize.
* elf/dl-error.c (_dl_signal_error): Make message nicer.
* nss/libnss_files.map: Fix typo.
Reported by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>.
* sysdeps/generic/strsep.c: Optimize case where separator set contains
only one character.
* sysdeps/libm-ieee754/s_ccosh.c: Correct sign of result for real
== +-Inf.
* sysdeps/libm-ieee754/s_ccoshf.c: Likewise.
* sysdeps/libm-ieee754/s_ccoshl.c: Likewise.
1997-07-25 09:15 H.J. Lu <hjl@gnu.ai.mit.edu>
* sysdeps/sparc/udiv_qrnnd.S: Check PIC instead of __PIC__.
* sysdeps/unix/sysv/linux/sparc/__sigtrampoline.S: Likewise.
* sysdeps/unix/mips/sysdep.S: Likewise.
* sysdeps/unix/sysv/linux/mips/clone.S: Likewise.
* sysdeps/mips/bsd-_setjmp.S: Remove __PIC__ comment.
* sysdeps/mips/bsd-setjmp.S: Likewise.
* sysdeps/mips/dl-machine.h: Remove extra stuff.
* sysdeps/mips/mips64/dl-machine.h: Likewise.
1997-07-25 18:55 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/standalone/arm/sysdep.c: New file.
1997-07-25 13:25 Philip Blundell <Philip.Blundell@pobox.com>
* aout/Makefile: New file.
* Makeconfig (binfmt-subdir): Assume a.out when not ELF.
* sysdeps/generic/machine-gmon.h: Add warning about limitations of
__builtin_return_address().
* sysdeps/arm/machine-gmon.h: New file, use assembly to avoid
above problem.
1997-07-25 16:24 H.J. Lu <hjl@gnu.ai.mit.edu>
* elf/dl-deps.c (_dl_map_object_deps): Fix a typo.
1997-07-22 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* math/libm-test.c (ccos_test, ccosh_test): Fix sign in some
tests.
1997-07-24 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sunrpc/clnt_udp.c (clntudp_call): Rename cu_wait from timeout to
not shadow the variable in the outer scope.
1997-07-06 23:36 Ulrich Drepper <drepper@cygnus.com>
* isomac.c (get_null_defines): Put NULL at end of list.
* hurd/Makefile: Remove special handling of sunrpc code.
* sysdeps/mach/hurd/Makefile: Likewise.
Compile CThreads code.
* sunrpc/rpc_main.c: Don't use MAXPATHLEN.
* sysdeps/mach/bits/libc-lock.h: Add definitions for key handling
functions.
* sysdeps/stub/bits/libc-lock.h: Likewise.
* sysdeps/mach/hurd/net/ethernet.h: New file.
* sysdeps/mach/hurd/net/if.h: New file.
* sysdeps/mach/hurd/net/if_arp.h: New file.
* sysdeps/mach/hurd/net/if_ether.h: New file.
* sysdeps/mach/hurd/net/if_ppp.h: New file.
* sysdeps/mach/hurd/net/route.h: New file.
Patches by Fila Kolodny <fila@ibi.com>.
* math/fenv-test.c: Add more tests.
Patch by Andreas Jaeger <aj@arthur.rhein-neckar.de>.
* sysdeps/wordsize-32/inttypes.h: Correct values for INTFAST_MIN,
INTFAST_MAX, and UINTFAST_MAX.
* sysdeps/wordsize-64/inttypes.h: Likewise.
Correct intmax_t definition.
1997-07-04 15:33 H.J. Lu <hjl@gnu.ai.mit.edu>
* elf/rtld.c (dl_main): Add '\n' to _dl_sysdep_fatal ().
1997-07-01 09:18 H.J. Lu <hjl@gnu.ai.mit.edu>
* libc.map: Add missing symbol.
1997-07-04 18:04 H.J. Lu <hjl@gnu.ai.mit.edu>
* stdlib/tst-strtol.c: Don't assume cpp takes ~0UL as long
in cc1. Cpp in gcc doesn't do it.
1997-07-01 21:15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* libio/libioP.h: Remove second definition of _IO_file_attach.
* sysdeps/i386/fpu/fraiseexcpt.c (feraiseexcept): Correct comments.
* sysdeps/sparc64/elf/start.S (_start): Update and reformat
copyright.
* manual/summary.awk: Likewise.
* misc/bits/stab.def: Likewise.
* posix/glob/Makefile.ami: Likewise.
* posix/glob/Makefile.in: Likewise.
* posix/glob/SMakefile: Likewise.
* sysdeps/gnu/errlist.awk: Likewise.
* sysdeps/mach/hurd/errnos.awk: Likewise.
* sysdeps/standalone/i386/force_cpu386/target.ld: Likewise.
* sysdeps/standalone/m68k/m68020/mvme136/mvme136.ld: Likewise.
* sysdeps/unix/snarf-ioctls: Likewise.
* sysdeps/vax/setjmp.c: Likewise.
1997-07-05 11:56 Ulrich Drepper <drepper@cygnus.com>
* login/login.c (tty_name): Use newly allocated buffer.
Patch by Jaakko Hyvätti <jaakko.hyvatti@iki.fi>.
* time/asctime.c: Never translate week and month name according
to LC_TIME. Patch by Paul Eggert <eggert@twinsun.com>.
1997-07-03 22:50 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* locale/setlocale.c (setname): Do nothing when reusing the same
name.
1997-07-03 20:18 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* libc.map: Add global variables of malloc.
1997-07-03 13:24 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/dl-version.c (find_needed): Look for needed objects also in
the dependency list of the current object. Added new parameter to
find its link map, caller changed.
1997-07-03 12:33 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/fraiseexcpt.c: Correct the FE_INEXACT and
FE_UNDERFLOW cases.
1997-07-01 13:36 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/link.h: Remove final comma from enumerator list, forbidden
by ISO C. Use __inline instead of inline.
1997-07-01 16:40 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* hurd/hurdsig.c: Include <hurd/id.h>.
(reauth_proc): Call proc_setowner appropriately too.
1997-07-01 09:18 H.J. Lu <hjl@gnu.ai.mit.edu>
* libc.map: Add missing symbol.
1997-06-30 12:12 Fila Kolodny <fila@ibi.com>
* sysdeps/mach/hurd/fchdir.c: Make fchdir a weak alias of __fchdir.
* sysdeps/mach/hurd/getpeername.c (getpeername): Remove spurious
declaration of addr.
1997-06-29 17:56 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/argp.texi (Argp Option Vectors): Fix use of @math to make
it work in TeX.
1997-06-27 21:25 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makeconfig (+includes): Add include directory to include path.
* configure.in (sysnames): Don't add it here.
* Makefile (subdir-dirs): Define and add it to vpath for headers.
* Make-dist (all-headers): Look in include directory for
indirection headers. Filter out header names pointing outside the
source directory.
* Makefile (distribute): Remove ansidecl.h, add libc.map.
* Make-dist (+tsrcs): Add version scripts for extra libraries.
* Makerules (distinfo-vars): Add %-map for extra libraries.
* sysdeps/unix/sysv/linux/alpha/Dist: Rename sys/kernel_termios.h
to kernel_termios.h.
* sysdeps/unix/sysv/linux/powerpc/Dist: Remove ioctl-types.h,
termbits.h and sys/kernel_termios.h.
* sysdeps/mips/mips64/Dist: New file.
* sysdeps/unix/sysv/linux/Dist: Add stdio_lim.h.in.
1997-06-29 23:03 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* math/test-fenv.c (feenv_nomask_test): New test for non masked
exceptions.
(feenv_mask_test): New test for masked exceptions
(feenv_tests): New function calls feenv_nomask_test and
feenv_mask_test.
(main): Call new tests.
(initial_tests): New test for initilisation.