From 5885be89393164a4835048ca9f18bcb7258d9580 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 2 Sep 2004 15:55:36 +0000 Subject: [PATCH] (make_one_lib_file): For IDATA6 take the name from exp->internal_name if it is present. --- binutils/ChangeLog | 6 ++++++ binutils/dlltool.c | 9 ++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/binutils/ChangeLog b/binutils/ChangeLog index c9def8b30f..b48fc9859a 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,9 @@ +2004-09-02 Carlo + + 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 * MAINTAINERS: Add self as co-maintainer of FR-V. diff --git a/binutils/dlltool.c b/binutils/dlltool.c index 2f829287b9..7688c8bb12 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); -- 2.34.1