From f032388692f35c50a10d7ce632a2ff606ea02825 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 11 Mar 2004 06:06:12 +0000 Subject: Update. * sysdeps/generic/errno.c: Include . Use RTLD_PRIVATE_ERRNO to decide whether errno compat symbols are needed. --- ChangeLog | 3 +++ elf/dl-sym.c | 9 ++++----- sysdeps/generic/errno.c | 5 +++-- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index bf2e49485e..dfc4ce1c8a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2004-03-10 Ulrich Drepper + * sysdeps/generic/errno.c: Include . 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 e3447d9470..c7c737804e 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 88e84d3204..10dbabe762 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 #include +#include #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 compat_symbol (libc, errno, errno, GLIBC_2_0); compat_symbol (libc, _errno, _errno, GLIBC_2_0); -- cgit v1.2.3