On Wed, Dec 09, 2009 at 01:28:03PM +0100, Kai Tietz wrote:
> 2009/12/9 Richard W.M. Jones <[email protected]>:
> > On Tue, Dec 08, 2009 at 09:37:18AM -0600, Michael Cronenworth wrote:
> >> I'm attempting to generate a DLL and I think I stumbled upon an issue,
> >> or possibly I don't know how to use dlltool.
> >>
> >> $ i686-pc-mingw32-dlltool --export-all-symbols --output-def test.def
> >> libtest.dll
> >> I get all symbols in the expected format, eg:
> >>         memcpy @ 248
> >>
> >> That's how I expect that command to work, however, this command:
> >> $ i686-pc-mingw32-dlltool --kill-at --export-all-symbols --output-def
> >> test.def libtest.dll
> >> I get all symbols exactly the same as before, eg:
> >>         memcpy @ 248
> >> I expected:
> >>         memcpy
> >>
> >> Is this a bug or am I doing something wrong? (using -k makes no difference)
> >
> > I get the same results, and it looks like a bug to me.
> 
> This isn't a bug. What you see here is <symbol> space '@' space
> <digit>. This is the typing of the ordinal used for the symbol and is
> not the decoration.

At the very least, the documentation is confusing.  It says:

  `-k'
  `--kill-at'
     Specifies that when `dlltool' is creating the exports file it
     should not append the string `@ <number>'.  These numbers are
     called ordinal numbers and they represent another way of accessing
     the function in a DLL, other than by name.

That implies to me that the @ <space> <number> part should be removed.
The --kill-at option has no effect at all on the output, except to
change a comment:

$ i686-pc-mingw32-dlltool --kill-at --export-all-symbols --output-def 
/tmp/withkill.def /usr/i686-pc-mingw32/sys-root/mingw/bin/libglut-0.dll
$ i686-pc-mingw32-dlltool --export-all-symbols --output-def 
/tmp/withoutkill.def /usr/i686-pc-mingw32/sys-root/mingw/bin/libglut-0.dll
$ diff -u /tmp/withkill.def /tmp/withoutkill.def 
--- /tmp/withkill.def   2009-12-09 14:13:16.119384036 +0000
+++ /tmp/withoutkill.def           2009-12-09 14:13:24.350383990 +0000
@@ -1,4 +1,4 @@
-; i686-pc-mingw32-dlltool --kill-at --export-all-symbols --output-def 
/tmp/withkill.def /usr/i686-pc-mingw32/sys-root/mingw/bin/libglut-0.dll
+; i686-pc-mingw32-dlltool --export-all-symbols --output-def 
/tmp/withoutkill.def /usr/i686-pc-mingw32/sys-root/mingw/bin/libglut-0.dll
 EXPORTS
        ".weak.__Jv_RegisterClasses.___gcc_register_frame" @ 1 DATA
        adjustwindowr...@12 @ 2

So I still maintain that this is a bug in _something_, perhaps in
documentation.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
New in Fedora 11: Fedora Windows cross-compiler. Compile Windows
programs, test, and build Windows installers. Over 70 libraries supprt'd
http://fedoraproject.org/wiki/MinGW http://www.annexia.org/fedora_mingw
_______________________________________________
fedora-mingw mailing list
[email protected]
https://admin.fedoraproject.org/mailman/listinfo/fedora-mingw

Reply via email to