about summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2005-12-17 23:09:41 +0000
committerUlrich Drepper <drepper@redhat.com>2005-12-17 23:09:41 +0000
commitb15cc6a1ef600e405212d045e3b681d81434065a (patch)
tree7520aff0b70a0557a0d29300c2364a0775a64be9
parent1f0996ef0d8fd7b75c7b63b21353e3127101bb6a (diff)
downloadglibc-b15cc6a1ef600e405212d045e3b681d81434065a.tar.gz
glibc-b15cc6a1ef600e405212d045e3b681d81434065a.tar.xz
glibc-b15cc6a1ef600e405212d045e3b681d81434065a.zip
* elf/dl-error.c (_dl_signal_error): Use __longjmp instead of longjmp.
	* elf/dl-minimal.c (longjmp): Remove definition.
-rw-r--r--ChangeLog3
-rw-r--r--elf/dl-error.c3
-rw-r--r--elf/dl-minimal.c8
3 files changed, 6 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 9de0e4cf0a..2d61341154 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2005-12-17  Ulrich Drepper  <drepper@redhat.com>
 
+	* elf/dl-error.c (_dl_signal_error): Use __longjmp instead of longjmp.
+	* elf/dl-minimal.c (longjmp): Remove definition.
+
 	* sysdeps/x86_64/bsd-setjmp.S [PIC] (setjmp): Add missing jmp.
 
 2005-12-14  Thorsten Kukuk  <kukuk@suse.de>
diff --git a/elf/dl-error.c b/elf/dl-error.c
index 3a0d9bb8a7..be9209da22 100644
--- a/elf/dl-error.c
+++ b/elf/dl-error.c
@@ -112,7 +112,8 @@ _dl_signal_error (int errcode, const char *objname, const char *occation,
 	  lcatch->errstring = _dl_out_of_memory;
 	  lcatch->malloced = false;
 	}
-      longjmp (lcatch->env, errcode ?: -1);
+      /* We do not restore the signal mask because none was saved.  */
+      __longjmp (lcatch->env, errcode ?: -1);
     }
   else
     {
diff --git a/elf/dl-minimal.c b/elf/dl-minimal.c
index adb85e6753..868d3bd2ed 100644
--- a/elf/dl-minimal.c
+++ b/elf/dl-minimal.c
@@ -1,5 +1,5 @@
 /* Minimal replacements for basic facilities used in the dynamic linker.
-   Copyright (C) 1995-1998,2000-2002,2004 Free Software Foundation, Inc.
+   Copyright (C) 1995-1998,2000-2002,2004,2005 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
@@ -148,12 +148,6 @@ __sigjmp_save (sigjmp_buf env, int savemask __attribute__ ((unused)))
   env[0].__mask_was_saved = 0;
   return 0;
 }
-
-void weak_function
-longjmp (jmp_buf env, int val)
-{
-  __longjmp (env[0].__jmpbuf, val);
-}
 
 /* Define our own version of the internal function used by strerror.  We
    only provide the messages for some common errors.  This avoids pulling