Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/netbsd-1-6]: src/libexec/ld.elf_so Pull up revision 1.54 via patch (requ...



details:   https://anonhg.NetBSD.org/src/rev/70497972b5fc
branches:  netbsd-1-6
changeset: 530655:70497972b5fc
user:      tron <tron%NetBSD.org@localhost>
date:      Fri Sep 05 19:15:01 2003 +0000

description:
Pull up revision 1.54 via patch (requested by dmcmahill in ticket #1395):
Remove all of the `mark' code.  This is responsible for the `undefined
PLT
symbol' errors, probably because the increment gets interrupted
occasionally by
a signal.  In general, _rtld_bind() should not modify ANY internal
state.

diffstat:

 libexec/ld.elf_so/rtld.c |  9 +--------
 1 files changed, 1 insertions(+), 8 deletions(-)

diffs (51 lines):

diff -r 851ad86ec3ba -r 70497972b5fc libexec/ld.elf_so/rtld.c
--- a/libexec/ld.elf_so/rtld.c  Fri Sep 05 19:14:54 2003 +0000
+++ b/libexec/ld.elf_so/rtld.c  Fri Sep 05 19:15:01 2003 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: rtld.c,v 1.48 2002/02/03 23:34:42 thorpej Exp $         */
+/*     $NetBSD: rtld.c,v 1.48.2.1 2003/09/05 19:15:01 tron Exp $        */
 
 /*
  * Copyright 1996 John D. Polstra.
@@ -88,7 +88,6 @@
 Obj_Entry      *_rtld_objmain; /* The main program shared object */
 Obj_Entry       _rtld_objself; /* The dynamic linker shared object */
 char            _rtld_path[] = _PATH_RTLD;
-unsigned long   _rtld_curmark; /* Current mark value */
 Elf_Sym         _rtld_sym_zero;        /* For resolving undefined weak refs. */
 #ifdef VARPSZ
 int            _rtld_pagesz;   /* Page size, as provided by kernel */
@@ -567,7 +566,6 @@
 _rtld_init_dag(root)
        Obj_Entry *root;
 {
-       _rtld_curmark++;
        _rtld_init_dag1(root, root);
 }
 
@@ -578,9 +576,6 @@
 {
        const Needed_Entry *needed;
 
-       if (obj->mark == _rtld_curmark)
-               return;
-       obj->mark = _rtld_curmark;
        _rtld_objlist_add(&obj->dldags, root);
        _rtld_objlist_add(&root->dagmembers, obj);
        for (needed = obj->needed; needed != NULL; needed = needed->next)
@@ -737,7 +732,6 @@
        hash = _rtld_elf_hash(name);
        obj = _rtld_objmain;
 
-       _rtld_curmark++;
        def = _rtld_symlook_list(name, hash, &_rtld_list_main, &obj, true);
 
        if (def != NULL)
@@ -788,7 +782,6 @@
                
                if (obj->mainprog) {
                        /* Search main program and all libraries loaded by it. */
-                       _rtld_curmark++;
                        def = _rtld_symlook_list(name, hash, &_rtld_list_main, &defobj, true);
                } else {
                        /*



Home | Main Index | Thread Index | Old Index