aboutsummaryrefslogtreecommitdiff
path: root/elf/dl-lookup.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1999-02-22 18:05:04 +0000
committerUlrich Drepper <drepper@redhat.com>1999-02-22 18:05:04 +0000
commit3f933dc2ef1aa201cd277a480b3954afa1f62b07 (patch)
tree834ea1edc2342589cf5f5e3bca59fa1f7028ed2a /elf/dl-lookup.c
parent69b3b3cb3873d59edfebae0cb7db58166d78f3a6 (diff)
downloadglibc-3f933dc2ef1aa201cd277a480b3954afa1f62b07.tar
glibc-3f933dc2ef1aa201cd277a480b3954afa1f62b07.tar.gz
glibc-3f933dc2ef1aa201cd277a480b3954afa1f62b07.tar.bz2
glibc-3f933dc2ef1aa201cd277a480b3954afa1f62b07.zip
Update.
1999-02-23 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> * elf/dl-error.c (_dl_signal_cerror): New function. (_dl_signal_error): Don't call receiver function. * elf/dl-lookup.c (_dl_lookup_symbol): Call _dl_signal_cerror instead of _dl_signal_error when reporting references to undefined symbols or versions. (_dl_lookup_versioned_symbol): Likewise. (_dl_lookup_versioned_symbol_skip): Likewise. * elf/dl-version.c (match_symbol): Likewise. * elf/ldsodefs.h: Declare _dl_signal_cerror. * misc/getttyent.c (getttyent): Release lock on stream later to also protect global variable zapchar.
Diffstat (limited to 'elf/dl-lookup.c')
-rw-r--r--elf/dl-lookup.c52
1 files changed, 28 insertions, 24 deletions
diff --git a/elf/dl-lookup.c b/elf/dl-lookup.c
index 9a691b72b0..16173c9068 100644
--- a/elf/dl-lookup.c
+++ b/elf/dl-lookup.c
@@ -96,10 +96,10 @@ _dl_lookup_symbol (const char *undef_name, const ElfW(Sym) **ref,
{
if (*ref == NULL || ELFW(ST_BIND) ((*ref)->st_info) != STB_WEAK)
/* We could find no value for a strong reference. */
- _dl_signal_error (0, (reference_name && reference_name[0]
- ? reference_name
- : (_dl_argv[0] ?: "<main program>")),
- make_string (undefined_msg, undef_name));
+ _dl_signal_cerror (0, (reference_name && reference_name[0]
+ ? reference_name
+ : (_dl_argv[0] ?: "<main program>")),
+ make_string (undefined_msg, undef_name));
*ref = NULL;
return 0;
}
@@ -199,29 +199,33 @@ _dl_lookup_versioned_symbol (const char *undef_name, const ElfW(Sym) **ref,
break;
if (res < 0)
- /* Oh, oh. The file named in the relocation entry does not
- contain the needed symbol. */
- _dl_signal_error (0, (reference_name && reference_name[0]
- ? reference_name
- : (_dl_argv[0] ?: "<main program>")),
- make_string ("symbol ", undef_name, ", version ",
- version->name,
- " not defined in file ",
- version->filename,
- " with link time reference",
- res == -2
- ? " (no version symbols)" : ""));
+ {
+ /* Oh, oh. The file named in the relocation entry does not
+ contain the needed symbol. */
+ _dl_signal_cerror (0, (reference_name && reference_name[0]
+ ? reference_name
+ : (_dl_argv[0] ?: "<main program>")),
+ make_string ("symbol ", undef_name, ", version ",
+ version->name,
+ " not defined in file ",
+ version->filename,
+ " with link time reference",
+ res == -2
+ ? " (no version symbols)" : ""));
+ *ref = NULL;
+ return 0;
+ }
}
if (current_value.s == NULL)
{
if (*ref == NULL || ELFW(ST_BIND) ((*ref)->st_info) != STB_WEAK)
/* We could find no value for a strong reference. */
- _dl_signal_error (0, (reference_name && reference_name[0]
- ? reference_name
- : (_dl_argv[0] ?: "<main program>")),
- make_string (undefined_msg, undef_name,
- ", version ", version->name ?: NULL));
+ _dl_signal_cerror (0, (reference_name && reference_name[0]
+ ? reference_name
+ : (_dl_argv[0] ?: "<main program>")),
+ make_string (undefined_msg, undef_name,
+ ", version ", version->name ?: NULL));
*ref = NULL;
return 0;
}
@@ -281,9 +285,9 @@ _dl_lookup_versioned_symbol_skip (const char *undef_name,
char buf[sizeof undefined_msg + len];
__mempcpy (__mempcpy (buf, undefined_msg, sizeof undefined_msg - 1),
undef_name, len + 1);
- _dl_signal_error (0, (reference_name && reference_name[0]
- ? reference_name
- : (_dl_argv[0] ?: "<main program>")), buf);
+ _dl_signal_cerror (0, (reference_name && reference_name[0]
+ ? reference_name
+ : (_dl_argv[0] ?: "<main program>")), buf);
}
*ref = NULL;
return 0;