(make_one_lib_file): For IDATA6 take the name from exp->internal_name if it
authorNick Clifton <nickc@redhat.com>
Thu, 2 Sep 2004 15:55:36 +0000 (15:55 +0000)
committerNick Clifton <nickc@redhat.com>
Thu, 2 Sep 2004 15:55:36 +0000 (15:55 +0000)
is present.

binutils/ChangeLog
binutils/dlltool.c

index c9def8b30ffdc7253f0a3437837d0e29a5b1e0c2..b48fc9859aefd9ef56a0f4e614e8c46f218c9dbd 100644 (file)
@@ -1,3 +1,9 @@
+2004-09-02  Carlo  <carlo@alinoe.com> 
+
+       PR binutils/351
+       * dlltool.c (make_one_lib_file): For IDATA6 take the name from
+       exp->internal_name if it is present.
+
 2004-09-02  Alexandre Oliva  <aoliva@redhat.com>
 
        * MAINTAINERS: Add self as co-maintainer of FR-V.
index 2f829287b9a2eae221a88c06ae6718ca5033a216..7688c8bb1279ee10bb9b78e047a9ac8f21f28883 100644 (file)
@@ -2517,16 +2517,19 @@ make_one_lib_file (export_type *exp, int i)
                      why it did that, and it does not match what I see
                      in programs compiled with the MS tools.  */
                  int idx = exp->hint;
-                 si->size = strlen (xlate (exp->name)) + 3;
+                 char const * internal_name =
+                   exp->internal_name ? exp->internal_name : xlate (exp->name);
+
+                 si->size = strlen (internal_name) + 3;
                  si->data = xmalloc (si->size);
                  si->data[0] = idx & 0xff;
                  si->data[1] = idx >> 8;
-                 strcpy (si->data + 2, xlate (exp->name));
+                 strcpy (si->data + 2, internal_name);
                }
              break;
            case IDATA7:
              si->size = 4;
-             si->data =xmalloc (4);
+             si->data = xmalloc (4);
              memset (si->data, 0, si->size);
              rel = xmalloc (sizeof (arelent));
              rpp = xmalloc (sizeof (arelent *) * 2);