bug-binutils
[Top][All Lists]
Advanced

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

[Bug binutils/351] New: [PATCH] dlltool doesn't honour aliases in .def f


From: carlo at alinoe dot com
Subject: [Bug binutils/351] New: [PATCH] dlltool doesn't honour aliases in .def files.
Date: 29 Aug 2004 15:08:08 -0000

Hi,

I added i686-pc-mingw32 as target triplet, although this is
in fact a platform independ bug (but since dlltool is only
useful on win32 ...).

A general EXPORTS line in the .def file is:

exportedname [[= internalname] @ ordinal [flags]]

If the internalname is not given, then normally
the same name as the exportedname is used.  However,
one can specify the -U commandline parameter to dlltool
to add an underscore (so that internalname become _exportedname)
and one can specify -k, which removes the stdcall @<n>
part if any (for example, when exportedname is "address@hidden"
then internalname becomes "foobar").

However, the current dlltool implementation contains a bug
that allows one to specify the internal name itself in .def
file - as should be possible according the documentation
of the .def file.

Because both -U and -k seem to be kludgy fixes, I think that
in the case of an explicitely given internalname, this
translation should not take place.

I wrote a patch and tested it (it works ;). I will attach
the patch.

Note that this fix is especially important on mingw because
gcc does not add the leading underscore to stdcall functions.
That means that a .dll can export the internal name "address@hidden"
while gcc applications try to call "address@hidden".  When generating
the stub for the import library we NEED a line

address@hidden = address@hidden

in the .def file.  Unless there are ONLY stdcall functions being
exported there is no other way to create a correct import library
(when there are only stdcall functions then one can the -U option).

-- 
           Summary: [PATCH] dlltool doesn't honour aliases in .def files.
           Product: binutils
           Version: unspecified
            Status: NEW
          Severity: normal
          Priority: P2
         Component: binutils
        AssignedTo: unassigned at sources dot redhat dot com
        ReportedBy: carlo at alinoe dot com
                CC: bug-binutils at gnu dot org
GCC target triplet: i686-pc-mingw32


http://sources.redhat.com/bugzilla/show_bug.cgi?id=351

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]