* elf/dl-version.c (_dl_check_map_versions): New argument trace_mode.
Before testing versions check that we actually loaded the object
and whether we are in trace mode. If not loaded during tracing don't
test versions in this object.
(_dl_check_all_versions): Take new parameter and pass to
_dl_check_map_versions.
* sysdeps/generic/ldsodefs.h: Update prototypes for
_dl_check_all_versions and _dl_check_map_versions.
* elf/rtld.c (struct version_check_args): Add dotrace.
(version_check_doit): Pass args->dotrace to _dl_check_all_versions.
(dl_main): Pass info about trace mode to version_check_doit.
* elf/dl-open.c (dl_open_worker): Pass zero as new argument to
_dl_check_all_versions.
* manual/users.texi (XPG Functions): Document utmpxname, getutmp,
and getutmpx.
Patch by Bryan Henderson <bryanh@giraffe-data.com>.
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.
* elf/dl-deps.c (_dl_map_object_deps): Change return type and remove
last parameter. Move code to add map to global scope from here...
* elf/dl-open.c (dl_open_worker): ...here.
* elf/ldsodefs.h: Adjust declaration of _dl_map_object_deps.
* elf/rtld.c: Adjust call to _dl_map_object_deps.
* string/bits/string2.h: Fix aliasing problems.
* sysdeps/i386/i486/bits/string.h: Likewise.
* sysdeps/i386/bits/string.h: Likewise.
1998-12-28 Geoff Keating <geoffk@ozemail.com.au>
* sysdeps/powerpc/dl-machine.c: Handle shared library profiling.
* elf/rtld.c (dl_main): Don't call malloc() between
re-relocating the dynamic linker and running the application's crt0.
1999-07-21 Paul D. Smith <psmith@gnu.org>
* sysdeps/generic/glob.c: Move getlogin{,_r} prototypes below
glob.h to get __P() macro.
* posix/fnmatch.c (internal_fnmatch): Use K&R definition syntax,
not ANSI.
(__strchrnul): This won't exist outside GLIBC, so create one.
1999-07-25 Jakub Jelinek <jj@ultra.linux.cz>
* sysdeps/unix/sysv/linux/sparc/bits/types.h: Always define __qaddr_t.
__ino64_t should be 32bit unsigned type on sparc32.
Define __off64_t to __quad_t instead of __int64_t.
Make __pic_pid_t unsigned on sparc32.
1999-07-25 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* localedata/tst-rpmatch.sh: Use "&" instead of "§" to avoid a bug
in bash 2.03.
1999-07-25 Ulrich Drepper <drepper@cygnus.com>
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.
1999-07-12 Andreas Schwab <schwab@suse.de>
* elf/rtld.c (dl_main): When putting back the interpreter object
handle the case where a missing object might occur in the list of
objects but not in the search list when in trace mode.
* elf/rtld.c: Split _dl_start in two pieces to prevent GOT usage
before the relocation happened.
Patch by Franz Sirl <Franz.Sirl-kernel@lauterbach.com>.
1999-05-11 Ulrich Drepper <drepper@cygnus.com>
* elf/Versions (ld.so) [GLIBC_2.1.1]: Add _dl_lazy.
* elf/dl-open.c (_dl_open_worker): Only relocate newly loaded objects
lazily if LD_BIND_NOW is not set.
* elf/dl-support.c (_dl_lazy): New variable.
(non_dynamic_init): Set _dl_lazy according to LD_BIND_NOW envvar.
* elf/rtld.c (_dl_lazy): new global variable.
( dl_main): Remove lazy, replace it by _dl_lazy.
1999-05-06 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* locale/setlocale.c (new_composite_name): Check also whether the
first category name differs.
1999-05-11 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* sysdeps/unix/sysv/linux/ftime.c: Use the bsd implementation, not
the generic one.
1999-05-11 Philip Blundell <pb@nexus.co.uk>
* sysdeps/generic/bits/socket.h (struct sockaddr_storage): New
structure; storage suitable for any socket address.
* sysdeps/unix/sysv/linux/bits/socket.h (struct sockaddr_storage):
Likewise.
* sysdeps/unix/sysv/linux/mips/bits/socket.h (struct
sockaddr_storage): Likewise.
* inet/netinet/in.h: Use ULONG_MAX not ~0 to test for a 64-bit
platform.
1999-03-29 Ulrich Drepper <drepper@cygnus.com>
* elf/rtld.c (process_envvars): Do not automatically prevent lazy
relocation for SUID binaries.
* misc/regexp.h (compile): Cast some pointers to (char *) to avoid
1999-02-23 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* malloc/malloc.c (mALLOC_SET_STATe): Handle the case where a
non-checked heap is restored when malloc checking was requested by
the user.
(struct malloc_state): Add using_malloc_checking.
(MALLOC_STATE_VERSION): Increment minor.
(using_malloc_checking, disallow_malloc_check): New variables.
(__malloc_check_init): Use them.
(mALLOC_GET_STATe): Use mALLOc to allocate the malloc_state, so
that it can the chunk is properly instrumented when malloc
checking is enabled. Set the new using_malloc_checking field.
(malloc_hook_ini): Correct signature when _LIBC is not defined.
1999-02-23 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* sysdeps/unix/sysv/linux/i386/dl-librecon.h
(DISTINGUISH_LIB_VERSIONS): Don't relocate DT_STRTAB a second
time.
* elf/rtld.c (dl_main): Rename paths_initialized to rtld_is_main.
Don't call elf_get_dynamic_info and _dl_setup_hash a second time
if ld.so is the main program.
* stdio-common/vfprintf.c (vfprintf): If precision or width is too
* elf/dynamic-link.h (elf_get_dynamic_info): Take new argument with
load address. Relocate d_ptr in DT_DTRTAB, DT_SYMTAB, DT_RELA, DT_REL,
DT_JMPREL, DT_PLTGOT, and DT_VERSYM l_info entry.
(_ELF_DYNAMIC_DO_RELOC): Take extra argument which specifies whether
rel and rela relocations can both happen and skip one test if this
is not possible.
(ELF_DYNAMIC_DO_RELA, ELF_DYNAMIC_DO_REL): Call _ELF_DYNAMIC_DO_RELOC
appropriately.
* elf/dl-addr.c (_dl_addr): DT_SYMTAB and DT_STRTAB entries are
already relocated.
* elf/dl-deps.c (_dl_map_object_deps): DT_STRTAB entry is already
relocated.
* elf/dl-load.c (_dl_init_paths): DT_STRTAB entry is already relocated.
(_dl_map_object_from_fd): Call elf_get_dynamic_info with new argument.
(_dl_map_object): DT_STRTAB entry is already relocated.
* elf/dl-lookup.c (do_lookup): DT_STRTAB and DT_SYMTAB entries are
already relocated.
* elf/dl-reloc.c (_dl_relocate_object): DT_STRTAB entry is already
relocated.
* elf/dl-runtime.c (fixup): DT_SYMTAB, DT_STRTAB, DT_JMPREL, and
DT_VERSYM entries are already relocated.
(profile_fixup): Likewise.
* elf/dl-version.c: Rename VERSTAG macro into VERSYMIDX. Replace
all users.
(match_symbol): DT_STRTAB entry is already relocated.
(_dl_check_map_versions): Likewise. Also fo DT_VERSYM.
* elf/do-rel.h (elf_dynamic_do_rel): reladdr is now assumed to be
relocated already. DT_SYMTAB and DT_VERSYM entries are also relocated.
* elf/rtld.c (_dl_start): Pass extra argument to elf_get_dynamic_info.
(find_needed): DT_STRTAB entry is already relocated.
(dl_main): Pass extra argument to elf_get_dynamic_info.
DT_STRTAB entry is already relocated.
* sysdeps/alpha/dl-machine.h (elf_machine_fixup_plt): DT_JMPREL and
DT_PLTGOT entries are already relocated.
(elf_machine_rela): Likewise for DT_SYMTAB.
* sysdeps/arm/dl-machine.h (elf_machine_rel): DT_STRTAB is already
relocated.
* sysdeps/i386/dl-machine.h (elf_machine_rel): Likewise.
* sysdeps/m68k/dl-machine.h (elf_machine_rela): Likewise.
* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela): Likewise.
* sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela): Likewise.
* sysdeps/powerpc/dl-machine.c (__process_machine_rela): Likewise.
* sysdeps/mips/dl-machine.h (elf_machine_got_rel): Likewise.
(elf_machine_got_rel): Likewise for DT_SYMTAB and DT_STRTAB.
* grp/initgroups.c (initgroups): If function in current module was
successful don't stop but continue to process to get all the groups.
* 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-12-27 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-lookup.c (_dl_num_relocations): New variable.
(do_lookup): Increment _dl_num_relocations for every call.
* elf/rtld.c (print_statistics): New function.
(_dl_debug_statistics): New variable. Set when statistics are asked
for.
(rtld_total_time, relocate_time, load_time): New variables. Used
in print_statistics.
(_dl_start): Record start and end time of startup. Call
print_statistics if needed.
(dk_main): Record times for relocations and loading.
(process_dl_debug): Recognize statistics.
Low-level, low-overhead, high-precision timing funcationality.
* sysdeps/generic/hp-timing.h: New file.
* sysdeps/i386/i686/Makefile: New file.
* sysdeps/i386/i686/hp-timing.h: New file.
* sysdeps/i386/i686/hp-timing.c: New file.
* sysdeps/i386/dl-machine.h (elf_machine_rel): Reverse order of OR
clauses to avoid accessing global variables during rtld relocation.
* sunrpc/rpc_main.c: Unify messages.
* sysdeps/unix/sysv/linux/arm/Dist: Add ioperm.c and sys/io.h.
* elf/rtld.c: Add a few __builtin_expects where they will improve
a lot.
1998-11-05 Ulrich Drepper <drepper@cygnus.com>
1998-11-04 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* libio/genops.c (_IO_least_marker): Add additional parameter
end_p replacing fp->_IO_read_end.
(save_for_backup): Likewise. All callers changed. Use _IO_size_t
and _IO_ssize_t instead of int.
(_IO_switch_to_main_get_area): Remove use of _IO_save_ptr.
(_IO_switch_to_backup_area): Likewise. Fix comments.
(_IO_seekmark): Undo last change.
(_IO_default_pbackfail): Correct use of backup area.
* libio/libio.h (_IO_FILE_complete): Remove _IO_save_ptr.
* elf/Versions [libc, GLIBC_2.01]: Add _dl_global_scope_alloc.
* elf/dl-open.c (_dl_global_scope_alloc): Move definition to
* elf/dl-deps.c: ...here.
* elf/dl-open.c (dl_open_worker): Call _dl_map_object_deps with
new parameter and expect result. Remove code handling RTLD_GLOBAL.
Add return value of _dl_map_object_deps to
_dl_main_searchlist->r_nlist.
* elf/dl-deps.c (_dl_map_object_deps): Change to return value.
If we parameter GLOBAL is nonzero add object and dependencies to
the global scope.
* elf/ldsodefs.h: Adapt prototype for _dl_map_object_deps.
* elf/rtld.c (dl_main): Call _dl_map_object_deps with new parameter.
Mark all objects as in global scope.
* elf/dl-object.c (_dl_new_object): Initialize l_global to zero.
* sysdeps/unix/sysv/linux/bits/sockunion.h: Add Econet support.
* sysdeps/unix/sysv/linux/i386/sysdep.h: Add .L prefix to symbols
used in macro magic.
1998-11-02 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/unix/sysv/linux/netatalk/at.h: Include <linux/atalk.h>
before <sys/socket.h> to make sockaddr_at available to
<sys/socket.h>.
* posix/glob.h: Remove __P from parameter lists of declarations.
1998-11-02 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* time/tzset.c (tz_compute): Remove unused parameter timer.
Change caller.
1998-11-02 Mark Kettenis <kettenis@phys.uva.nl>
* sysdeps/generic/bits/types.h (__ipc_pid_t): New typedef.
1998-11-02 Ulrich Drepper <drepper@cygnus.com>
1998-10-07 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-open.c (_dl_global_scope_alloc): Make global.
(dl_open_worker): Use realloc, not malloc to resize array.
* elf/rtld.c (_dl_initial_searchlist): New variable.
(_dl_main): Copy content of _dl_main_searchlist to
_dl_initial_searchlist.
* elf/ldsodefs.h: Add declarations for _dl_initial_searchlist and
_dl_global_scope_alloc.
* elf/Versions [libc, GLIBC_2.1]: Add _dl_initial_searchlist.
* elf/dl-close.c (_dl_close): When removing object with global
scope remove allocated searchlist if no dynamically loaded object
is on it anymore.
* elf/dl-support.c (_dl_initial_searchlist): Renamed from fake_scope.
(_dl_global_scope, _dl_main_searchlist): Use _dl_initial_searchlist.
* malloc/mtrace.c (tr_where): Don't print space in location string,
print it afterwards. Print better symbol name information.
1998-09-22 19:58 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu>
* posix/execvp.c: Don't give up searching the PATH if execve
returns ENOTDIR.
1998-09-22 12:53 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/init-first.c (init): Don't call setfpucw only
if _dl_fpu_control_set is set.
* sysdeps/generic/dl-sysdep.c: Don't set _dl_fpu_control_set.
* elf/rtld.c: Don't define _dl_fpu_control_set.
* elf/Versions: Remove _dl_fpu_control_set.
1998-09-22 11:51 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/alpha/bits/sigaction.h (SA_ONSTACK): Define.
* sysdeps/unix/sysv/linux/sparc/bits/sigaction.h: Likewise.
* sysdeps/unix/sysv/linux/mips/bits/sigaction.h: Likewise.
Correct values of other SA_* macros according to kernel headers.
1998-09-22 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/dl-load.c (_dl_init_paths): Avoid warning about unused
variable l.
* elf/dl-error.c (_dl_catch_error): Avoid warning about clobbering
old.
1998-09-21 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/ldsodefs.h: Fix typo in comment.
1998-09-21 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* libio/genops.c (_IO_default_pbackfail): Add cast to unsigned
char when comparing buffer contents with putback character.
1998-09-21 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/Makefile (dl-routines, elide-routines.os, rtld-routines):
Undo last change.
* elf/Versions: Undo last change. Export _dl_fpu_control and
_dl_fpu_control_set.
* elf/rtld.c (_dl_fpu_control, _dl_fpu_control_set): New
variables. Include <fpu_control.h>.
* sysdeps/generic/dl-sysdep.c: Store AT_FPUCW value in
_dl_fpu_control instead of __fpu_control, set _dl_fpu_control_set
to indicate that is was seen.
* sysdeps/unix/sysv/linux/init-first.c: Omit call to __setfpucw
only if _dl_fpu_control was set and is equal to desired value.
* math/Makefile (aux): Undo last change.
* math/Versions: Export __fpu_control with version GLIBC_2.0.
1998-09-14 11:26 Ulrich Drepper <drepper@cygnus.com>
* wcsmbs/wcsmbs-tst1.c: Include stdlib.h.
1998-09-14 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* libc-work/nis/nss_nisplus/nisplus-service.c
(_nss_nisplus_parse_servent): Convert port in network byte order.
1998-09-14 07:53 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu>
* stdlib/stdlib.h: Add a switch, __need_malloc_and_calloc,
to provide only malloc and calloc.
* include/stdlib.h: Support the above.
* string/bits/string2.h: Use __need_malloc_and_calloc when
including stdlib.h.
(__string2_1bptr_p): Avoid -Wbad-function-cast warnings.
* iconvdata/iso-2022-jp.c: Include <stdlib.h>.
* iconvdata/iso646.c: Include <stdlib.h>.
1998-09-14 07:51 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu>
* sunrpc/rpc_cout.c: Add braces around ambiguous else.
* sysdeps/libm-ieee754/w_pow.c: Likewise.
* sysdeps/libm-ieee754/w_powf.c: Likewise.
* sysdeps/libm-ieee754/w_powl.c: Likewise.
1998-09-14 07:57 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu>
* stdio-common/stdio_lim.h.in: New file. All parameters
are adjustable at build time.
* Rules: Add a rule to build bits/stdio_lim.h from
stdio-common/stdio_lim.h.in. (It has to be in Rules so that
all subdirectories know how to make the file. It can't be
in Makerules because then it gets built at top level and the
dependencies are wrong.)
* stdio-common/Makefile (distribute): Add stdio_lim.h.in.
* sysdeps/unix/sysv/linux/Makefile: Delete rules to make
stdio_lim.h.
* sysdeps/unix/sysv/linux/stdio_lim.h.in: Removed.
* sysdeps/unix/sysv/linux/Dist: Take out stdio_lim.h.in.
* sysdeps/posix/Makefile: Removed.
* sysdeps/posix/mk-stdiolim.c: Removed.
* sysdeps/generic/bits/stdio_lim.h: Removed.
1998-09-12 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* argp/argp-help.c: Fixup indentation.
* nss/nss_files/files-alias.c: Quiet -Wparentheses warning.
* resolv/nss_dns/dns-network.c: Likewise.
* resolv/res_send.c: Likewise.
* rt/aio_cancel.c: Likewise.
* rt/aio_misc.c: Likewise.
1998-09-12 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile (install-symbolic-link): Remove the link list file at last.
* Makerules (install-clean-symbolic-link-list): Removed.
1998-09-12 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* timezone/tst-timezone.c: Print time in UTC to get consistent
output.
1998-09-12 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/rtld.c (_dl_rpath): Removed.
* elf/dl-support.c (_dl_path): Removed.
* elf/Makefile ($(objpfx)ld.so): Don't pass -rpath.
(CFLAGS-dl-support.c): Removed.
* elf/dl-load.c (env_path_list): Renamed from fake_path_list. All
uses changed.
(_dl_init_paths): Always set env_path_list from LD_LIBRARY_PATH,
instead of appending it to the main map's rpath info.
(_dl_map_object): Consistently use LD_LIBRARY_PATH after all
DT_RPATHs. This makes it effective again.
(decompose_rpath): Remove second parameter, callers changed.
(fillin_rpath): Allocate enough space in curwd.
(expand_dynamic_string_token): Cope with get_origin returning -1.
1998-09-14 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* libc-work/nis/nss_compat/compat-pwd.c: Add support for
passwd.adjunct.
* nis/nss_nis/nis-pwd.c (_nss_nis_getpwent_r): Correct test for
invalid password.
1998-09-13 18:06 Ulrich Drepper <drepper@cygnus.com>
* locale/programs/locale.c: Update dates.
1998-09-02 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-load.c (fillin_rpath): Handle "/" as RPATH correctly.
(_dl_map_object_from_fd): Make NAME argument const.
Remove last parameter in _dl_new_object call.
(print_search_path): Correct construction of composed path name.
(_dl_map_object): Prevent looking at RPATH of the main map twice.
Remove last parameter in _dl_new_object call.
* elf/dl-object.c: Remove last parameter. Determine whether create
origin entry based on empty realname. Handle file in root directory
correctly.
* elf/ldsodefs.h: Adjust prototype for _dl_new_object.
* elf/rtld.c (dl_main): Add comment describing reason for memory leak.
Remove last parameter in _dl_new_object call.
* sysdeps/generic/dl-origin.h: Handle file in root directory correctly.
* sysdeps/unix/sysv/linux/dl-origin.h: Likewise.
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
Call _dl_new_object with extra argument.
Call _dl_new_object with extra argument.
but the main one if new argument is nonzero.
* elf/ldsodefs.h: Adjust for _dl_new_object change.
(dl_main): Call _dl_new_object with extra argument.
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-07-02 21:51 Ulrich Drepper <drepper@cygnus.com>
* Makeconfig: Define list of subdirs as all-subdirs and make subdirs
a copy.
* Makefile: Add rules to generate map files.
(distribute): Remove libc.map, add Versions.def and versions.awk.
* Makerules: Change rules to find map files on common-objpfx.
* elf/Makefile: Likewise.
* md5-crypt/Makefile: Likewise.
* nis/Makefile (libnsl-map): Remove.
* Versions.def: New file.
* versions.awk: New file.
* argp/Versions: New file.
* assert/Versions: New file.
* catgets/Versions: New file.
* csu/Versions: New file.
* ctype/Versions: New file.
* db/Versions: New file.
* debug/Versions: New file.
* dirent/Versions: New file.
* elf/Versions: New file.
* gmon/Versions: New file.
* grp/Versions: New file.
* hesiod/Versions: New file.
* hurd/Versions: New file.
* iconv/Versions: New file.
* inet/Versions: New file.
* intl/Versions: New file.
* io/Versions: New file.
* libio/Versions: New file.
* linuxthreads/Versions: New file.
* locale/Versions: New file.
* login/Versions: New file.
* malloc/Versions: New file.
* math/Versions: New file.
* md5-crypt/Versions: New file.
* misc/Versions: New file.
* nis/Versions: New file.
* nss/Versions: New file.
* posix/Versions: New file.
* pwd/Versions: New file.
* resolv/Versions: New file.
* resource/Versions: New file.
* rt/Versions: New file.
* setjmp/Versions: New file.
* shadow/Versions: New file.
* signal/Versions: New file.
* socket/Versions: New file.
* stdio/Versions: New file.
* stdio-common/Versions: New file.
* stdlib/Versions: New file.
* streams/Versions: New file.
* string/Versions: New file.
* sunrpc/Versions: New file.
* sysdeps/alpha/Versions: New file.
* sysdeps/alpha/fpu/Versions: New file.
* sysdeps/i386/Versions: New file.
* sysdeps/sparc/Versions: New file.
* sysdeps/unix/sysv/Versions: New file.
* sysdeps/unix/sysv/linux/Versions: New file.
* sysdeps/unix/sysv/linux/alpha/Versions: New file.
* sysdeps/unix/sysv/linux/i386/Versions: New file.
* sysdeps/unix/sysv/linux/mips/Versions: New file.
* sysvipc/Versions: New file.
* termios/Versions: New file.
* time/Versions: New file.
* wcsmbs/Versions: New file.
* wctype/Versions: New file.
* libc.map: Removed.
* db/libdb.map: Removed.
* elf/libdl.map: Removed.
* hesiod/libnss_hesiod.map: Removed.
* hurd/libhurduser.map: Removed.
* hurd/libmachuser.map: Removed.
* linuxthreads/libpthread.map: Removed.
* locale/libBrokenLocale.map: Removed.
* login/libutil.map: Removed.
* math/libm.map: Removed.
* md5-crypt/libcrypt.map: Removed.
* nis/libnsl.map: Removed.
* nis/libnsl_compat.map: Removed.
* nis/libnss_nis.map: Removed.
* nis/libnss_nisplus.map: Removed.
* nss/libnss_db.map: Removed.
* nss/libnss_files.map: Removed.
* resolv/libnss_dns.map: Removed.
* resolv/libresolv.map: Removed.
* rt/librt.map: Removed.
* elf/dl-load.c (fillin_rpath): Fix test for trusted directory.
Fix typos.
* elf/rtld.c (process_dl_debug): Recognize 'all'.
(process_envvars): LD_BIND_NOW must be followed by y, Y, or 1.
* sysdeps/generic/elf/backtracesyms.c: Allocate string memory of
correct size.
* sysdeps/unix/sysv/linux/getsysstats.c (get_proc_path): Fix typo
in comment.
1998-05-19 23:08 Ulrich Drepper <drepper@cygnus.com>
* elf/rtld.c: Recognize --ignore-rpath argument and set _dl_ignore_path
variable using the value.
* elf/ldsodefs.h: Declare _dl_ignore_path.
* elf/dl-load.c (decompose_rpath): Compare name of handled shared
object against list in _dl_ignore_path and ignore RPATH if on the list.
* elf/dl-support.c: Define _dl_ignore_path for static binaries.
* iconvdata/run-iconv-test.sh: Call ld.so with --ignore-rpath parameter
to make sure we get the correct helper libraries loaded.
* elf/dl-load.c (decompose_rpath): Remove `room' parameter. Use
"RPATH" string in call to fillin_rpath instead.
(_dl_init_paths): Remove this parameter from call to decompose_rpath.
1998-05-19 15:58 Ulrich Drepper <drepper@cygnus.com>
* elf/rtld.c (process_envvars): Fix typo. Don't handle
LD_PROFILE_OUTPUT in SUID binaries.
* intl/dcgettext.c: In SUID binaries don't let language part of
locale value contain path elements.
* intl/explodename.h: Define new function _nl_find_language.
* intl/loadinfo.h: Declare _nl_find_language.
* locale/findlocale.c (_nl_find_locale): Use _nl_find_locale to get
language part it drop the value is path element is contained.
* locale/setlocale.c: Fix typo.
1998-05-18 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/arm/socket.S: Correct handling of arguments.
* sysdeps/arm/strlen.S: Support both big and little endian processors.
* sysdeps/arm/sysdep.h (ALIGNARG): ELF .align directive uses a
log, not a byte-count.
* sysdeps/unix/arm/sysdep.S (syscall_error): Use C_SYMBOL_NAME for
a.out compatibility.
1998-05-19 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/unix/bsd/vax/vfork.S: Fix the "the the" problems.
* sysdeps/unix/bsd/sun/m68k/vfork.S: Likewise.
* sysdeps/unix/bsd/hp/m68k/vfork.S: Likewise.
* posix/unistd.h: Likewise.
* math/math.h: Likewise.
* manual/users.texi (Manipulating the Database): Likewise.
* manual/signal.texi (Job Control Signals): Likewise.
* manual/message.texi (The gencat program): Likewise.
* manual/filesys.texi (Hard Links): Likewise.
* manual/math.texi (SVID Random): Likewise.
* manual/llio.texi (Waiting for I/O): Likewise.
* manual/io.texi (File Name Errors): Likewise.
* manual/conf.texi (String Parameters): Likewise.
* manual/arith.texi (Infinity): Likewise.
* malloc/malloc.c: Likewise.
* hurd/hurdsig.c (_hurd_internal_post_signal): Likewise.
* csu/Makefile: Likewise.
1998-05-04 12:40 Ulrich Drepper <drepper@cygnus.com>
* malloc/malloc.c (ptmalloc_init_all): New function. Similar to
ptmalloc_unlock_all, but re-initializes the mutexes instead.
(ptmalloc_init): Use new function in thread_at_fork call.
(thread_atfork_static): Likewise.
Suggested by Wolfram Gloger and Xavier Leroy.
1998-04-21 18:00 Ulrich Drepper <drepper@cygnus.com>
* iconv/gconv.c (__gconv): Remove bogus input buffer size computation.
* iconv/gconv_open.c (__gconv_open): Initialize outbufend element.
* iconv/gconv_simple.c (__gconv_transform_internal_ascii): Don't use
character in comparison with uint32_t.
(__gconv_transform_internal_utf8): Specify MAX_NEEDED_TO.
(__gconv_transform_utf8_internal): Specify MAX_NEEDED_FROM.
Optimize BODY a bit.
* iconv/loop.c: Require MIN_NEEDED_INPUT and MIN_NEEDED_OUTPUT to
be defined.
* iconv/skeleton.c: Also reset converted counter in case of an error.
Call reset function using correct value for output buffer start.
* iconvdata/Makefile: Re-enable tests.
* iconvdata/iso8859-1.c: Swap MIN_NEEDED_INPUT and MIN_NEEDED_OUTPUT
value for to-conversion.
* iconvdata/TESTS: Add new third column.
* iconvdata/run-iconv-test.sh: Add support for charsets which are
not ASCII based.
* iconvdata/testdata/suntzus: New file.
* elf/dl-minimal.c (__strtol_internal): Increment pointer to string
while reading. Correctly used base. Little optimization.
(__strtoul_internal): Likewise.
* elf/rtld.c (dl_main): Test to avoid duplicate call of _dl_init_paths
was wrong. Use explicit variable.
1998-04-20 23:49 Zack Weinberg <zack@rabi.phys.columbia.edu>
* configure.in: Check for awk.
* config.make.in: Add AWK to be substituted.
* manual/xtract-typefun.awk: Rewrite to eliminate gawk extensions.
* manual/users.texi: Fix typo exposed by above rewrite.
* Makefile: Invoke awk using AWK variable.
* csu/Makefile: Likewise.
* elf/Makefile: Likewise.
* mach/Makefile: Likewise.
* manual/Makefile: Likewise.
* sysdeps/gnu/Makefile: Likewise.
* sysdeps/mach/hurd/Makefile: Likewise.
* sysdeps/unix/Makefile: Likewise.
* timezone/Makefile: Likewise.
1998-04-10 Gordon Matzigkeit <gord@profitpress.com>
* sysdeps/gnu/errlist.awk (ERR_REMAP): Implement error code to
array index translation.
(SYS_ERRLIST_ALIAS, SYS_NERR_ALIAS): Make weak aliases only if
these are defined.
* sysdeps/mach/hurd/Dist: Add errlist.c to distribution.
* sysdeps/mach/hurd/errlist.c: New file.
(ERR_TRANSLATE): Map Hurd error codes into errlist indices.
(_hurd_errlist): The Hurd error list doesn't have Unix sys_errlist
semantics, so rename it.
1998-04-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* iconvdata/run-iconv-test.sh: Make portable. Always test all
conversions.
1998-04-21 12:30 H.J. Lu <hjl@gnu.org>
* wcsmbs/wcsrtombs.c (__wcsrtombs): Initialize result to 0.
* wcsmbs/wcsnrtombs.c: Likewise.
1998-04-21 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/dl-sysdep.c: Handle _dl_hwcap correctly.
* wcsmbs/btowc.c (__btowc): Declare inptr as const char *.
* time/strftime.c (my_strftime): Initialize pad variable in
declaration.
* iconvdata/big5.c: Don't use character constants in comparisons
with unsigned value.
* sysdeps/generic/setutxent.c: New file.
* sysdeps/generic/getutxent.c: New file.
* sysdeps/generic/endutxent.c: New file.
* sysdeps/generic/getutxid.c: New file.
* sysdeps/generic/getutxline.c: New file.
* sysdeps/generic/pututxline.c: New file.
* sysdeps/generic/utmpxname.c: New file.
* sysdeps/generic/updwtmpx.c: New file.