about summary refs log tree commit diff
path: root/elf/dl-load.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2001-02-02 06:19:24 +0000
committerUlrich Drepper <drepper@redhat.com>2001-02-02 06:19:24 +0000
commit5d9167133cd1b614e2841eceba5d6c3828059254 (patch)
treed00e4cedc2f49111343107cad7c53ffc08ad23ef /elf/dl-load.c
parent70dc5068f8105942b3ffa7ef57fbb88b6d4ce75a (diff)
downloadglibc-5d9167133cd1b614e2841eceba5d6c3828059254.tar.gz
glibc-5d9167133cd1b614e2841eceba5d6c3828059254.tar.xz
glibc-5d9167133cd1b614e2841eceba5d6c3828059254.zip
Update.
2001-02-01  Ulrich Drepper  <drepper@redhat.com>

	* Makerules (build-shlib): Add $(extra-B-$(@F:lib%.so=%).so).
	* configure.in: Test for -z initfirst linker option.
	* config.make.in: Add have-z-initfirst.
	* elf/dl-init.c (_dl_init): Split out actual initialization code in
	new function call_init.  If _dl_initfirst is non-NULL initialize first.
	* elf/dl-load.c (_dl_map_from_fd): If DF_1_INITFIRST flag is set
	remember object in _dl_initfirst.
	* elf/soinit.c: Remove special support for calling
	__pthread_initialize_minimal.

	* conform/conformtest.pl: Add missing $prepend in type test.

	* elf/elf.h (SHT_CHECKSUM): New definition.

	* posix/tst-fnmatch.input: Add tests for [. .] in locales.
Diffstat (limited to 'elf/dl-load.c')
-rw-r--r--elf/dl-load.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/elf/dl-load.c b/elf/dl-load.c
index e8112b10bb..157d827419 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
@@ -117,6 +117,9 @@ int _dl_clktck;
 extern const char *_dl_platform;
 extern size_t _dl_platformlen;
 
+/* The object to be initialized first.  */
+struct link_map *_dl_initfirst;
+
 /* This is the decomposed LD_LIBRARY_PATH search path.  */
 static struct r_search_path_struct env_path_list;
 
@@ -1150,6 +1153,10 @@ _dl_map_object_from_fd (const char *name, int fd, struct filebuf *fbp,
       l->l_scope[0] = &l->l_symbolic_searchlist;
     }
 
+  /* Remember whether this object must be initialized first.  */
+  if (l->l_flags_1 & DF_1_INITFIRST)
+    _dl_initfirst = l;
+
   /* Finally the file information.  */
   l->l_dev = st.st_dev;
   l->l_ino = st.st_ino;