2010/12/22 <lemke...@t-online.de>: > On Wed, 22 Dec 2010 15:36:01 +0100, Kai Tietz <ktiet...@googlemail.com> > wrote: > >> 2010/12/22 <lemke...@t-online.de>: >>> >>> On Wed, 22 Dec 2010 15:11:18 +0100, Kai Tietz <ktiet...@googlemail.com> >>> wrote: >>> >>>> 2010/12/22 <lemke...@t-online.de>: >>>>> >>>>> On Wed, 22 Dec 2010 14:13:15 +0100, Frédéric Bron >>>>> <frederic.b...@m4x.org> >>>>> wrote: >>>>> >>>>>>>>> I checked the Make file, it used this flag: >>>>>>>>> gcc -mno-cygwin -g -Wl,--add-stdcall-alias -Wl,--export-all-symbols >>>>>>>>> ... >>>>>>>> >>>>>>>> replace gcc by gcc-3 >>>>>>>> gcc 4 is now the default on cygwin but the cross compiler is not >>>>>>>> supported for that version. >>>>>>>> Frédéric >>>>>>> >>>>> >>>>> Well, I don't know but I'd really like to know what is the replacement >>>>> these days for >>>>> >>>>> gcc -mno-cygwin -mwindows x.c >>>>> >>>>> I tried >>>>> >>>>> i686-w64-mingw32-gcc -mwindows -m32 x.c >>>>> >>>>> but get >>>>> >>>>> x.c:35:13: error: expected '=', ',', ';', 'asm' or '__attribute__' >>>>> before >>>>> 'WinMain' >>>>> >>>>> and that also for all other option combinations that made sense to me. >>>>> >>>>> Thanks, >>>>> Michael >>>> >>>> Btw the -m32 is superflous for the i686-w64-mingw32 cross-compiler, as >>>> it just produces 32-bit and has no 64-bit capabilities builtin. >>>> Could you show please your x.c file, as the message you get is a >>>> compiler error already. I would assume that you missed to include some >>>> header, or you were defining something which cause here the harm. >>> >>> Well, the program compiles just fine with the old gcc-3 -mno-cygwin but >>> anyway, here's a stripped down version: >>> >>> >>> #define WINVER 0x0500 >>> #include <windows.h> >>> >>> int STDCALL WinMain (HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmd, int >>> nShow) { >>> return 0; >>> } >>> >>> >>> orion> i686-w64-mingw32-gcc -mwindows -m32 xx.c >>> xx.c:4:13: error: expected '=', ',', ';', 'asm' or '__attribute__' before >>> 'WinMain' >>> orion> gcc-3 -mno-cygwin -mwindows -m32 xx.c >>> orion> >>> >>> >> >> Well, the issue is STDCALL. We don't define this macro. Sorry, can >> find a single hint on that in msdn. Use here instead the standard >> WINAPI and it builds on all compilers you are using. > > Thanks, that fixed it. Don't know where I got that STDCALL from, > it certainly wasn't my invention. However, the size of the executable > for that noop program went up from about 21kb to about 100kb. cygcheck > lists the same dlls: > > orion> gcc-3 -mno-cygwin -mwindows -m32 xx.c > orion> ls -ls a.exe > 24 -rwxr-x--- 1 michael None 21347 Dec 22 17:18 a.exe > orion> cygcheck ./a.exe > d:\cygwin\home\michael\a.exe > C:\WINDOWS\system32\msvcrt.dll > C:\WINDOWS\system32\KERNEL32.dll > C:\WINDOWS\system32\ntdll.dll > orion> i686-w64-mingw32-gcc -mwindows -m32 xx.c > orion> ls -ls a.exe > 100 -rwxr-x--- 1 michael None 100582 Dec 22 17:21 a.exe > orion> cygcheck ./a.exe > d:\cygwin\home\michael\a.exe > C:\WINDOWS\system32\KERNEL32.dll > C:\WINDOWS\system32\ntdll.dll > C:\WINDOWS\system32\msvcrt.dll > > Why would that be? > > Michael > > > -- > Problem reports: http://cygwin.com/problems.html > FAQ: http://cygwin.com/faq/ > Documentation: http://cygwin.com/docs.html > Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple > >
This is caused by debugging information. Simply strip executable and it should shrink. Kai -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple