2003-10-24 H.J. Lu <hongjiu.lu@intel.com>
authorH.J. Lu <hjl.tools@gmail.com>
Fri, 24 Oct 2003 15:40:20 +0000 (15:40 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Fri, 24 Oct 2003 15:40:20 +0000 (15:40 +0000)
* ldlang.c (lang_vers_match): Check demangled symbols.

ld/ChangeLog
ld/ldlang.c

index a6dcf1cc56cbc7a8f431e91243ce726a6db19047..f8efc4d4c5c11d489551100ca391d82a2bd0afe5 100644 (file)
@@ -1,3 +1,7 @@
+2003-10-24  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * ldlang.c (lang_vers_match): Check demangled symbols.
+
 2003-10-24  H.J. Lu  <hongjiu.lu@intel.com>
 
        * ldlang.c (lang_vers_match): Check "symbol" instead of
index e57f6f9eb69c9f90b42921e9f2f81c2180441e97..df415fc4110beb4080bbb45fedbb48f886d509c4 100644 (file)
@@ -4993,7 +4993,7 @@ lang_vers_match (struct bfd_elf_version_expr_head *head,
       if (!cxx_sym)
        cxx_sym = sym;
     }
-  if (head->mask & BFD_ELF_VERSION_JAVA_TYPE)
+  else if (head->mask & BFD_ELF_VERSION_JAVA_TYPE)
     {
       java_sym = cplus_demangle (sym, DMGL_JAVA);
       if (!java_sym)
@@ -5023,7 +5023,7 @@ lang_vers_match (struct bfd_elf_version_expr_head *head,
              {
                e.symbol = cxx_sym;
                expr = htab_find (head->htab, &e);
-               while (expr && strcmp (expr->symbol, sym) == 0)
+               while (expr && strcmp (expr->symbol, cxx_sym) == 0)
                  if (expr->mask == BFD_ELF_VERSION_CXX_TYPE)
                    goto out_ret;
                else
@@ -5035,7 +5035,7 @@ lang_vers_match (struct bfd_elf_version_expr_head *head,
              {
                e.symbol = java_sym;
                expr = htab_find (head->htab, &e);
-               while (expr && strcmp (expr->symbol, sym) == 0)
+               while (expr && strcmp (expr->symbol, java_sym) == 0)
                  if (expr->mask == BFD_ELF_VERSION_JAVA_TYPE)
                    goto out_ret;
                else