2002-02-24  Ulrich Drepper  <drepper@redhat.com>

	* elf/dl-support.c (_dl_non_dynamic_init): Renamed from
	non_dynamic_init and exported now.
	* sysdeps/unix/sysv/linux/ldsodefs.h: Declare _dl_non_dynamic_init.
	* sysdeps/unix/sysv/linux/init-first.c: Call _dl_non_dynamic_init for
	!SHARED.
	* sysdeps/mach/hurd/i386/init-first.c: Likewise.
	* sysdeps/mach/hurd/powerpc/init-first.c: Likewise.
	* sysdeps/mach/hurd/mips/init-first.c: Likewise.
This commit is contained in:
Ulrich Drepper 2002-02-24 08:34:04 +00:00
parent 69f0c4d8b9
commit d417e0ffc4
7 changed files with 41 additions and 5 deletions

View File

@ -1,3 +1,14 @@
2002-02-24 Ulrich Drepper <drepper@redhat.com>
* elf/dl-support.c (_dl_non_dynamic_init): Renamed from
non_dynamic_init and exported now.
* sysdeps/unix/sysv/linux/ldsodefs.h: Declare _dl_non_dynamic_init.
* sysdeps/unix/sysv/linux/init-first.c: Call _dl_non_dynamic_init for
!SHARED.
* sysdeps/mach/hurd/i386/init-first.c: Likewise.
* sysdeps/mach/hurd/powerpc/init-first.c: Likewise.
* sysdeps/mach/hurd/mips/init-first.c: Likewise.
2002-02-23 Ulrich Drepper <drepper@redhat.com>
* elf/dl-close.c (free_slotinfo): Check for end of list and return

View File

@ -177,10 +177,10 @@ _dl_aux_init (ElfW(auxv_t) *av)
}
#endif
static void non_dynamic_init (void) __attribute__ ((unused));
static void
non_dynamic_init (void)
void
internal_function
_dl_non_dynamic_init (void)
{
if (HP_TIMING_AVAIL)
HP_TIMING_NOW (_dl_cpuclock_offset);
@ -228,7 +228,7 @@ non_dynamic_init (void)
if (_dl_platform != NULL)
_dl_platformlen = strlen (_dl_platform);
}
text_set_element (__libc_subinit, non_dynamic_init);
const struct r_strlenpair *
internal_function

View File

@ -33,6 +33,9 @@ extern void __init_misc (int, char **, char **);
#ifdef USE_NONOPTION_FLAGS
extern void __getopt_clean_environment (char **);
#endif
#ifndef SHARED
extern void _dl_non_dynamic_init (void) internal_function;
#endif
extern void __libc_global_ctors (void);
unsigned int __hurd_threadvar_max;
@ -65,6 +68,9 @@ posixland_init (int argc, char **argv, char **envp)
__libc_argv = argv;
__environ = envp;
#ifndef SHARED
_dl_non_dynamic_init ();
#endif
__init_misc (argc, argv, envp);
__libc_init (argc, argv, envp);

View File

@ -31,6 +31,9 @@ extern void __init_misc (int, char **, char **);
#ifdef USE_NONOPTION_FLAGS
extern void __getopt_clean_environment (char **);
#endif
#ifndef SHARED
extern void _dl_non_dynamic_init (void) internal_function;
#endif
extern void __libc_global_ctors (void);
unsigned int __hurd_threadvar_max;
@ -107,6 +110,9 @@ init1 (int argc, char *arg0, ...)
d->portarray, d->portarraysize,
d->intarray, d->intarraysize);
#ifndef SHARED
_dl_non_dynamic_init ();
#endif
__init_misc (argc, argv, __environ);
__libc_init (argc, argv, __environ);

View File

@ -33,6 +33,9 @@ extern void __init_misc (int, char **, char **);
#ifdef USE_NONOPTION_FLAGS
extern void __getopt_clean_environment (char **);
#endif
#ifndef SHARED
extern void _dl_non_dynamic_init (void) internal_function;
#endif
extern void __libc_global_ctors (void);
unsigned int __hurd_threadvar_max;
@ -70,6 +73,9 @@ posixland_init (int argc, char **argv, char **envp)
__libc_argv = argv;
__environ = envp;
#ifndef SHARED
_dl_non_dynamic_init ();
#endif
__init_misc (argc, argv, envp);
__libc_init (argc, argv, envp);

View File

@ -87,6 +87,10 @@ init (int argc, char **argv, char **envp)
#ifndef SHARED
__libc_init_secure ();
/* First the initialization which normally would be done by the
dynamic linker. */
_dl_non_dynamic_init ();
#endif
__init_misc (argc, argv, envp);

View File

@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
Copyright (C) 2001 Free Software Foundation, Inc.
Copyright (C) 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -32,6 +32,9 @@
/* Used by static binaries to check the auxiliary vector. */
extern void _dl_aux_init (ElfW(auxv_t) *av) internal_function;
/* Initialization which is normally done by the dynamic linker. */
extern void _dl_non_dynamic_init (void) internal_function;
/* We can assume that the kernel always provides the AT_UID, AT_EUID,
AT_GID, and AT_EGID values in the auxiliary vector. */
#define HAVE_AUX_XID