This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Lot of undefined symbols at link time, even with -l option on good libraries

At 12:15 PM 9/21/2004, you wrote:
>I think you're right, it seems to be a problem with trailing underscore in function naming.
>For example :
>in /usr/lib/w32api/libkernel32.a we found :
>   00000000 T _FormatMessageA@28
>                    U __head_libkernel32_a
>   00000000 I __imp__FormatMessageA@28
>which is required by win32-winbase.o, result of the build of /usr/lib/gcc/win32ada/win32-winbase.adb
>        U _FormatMessageA
>        U _FormatMessageW
>        U _GlobalReAlloc
>        U _LocalReAlloc
>The source code for this part is the following :
>  pragma Import (Stdcall, Doit, "FormatMessageA");
>I try change it with pragma Import (C, Doit, "_FormatMessageA"); or things like that with no success.
>May be it's the trailing @28 after symbol name which cause error, but I cannot control it ( it's DLL calling convention parameter size ). Compiler/linker should usually add or remove trailing @nn if necessary.
>To answer your general questions, I'am building a large Ada application ( 200 source files ), using W32 API, with Win2000 GNAT Compiler.

Sorry, I know nothing about Ada and how it works.  If the "pragma" statement
is supposed to take the place of the traditional function prototype in C/C++,
then I agree that it looks "OK" (again, based on my knowledge of Ada).  But
the result is that it's looking for symbols that use the 'C' calling 
convention rather than the 'stdcall' calling convention.  The libraries you
are linking to want the 'stdcall' calling convention (since it is the 
default for Windows).  If you cannot get Ada to ask for the proper symbol, 
you could try using the '--enable-stdcall-fixup' option (for 'ld') to 
attempt to massage away the problem.  

Larry Hall                    
RFK Partners, Inc.                      (508) 893-9779 - RFK Office
838 Washington Street                   (508) 893-9889 - FAX
Holliston, MA 01746                     

Unsubscribe info:
Problem reports:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]