summaryrefslogtreecommitdiff
path: root/elf
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-09-09 11:53:19 +0000
committerUlrich Drepper <drepper@redhat.com>1998-09-09 11:53:19 +0000
commit6e4c40baacfd7eaf1578f707759d79b5d95d626c (patch)
treeebea3ca25b71a1f21e657b7ab8a506f640197d79 /elf
parent7fd18ea2de82bb4f0e393aee1dc412cd025f3be8 (diff)
Update.
1998-09-09 09:32 Ulrich Drepper <drepper@cygnus.com> * sysdeps/powerpc/dl-machine.h (elf_machine_rela): Make function inline. 1998-09-07 Paul Eggert <eggert@twinsun.com> * time/mktime.c (__EXTENSIONS__): Define if not defined. (_REENTRANT): Remove. It has undesirable consequences in Solaris 2.6 (e.g. it turns off the putc macro). Defining __EXTENSIONS__ makes localtime_r and gmtime_r visible, which is what we want. * time/strftime.c: Likewise. 1998-09-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * elf/dl-error.c: Fix spelling. 1998-09-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * stdlib/strfmon.c: Quiet -Wparentheses warnings. * stdio-common/_itoa.c: Likewise. * stdio-common/printf_fp.c: Likewise. * stdio-common/vfscanf.c: Likewise. * wcsmbs/wcstok.c: Likewise. * sysdeps/generic/glob.c: Likewise. * posix/getopt.c: Likewise. * sysdeps/posix/getaddrinfo.c: Likewise. * posix/wordexp.c: Likewise. * io/ftw.c: Likewise. * io/fts.c: Likewise. * misc/getpass.c: Likewise. * iconv/gconv_conf.c: Likewise. * argp/argp-fmtstream.c: Likewise. * argp/argp-help.c: Likewise. * elf/dl-load.c: Likewise. * locale/programs/stringtrans.c: Likewise. * catgets/gencat.c: Likewise. * posix/getconf.c: Likewise. * iconv/gconv_conf.c: Likewise. * iconv/iconv_prog.c: Likewise. * string/strcoll.c: Optimize a few expressions. * string/strxfrm.c: Likewise. 1998-09-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * elf/dl-open.c (dl_open_worker): Move decl of new_global up one level to avoid uninit variable warning. 1998-09-09 10:34 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> instead of _dl_default_scope[2] as argument to _dl_init_next. Fix compatibility problems introduced in last change.
Diffstat (limited to 'elf')
-rw-r--r--elf/dl-error.c8
-rw-r--r--elf/dl-load.c36
-rw-r--r--elf/dl-open.c6
3 files changed, 25 insertions, 25 deletions
diff --git a/elf/dl-error.c b/elf/dl-error.c
index cfb6b9ead5..228c1a80a1 100644
--- a/elf/dl-error.c
+++ b/elf/dl-error.c
@@ -33,15 +33,15 @@ struct catch
};
/* Multiple threads at once can use the `_dl_catch_error' function. The
- calls can come from the `_dl_map_object_deps', `_dlerror_run', or from
+ calls can come from `_dl_map_object_deps', `_dlerror_run', or from
any of the libc functionality which loads dynamic objects (NSS, iconv).
- Therefore we have to be prepared to safe the state in thread-local
+ Therefore we have to be prepared to save the state in thread-local
memory. `catch' will only be used for the non-threaded case.
Please note the horrible kludge we have to use to check for the
thread functions to be defined. The problem is that while running
- ld.so standalone (i.e., before the relocation with the libc symbols
- available) we do not have a real handling of undefined weak symbols.
+ ld.so standalone (i.e., before the relocation with the available
+ libc symbols) we do not have a real handling of undefined weak symbols.
All symbols are relocated, regardless of the availability. They are
relocated relative to the load address of the dynamic linker. Adding
this start address to zero (the value in the GOT for undefined symbols)
diff --git a/elf/dl-load.c b/elf/dl-load.c
index 35c34e0305..1082205a23 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
@@ -1100,23 +1100,25 @@ open_path (const char *name, size_t namelen, int preloaded,
fd = __open (buf, O_RDONLY);
if (this_dir->status[cnt] == unknown)
- if (fd != -1)
- this_dir->status[cnt] = existing;
- else
- {
- /* We failed to open machine dependent library. Let's
- test whether there is any directory at all. */
- struct stat st;
-
- buf[buflen - namelen - 1] = '\0';
-
- if (__xstat (_STAT_VER, buf, &st) != 0
- || ! S_ISDIR (st.st_mode))
- /* The directory does not exist or it is no directory. */
- this_dir->status[cnt] = nonexisting;
- else
- this_dir->status[cnt] = existing;
- }
+ {
+ if (fd != -1)
+ this_dir->status[cnt] = existing;
+ else
+ {
+ /* We failed to open machine dependent library. Let's
+ test whether there is any directory at all. */
+ struct stat st;
+
+ buf[buflen - namelen - 1] = '\0';
+
+ if (__xstat (_STAT_VER, buf, &st) != 0
+ || ! S_ISDIR (st.st_mode))
+ /* The directory does not exist or it is no directory. */
+ this_dir->status[cnt] = nonexisting;
+ else
+ this_dir->status[cnt] = existing;
+ }
+ }
if (fd != -1 && preloaded && __libc_enable_secure)
{
diff --git a/elf/dl-open.c b/elf/dl-open.c
index 694b0ebfaa..e5509dffd4 100644
--- a/elf/dl-open.c
+++ b/elf/dl-open.c
@@ -127,6 +127,8 @@ dl_open_worker (void *a)
new->l_global = (mode & RTLD_GLOBAL) ? 1 : 0;
if (new->l_global)
{
+ struct link_map **new_global;
+
/* The symbols of the new object and its dependencies are to be
introduced into the global scope that will be used to resolve
references from other dynamically-loaded objects.
@@ -143,8 +145,6 @@ dl_open_worker (void *a)
if (_dl_global_scope_alloc == 0)
{
/* This is the first dynamic object given global scope. */
- struct link_map **new_global;
-
_dl_global_scope_alloc = _dl_main_searchlist->r_nlist + 8;
new_global = (struct link_map **)
malloc (_dl_global_scope_alloc * sizeof (struct link_map *));
@@ -166,8 +166,6 @@ dl_open_worker (void *a)
{
/* We have to extend the existing array of link maps in the
main map. */
- struct link_map **new_global;
-
new_global = (struct link_map **)
malloc ((_dl_global_scope_alloc + 8) * sizeof (struct link_map *));
if (new_global == NULL)