This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

PATCH: Unset _dl_dynamic_weak


_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:


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]