Age | Commit message (Collapse) | Author |
|
* elf/rtld.c (dl_main): If prelinking succeeded, mark all objects
as relocated.
|
|
name of "", store a null pointer instead.
* configure.in (elf): Set to yes for freebsd*, netbsd*.
* configure: Regenerated.
* locale/xlocale.c [! (USE_TLS && HAVE___THREAD)] (__libc_tsd_LOCALE):
Initialize this instead of __libc_tsd_LOCALE_data.
* sysdeps/unix/grantpt.c (pts_name): Convert ENOTTY return from
ptsname_r to EINVAL.
* sysdeps/generic/ptsname.c (__ptsname_r): Return ENOSYS instead of 0.
* rt/Makefile: Revert last change, it was inappropriate to presume aio
implementations depend on pthreads.
* rt/tst-aio.c (do_test): Exit happy if first failure is ENOSYS.
* rt/tst-aio64.c (do_test): Likewise.
* rt/tst-aio2.c (do_test): Likewise.
* rt/tst-aio3.c (do_test): Likewise.
* rt/tst-aio4.c (do_test): Likewise.
* rt/tst-aio5.c (do_test): Likewise.
* rt/tst-aio6.c (do_test): Likewise.
* rt/tst-aio7.c (do_test): Likewise.
* sysdeps/generic/bits/libc-lock.h (__libc_setspecific): Use a cast to
void so as to avoid compiler warnings.
* libio/oldstdfiles.c [! _IO_MTSAFE_IO] (DEF_STDFILE): Don't define
_IO_wide_data_FD, which is never used here.
* libio/iofread.c
[! _IO_MTSAFE_IO] (fread_unlocked): Add libc_hidden_ver defn.
* libio/iofputs.c [! _IO_MTSAFE_IO] (fputs_unlocked): Likewise.
* libio/iofgets.c [! _IO_MTSAFE_IO] (fgets_unlocked): Likewise.
* include/resolv.h [! _LIBC_REENTRANT] (_res): #undef it before decl.
* include/netdb.h [! _LIBC_REENTRANT] (h_errno): Declare normal extern.
* misc/syslog.c (openlog): Conditionalize locking on [_LIBC_REENTRANT].
(closelog): Likewise.
2002-07-06 Bruno Haible <bruno@clisp.org>
* sysdeps/alpha/fpu/fpu_control.h: Comment fix.
* sysdeps/unix/sysv/linux/alpha/pipe.S: Moved to ...
* sysdeps/unix/alpha/pipe.S: ... here.
* sysdeps/unix/bsd/osf/alpha/pipe.S: File removed.
* sysdeps/unix/i386/brk.S: Rename local label to '.Lhere' in ELF.
* sysdeps/unix/i386/brk.S: Add PSEUDO_END invocation.
* sysdeps/unix/i386/fork.S: Likewise.
* sysdeps/unix/i386/pipe.S: Likewise.
* sysdeps/unix/i386/wait.S: Likewise.
* sysdeps/unix/fork.S: Fix PSEUDO_END argument.
* sysdeps/unix/arm/fork.S: Likewise.
* sysdeps/unix/sysv/linux/arm/sysdep.h (PSEUDO): Swap DO_CALL
arguments.
(DO_CALL): Swap argument order.
* sysdeps/unix/sysv/linux/hppa/sysdep.h (PSEUDO): Swap DO_CALL
arguments.
(DO_CALL): Swap argument order.
* sysdeps/unix/sysv/linux/i386/sysdep.h (PSEUDO): Swap DO_CALL
arguments.
(DO_CALL): Swap argument order.
* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h (PSEUDO): Swap DO_CALL
arguments.
(DO_CALL): Swap argument order.
* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h (PSEUDO): Swap DO_CALL
arguments.
(DO_CALL): Swap argument order.
* sysdeps/unix/sysv/linux/sh/sysdep.h (PSEUDO): Swap DO_CALL
arguments.
(DO_CALL): Swap argument order.
* sysdeps/unix/sysv/linux/x86_64/sysdep.h (PSEUDO): Swap DO_CALL
arguments.
(DO_CALL): Swap argument order.
* sysdeps/i386/sysdep.h (PSEUDO): Fix syntax error.
(L): Define right for ELF.
* sysdeps/unix/sysv/linux/i386/sysdep.h (L): Remove definition.
Now defined in sysdeps/i386/sysdep.h.
* sysdeps/posix/readv.c: Ansify function definition.
* sysdeps/posix/writev.c: Likewise.
* stdio-common/tst-fseek.c (main): Don't assume that off_t and size_t
have the same size. Avoid direct cast from size_t to off_t.
* login/tst-utmp.c (simulate_login): Don't leave garbage after the
nul byte in entry[n].ut_user.
(simulate_logout): Likewise.
* login/programs/utmpdump.c (print_entry): Test _HAVE_UT_TYPE,
_HAVE_UT_PID, _HAVE_UT_ID, _HAVE_UT_HOST, instead of assuming the
existence of corresponding members of 'struct utmp'.
* login/tst-utmp.c: Trivialize the test if testing 'struct utmp' and
!_HAVE_UT_TYPE.
* sysdeps/unix/opendir.c (__opendir): If st_blksize is 0 or too small,
allocate a buffer of at least BUFSIZ bytes, not just of
sizeof (struct dirent).
* sysdeps/generic/glob.c: Include <limits.h>.
(NAME_MAX): Define a fallback.
(glob_in_dir): Allocate enough room for a 'struct dirent64' on the
stack.
* posix/tst-dir.c: Include <stddef.h>, for offsetof.
(main): Allocate enough room for a 'struct dirent64' on the stack.
* posix/tst-gnuglob.c (my_DIR): Allocate enough room for a
'struct dirent'.
* sysdeps/unix/sysv/linux/init-first.c: Don't include
kernel-features.h.
* inet/htontest.c: Include <sys/types.h>.
* sysdeps/generic/sys/sysinfo.h: Surround with __{BEGIN,END}_DECLS.
* include/sys/sysctl.h: Comment fix.
* elf/rtld.c (_rtld_global) [! _LIBC_REENTRANT]: Don't initialize
_dl_load_lock.
* libio/fileno.c (fileno_unlocked): Define regardless of _IO_MTSAFE_IO.
* sysdeps/unix/bsd/bsd4.4/syscalls.list (__sigaltstack): New alias.
* sysdeps/unix/inet/syscalls.list (__connect_internal): New alias.
(__getpeername): New alias.
(__getsockname): New alias.
(__socket): New alias.
* sysdeps/unix/common/syscalls.list (getpgid): Remove.
* sysdeps/unix/syscalls.list (__chown_internal): New alias.
(__fcntl_internal): New alias.
(__profil): New alias.
|
|
resetting handler, to avoid the possibility of a spurious SIGALRM
delivered to the user's handler.
Reported by Amit D. Chaudhary <amitc@brocade.com>,
* misc/Makefile (CFLAGS-init-misc.c): Varaible removed. It served to
set -fkeep-inline-functions, which is not needed for the current file.
* sysdeps/generic/ldsodefs.h: Add attribute_hidden to *_internal decls.
(_dl_setup_hash): Add attribute_hidden.
(_dl_sysdep_start, _dl_sysdep_start_cleanup): Likewise.
(_dl_sysdep_read_whole_file, _dl_dprintf): Likewise.
(_dl_new_object, _dl_map_object_deps): Likewise.
(_dl_map_object_deps_internal): Remove decl.
* elf/rtld.c (__mempcpy, _exit): Redeclare locally as hidden.
* sysdeps/i386/dl-machine.h [PI_STATIC_AND_HIDDEN
&& HAVE_VISIBILITY_ATTRIBUTE && HAVE_HIDDEN
&& !HAVE_BROKEN_VISIBILITY_ATTRIBUTE]
(elf_machine_dynamic, elf_machine_load_address): Rewritten without asm,
instead relying on the compiler to produce only GOTOFF variable refs.
|
|
* elf/rtld.c: Also test for HAVE_VISIBILITY_ATTRIBUTE before
defining DONT_USE_BOOTSTRAP_MAP.
|
|
2002-08-25 Ulrich Drepper <drepper@redhat.com>
* sysdeps/i386/elf/configure.in: Unconditionally define
PI_STATIC_AND_HIDDEN.
* elf/rtld.c (DONT_USE_BOOTSTRAP_MAP): Define only if
PI_STATIC_AND_HIDDEN is defined as well.
* config.h.in: Add PI_STATIC_AND_HIDDEN entry.
* elf/rtld.c (dl_main): Likewise.
|
|
* elf/rtld.c (_dl_start_final): Move defn before _dl_start so it can
be inlined. Declare it with always_inline if [DONT_USE_BOOTSTRAP_MAP]
and with noinline otherwise. Remove hack alloca use to prevent
inlining, we can ask for it explicitly nowadays.
|
|
* elf/rtld.c (start_time): New global variable. Moved from _dl_start.
(DONT_USE_BOOTSTRAP_MAP): Define if we can use non-exported symbols
before relocation.
(_dl_start): Don't use local bootstrap_map variable if
DONT_USE_BOOTSTRAP_MAP is defined. Use GL(dl_rtld_map). Don't
pass bootstrap_map to _dl_start_final in this case either. Don't
pass start_time to _dl_start_final ever.
(_dl_start_final): Don't copy bootstrap_map of DONT_USE_BOOTSTRAP_MAP.
* elf/dl-deps.c (_dl_map_object_deps): Revert patch from 2002-05-28.
This cripples the scope lists necessary to search for symbols in
dependencies which are not in the global scope.
|
|
2002-08-20 Ulrich Drepper <drepper@redhat.com>
* elf/rtld.c (_dl_start): Pass zero to TLS_INIT_TP. Set
bootstrap_map.l_tls_tp_initialized to 1 if TLS_INIT_TP was called.
(_dl_start_final): Copy l_tls_tp_initialized to GL(dl_rtld_map).
(dl_main): If HAVE___THREAD is not defined pass l_tls_tp_initialized
to TL_INIT_TP. Otherwise pass 1.
* include/link.h (struct link_map): Add l_tls_tp_initialized.
* sysdeps/generic/libc-tls.c (__libc_setup_tls): Pass 0 to TL_INIT_TP.
2002-08-20 Brian Youmans <3diff@gnu.org>
* manual/contrib.texi: Removed licenses, added acknowledgements
for contributions by Intel, IBM, Craig Metz.
* LICENSES: New file, contains the text of all non-FSF licenses in the
* sysdeps/mach/hurd/net/if_ppp.h: Replaced CMU license with a
new one modelled on the modern BSD license, per recent letter
of permission from CMU.
* sysdeps/unix/sysv/linux/net/if_ppp.h: Likewise.
* sysdeps/ieee754/dbl-64/MathLib.h: Changed the copyright holder
from IBM to FSF, per the recent Software Letter. Changed the
distribution terms from GPL to LGPL.
* sysdeps/ieee754/dbl-64/asincos.tbl: Added FSF copyright and
copying permission notice (Lesser GPL), per recent IBM Software Letter.
* sysdeps/ieee754/dbl-64/powtwo.tbl: Likewise.
* sysdeps/ieee754/dbl-64/root.tbl: Likewise.
* sysdeps/ieee754/dbl-64/sincos.tbl: Likewise.
* sysdeps/ieee754/dbl-64/uatan.tbl: Likewise.
* sysdeps/ieee754/dbl-64/uexp.tbl: Likewise.
* sysdeps/ieee754/dbl-64/ulog.tbl: Likewise.
* sysdeps/ieee754/dbl-64/upow.tbl: Likewise.
* sysdeps/ieee754/dbl-64/utan.tbl: Likewise.
* sysdeps/ieee754/dbl-64/atnat.h: Changed the copyright holder
* sysdeps/ieee754/dbl-64/atnat2.h: Likewise.
* sysdeps/ieee754/dbl-64/branred.h: Likewise.
* sysdeps/ieee754/dbl-64/dla.h: Likewise.
* sysdeps/ieee754/dbl-64/doasin.h: Likewise.
* sysdeps/ieee754/dbl-64/dosincos.h: Likewise.
* sysdeps/ieee754/dbl-64/mpa.h: Likewise.
* sysdeps/ieee754/dbl-64/mpa2.h: Likewise.
* sysdeps/ieee754/dbl-64/mpatan.h: Likewise.
* sysdeps/ieee754/dbl-64/mpexp.h: Likewise.
* sysdeps/ieee754/dbl-64/mplog.h: Likewise.
* sysdeps/ieee754/dbl-64/mpsqrt.h: Likewise.
* sysdeps/ieee754/dbl-64/mydefs.h: Likewise.
* sysdeps/ieee754/dbl-64/sincos32.h: Likewise.
* sysdeps/ieee754/dbl-64/uasncs.h: Likewise.
* sysdeps/ieee754/dbl-64/uexp.h: Likewise.
* sysdeps/ieee754/dbl-64/ulog.h: Likewise.
* sysdeps/ieee754/dbl-64/upow.h: Likewise.
* sysdeps/ieee754/dbl-64/urem.h: Likewise.
* sysdeps/ieee754/dbl-64/uroot.h: Likewise.
* sysdeps/ieee754/dbl-64/usncs.h: Likewise.
* sysdeps/ieee754/dbl-64/utan.h: Likewise.
* sysdeps/ieee754/dbl-64/branred.c: Corrected the text of the copying
* sysdeps/ieee754/dbl-64/doasin.c: Likewise.
* sysdeps/ieee754/dbl-64/dosincos.c: Likewise.
* sysdeps/ieee754/dbl-64/e_asin.c: Likewise.
* sysdeps/ieee754/dbl-64/e_atan2.c: Likewise.
* sysdeps/ieee754/dbl-64/e_exp.c: Likewise.
* sysdeps/ieee754/dbl-64/e_log.c: Likewise.
* sysdeps/ieee754/dbl-64/e_pow.c: Likewise.
* sysdeps/ieee754/dbl-64/e_remainder.c: Likewise.
* sysdeps/ieee754/dbl-64/e_sqrt.c: Likewise.
* sysdeps/ieee754/dbl-64/halfulp.c: Likewise.
* sysdeps/ieee754/dbl-64/mpa.c: Likewise.
* sysdeps/ieee754/dbl-64/mpatan.c: Likewise.
* sysdeps/ieee754/dbl-64/mpatan2.c: Likewise.
* sysdeps/ieee754/dbl-64/mpexp.c: Likewise.
* sysdeps/ieee754/dbl-64/mplog.c: Likewise.
* sysdeps/ieee754/dbl-64/mpsqrt.c: Likewise.
* sysdeps/ieee754/dbl-64/mptan.c: Likewise.
* sysdeps/ieee754/dbl-64/s_atan.c: Likewise.
* sysdeps/ieee754/dbl-64/s_sin.c: Likewise.
* sysdeps/ieee754/dbl-64/s_tan.c: Likewise.
* sysdeps/ieee754/dbl-64/sincos32.c: Likewise.
* sysdeps/ieee754/dbl-64/slowexp.c: Likewise.
* sysdeps/ieee754/dbl-64/slowpow.c: Likewise.
|
|
* elf/rtld.c (_dl_start): Pass extra argument 1 to TLS_INIT_TP.
(dl_main): Padd extra argument 0 to TLS_INIT_TP.
* sysdeps/generic/libc-tls.c (__libc_setup_tls): Pass extra
argument 1 to TLS_INIT_TP.
* sysdeps/generic/tls.h (TLS_INIT_TP): Describe new parameter.
* locale/loadarchive.c (_nl_load_locale_from_archive): Store strdup of
|
|
2002-08-15 Ulrich Drepper <drepper@redhat.com>
* csu/Makefile: Define elide-routines.os not static-only-routines.
* include/sched.h (__clone): Add varargs at the end.
* elf/rtld.c (_dl_start): All TLS_INIT_TP to fail and stop in that
case.
(TLS_INIT_HELPER): If defined use it.
* sysdeps/generic/libc-tls.c (TLS_INIT_HELPER): Likewise.
* locale/loadarchive.c (archfname): Add missing slash.
* sysdeps/generic/strtold.c (__strtold_internal): Add libc_hidden_def.
* wcsmbs/wcstold.c (__wcstold_internal): Add libc_hidden_def.
|
|
* sysdeps/generic/libc-tls.c: Likewise.
|
|
2002-08-05 Ulrich Drepper <drepper@redhat.com>
* elf/rtld.c (_dl_start): Don't use memset. Use same tricks as for
the other memset call in this function.
* sysdeps/generic/dl-tls.c (_dl_allocate_tls_init): Store dtv pointer
at correct index. Clear BSS region now that memalign is used.
* include/wchar.h (wcrtomb, wcscmp, wcsftime, wcsspn, wcschr, wcscoll,
wcspbrk): Add libc_hidden_proto.
* time/strftime.c (my_strftime): Add libc_hidden_def.
(strftime): Remove libc_hidden_def.
* wcsmbs/wcschr.c (wcschr): Add libc_hidden_def.
* wcsmbs/wcspbrk.c (wcspbrk): Likewise.
* wcsmbs/wcsspn.c (wcsspn): Likewise.
* wcsmbs/wcscmp.c (wcscmp): Likewise.
* wcsmbs/wcrtomb.c (wcrtomb): Add libc_hidden_weak.
* wcsmbs/wcscoll.c (wcscoll): Likewise.
* include/rpc/rpc.h (__rpc_thread_svc_max_pollfd,
__rpc_thread_svc_pollfd, __rpc_thread_svc_fdset,
__rpc_thread_createerr): Add libc_hidden_proto.
* sunrpc/rpc_thread.c (__rpc_thread_svc_max_pollfd,
__rpc_thread_svc_pollfd, __rpc_thread_svc_fdset,
__rpc_thread_createerr): Add libc_hidden_def.
* include/rpc/clnt.h (clnt_sperrno, clnt_spcreateerror,
clnt_perror, clnt_sperror, _rpc_dtablesize): Add libc_hidden_proto.
* sunrpc/clnt_perr.c (clnt_sperrno, clnt_spcreateerror,
clnt_perror, clnt_sperror): Add libc_hidden_def.
* sunrpc/rpc_dtable.c (_rpc_dtablesize): Likewise.
* include/rpc/des_crypt.h (des_setparity, ecb_crypt, cbc_crypt): Add
libc_hidden_proto.
* sunrpc/des_crypt.c (ecb_crypt, cbc_crypt): Add libc_hidden_proto.
* sunrpc/des_soft.c (des_setparity): Likewise.
* include/rpc/auth.h (key_encryptsession_pk, key_decryptsession_pk):
Add libc_hidden_proto.
* sunrpc/key_call.c (key_encryptsession_pk, key_decryptsession_pk):
Add libc_hidden_def.
|
|
* include/wchar.h (wcrtomb, wcscmp, wcsftime, wcsspn, wcschr, wcscoll,
wcspbrk): Add libc_hidden_proto.
* time/strftime.c (my_strftime): Add libc_hidden_def.
(strftime): Remove libc_hidden_def.
* wcsmbs/wcschr.c (wcschr): Add libc_hidden_def.
* wcsmbs/wcspbrk.c (wcspbrk): Likewise.
* wcsmbs/wcsspn.c (wcsspn): Likewise.
* wcsmbs/wcscmp.c (wcscmp): Likewise.
* wcsmbs/wcrtomb.c (wcrtomb): Add libc_hidden_weak.
* wcsmbs/wcscoll.c (wcscoll): Likewise.
* include/rpc/rpc.h (__rpc_thread_svc_max_pollfd,
__rpc_thread_svc_pollfd, __rpc_thread_svc_fdset,
__rpc_thread_createerr): Add libc_hidden_proto.
* sunrpc/rpc_thread.c (__rpc_thread_svc_max_pollfd,
__rpc_thread_svc_pollfd, __rpc_thread_svc_fdset,
__rpc_thread_createerr): Add libc_hidden_def.
* include/rpc/clnt.h (clnt_sperrno, clnt_spcreateerror,
clnt_perror, clnt_sperror, _rpc_dtablesize): Add libc_hidden_proto.
* sunrpc/clnt_perr.c (clnt_sperrno, clnt_spcreateerror,
clnt_perror, clnt_sperror): Add libc_hidden_def.
* sunrpc/rpc_dtable.c (_rpc_dtablesize): Likewise.
* include/rpc/des_crypt.h (des_setparity, ecb_crypt, cbc_crypt): Add
libc_hidden_proto.
* sunrpc/des_crypt.c (ecb_crypt, cbc_crypt): Add libc_hidden_proto.
* sunrpc/des_soft.c (des_setparity): Likewise.
* include/rpc/auth.h (key_encryptsession_pk, key_decryptsession_pk):
Add libc_hidden_proto.
* sunrpc/key_call.c (key_encryptsession_pk, key_decryptsession_pk):
Add libc_hidden_def.
|
|
* sysdeps/generic/ldsodefs.h (struct rtld_global): Replace member
`bool _dl_initial_dtv_malloced' with `void *_dl_initial_dtv'.
* elf/rtld.c (dl_main): Set it to the new dtv for the main thread.
* sysdeps/generic/dl-tls.c (__tls_get_addr): When reallocating the
dtv, check if it matches _dl_initial_dtv; if so, malloc and copy the
old data, abandoning the original memory allocated by rtld at startup,
instead of calling realloc normally.
|
|
cppflags-iterator.mk, must append .c to $(tests) and $(xtests)
words. Combine the two loops into one on the concatenated list,
including those as well as $(test-srcs).
* elf/dl-minimal.c (__libc_memalign): Guts of malloc moved here,
since we align here with optimally minimal waste anyway.
(malloc): Just call that.
* sysdeps/generic/libc-tls.c (__libc_setup_tls): Set l_tls_offset to
the right variable.
* elf/dl-load.c (_dl_map_object_from_fd): Use p_vaddr, not p_offset,
to compute memory location for l_tls_initimage.
* elf/rtld.c (_dl_start): Likewise.
* sysdeps/generic/libc-tls.c (__libc_setup_tls): Likewise.
* libio/oldiopopen.c: Move #include's before #if SHLIB_COMPAT,
because the .d file is generated in the non-shared case and
so fails to catch them otherwise.
* sysdeps/generic/dl-tls.c (_dl_allocate_tls_storage): New function,
split out of _dl_allocate_tls.
(_dl_allocate_tls_init): Likewise.
(_dl_allocate_tls): Call those.
* sysdeps/generic/ldsodefs.h: Declare them with attribute_hidden.
* elf/rtld.c (dl_main): Call them separately instead of calling
_dl_allocate_tls. Delay _dl_allocate_tls_init until after relocation
is finished, so that the initializer data has been relocated before we
copy it into the main thread's TLS block.
* sysdeps/generic/dl-tls.c (_dl_allocate_tls): Fix off-by-one error in
loop conditions, prevented the last used module from being initialized.
|
|
2002-07-31 Roland McGrath <roland@frob.com>
|
|
2002-07-19 Ulrich Drepper <drepper@redhat.com>
* configure.in: Add test for __thread support in compiler.
* config.h.in: Add HAVE___THREAD.
* Makefile (headers): Remove errno.h, sys/errno.h, and bits/errno.h.
* include/sys/errno.h: Moved to...
* stdlib/sys/errno.h: ...here. New file.
* stdlib/errno.h: New file. Moved from...
* include/errno.h: ...here. Changed into an internal header defining
libc-local things like __set_errno.
* stdlib/Makefile (headers): Add errno.h, sys/errno.h, and
bits/errno.h.
* elf/dl-minimal.c: Include <tls.h>. Define errno as thread-local
variable if USE_TLS && HAVE___THREAD. Don't define __errno_location
either.
* elf/rtld.c (_dl_start): Add code to initialize TLS for ld.so
from...
(_dl_start_final): ...here. Add code to initialize tls elements from
bootstrap_map.
* sysdeps/generic/errno-loc.c: Define errno as thread-local variable
if USE_TLS && HAVE___THREAD.
* sysdeps/generic/bits/errno.h: Remove __set_errno definition.
* sysdeps/mach/hurd/bits/errno.h: Likewise.
* sysdeps/standalone/arm/bits/errno.h: Likewise.
* sysdeps/standalone/bits/errno.h: Likewise.
* sysdeps/unix/bsd/bsd4.4/bits/errno.h: Likewise.
* sysdeps/unix/sysv/aix/bits/errno.h: Likewise.
* sysdeps/unix/sysv/hpux/bits/errno.h: Likewise.
* sysdeps/unix/sysv/linux/bits/errno.h: Likewise.
* sysdeps/unix/sysv/linux/hppa/bits/errno.h: Likewise.
* sysdeps/unix/sysv/linux/mips/bits/errno.h: Likewise.
* sysdeps/unix/sysv/sysv4/solaris2/bits/errno.h: Likewise.
* sysdeps/i386/dl-machine.c (elf_machine_rel) [RTLD_BOOTSTRAP]: Don't
use GL(dl_rtld_map), use map parameter.
* sysdeps/sh/dl-machine.h (elf_machine_rela): Likewise.
* sysdeps/unix/sysv/linux/i386/sysdep.S: Define errno in .tbss if
USE_TLS && HAVE___THREAD.
* sysdeps/unix/sysv/linux/i386/sysdep.h: Unify SETUP_PIC_REG
definitions. If USE_TLS && HAVE___THREAD store errooor value using
TLS code sequence.
* sysdeps/unix/sysv/linux/i386/i686/sysdep.h: Likewise.
* sysdeps/unix/sysv/linux/getcwd.c: No real need to restore errno.
* sysdeps/unix/sysv/linux/grantpt.c: Likewise.
* sysdeps/unix/sysv/linux/internal_statvfs.c: Likewise.
* sysdeps/unix/sysv/linux/msgctl.c: Likewise.
* sysdeps/unix/sysv/linux/readv.c: Likewise.
* sysdeps/unix/sysv/linux/writev.c: Likewise.
|
|
2002-06-17 Jakub Jelinek <jakub@redhat.com>
* elf/dl-lookup.c (_dl_debug_bindings): Use type_class 4 for TLS
lookups.
* elf/rtld.c (dl_main): Move TLS setup code before LD_TRACE_PRELINKING
code. Print TLS modid and offset for modules containing PT_TLS
segments.
2002-06-09 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/i386/dl-brk.c: Move...
* sysdeps/unix/sysv/linux/dl-brk.c: ...here.
* sysdeps/unix/sysv/linux/i386/dl-sbrk.c: Move...
* sysdeps/unix/sysv/linux/dl-sbrk.c: ...here.
2002-06-07 Jakub Jelinek <jakub@redhat.com>
* nss/getXXbyYY_r.c (NEW, NEW1): Define.
(NEW (REENTRANT_NAME)): Strong alias to INTERNAL (REENTRANT_NAME).
(REENTRANT_NAME@@GLIBC_2.1.2): Use NEW (REENTRANT_NAME).
* nss/getXXent_r.c (NEW, NEW1): Define.
(NEW (REENTRANT_GETNAME)): Strong alias to
INTERNAL (REENTRANT_GETNAME).
(REENTRANT_GETNAME@@GLIBC_2.1.2): Use NEW (REENTRANT_GETNAME).
2002-06-21 Ulrich Drepper <drepper@redhat.com>
* libio/fileops.c (_IO_file_setbuf_mmap): New function.
(_IO_file_jumps_mmap): Use it.
* libio/iosetvbuf.c: Don't call _IO_WSETBUF.
* libio/libioP.h: Remove _IO_wdefault_setbuf and
_IO_wdefault_setbuf_internal prorotypes. Add _IO_file_setbuf_mmap
prototype.
* libio/wfileops.c (_IO_wfile_setbuf): Removed.
(_IO_wfile_jumps_mmap): Don't use it anymore.
* libio/wgenops.c (_IO_wdefault_setbuf): Removed.
* libio/memstream.c (_IO_wmem_jumps): Use _IO_default_setbuf not
_IO_wdefault_setbuf.
* libio/vswprintf.c (_IO_wstrn_jumps): Likewise.
* libio/wstrops.c (_IO_wstr_jumps): Likewise.
* stdio-common/vfprintf.c (_IO_helper_jumps): Likewise.
2002-06-05 Jakub Jelinek <jakub@redhat.com>
* libio/Makefile (tests): Add tst-mmap-setvbuf.
* libio/tst-mmap-setvbuf.c: New test.
|
|
2002-04-08 kaz Kojima <kkojima@rr.iij4u.or.jp>
* elf/elf.h: Define R_SH_TLS_xxx macros.
* elf/rtld.c: Remove an extra parenthesis.
* elf/tls-macros.h: Define SH version TLS_LE, TLS_IE, TLS_LD and
TLS_GD macros.
* sysdeps/generic/dl-tls.c: Add a missing semi-colon.
* sysdeps/sh/dl-lookupcfg.h: New file.
* sysdeps/sh/dl-tls.h: New file.
* sysdeps/sh/dl-machine.h (elf_machine_type_class): Set
ELF_RTYPE_CLASS_PLT also for the three TLS relocations.
(elf_machine_rela): Handle R_SH_TLS_DTPMOD32, R_SH_TLS_DTPOFF32 and
R_SH_TLS_TPOFF32 relocations.
|
|
* elf/rtld.c: Declare _environ as hidden.
* sysdeps/generic/dl-environ.c: Likewise.
* sysdeps/generic/dl-sysdep.c: Likewise.
* sysdeps/generic/ldsodefs.h: Declare _dl_debug_state_internal and
_dl_mcount_internal as hidden.
* elf/Makefile (rtld-routines): Add dl-sbrk and dl-brk.
* sysdeps/generic/dl-brk.c: New file.
* sysdeps/generic/dl-sbrk.c: New file.
* sysdeps/unix/sysv/linux/i386/dl-brk.c: New file.
* sysdeps/unix/sysv/linux/i386/dl-sbrk.c: New file.
|
|
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-01 Ulrich Drepper <drepper@redhat.com>
* elf/Makefile (dl-routines): Add dl-origin.
(elide-routines.os): Add dl-origin.
* elf/Versions [ld] (GLIBC_PRIVATE): Add _dl_get_origin.
* elf/dl-debug.c (_dl_debug_initialize): Add missing INTUSE around
_dl_debug_state.
* include/libc-symbols.c: Define attribute_hidden depending on
HAVE_VISIBILITY_ATTRIBUTE. Add definition of INTVARDEF.
* elf/dl-deps.c: Use INTUSE with __libc_enable_secure.
* elf/dl-load.c: Likewise.
* elf/rtld.c: Likewise.
* include/unistd.h: Declare __libc_enable_secure_internal.
* sysdeps/generic/dl-sysdep.c: Use INTVARDEF with __libc_enable_secure.
Use INTUSE with __libc_enable_secure.
* sysdeps/mach/hurd/dl-sysdep.c: Likewise.
* elf/dl-deps.c: Use INTUSE with _dl_out_of_memory.
* elf/dl-error.c: Likewise,
* sysdeps/generic/ldsodefs.h: Declare _dl_out_of_memory_internal.
* elf/dl-dst.h [_RTLD_GLOBAL]: Define _dl_get_origin to use INTUSE.
* sysdeps/generic/dl-origin.c: Undefine _dl_get_origin macro before
function definition. Use INTDEF with _dl_get_origin.
* sysdeps/unix/sysv/linux/dl-origin.c: Likewise.
* elf/dl-init.c: Use INTUSE with _dl_starting_up.
* elf/rtld.c: Likewise. Use INTVARDEF for _dl_starting_up.
* elf/dl-profile.c: Use INTDEF for _dl_mcount.
* elf/dl-runtime.c: Use INTUSE with _dl_mcount.
* sysdeps/generic/ldsodefs.h: Declare _dl_mcount_internal.
* elf/dl-conflict.c: Use rtld_progrname instead of _dl_argv[0].
* elf/dl-deps.c: Likewise.
* elf/dl-error.c: Likewise.
* elf/dl-fini.c: Likewise.
* elf/dl-init.c: Likewise.
* elf/dl-load.c: Likewise.
* elf/dl-lookup.c: Likewise.
* elf/dl-reloc.c: Likewise.
* elf/dl-version.c: Likewise.
* elf/do-lookup.h: Likewise.
* sysdeps/arm/dl-machine.h: Likewise.
* sysdeps/cris/dl-machine.h: Likewise.
* sysdeps/hppa/dl-machine.h: Likewise.
* sysdeps/i386/dl-machine.h: Likewise.
* sysdeps/m68k/dl-machine.h: Likewise.
* sysdeps/powerpc/dl-machine.h: Likewise.
* sysdeps/s390/s390-32/dl-machine.h: Likewise.
* sysdeps/s390/s390-64/dl-machine.h: Likewise.
* sysdeps/sh/dl-machine.h: Likewise.
* sysdeps/sparc/sparc-32/dl-machine.h: Likewise.
* sysdeps/sparc/sparc-64/dl-machine.h: Likewise.
* sysdeps/x86_64/dl-machine.h: Likewise.
* elf/rtld.c: Use INTDEF for _dl_argv. Use rtld_progrname instead of
_dl_argv[0]. Use INTUSE with _dl_argv.
* sysdeps/generic/dl-sysdep.c: Use INTUSE with _dl_argv.
* sysdeps/generic/ldsodefs.h: Define rtld_progname macro.
|
|
2002-02-28 Jakub Jelinek <jakub@redhat.com>
* elf/rtld.c (_rtld_global): Remove .protected.
(_rtld_local): Strong alias to _rtld_global.
* elf/Makefile (CFLAGS-.os): Add -D_RTLD_LOCAL if compiling rtld
only .os object.
* sysdeps/generic/ldsodefs.h (GL): If SHARED and _RTLD_LOCAL, use
_rtld_local instead of _rtld_global.
(_rtld_local): Add hidden extern, possibly in .sdata section.
* configure.in: Add tests for visibility attribute and .sdata.
* config.h.in: Add HAVE_VISIBILITY_ATTRIBUTE and HAVE_SDATA_SECTION.
* sysdeps/alpha/dl-machine.h: Use _rtld_local instead of _rtld_global.
* sysdeps/arm/dl-machine.h: Likewise.
* sysdeps/generic/ldsodefs.h: Likewise.
* sysdeps/hppa/dl-machine.h: Likewise.
* sysdeps/cris/dl-machine.h: Likewise.
* sysdeps/i386/dl-machine.h: Likewise.
* sysdeps/ia64/dl-machine.h: Likewise.
* sysdeps/m68k/dl-machine.h: Likewise.
* sysdeps/mips/mips64/dl-machine.h: Likewise.
* sysdeps/mips/dl-machine.h: Likewise.
* sysdeps/sparc/sparc32/dl-machine.h: Likewise.
* sysdeps/sparc/sparc64/dl-machine.h: Likewise.
* sysdeps/sh/dl-machine.h: Likewise.
* sysdeps/s390/s390-32/dl-machine.h: Likewise.
* sysdeps/s390/s390-64/dl-machine.h: Likewise.
* sysdeps/x86_64/dl-machine.h: Likewise.
|
|
2002-02-22 Ulrich Drepper <drepper@redhat.com>
* elf/Versions: Add _dl_allocate_tls and _dl_deallocate_tls.
* elf/rtld.c (dl_main): Use _dl_allocate_tls with INTUSE.
* sysdeps/generic/dl-tls.c: Add INTDEF for _dl_allocate_tls.
(_dl_deallocate_tls): New function.
* sysdeps/generic/ldsodefs.h: Declare _dl_allocate_tls_internal and
_dl_deallocate_tls.
|
|
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.
|
|
* 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-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-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.
|
|
2002-02-06 Andreas Jaeger <aj@suse.de>
* include/libc-symbols.h (INTUSE): Renamed from INT.
* elf/dl-deps.c: Change users.
* sysdeps/generic/dl-sysdep.c: Likewise.
* sysdeps/generic/dl-cache.c: Likewise.
* elf/dl-reloc.c: Likewise.
* elf/rtld.c: Likewise.
* elf/dl-version.c: Likewise.
* elf/dl-load.c: Likewise.
* elf/dl-dst.h: Likewise.
* elf/dl-init.c: Likewise.
|
|
are used as booleans.
|
|
* elf/rtld.c (process_dl_debug): Correct printing help message.
* elf/dl-misc.c (_dl_debug_vdprintf): Implement precision handling
for %s.
|
|
* elf/rtld.c (_dl_start_final): Determine load address to locate
ehdr with GL(dl_rtld_map).l_map_start.
|
|
2002-02-05 Ulrich Drepper <drepper@redhat.com>
* elf/rtld.c (dl_main): Read PT_TLS entry of the executable.
* sysdeps/generic/ldsodefs.h (struct rtld_global): Add
_dl_tls_module_cnt.
|
|
* 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-04 Ulrich Drepper <drepper@redhat.com>
* sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Move
dl_cpuclock_offset initialization to _dl_start_final.
(_dl_show_auxv): Avoid unnecessary sign extension.
* elf/rtld.c (_dl_start_final): Initialize dl_cpuclock_offset.
|
|
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.
|
|
Change ld.so to not use functions which are exported. One cannot
interpose them anyway. Use INT() to mark uses, INTDEF() to mark
definitions.
* include/libc-symbols.h: Define INT and INTDEF.
* sysdeps/generic/ldsodefs.h: Declare _dl_debug_printf_internal,
_dl_signal_error_internal, _dl_map_object_internal,
_dl_map_object_deps_internal, _dl_lookup_symbol_internal,
_dl_lookup_versioned_symbol_internal,
_dl_relocate_object_internal, _dl_debug_state_internal,
_dl_start_profile_internal, and _dl_unload_cache_internal.
* include/dlfcn.h: Declare _dl_catch_error_internal.
* elf/rtld.c: Use INT for calls to any of the *_internal functions
above. Add INTDEF to function definitions.
* elf/dl-debug.c: Likewise.
* elf/dl-deps.c: Likewise.
* elf/dl-dst.h: Likewise.
* elf/dl-error.c: Likewise.
* elf/dl-fini.c: Likewise.
* elf/dl-init.c: Likewise.
* elf/dl-load.c: Likewise.
* elf/dl-lookup.c: Likewise.
* elf/dl-misc.c: Likewise.
* elf/dl-open.c: Likewise.
* elf/dl-profile.c: Likewise.
* elf/dl-reloc.c: Likewise.
* elf/dl-runtime.c: Likewise.
* elf/dl-version.c: Likewise.
* elf/do-lookup.h: Likewise.
* sysdeps/generic/dl-cache.c: Likewise.
* sysdeps/generic/dl-sysdep.c: Likewise.
* sysdeps/alpha/dl-machine.h (RTLD_START): Call _dl_init_internal
instead of _dl_init.
* sysdeps/arm/dl-machine.h: Likewise.
* sysdeps/cris/dl-machine.h: Likewise.
* sysdeps/hppa/dl-machine.h: Likewise.
* sysdeps/i386/dl-machine.h: Likewise.
* sysdeps/ia64/dl-machine.h: Likewise.
* sysdeps/m68k/dl-machine.h: Likewise.
* sysdeps/mips/dl-machine.h: Likewise.
* sysdeps/mips/mips64/dl-machine.h: Likewise.
* sysdeps/s390/s390-32/dl-machine.h: Likewise.
* sysdeps/s390/s390-64/dl-machine.h: Likewise.
* sysdeps/sh/dl-machine.h: Likewise.
* sysdeps/sparc/sparc32/dl-machine.h: Likewise.
* sysdeps/sparc/sparc64/dl-machine.h: Likewise.
* sysdeps/x86_64/dl-machine.h: Likewise.
* sysdeps/powerpc/dl-start.S (_dl_start_user): Likewise.
* elf/Versions: Don't export _dl_check_all_versions, _dl_sysdep_start,
and _dl_debug_initialize.
|
|
* elf/dl-object.c (_dl_new_object): Avoid using strrchr. We have
more information.
* elf/rtld.c (dl_main): Avoid strrchr.
* sysdeps/unix/sysv/linux/dl-origin.c (_dl_get_origin): Use the
result of readlink. Search from the back for '/'.
|
|
2002-02-02 Ulrich Drepper <drepper@redhat.com>
* sysdeps/generic/dl-environ.c (unsetenv): Optimize. Don't use
strncmp.
* elf/dl-load.c (is_dst): Optimize. Don't call strncmp twice.
* elf/rtld.c (process_dl_debug): Optimize. Avoid calls to strncmp,
strspn, and strcspn.
(process_envvars): Don't use strcspn.
* elf/dl-load.c (_dl_dst_count): Fix possible endless loop.
(_dl_dst_substitute): Likewise.
|
|
2002-02-01 Ulrich Drepper <drepper@redhat.com>
* elf/rtld.c (_dl_start): Mark as internal_function.
* sysdeps/i386/dl-machine.h (RTLD_START): Pass parameter for _dl_start
in register.
(elf_machine_rel): Cleanup and minor optimization for RTLD_BOOTSTRAP.
General pretty printing.
|
|
* elf/dl-minimal.c: Define _itoa for 32-bit machines with HP timing.
* elf/dl-reloc.c: Pretty printing.
* sysdeps/generic/ldsodefs.h: Move _dl_hp_timing_overhead and
procinfo-related variables in rtld_global struct.
* elf/dl-support.c: Likewise.
* elf/rtld.c: Likewise.
* sysdeps/i386/i686/Makefile: Likewise.
* sysdeps/i386/i686/hp-timing.c: Likewise.
* sysdeps/i386/i686/hp-timing.h: Likewise.
* sysdeps/ia64/Makefile: Likewise.
* sysdeps/ia64/hp-timing.c: Likewise.
* sysdeps/sparc/sparc32/sparcv9/Makefile: Likewise.
* sysdeps/sparc/sparc32/sparcv9/hp-timing.c: Likewise.
* sysdeps/unix/sysv/linux/arm/dl-procinfo.c: Likewise.
* sysdeps/unix/sysv/linux/arm/dl-procinfo.h: Likewise.
* sysdeps/unix/sysv/linux/i386/Makefile: Likewise.
* sysdeps/unix/sysv/linux/i386/dl-procinfo.c: Likewise.
* sysdeps/unix/sysv/linux/i386/dl-procinfo.h: Likewise.
* sysdeps/x86_64/Makefile: Likewise.
|
|
* sysdeps/generic/ldsodefs.h: Add _dl_load_lock, _dl_lazy,
_dl_dynamic_weak, _dl_fpu_control, _dl_cpuclock_offset, and
_dl_debug_fd to rtld_global.
* elf/Versions: Likewise.
* elf/dl-close.c: Likewise.
* elf/dl-iteratephdr.c: Likewise.
* elf/dl-lookup.c: Likewise.
* elf/dl-misc.c: Likewise.
* elf/dl-open.c: Likewise.
* elf/dl-support.c: Likewise.
* elf/do-lookup.h: Likewise.
* elf/rtld.c: Likewise.
* sysdeps/generic/dl-cache.c: Likewise.
* sysdeps/generic/dl-sysdep.c: Likewise.
* sysdeps/ia64/Versions: Likewise.
* sysdeps/unix/clock_gettime.c: Likewise.
* sysdeps/unix/clock_settime.c: Likewise.
* sysdeps/unix/sysv/linux/init-first.c: Likewise.
* sysdeps/sparc/Versions: Removed.
* sysdeps/i386/i686/Versions : Removed.
* sysdeps/x86_64/Versions: Removed.
* configure.in: Define HAVE_PROTECTED if .protected is available.
* config.h.in: Add entry for HAVE_PROTECTED.
2002-01-31 Jakub Jelinek <jakub@redhat.com.
* sysdeps/alpha/dl-machine.h: Move global variables for SHARED
code in struct _rtld_global. Export this struct, remove all
exports for the signal variables.
* sysdeps/arm/dl-machine: Likewise.
* sysdeps/generic/dl-origin: Likewise.
* sysdeps/generic/dl-sysdep: Likewise.
* sysdeps/generic/dl-cache: Likewise.
* sysdeps/hppa/dl-fptr: Likewise.
* sysdeps/hppa/dl-machine: Likewise.
* sysdeps/cris/dl-machine: Likewise.
* sysdeps/i386/dl-machine: Likewise.
* sysdeps/ia64/dl-machine: Likewise.
* sysdeps/m68k/dl-machine: Likewise.
* sysdeps/mach/hurd/dl-sysdep: Likewise.
* sysdeps/mips/mips64/dl-machine: Likewise.
* sysdeps/mips/dl-machine: Likewise.
* sysdeps/powerpc/elf/libc-start: Likewise.
* sysdeps/powerpc/dl-machine: Likewise.
* sysdeps/powerpc/dl-start: Likewise.
* sysdeps/sparc/sparc32/dl-machine: Likewise.
* sysdeps/sparc/sparc64/dl-machine: Likewise.
* sysdeps/sh/dl-machine: Likewise.
* sysdeps/s390/s390-32/dl-machine: Likewise.
* sysdeps/s390/s390-64/dl-machine: Likewise.
* sysdeps/unix/sysv/aix/libc-start: Likewise.
* sysdeps/unix/sysv/aix/start-libc: Likewise.
* sysdeps/unix/sysv/linux/ia64/dl-static: Likewise.
* sysdeps/unix/sysv/linux/m68k/getpagesize: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/getpagesize: Likewise.
* sysdeps/x86_64/dl-machine: Likewise.
2002-01-31 Ulrich Drepper <drepper@redhat.com>
|
|
2002-01-30 Ulrich Drepper <drepper@redhat.com>
* Versions.def [ld]: Add GLIBC_2.3.
* elf/dl-addr.c: Move global variables for SHARED code in struct
_rtld_global. Export this struct, remove all exports for the
signal variables.
* elf/dl-close.c: Likewise.
* elf/dl-conflict.c: Likewise.
* elf/dl-debug.c: Likewise.
* elf/dl-deps.c: Likewise.
* elf/dl-dst.h: Likewise.
* elf/dl-error.c: Likewise.
* elf/dl-fini.c: Likewise.
* elf/dl-init.c: Likewise.
* elf/dl-iteratephdr.c: Likewise.
* elf/dl-libc.c: Likewise.
* elf/dl-load.c: Likewise.
* elf/dl-lookup.c: Likewise.
* elf/dl-minimal.c: Likewise.
* elf/dl-object.c: Likewise.
* elf/dl-open.c: Likewise.
* elf/dl-profile.c: Likewise.
* elf/dl-profstub.c: Likewise.
* elf/dl-reloc.c: Likewise.
* elf/dl-runtime.c: Likewise.
* elf/dl-support.c: Likewise.
* elf/dl-sym.c: Likewise.
* elf/dl-version.c: Likewise.
* elf/do-lookup.h: Likewise.
* elf/do-rel.h: Likewise.
* elf/dynamic-link.h: Likewise.
* elf/rtld.c: Likewise.
* sysdeps/generic/dl-cache.c: Likewise.
* sysdeps/generic/dl-sysdep.c: Likewise.
* sysdeps/generic/ldsodefs.h: Likewise.
* sysdeps/generic/libc-start.c: Likewise.
* sysdeps/i386/dl-machine.h: Likewise.
* sysdeps/ia64/dl-fptr.c: Likewise.
* sysdeps/ia64/dl-machine.h: Likewise.
* sysdeps/unix/sysv/linux/dl-librecon.h: Likewise.
* sysdeps/unix/sysv/linux/dl-origin.c: Likewise.
* sysdeps/unix/sysv/linux/dl-osinfo.h: Likewise.
* sysdeps/unix/sysv/linux/getclktck.c: Likewise.
* sysdeps/unix/sysv/linux/getpagesize.c: Likewise.
* sysdeps/unix/sysv/linux/i386/dl-librecon.h: Likewise.
* sysdeps/unix/sysv/linux/ia64/dl-static.c: Likewise.
* sysdeps/unix/sysv/linux/ia64/getpagesize.c: Likewise.
* malloc/thread-m.h: Spinlock definitions for x86/x86_64.
|
|
* sysdeps/ia64/dl-lookupcfg.h (DL_AUTO_FUNCTION_ADDRESS): Add cast
to avoid warning
(DL_STATIC_FUNCTION_ADDRESS): Likewise.
|
|
2002-01-29 Ulrich Drepper <drepper@redhat.com>
* elf/rtld.c (_dl_start): Use __builtin_memset if available.
|
|
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.
|
|
* sysdeps/generic/dl-cache.c: Optimize SEARCH_CACHE and
HWCAP_CHECK macro code.
* elf/dl-misc.c (_dl_sysdep_read_whole_file): Optimize code a bit.
Now returns MAP_FAILED on error.
* elf/rtld.c: Adjust caller.
* sysdeps/generic/dl-cache.c: Likewise.
* sysdeps/generic/ldsodefs.h: Adjust description.
|