mirror of
https://sourceware.org/git/glibc.git
synced 2025-08-05 19:35:52 +03:00
Update.
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.
This commit is contained in:
@@ -1,3 +1,10 @@
|
|||||||
|
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 Ulrich Drepper <drepper@redhat.com>
|
2002-02-03 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
* config.h.in: Add HAVE_TLS_SUPPORT.
|
* config.h.in: Add HAVE_TLS_SUPPORT.
|
||||||
|
@@ -96,8 +96,7 @@ asm (".protected _rtld_global");
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
static void dl_main (const ElfW(Phdr) *phdr,
|
static void dl_main (const ElfW(Phdr) *phdr, ElfW(Word) phnum,
|
||||||
ElfW(Word) phnum,
|
|
||||||
ElfW(Addr) *user_entry);
|
ElfW(Addr) *user_entry);
|
||||||
|
|
||||||
static struct libname_list _dl_rtld_libname;
|
static struct libname_list _dl_rtld_libname;
|
||||||
@@ -241,6 +240,10 @@ _dl_start_final (void *arg, struct link_map *bootstrap_map_p,
|
|||||||
GL(dl_rtld_map).l_map_start = (ElfW(Addr)) _begin;
|
GL(dl_rtld_map).l_map_start = (ElfW(Addr)) _begin;
|
||||||
GL(dl_rtld_map).l_map_end = (ElfW(Addr)) _end;
|
GL(dl_rtld_map).l_map_end = (ElfW(Addr)) _end;
|
||||||
|
|
||||||
|
#if HP_TIMING_AVAIL
|
||||||
|
HP_TIMING_NOW (GL(dl_cpuclock_offset));
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Call the OS-dependent function to set up life so we can do things like
|
/* Call the OS-dependent function to set up life so we can do things like
|
||||||
file access. It will call `dl_main' (below) to do all the real work
|
file access. It will call `dl_main' (below) to do all the real work
|
||||||
of the dynamic linker, and then unwind our frame and run the user
|
of the dynamic linker, and then unwind our frame and run the user
|
||||||
|
@@ -89,10 +89,6 @@ _dl_sysdep_start (void **start_argptr,
|
|||||||
# define set_seen(tag) seen |= M ((tag)->a_type)
|
# define set_seen(tag) seen |= M ((tag)->a_type)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HP_TIMING_AVAIL
|
|
||||||
HP_TIMING_NOW (GL(dl_cpuclock_offset));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
DL_FIND_ARG_COMPONENTS (start_argptr, _dl_argc, _dl_argv, _environ,
|
DL_FIND_ARG_COMPONENTS (start_argptr, _dl_argc, _dl_argv, _environ,
|
||||||
_dl_auxv);
|
_dl_auxv);
|
||||||
|
|
||||||
@@ -258,9 +254,11 @@ _dl_show_auxv (void)
|
|||||||
const char *val = av->a_un.a_ptr;
|
const char *val = av->a_un.a_ptr;
|
||||||
|
|
||||||
if (__builtin_expect (auxvars[idx].form, dec) == dec)
|
if (__builtin_expect (auxvars[idx].form, dec) == dec)
|
||||||
val = _itoa (av->a_un.a_val, buf + sizeof buf - 1, 10, 0);
|
val = _itoa ((unsigned long int) av->a_un.a_val,
|
||||||
|
buf + sizeof buf - 1, 10, 0);
|
||||||
else if (__builtin_expect (auxvars[idx].form, hex) == hex)
|
else if (__builtin_expect (auxvars[idx].form, hex) == hex)
|
||||||
val = _itoa (av->a_un.a_val, buf + sizeof buf - 1, 16, 0);
|
val = _itoa ((unsigned long int) av->a_un.a_val,
|
||||||
|
buf + sizeof buf - 1, 16, 0);
|
||||||
|
|
||||||
_dl_printf ("%s%s\n", auxvars[idx].label, val);
|
_dl_printf ("%s%s\n", auxvars[idx].label, val);
|
||||||
}
|
}
|
||||||
|
@@ -7,9 +7,11 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
|
|||||||
AC_CACHE_CHECK(for i386 TLS support, libc_cv_386_tls, [dnl
|
AC_CACHE_CHECK(for i386 TLS support, libc_cv_386_tls, [dnl
|
||||||
cat > conftest.s <<\EOF
|
cat > conftest.s <<\EOF
|
||||||
.section ".tdata", "awT", @progbits
|
.section ".tdata", "awT", @progbits
|
||||||
|
.globl foo
|
||||||
foo: .long 1
|
foo: .long 1
|
||||||
.section ".tbss", "awT", @nobits
|
.section ".tbss", "awT", @nobits
|
||||||
.comm bar,4,4
|
.globl bar
|
||||||
|
bar: .skip 4
|
||||||
.text
|
.text
|
||||||
baz: leal bar@TLSLDM(%ebx), %eax
|
baz: leal bar@TLSLDM(%ebx), %eax
|
||||||
leal bar@DTPOFF(%eax), %edx
|
leal bar@DTPOFF(%eax), %edx
|
||||||
|
Reference in New Issue
Block a user