This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
PATCH: Unset _dl_dynamic_weak
- To: GNU C Library <libc-alpha at sourceware dot cygnus dot com>
- Subject: PATCH: Unset _dl_dynamic_weak
- From: "H . J . Lu" <hjl at lucon dot org>
- Date: Tue, 11 Sep 2001 16:56:21 -0700
- Cc: Ulrich Drepper <drepper at cygnus dot com>
_dl_dynamic_weak is initialized to 1 temporarily. But there is no way
to unset it. Here is a patch. We can revert _dl_dynamic_weak by
setting LD_DYNAMIC_WEAK.
Ulrich, I ran "make check" with LD_DYNAMIC_WEAK set. I didn't see any
problems. Do you have a testcase for it?
H.J.
----
2001-09-11 H.J. Lu <hjl@gnu.org>
* elf/dl-support.c (non_dynamic_init): Revert _dl_dynamic_weak
if LD_DYNAMIC_WEAK is set.
* elf/rtld.c (process_envvars): Likewise.
--- elf/dl-support.c.weak Thu Sep 6 16:16:36 2001
+++ elf/dl-support.c Tue Sep 11 16:33:11 2001
@@ -155,7 +155,8 @@ non_dynamic_init (void)
_dl_bind_not = *(getenv ("LD_BIND_NOT") ?: "") != '\0';
- _dl_dynamic_weak = *(getenv ("LD_DYNAMIC_WEAK") ?: "") == '\0';
+ if (getenv ("LD_DYNAMIC_WEAK"))
+ _dl_dynamic_weak = !_dl_dynamic_weak;
if (__libc_enable_secure)
{
--- elf/rtld.c.weak Thu Sep 6 16:16:39 2001
+++ elf/rtld.c Tue Sep 11 16:32:43 2001
@@ -1396,7 +1396,7 @@ process_envvars (enum mode *modep)
}
if (memcmp (envline, "DYNAMIC_WEAK", 12) == 0)
- _dl_dynamic_weak = 1;
+ _dl_dynamic_weak = !_dl_dynamic_weak;
break;
case 14: