2002-03-14 Ulrich Drepper <drepper@redhat.com>
* elf/dl-minimal.c (malloc): Declare _end as hidden.
(__errno_location): New function. Declare errno as hidden.
* elf/rtld.c (_dl_argc): Define as hidden.
(_dl_skip_args): Define as hidden.
(_begin, _end): Declare as hidden.
* sysdeps/generic/dl-sysdep.c (_end): Declare as hidden.
* sysdeps/generic/entry.h (_start): Declare as hidden.
* sysdeps/generic/ldsodefs.h (_dl_argc): Declare as hidden.
* sysdeps/i386/dl-machine.h (elf_machine_runtime_setup): Declare
_dl_runtime_resolve and _dl_runtime_profile as hidden.
(RTLD_START): Use GOTOFF to access _dl_skip_args and _dl_fini.
2002-03-14 Jakub Jelinek <jakub@redhat.com>
* locale/broken_cur_max.c (__ctype_get_mb_cur_max): Use nl_langinfo.
* locale/Versions (_nl_current_LC_COLLATE, _nl_current_LC_CTYPE):
Remove.
2002-03-14 Jakub Jelinek <jakub@redhat.com>
* sysdeps/generic/mp_clz_tab.c: New file.
* sysdeps/i386/mp_clz_tab.c: New file.
* sysdeps/hppa/mp_clz_tab.c: New file.
* sysdeps/powerpc/mp_clz_tab.c: New file.
* stdlib/Makefile (aux): Revert last patch.
* math/Makefile (gmp-objs): Likewise.
2002-03-13 Paul Eggert <eggert@twinsun.com>
* time/strftime.c: Comment fixes for references to obsolescent
standards, In most cases the simplest fix is to remove the
confusing comments. Cross-referencing all the standards properly
is a bit of a pain, and it should be enough to put that info in
the documentation as I did in my recent time.texi patch.
2002-03-13 Paul Eggert <eggert@twinsun.com>
* manual/time.texi (Formatting Calendar Time):
ISO C99 also specifies the E and O modifiers.
%P is a GNU extension, and is not in ISO C99.
Mention that %r is equivalent to %I:%M:%S %p in the POSIX locale.
%T is also in ISO C99.
The RFC 822 example is not valid in arbitrary locales.
Reword the POSIX.2 wording slightly, to make it a bit clearer
that POSIX.2 formats are also supported by later POSIX versions.
If a format was introduced in ISO C99 it is also required by
POSIX.1-2001.
* sysdeps/mach/hurd/setpriority.c [POLICY_TIMESHARE_BASE_COUNT]:
Use task_policy in place of task_priority.
* sysdeps/generic/bits/mman.h
(MS_ASYNC, MS_SYNC, MS_INVALIDATE): New macros.
* sysdeps/mach/msync.c: New file.
* sysdeps/mach/powerpc/syscall.S: New file.
* mach/msg.c [MACH_MSG_OVERWRITE]
(__mach_msg_trap, __mach_msg_overwrite): New functions.
* mach/Versions (libc: GLIBC_2.0): Add mach_msg_overwrite and __ name.
* sysdeps/mach/configure.in: Check for clock.defs to put into
mach_interface_list.
* sysdeps/mach/configure: Regenerated.
* mach/Makefile (mach-machine): New variable, set from $(base-machine).
($(objpfx)mach-syscalls.mk): Use it in place of $(base-machine).
($(mach-syscalls:%=$(objpfx)%.S) static pattern rule):
Use <mach/machine/syscall_sw.h> instead of <sysdep.h>.
(mach-shortcuts): Add device_read_overwrite_request,
device_read_overwrite, vm_read_overwrite, thread_switch.
* configure.in (base_machine): Set to $machine by default.
* configure: Regenerated.
* elf/dl-close.c (remove_slotinfo): New function. Handles everything
for removing reference of module in slotinfo list.
(_dl_close): Use remove_slotinfo.
* sysdeps/generic/dl-tls.c: General pretty printing.
(oom): Define only if SHARED.
(_dl_next_tls_modid): Correct starting point for the case we assume
there is a gap. Add missing instruction grouping (doh!). Correct
tests for reaching maximum index.
* elf/Makefile: Add rules to build and run tst-tls7.
* elf/tst-tls7.c: New file.
* elf/tst-tlsmod3.c: New file.
* elf/tst-tlsmod1.c: Move #include "tls-macros.h" instead #ifdef
USE_TLS.
* elf/tst-tlsmod2.c: Likewise.
2002-02-12 Ulrich Drepper <drepper@redhat.com>
* sysdeps/generic/dl-tls.c (TLS_DTV_UNALLOCATED): Renamed from
TLS_DTV_UNALLOCATE.
(oom): New function.
(_dl_next_tls_modid): Rewrite to handle dl_tls_dtv_slotinfo_list.
(_dl_determine_tlsoffset): Likewise.
(_dl_allocate_tls): Likewise.
(__TLS_GET_ADDR): Define if not already defined.
(_dl_tls_symaddr): New function.
(allocate_and_init): New function.
(__tls_get_addr): Actually implement handling of generation counter
and deferred allocation.
* sysdeps/generic/ldsodefs.h (_rtld_global): Remove _dl_initimage_list,
add _dl_tls_dtv_slotinfo_list, _dl_tls_static_nelem, and
_dl_tls_generation.
Define TLS_SLOTINFO_SURPLUS and DTV_SURPLUS.
Declare _dl_tls_symaddr.
* sysdeps/i386/dl-tls.h: Disable __tls_get_addr handling unless
SHARED.
* include/link.h (struct link_map): Remove l_tls_nextimage and
l_tls_previmage.
* elf/dl-sym.c (_dl_sym): After successful lookup call _dl_tls_symaddr
instead of DL_SYMBOL_ADDRESS for STT_TLS symbols.
(_dl_vsym): Likewise.
* elf/rtld.c (_dl_start_final): Adjust initdtv initialization for new
layout.
(dl_main): Allow PT_TLS be present for empty segment. Remove
nextimage list handling. Instead add all modules using TLS to
dl_tls_dtv_slotinfo_list.
* elf/dl-open.c (dl_open_worker): After successfully loading all
objects add those with TLS to the dl_tls_dtv_slotinfo_list list.
* elf/dl-load.c (_dl_map_object_from_fd): If PT_TLS entry is for an
empty segment don't do anything. Remove handling of initimage list.
* elf/Versions [ld] (GLIBC_2.0): Add __libc_memalign.
(GLIBC_PRIVATE): Add _dl_tls_symaddr.
* elf/dl-minimal.c: Define __libc_memalign.
* elf/dl-support.c: Remove _dl_initimage_list. Add
_dl_tls_dtv_slotinfo_list, _dl_tls_static_nelem, and
_dl_tls_generation.
* include/stdlib.h: Declare __libc_memalign.
* elf/Makefile: Add rules to build and run tst-tls4 and tst-tls5.
* elf/tst-tls4.c: New file.
* elf/tst-tls5.c: New file.
* elf/tst-tlsmod2.c: New file.
* elf/tls-macros.h: asms using ___tls_get_addr destroy %ecx and %edx.
* elf/tst-tlsmod1.c: Don't define variables unles USE_TLS.
* elf/tst-tls1.c: Use test-skeleton.c.
* elf/tst-tls2.c: Likewise.
* elf/tst-tls3.c: Likewise.
* elf/dl-conflict.c (RESOLVE_MAP): Return NULL not 0.
* sysdeps/mips/machine-gmon.h: Update MCOUNT for current GCC behavior.
* sysdeps/generic/dl-tls.c (_dl_determine_tlsoffset): More changes
required by passing pointer to last element of the list.
* elf/dl-load.c (_dl_map_object_from_fd): Move adjustment of
l_tls_initimage to a place where it actually is performed.
* elf/tls-macros.h: ...here. New file.
* elf/dl-deps.c (struct openaux_args): Add open_mode element.
(openaux): Pass open_mode as new last argument to _dl_map_object.
(_dl_map_object_deps): Add new argument open_mode. Initialize
open_mode element of args variable with it.
* elf/dl-open.c (dl_open_worker): Pass __RTLD_DLOPEN flag is set to
_dl_map_object_deps.
* elf/rtld.c (dl_main): Add zero as last parameter to
_dl_map_object_deps call.
* sysdeps/generic/ldsodefs.h: Adjust prototype of _dl_map_object_deps.
* elf/nodlopen2.c: New file.
* elf/nodlopenmod2.c: New file.
* elf/Makefile: Add rules to build and run nodlopen2.
* elf/tls-macros.hgg: ...here. New file.
2002-02-08 Richard Henderson <rth@redhat.com>
* elf/Makefile (tests): Add tst-tls1.
* elf/tst-tls1.c: New file.
* sysdeps/generic/dl-tls.c (_dl_determine_tlsoffset): Don't handle
alignment of TCB for now.
* elf/rtld.c (dl_main): Use p_vaddr as address of TLS
initialization image for the application itself.
loop to initialize TLS block.
2002-02-09 Ulrich Drepper <drepper@redhat.com>
* sysdeps/generic/dl-tls.c (_dl_allocate_tls): Correctly terminate
loop to initial TLS block.
* csu/version.c (banner): If TLS support is available say so.
2002-02-09 Richard Henderson <rth@twiddle.net>
* sysdeps/generic/ldsodefs.h (struct rtld_global): Also include
_dl_cpuclock_offset if HP_SMALL_TIMING_AVAIL.
2002-02-09 Jakub Jelinek <jakub@redhat.com>
* sysdeps/generic/dl-environ.c (unsetenv): Clear cnt before use.
* po/ca.po: Update from translation team.
* po/sk.po: Likewise.
2002-02-08 Ulrich Drepper <drepper@redhat.com>
* elf/rtld.c (_dl_start_final): Install DTV explicitly.
(dl_main): Move dtv/static TLS handling before relocation.
Unconditionally call _dl_tlsoffset. Call _dl_allocate_tls and
TLS_INIT_TP to allocate and install the dtv/static TLS block.
* sysdeps/generic/dl-tls.c (_dl_determine_tlsoffset): If no object
so far uses TLS initialize GL(dl_tls_static_size) and
GL(dl_tls_static_align) to account for the TCB.
(_dl_allocate_tls): New function.
* sysdeps/generic/ldsodefs.h (rtld_global): Add
_dl_initial_dtv_malloced.
* configure.in: Test for __builtin_memset more realistically.
* csu/version.c (banner): If TLS support available say so.
2002-02-07 Andreas Schwab <schwab@suse.de>
* configure.in: Fix check for -zcombreloc.
2002-02-06 H.J. Lu <hjl@gnu.org>
* config.h.in (HAVE_BUILTIN_MEMSET): New.
* configure.in: Check if __builtin_memset really works.
* elf/rtld.c (_dl_start): Check HAVE_BUILTIN_MEMSET instead of
__GNUC_PREREQ (2, 96) before using __builtin_memset.
2002-02-06 Jakub Jelinek <jakub@redhat.com>
* io/bug-ftw3.c (main): Don't try the test if root.
2002-02-06 Martin Schwidefsky <schwidefsky@de.ibm.com>
* sysdeps/unix/sysv/linux/s390/brk.c (__brk): Correct inline assembly
constraints.
* sysdeps/unix/sysv/linux/s390/s390-32/bits/resource.h (RLIMIT_LOCKS):
Add RLIMIT_LOCKS and adjust RLIMIT_NLIMITS.
* sysdeps/unix/sysv/linux/s390/s390-64/bits/resource.h (RLIMIT_LOCKS):
Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/clone.S (clone): Make clone
a weak alias for __clone.
* sysdeps/unix/sysv/linux/s390/s390-64/clone.S (clone): Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/profil-counter.h: Fix typo.
* sysdeps/unix/sysv/linux/s390/s390-64/Makefile: Add framestate.
* sysdeps/unix/sysv/linux/s390/s390-64/Versions: New file.
* sysdeps/unix/sysv/linux/s390/s390-64/mmap.S (__mmap64): Make __mmap
a weak alias for __mmap64.
* sysdeps/mips/atomicity.h (exchange_and_add): Not use branch likely.
* sysdeps/unix/sysv/linux/mips/sys/tas.h (_test_and_set): Likewise.
* sysdeps/generic/dl-tls.c: Don't read TLS header if TLS is not needed.
2002-02-07 Ulrich Drepper <drepper@redhat.com>
* sysdeps/generic/dl-tls.c (_dl_determine_tlsoffset): Account for
alignment of the TCB and store total size and alignment of static
TLS block in _dl_tls_static_size and _dl_tls_static_align.
tls_index is a typedef.
* sysdeps/generic/ldsodefs.h: Declare _dl_tls_static_size and
_dl_tls_static_align.
* sysdeps/i386/dl-tls.h: tls_index is a typedef.
* elf/dl-support.c: Define _dl_tls_static_size and
_dl_tls_static_align.
2002-02-06 Ulrich Drepper <drepper@redhat.com>
* Versions.def [ld]: Add GLIBC_2.3.
* elf/Versions [ld]: Add __tls_get_addr to GLIBC_2.3.
* elf/Makefile (dl-routines): Add dl-tls.
(distribute): Add dl-tls.h.
* sysdeps/generic/ldsodefs.h (struct rtld_global): Remove
_dl_tls_module_cnt, add _dl_tls_max_dtv_idx and _dl_tls_dtv_gaps.
Add prototypes for _dl_next_tls_modid and _dl_determine_tlsoffset.
* elf/dl-load.c (_dl_map_object_from_fd): Store alignment requirement
along with the other info in the link map. Change queueing of init
images for double linked list. Use _dl_next_tls_modid to compute
l_tls_modid.
* elf/rtld.c (_dl_start_final): Store alignment requirement
along with the other info in rtld map and executable map.
(dl_main): Add ld.so to the init image list if necessary. Compute
final module ID with _dl_next_tls_modid.
* include/link.h (struct link_map): Add l_tls_previmage and
l_tls_align.
* eld/dl-support.c: Define _dl_tls_max_dtv_idx and _dl_tls_dtv_gaps.
* sysdeps/i386/elf/Versions: New file.
* sysdeps/generic/dl-tls.c: New file.
* sysdeps/generic/dl-tls.h: New file.
* sysdeps/i386/dl-tls.h: New file.
attribute((packed)) to counter stupid people misusing gcc options.
* elf/rtld.c (_dl_start): Fill TLS values in link map for rtld.
* include/link.h (struct link_map): Add various members for TLS
information.
* sysdeps/generic/ldsodefs.h (struct rtld_global): Remove
_rtld_tlsoffset, add _dl_initimage_list.
* sysdeps/i386/dl-lookupcfg.h: New file.
* sysdeps/i386/dl-machine.h (elf_machine_rel): Implement missing
TLS relocation. When using TLS we now use RESOLVE_MAP.
(elf_machine_rela): Use RESOLVE_MAP instead of RESOLVE_MAP if TLS
is used.
* sysdeps/generic/dl-cache.c (_dl_cache_libcmp): Mark as possibly
unused.
* elf/rtld.c (_dl_start_final): Allocate TLS and initialize
thread-pointer as soon as possible.
* sysdeps/generic/ldsodefs.h: Include <tls.h>. Define first TLS
elements in rtld_global.
* sysdeps/generic/tls.h: New file.
* elf/Makefile (distribute): Add tls.h.
* sysdeps/i386/dl-machine.h (elf_machine_rel): Add support for TLS
relocations. Not complete yet.
* resolv/resolv.h: Allow user to define __need_res_state and only
define __res_start structure then.
* include/resolv.h: Only declare functions if _RESOLV_H_ is defined.
2002-02-03 Andreas Schwab <schwab@suse.de>
* sysdeps/posix/readv.c: Use ssize_t for bytes_read.
* sysdeps/posix/writev.c: Use ssize_t for bytes_written. Fix comment.
2002-02-03 Thorsten Kukuk <kukuk@suse.de>
* sysdeps/posix/writev.c: Check for ssize_t overflow, don't use
alloca if the memory reqirements are too high.
2002-02-03 Ulrich Drepper <drepper@redhat.com>
* elf/dl-load.c (decompose_rpath): Avoid using strstr.
* elf/dl-minimal.c (_strerror_r): Use _itoa instead of _itoa_word since
the former is available anyway and speed isn't important here.
* elf/dl-misc.c (_dl_debug_vdprintf): Likewise.
* elf/dl-version.c (match_symbol): Likewise.
(_dl_check_map_versions): Likewise.
* elf/rtld.c (process_envvars): Likewise.
(print_statistics): Likewise.
* sysdeps/generic/dl-sysdep.c (_dl_show_auxv): Likewise.
* elf/dl-minimal.c (_itoa): Always define it. Make it work for all
bases. Add assert to catch uses of unimplemented features.
(__strsep): Add assert to catch uses of unimplemented features.
* elf/dl-object.c (_dl_new_object): Don't use rawmemchr. Use strchr
and avoid inline optimization.
* elf/rtld.c (process_envvars): Likewise.
* elf/dl-open.c: Don't include <stdio-common/_itoa.h>.
* elf/dl-profile.c (_dl_start_profile): Help compiler to avoid ffs.
* elf/rtld.c (dl_main): Avoid strsep inline optimization.
* stdio-common/_itoa.h: Minor simplifications of the code.
* stdio-common/_itoa.c: Likewise.
* elf/dl-reloc.c (_dl_relocate_object): Use _dl_debug_printf
instead of _dl_printf for debugging info output.
* sysdeps/mips/atomicity.h (exchange_and_add): Use branch likely.
2002-01-31 Ulrich Drepper <drepper@redhat.com>
* sysdeps/posix/readv.c: Don't use alloca if the memory requirements
are too high.
2002-01-31 Andreas Schwab <schwab@suse.de>
* sysdeps/posix/readv.c: Check for ssize_t overflow.
2002-01-31 Andreas Schwab <schwab@suse.de>
* sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Fix leftover
reference to _dl_pagesize.
* elf/dblloadmod2.c: Likewise.
* elf/dblloadmod3.c: Likewise.
* elf/reldepmod5.c: Likewise.
* elf/reldepmod6.c: Likewise.
* elf/dl-conflict.c (_dl_resolve_conflicts): Add unused attribute
for resolve_conflict_map since RESOLVE_CONFLICT_FIND_MAP is not
used on all architectures.
* sunrpc/svc_tcp.c: Add noreturn attribute for
svctcp_rendezvous_abort.
* sunrpc/svc_unix.c: Likewise for svcunix_rendezvous_abort.
* sysdeps/generic/strstr.c (strstr): Add paranthese for assignment
to avoid warning.
2001-12-18 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/sparc/sparc64/clone.S (clone): Subtract
stack bias from child stack pointer before passing it to clone syscall.
2001-12-18 Ulrich Drepper <drepper@redhat.com>
* sysdeps/posix/sysconf.c (__sysconf): Respect POSIX minimum for
_SC_TZNAME_MAX.
* sysdeps/generic/sysconf.c (__sysconf): Likewise.
Reported by Thorsten Kukuk <kukuk@suse.de>.
* sysdeps/unix/grantpt.c (grantpt): Correct typo in comment and
add some casts.
* sysdeps/unix/sysv/linux/grantpt.c: Make __unix_grantpt static.
2001-12-18 Thorsten Kukuk <kukuk@suse.de>
* sysdeps/unix/sysv/linux/grantpt.c: Make errno results standard
conforming: return EBADF if file descriptor is invalid and EINVAL
if file descriptor is no valid tty.
* login/tst-grantpt.c: New file.
* login/Makefile (tests): Add tst-grantpt.
2001-12-11 Jakub Jelinek <jakub@redhat.com>
* elf/Makefile (dl-routines): Add conflict.
(rtld-ldscript-in, rtld-ldscript, rtld-parms): Remove.
(ld.so): Add _begin local symbol.
* elf/elf.h (DT_VALTAGIDX, DT_VALNUM, DT_ADDRTAGIDX, DT_ADDRNUM):
Define.
* elf/dl-deps.c (_dl_build_local_scope): New.
(_dl_map_object_deps): If LD_TRACE_PRELINKING, compute local scopes
of all libraries.
* elf/do-rel.h (VALIDX): Define.
(elf_dynamic_do_rel): If ELF_MACHINE_PLT_REL is defined, don't do
lazy binding for RELA. If DT_GNU_PRELINKED, DT_RELACOUNT relocations
can be skipped.
* elf/dl-conflict.c: New file.
* elf/dl-lookup.c (_dl_debug_bindings): New.
(_dl_lookup_symbol): Use _dl_debug_bindings. Reference_name is always
non-NULL.
(_dl_lookup_symbol_skip): Likewise.
(_dl_lookup_versioned_symbol): Likewise.
(_dl_lookup_versioned_symbol_skip): Likewise.
* elf/dl-runtime.c (PLTREL): If ELF_MACHINE_PLT_REL is defined,
define to ElfW(Rel).
* elf/dynamic-link.h (elf_get_dynamic_info): Record selected dynamic
tags in the DT_VALRNGLO..DT_VALRNGHI and DT_ADDRRNGLO..DT_ADDRRNGHI
ranges.
Don't adjust address dynamic tags if l_addr is 0.
* elf/rtld.c (_dl_trace_prelink, _dl_trace_prelink_map): New variables.
(_dl_start): Skip ELF_DYNAMIC_RELOCATE if ld.so is prelinked.
(VALIDX, ADDRIDX): Define.
(_dl_start_final): Initialize _dl_rtld_map's l_map_start and l_map_end.
(dl_main): Print library list for LD_TRACE_PRELINKING.
If prelinking information can be used, skip relocating libraries and
call _dl_resolve_conflicts instead.
(process_envvars): Handle LD_TRACE_PRELINKING envvar.
* elf/dl-load.c (_dl_map_object): Don't create fake libs
if LD_TRACE_PRELINKING.
* include/link.h (struct link_map) [l_info]: Add DT_VALNUM
+ DT_ADDRNUM.
* sysdeps/generic/ldsodefs.h (_dl_trace_prelink_map): New declaration.
(DL_DEBUG_PRELINK): Define.
(_dl_resolve_conflicts): Add prototype.
* sysdeps/alpha/dl-machine.h (elf_machine_runtime_setup): Reinitialize
.plt for prelinked libraries where prelinking info cannot be used.
(elf_machine_rela): If relocating R_ALPHA_JMP_SLOT in .gnu.conflict
section, use RESOLVE_CONFLICT_FIND_MAP to find out reloc's link_map.
* sysdeps/arm/bits/link.h: New file.
* sysdeps/arm/dl-machine.h (elf_machine_runtime_setup): Save original
content of .got[1].
(ELF_MACHINE_NO_RELA): Only define if RTLD_BOOTSTRAP.
(ELF_MACHINE_PLT_REL): Define.
(elf_machine_rela, elf_machine_rela_relative): New.
(elf_machine_lazy_rel): Reinitialize R_ARM_JUMP_SLOT address instead
of adjusting it if prelinked and prelinking cannot be used.
* sysdeps/i386/bits/link.h: New file.
* sysdeps/i386/dl-machine.h (elf_machine_runtime_setup): Save original
content of .got[1].
(ELF_MACHINE_NO_RELA): Only define if RTLD_BOOTSTRAP.
(ELF_MACHINE_PLT_REL): Define.
(elf_machine_rela, elf_machine_rela_relative): New.
(elf_machine_lazy_rel): Reinitialize R_386_JUMP_SLOT address instead
of adjusting it if prelinked and prelinking cannot be used.
* sysdeps/powerpc/dl-machine.h (elf_machine_rela): If relocating
conflicts, skip finaladdr computation. Use RESOLVE_CONFLICT_FIND_MAP
to find out map for R_PPC_JMP_SLOT relocs.
* sysdeps/sparc/sparc32/dl-machine.h (VALIDX): Define.
(OPCODE_BA): Define.
(elf_machine_runtime_setup): Reinitialize .plt for prelinked
libraries where prelinking info cannot be used.
(sparc_fixup_plt): Renamed from elf_machine_fixup_plt.
(elf_machine_fixup_plt): Call sparc_fixup_plt.
(elf_machine_rela): Set value to 0 if relocating conflicts.
Call sparc_fixup_plt for R_SPARC_JMP_SLOT.
* sysdeps/sparc/sparc64/dl-machine.h (VALIDX): Define.
(sparc64_fixup_plt): Fix a typo.
(elf_machine_rela): Set value to 0 if relocating conflicts.
Handle R_SPARC_JMP_SLOT relocs when relocating conflicts.
(elf_machine_runtime_setup): Reinitialize .plt for prelinked
libraries where prelinking info cannot be used.
* sysdeps/sh/bits/link.h: New file.
* sysdeps/sh/dl-machine.h (elf_machine_runtime_setup): Save original
content of .got[1].
(elf_machine_lazy_rel): Reinitialize R_SH_JMP_SLOT address instead
of adjusting it if prelinked and prelinking cannot be used.
* sysdeps/s390/s390-32/bits/link.h: New file.
* sysdeps/s390/s390-32/dl-machine.h (elf_machine_runtime_setup):
Save original content of .got[1].
(elf_machine_lazy_rel): Reinitialize R_390_JMP_SLOT address instead
of adjusting it if prelinked and prelinking cannot be used.
* sysdeps/s390/s390-64/bits/link.h: New file.
* sysdeps/s390/s390-64/dl-machine.h (elf_machine_runtime_setup):
Save original content of .got[1].
(elf_machine_lazy_rel): Reinitialize R_390_JMP_SLOT address instead
of adjusting it if prelinked and prelinking cannot be used.
* sysdeps/x86_64/bits/link.h: New file.
* sysdeps/x86_64/dl-machine.h (elf_machine_runtime_setup):
Save original content of .got[1].
(elf_machine_lazy_rel): Reinitialize R_X86_64_JMP_SLOT address instead
of adjusting it if prelinked and prelinking cannot be used.
2001-12-10 Ulrich Drepper <drepper@redhat.com>
* sysdeps/generic/glob.c (glob): Return only pattern if nothing
matches and GLOB_NOCHECK is set.
* posix/globtest.sh: Correct expected result for NOCHECK test.
* po/ca.po: Update from translation team.
2001-11-28 Ulrich Drepper <drepper@redhat.com>
* libio/genops.c (_IO_flush_all_lockp): New function. The same code
as the old _IO_flush_all but lock only if parameter is nonzero.
(_IO_flush_all): Call _IO_flush_all_lockp with 1 as parameter.
* libio/libioP.h: Add prototype for _IO_flush_all_lockp.
* sysdeps/generic/abort.c (fflush): Define to _IO_flush_all_lockp(0)
if libio is used.
* elf/elf.h: Add dynamic tag definitions for prelinking.
* elf/rtld.c (process_envvars): Avoid using array of string pointers.
Rewrite code to remove environment varables for SUID binaries.
Small optimization in LD_PROFILE handling.
* sysdeps/generic/unsecvars.h: Adjust format for process_envvars
changes.
* sysdeps/unix/sysv/linux/i386/dl-librecon.h: Likewise.
* sysdeps/generic/dl-sysdep.c: Don't initialize _dl_cpuclock_offset.
* elf/dl-reloc.c (_dl_reloc_bad_type): Rewrite to not use writable
strings. Change type of second parameter.
* sysdeps/generic/ldsodefs.h: Adjust _dl_reloc_bad_type prototype
for last change.
* sysdeps/mach/powerpc/machine-sp.h: New file.
* sysdeps/mach/powerpc/sysdep.h: New file.
* sysdeps/mach/powerpc/thread_state.h: New file.
* sysdeps/mach/hurd/i386/Makefile: File removed; crt0.o rules moved ...
* sysdeps/mach/hurd/Makefile: ... to here. For the time being, we can
expect to need the same thing on every platform.
* sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h: File moved ...
* sysdeps/generic/sys/ucontext.h: ... to replace this one.
2001-10-26 Ulrich Drepper <drepper@redhat.com>
* string/strxfrm.c [USE_IN_EXTENDED_LOCALE_MODEL]: Correctly get
nrules value.
2001-10-24 H.J. Lu <hjl@gnu.org>
* sysdeps/generic/bits/dlfcn.h (DL_CALL_FCT): Cast to void *.
Use __BEGIN_DECLS/__END_DECLS around prototypes.
* sysdeps/mips/bits/dlfcn.h (DL_CALL_FCT): Likewise.
2001-10-21 Jim Meyering <meyering@lucent.com>
* malloc/obstack.c (_): Honor the setting of ENABLE_NLS. Otherwise,
this code would end up calling gettext even in packages built
with --disable-nls.
* posix/getopt.c (_): Likewise.
* posix/regex.c (_): Likewise.
2001-10-26 Ulrich Drepper <drepper@redhat.com>
* resolv/gethnamaddr.c (gethostbyaddr): Use ip6.addr for reverse
lookup not ip6.int.
* resolv/nss_dns/dns-host.c (_nss_dns_gethostbyaddr_r): Likewise.
Reported by Martin.v.Loewis@t-online.de [PR libc/2598].
2001-10-19 Jakub Jelinek <jakub@redhat.com>
* misc/sys/cdefs.h (__attribute_used__): Define.
* elf/rtld.c (_dl_start): Add __attribute_used__.
* elf/dl-runtime.c (fixup, profile_fixup): Likewise.
2001-10-04 Ben Collins <bcollins@debian.org>
* sysdeps/generic/inttypes.h: Fix typo (define, not defined) in
decleration of __need_wchar_t.
2001-10-03 Jakub Jelinek <jakub@redhat.com>
* string/bits/string2.h (__strsep_g): Add prototype.
(__strsep): Use it.
* string/Versions (__strsep): Remove.
* sysdeps/generic/strsep.c (__strsep_g): Add alias to __strsep.
2001-10-07 Ulrich Drepper <drepper@redhat.com>
* manua/llio.texi: Clarify file references added by mmap.
Patch by Marcus Brinkmann <Marcus.Brinkmann@ruhr-uni-bochum.de>.
2001-09-01 Richard Henderson <rth@redhat.com>
* sysdeps/alpha/elf/Dist: Remove file.
* sysdeps/alpha/elf/Makefile: Remove file.
* sysdeps/alpha/elf/crtbegin.S: Remove file.
* sysdeps/alpha/elf/crtend.S: Remove file.
* sysdeps/alpha/elf/initfini.c: New file.
2001-09-01 Mark Kettenis <kettenis@gnu.org>
* iconv/tst-iconv1.c: Include <stddef.h> for wchar_t.
* iconv/tst-iconv3.c: Likewise.
2001-09-01 Jakub Jelinek <jakub@redhat.com>
* sysdeps/generic/inttypes.h (__gwchar_t): Define to wchar_t for C++.
handle it like 'I' for symmetry with strftime.
2001-08-27 Ulrich Drepper <drepper@redhat.com>
* misc/syslog.c (vsyslog): Try a bit harder to use syslogd. If
the connection went down after we first used it try to connect
again and resend the message before printing to the console.
Reported by Coserea Gh. Tudor <tudore@tudore.gecadsoftware.com>.
2001-08-27 Jakub Jelinek <jakub@redhat.com>
* string/tst-strlen.c (main): Test strnlen (, -1) too.
* sysdeps/generic/strnlen.c (__strnlen): Fix for maxlens with top
bit set.
2001-08-27 Ulrich Drepper <drepper@redhat.com>
* iconv/strtab.c (searchstring): Use correct length for
comparison.
(strtabadd): Account total size correct if new string has old string as
substring.
* sysdeps/generic/bits/stdio-lock.h (_IO_lock_initializer): Define to
_LIBC_LOCK_RECURSIVE_INITIALIZER if defined, else do an #error.
(__libc_cleanup_region_start, __libc_cleanup_region_end,
__libc_clean_end): Define these to call the cleanup function after
normal exit when they're supposed to.
* sysdeps/mach/bits/libc-lock.h (__libc_cleanup_region_start):
Take new first arg DOIT, a boolean saying whether to really install
any cleanup handler.
(__libc_cleanup_region_end): Do nothing if start's DOIT arg was zero.
(__libc_cleanup_end): Likewise.
* stdio-common/vfscanf.c (LOCK_STREAM): Pass new arg.
* stdio-common/vfprintf.c (buffered_vfprintf, vfprintf): Likewise.
* sysdeps/mach/hurd/bits/stdio-lock.h (_IO_cleanup_region_start):
Likewise.
* misc/syslog.c (vsyslog, openlog, closelog): Likewise.
* sysdeps/generic/bits/stdio-lock.h
(_IO_cleanup_region_start, _IO_cleanup_region_start_noarg): Likewise.
__libc_lock_define_recursive.
* elf/dl-open.c: Don't declare it here any more.
* elf/dl-close.c: Likewise.
* elf/dl-lookup.c: Likewise.
* elf/dl-iteratephdr.c: Likewise.
* elf/dl-lookup.c (add_dependency): Use __libc_lock_lock_recursive and
__libc_lock_unlock_recursive.
* elf/dl-close.c (_dl_close): Likewise
* elf/dl-iteratephdr.c (__dl_iterate_phdr): Likewise
* elf/dl-open.c (_dl_open): Likewise
* sysdeps/generic/bits/libc-lock.h
(__libc_lock_define_recursive): New macro.
* sysdeps/generic/bits/stdio-lock.h (_IO_lock_t): Use it.
(_IO_lock_lock): Use __libc_lock_lock_recursive.
(_IO_lock_unlock): Use __libc_lock_unlock_recursive.
* sysdeps/generic/bits/poll.h (POLLWRBAND): New alias for POLLOUT.
(POLLRDNORM, POLLRDBAND, POLLWRNORM, POLLWRBAND): Make these
definitions conditional on [__USE_XOPEN].
* sysdeps/mach/hurd/bits/fcntl.h (O_ASYNC, O_FSYNC, O_SYNC): Define
these unconditionally, not only use [__USE_BSD], so as to match
the sysdeps/unix/sysv/linux files.
* sysdeps/generic/bits/sigaction.h (struct sigaction): Fix up
conditionalization of sa_handler/sa_sigaction member types to
match the sysdeps/unix/sysv/linux file.
* sysdeps/generic/dl-environ.c: Include <stdlib.h> and <unistd.h>,
and don't declare unsetenv or _environ directly.
(unsetenv): Return int, not void. Use __environ instead of _environ.
* time/time.h (struct timespec): Use __time_t for tv_sec element.
* sysdeps/generic/inttypes.h: Define __wchar_t. Use it instead of
wchar_t for function declarations and defintions.
* misc/sys/select.h: Define __need_time_t before including <time.h>.
Define suseconds_t if it hasn't happened yet.
* iconv/gconv.h: Define __need_wchar_t before including <stddef.h>.
* conform/data/sys/uio.h-data: Allow UIO_MAXIOV to be defined.
* sysdeps/generic/stdint.h: Don't get definition of wchar_t from
<stddef.h>.
* conform/data/stddef.h-data: Remove wint_t.
2001-08-11 Ulrich Drepper <drepper@redhat.com>
* malloc/malloc.c (ptmalloc_init): Don't call getenv five times.
Instead use new function next_env_entry which iterates over the
environment once.
* sysdeps/arm/dl-machine.h (elf_machine_runtime_setup): Only set
_dl_profile_map for the right object.
* elf/dl-reloc.c (_dl_relocate_object): Allocate l_reloc_result
only if consider_profiling is != 0, not if _dl_profile != NULL.
* sysdeps/generic/dl-environ.c (_dl_next_ld_env_entry): Optimize a bit.
Now returns pointer to first character set "LD_".
* elf/rtld.c (process_envvars): Adjust for change above.
* sysdeps/unix/sysv/linux/dl-librecon.h (EXTRA_LD_ENVVARS): Likewise.
* sysdeps/unix/sysv/linux/i386/dl-librecon.h (EXTRA_LD_ENVVARS):
Likewise.
2001-08-10 Wolfram Gloger <wg@malloc.de>
* malloc/malloc.c (grow_heap): Use mmap() rather than mprotect()
to allocate new memory, for better performance with Linux-2.4.x.
2001-06-07 David Mosberger <davidm@hpl.hp.com>
* sysdeps/ia64/dl-symaddr.c (_dl_symbol_address): Update call to
__ia64_make_fptr() for new interface.
(_dl_function_address): Remove.
* sysdeps/ia64/dl-machine.h (IA64_BOOT_FPTR_TABLE_LEN): Rename
from IA64_BOOT_FPTR_SIZE and reduce its value from 256 to 200.
(struct ia64_fdesc): Rename from struct ia64_fptr and drop "next"
pointer. Rename member "func" to "ip".
(struct ia64_fdesc_table): New type.
(__ia64_make_fptr): Change prototype.
(__ia64_init_bootstrap_fdesc_table): New function.
(ELF_MACHINE_BEFORE_RTLD_RELOC): New macro.
(__boot_ldso_fptr): Removed.
(__fptr_next): Removed.
(__fptr_root): Removed.
(__fptr_count): Removed.
(TRAMPOLINE_TEMPLATE): Fix typo in comment. Don't use multi-line
strings to avoid warning from gcc3.
(RTLD_START): Don't use multi-line strings.
(ELF_MACHINE_START_ADDRESS): Use DL_STATIC_FUNCTION_ADDRESS.
(elf_machine_fixup_plt): Update the code entry point in the
function descriptor through a "volatile" pointer to ensure proper
write ordering.
(elf_machine_rela): Simplify handling of FPTR relocs: always call
__ia64_make_fptr().
* sysdeps/ia64/dl-lookupcfg.h (DL_AUTO_FUNCTION_ADDRESS): New macro.
(DL_STATIC_FUNCTION_ADDRESS): Likewise.
(DL_DT_INIT_ADDRESS): Use DL_AUTO_FUNCTION_ADDRESS.
(DL_DT_FINI_ADDRESS): Likewise.
* sysdeps/ia64/dl-fptr.c: Rewrite for better scalability and to
avoid deadlocks.
* include/link.h: Add member machine specific "l_mach" member to
link_map.
* sysdeps/generic/bits/link.h: New file.
* sysdeps/ia64/bits/link.h: Likewise.
* elf/rtld.c (_dl_start): Fix typo in comment.
(_dl_start_final): Copy new "l_mach" member from temporary to
final bootstrap map.
* libio/genops.c (_IO_list_all_stamp): New variable.
(_IO_un_link): Bump _IO_list_all_stamp after removing from list.
(_IO_link): Likewise for insertion.
(flush_cleanup): New function.
(_IO_flush_all): Get list_all_lock and all individual locks for the
streams. Detect and handle changes to the _IO_list_all list.
(_IO_flush_all_linebuffered): Likewise.
* sysdeps/generic/bits/stdio-lock.h: Define
_IO_cleanup_region_start_noarg.
* sysdeps/mach/hurd/bits/stdio-lock.c: Likewise.
and SA_NODEFER options. Spurred to action by Igor Khavkine.
* sysdeps/generic/bits/sigaction.h [__USE_UNIX98 || __USE_MISC]
(SA_NODEFER, SA_RESETHAND): New macros, same bit values as FreeBSD.
[__USE_MISC] (SA_INTERRUPT): New macro, value 0.
[__USE_MISC] (SA_NOMASK, SA_ONESHOT, SA_STACK): New macros, aliases
as in other sysdeps versions of this file.
* sysdeps/generic/bits/sigaction.h (struct sigaction): Use a union
and provide sa_handler and sa_sigaction member names as macros, as
done in other sysdeps versions of this file.
Suggested by Igor Khavkine <i_khavki@alcor.concordia.ca>.
2001-07-01 Andreas Jaeger <aj@suse.de>
* sysdeps/unix/sysv/linux/dl-sysdep.c (frob_brk): Remove duplicate
sbrk. Closes PR libc/2312.
2001-07-01 Andreas Jaeger <aj@suse.de>
* sysdeps/generic/segfault.c (install_handler): Handle case that
the output file does not exists. Closes PR libc/2345.
2001-07-11 Ulrich Drepper <drepper@redhat.com>
* intl/locale.alias: Use he language code for hebrew, not il
[PR libc/2382].
2001-07-11 Jakub Jelinek <jakub@redhat.com>
* iconv/gconv_int.h: Fix comment typo.
* hurd/hurdsig.c (_hurdsig_init): Remove a useless line of code.
backwards conditional in test for x == 1.0.