aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2004-03-11 06:06:12 +0000
committerUlrich Drepper <drepper@redhat.com>2004-03-11 06:06:12 +0000
commitf032388692f35c50a10d7ce632a2ff606ea02825 (patch)
tree2aa32dc731b38b4c98f1e5915bc7dfecabc2cdf0
parent6d3a2bec95f9bdbe7db4344b1ada866561e95857 (diff)
downloadglibc-f032388692f35c50a10d7ce632a2ff606ea02825.zip
glibc-f032388692f35c50a10d7ce632a2ff606ea02825.tar.gz
glibc-f032388692f35c50a10d7ce632a2ff606ea02825.tar.bz2
Update.
* sysdeps/generic/errno.c: Include <dl-sysdep.h>. Use RTLD_PRIVATE_ERRNO to decide whether errno compat symbols are needed.
-rw-r--r--ChangeLog3
-rw-r--r--elf/dl-sym.c9
-rw-r--r--sysdeps/generic/errno.c5
3 files changed, 10 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index bf2e494..dfc4ce1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2004-03-10 Ulrich Drepper <drepper@redhat.com>
+ * sysdeps/generic/errno.c: Include <dl-sysdep.h>. Use
+ RTLD_PRIVATE_ERRNO to decide whether errno compat symbols are needed.
+
* elf/dl-sym.c: Unify _dl_sym and _dl_vsym code and make the entry
points wrappers around the unified code.
diff --git a/elf/dl-sym.c b/elf/dl-sym.c
index e3447d9..c7c7378 100644
--- a/elf/dl-sym.c
+++ b/elf/dl-sym.c
@@ -60,8 +60,8 @@ _dl_tls_symaddr (struct link_map *map, const ElfW(Sym) *ref)
static void *
internal_function
-do_sym (void *handle, const char *name, struct r_found_version *vers,
- int flags, void *who)
+do_sym (void *handle, const char *name, void *who,
+ struct r_found_version *vers, int flags)
{
const ElfW(Sym) *ref = NULL;
lookup_t result;
@@ -128,7 +128,6 @@ RTLD_NEXT used in code not dynamically loaded"));
}
-
void *
internal_function
_dl_vsym (void *handle, const char *name, const char *version, void *who)
@@ -142,7 +141,7 @@ _dl_vsym (void *handle, const char *name, const char *version, void *who)
/* We don't have a specific file where the symbol can be found. */
vers.filename = NULL;
- return do_sym (handle, name, &vers, 0, who);
+ return do_sym (handle, name, who, &vers, 0);
}
@@ -150,5 +149,5 @@ void *
internal_function
_dl_sym (void *handle, const char *name, void *who)
{
- return do_sym (handle, name, NULL, DL_LOOKUP_RETURN_NEWEST, who);
+ return do_sym (handle, name, who, NULL, DL_LOOKUP_RETURN_NEWEST);
}
diff --git a/sysdeps/generic/errno.c b/sysdeps/generic/errno.c
index 88e84d3..10dbabe7 100644
--- a/sysdeps/generic/errno.c
+++ b/sysdeps/generic/errno.c
@@ -1,5 +1,5 @@
/* Definition of `errno' variable. Canonical version.
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004 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
@@ -19,6 +19,7 @@
#include <errno.h>
#include <tls.h>
+#include <dl-sysdep.h>
#undef errno
#if USE___THREAD
@@ -36,7 +37,7 @@ strong_alias (errno, _errno)
link time. Programs must use the accessor functions. RTLD is special,
since it's not exported from there at any time. */
# if defined HAVE_ELF && defined SHARED && defined DO_VERSIONING \
- && !defined IS_IN_rtld
+ && !RTLD_PRIVATE_ERRNO
# include <shlib-compat.h>
compat_symbol (libc, errno, errno, GLIBC_2_0);
compat_symbol (libc, _errno, _errno, GLIBC_2_0);