This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: symbol names are not created with stdcall syntax: MINGW, (GCC) 4.3.0 20061021
- From: "François-Xavier Coudert" <fxcoudert at gmail dot com>
- To: "Tobias Burnus" <burnus at net-b dot de>, "GCC Development" <gcc at gcc dot gnu dot org>, dannysmith at users dot sourceforge dot net
- Cc: "Steve Kargl" <sgk at troutmask dot apl dot washington dot edu>, fortran at gcc dot gnu dot org
- Date: Fri, 9 Mar 2007 17:06:49 +0100
- Subject: Re: symbol names are not created with stdcall syntax: MINGW, (GCC) 4.3.0 20061021
- References: <20070309133336.275890@gmx.net> <45F16CEF.889E2B59@dessent.net> <45F1796F.1030100@net-b.de> <45F17E43.A48EB89F@dessent.net> <20070309153648.GA70037@troutmask.apl.washington.edu> <45F18446.6080103@net-b.de>
Thus we may consider adding a -fstdcall option to gfortran, which
appends the @n. The -mrtd would be needed additionally and it seems to
work. (That I don't get @n in C for __stdcall might because I tested
under Linux.)
On mingw, I get the following:
$ cat a.c
int foo(int x) { return x+1; }
$ gcc.exe -mrtd a.c -shared -o a.dll
$ nm a.dll | grep foo
100011c0 T _foo
$ cat b.c
int __stdcall foo(int x) { return x+1; }
$ gcc.exe b.c -shared -o b.dll
$ nm b.dll | grep foo
100011c0 T _foo@4
$ gcc.exe b.c -shared -o b.dll -mrtd
$ nm b.dll | grep foo
100011c0 T _foo@4
I think -mrtd doesn't change the name. Maybe GCC needs another option
to add the name decoration automatically? CCing the GCC list and Danny
S. for this question.
FX