1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-08-05 19:35:52 +03:00
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:
Ulrich Drepper
2002-02-04 08:38:52 +00:00
parent e23f8d206d
commit 67ddea9254
4 changed files with 19 additions and 9 deletions

View File

@@ -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.

View File

@@ -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

View File

@@ -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);
} }

View File

@@ -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