aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2002-02-24 08:34:04 +0000
committerUlrich Drepper <drepper@redhat.com>2002-02-24 08:34:04 +0000
commitd417e0ffc4d2707b0d684106f17554395e8be220 (patch)
treebc82f92f536ab65b8e6f1dde3ab17169640ae12d /sysdeps
parent69f0c4d8b99dd0aaf82fa213a518ebe1f813791e (diff)
downloadglibc-d417e0ffc4d2707b0d684106f17554395e8be220.tar
glibc-d417e0ffc4d2707b0d684106f17554395e8be220.tar.gz
glibc-d417e0ffc4d2707b0d684106f17554395e8be220.tar.bz2
glibc-d417e0ffc4d2707b0d684106f17554395e8be220.zip
Update.
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.
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/mach/hurd/i386/init-first.c6
-rw-r--r--sysdeps/mach/hurd/mips/init-first.c6
-rw-r--r--sysdeps/mach/hurd/powerpc/init-first.c6
-rw-r--r--sysdeps/unix/sysv/linux/init-first.c4
-rw-r--r--sysdeps/unix/sysv/linux/ldsodefs.h5
5 files changed, 26 insertions, 1 deletions
diff --git a/sysdeps/mach/hurd/i386/init-first.c b/sysdeps/mach/hurd/i386/init-first.c
index f8149da4a2..ad32b30af0 100644
--- a/sysdeps/mach/hurd/i386/init-first.c
+++ b/sysdeps/mach/hurd/i386/init-first.c
@@ -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);
diff --git a/sysdeps/mach/hurd/mips/init-first.c b/sysdeps/mach/hurd/mips/init-first.c
index 525f510cc1..07b8e9e38c 100644
--- a/sysdeps/mach/hurd/mips/init-first.c
+++ b/sysdeps/mach/hurd/mips/init-first.c
@@ -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);
diff --git a/sysdeps/mach/hurd/powerpc/init-first.c b/sysdeps/mach/hurd/powerpc/init-first.c
index c9ad66096b..18e824a487 100644
--- a/sysdeps/mach/hurd/powerpc/init-first.c
+++ b/sysdeps/mach/hurd/powerpc/init-first.c
@@ -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);
diff --git a/sysdeps/unix/sysv/linux/init-first.c b/sysdeps/unix/sysv/linux/init-first.c
index 1fb04bbda1..7568a32ad1 100644
--- a/sysdeps/unix/sysv/linux/init-first.c
+++ b/sysdeps/unix/sysv/linux/init-first.c
@@ -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);
diff --git a/sysdeps/unix/sysv/linux/ldsodefs.h b/sysdeps/unix/sysv/linux/ldsodefs.h
index 6e1a13e39a..8e37f4df6a 100644
--- a/sysdeps/unix/sysv/linux/ldsodefs.h
+++ b/sysdeps/unix/sysv/linux/ldsodefs.h
@@ -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