2013/11/8 Peter Rosin <p...@lysator.liu.se>

> On 2013-11-08 12:18, Panicz Maciej Godek wrote:
> > 2013/11/8 Peter Rosin <p...@lysator.liu.se <mailto:p...@lysator.liu.se>>
> >
> >     The SDL library, for some obscure reason, has its own special
>
>     take on that and prescribes that you should keep using main()
>


> >     even if you are doing a GUI app. I think the SDLmain library
>
>     contains the real WinMain@16 entry point and that entry point
>
>     in turn calls the application main function. Or I should perhaps
> >     say SDL_main (see that -Dmain=SDL_main define above).
>
>     Some part of this fragile SDL crap fails. I don't know what.
> >
> >     Perhaps the SDL_main library was compiled to expect an
>
>     ordinary main entry point instead of the GUI WinMain@16 version?
> >
> >     Just to be clear, I'm not an SDL user. This is just my
>
>     understanding of this.
> >     The above description might very well be flawed in some way, but SDL
> >     initialization is peculiar.
> >
> >
> > I can later try to add some of the options from the libtool
>
> invocation generated by autoconf to my invocation of gcc to see
>
> which particular option causes the failure and then let you know.
>
> I think that your description of the way SDL does things on mingw
>
> is sound (and I think that the goal is to ensure portability, as
> > unix programmers have no idea what the WinMain is)
>
> Hmmm, I have this hunch that the -nostdlib option that libtool adds to the
> g++ invocation beats -mwindows, just like it beats -pthread. But I don't
> know that for a fact...


I just made the following test: I removed the mediation of libtool
and called g++ directly, with the same flags, i.e.
g++ -D_GNU_SOURCE=1 -Dmain=SDL_main -Ic:/mingw/msys/1.0/include/SDL
-Ic:/mingw/msys/1.0/include/guile/2.0 -I/usr/local/include
-Ic:/mingw/msys/1.0/include    -Wall -Werror  -g -O2   -o slayer.exe file.o
font.o image.o input.o slayer.o symbols.o video.o   -mwindows
-Lc:/mingw/msys/1.0/lib -lmingw32 -lSDLmain -lSDL   -Lc:/mingw/msys/1.0/lib
-lguile-2.0 -lgc     -mwindows -Lc:/mingw/msys/1.0/lib -lSDL_image
-lmingw32 -lSDLmain -lSDL   -lSDL_ttf

(the initial part, "/bin/sh ../libtool --tag=CXX   --mode=link", was
removed)
and it got linked with no complaints. I then removed both -mwindows flags
from the above invocation, and it did work as well.

So plainly it looks as if there was some problem with libtool on MinGW.
Unfortunately, I'm not a shell scripting master, so I can't say exactly
which command libtool uses to link the program and how it is invoked.
_______________________________________________
https://lists.gnu.org/mailman/listinfo/libtool

Reply via email to