diff options
-rw-r--r-- | binutils/ChangeLog | 6 | ||||
-rw-r--r-- | binutils/dlltool.c | 9 |
2 files changed, 12 insertions, 3 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog index c9def8b..b48fc98 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -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. diff --git a/binutils/dlltool.c b/binutils/dlltool.c index 2f82928..7688c8b 100644 --- a/binutils/dlltool.c +++ b/binutils/dlltool.c @@ -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); |