This is the mail archive of the
mailing list for the Cygwin project.
RE: -mno-cygwin: STATUS_STACK_OVERFLOW before main
- To: Dirk Fieldhouse <fieldhouse at logica dot com>, cygwin at sourceware dot cygnus dot com
- Subject: RE: -mno-cygwin: STATUS_STACK_OVERFLOW before main
- From: salvador <salvador at inti dot gov dot ar>
- Date: Thu, 03 Feb 2000 14:24:27 -0300
- Organization: INTI
- Reply-To: salvador at inti dot gov dot ar
email@example.com (Dirk Fieldhouse) wrote:
On Tue, 01 Feb 2000 12:47:52 -0300, salvador <salvador at inti dot gov
dot ar> wrote:
> I have an application that compiles fine using Mingw32. When I
> try to compile it using Cygwin B20.1 (adding -mno-cygwin and
> -lmingw32 -lcrtdll) I get an executable, but it dies before
> reaching main with an STATUS_STACK_OVERFLOW error.
> I tried with --stack XXXX without luck (same crash in same
Check your include and link paths. Your supposed mingw32 app is
obviously not one.
A cygwin installation can easily get confused about a mingw32 target
because some #define or library reference may be accidentally resolved
against the cygwin include/library files which may follow the mingw32
ones in the search paths. This is almost certainly the problem here.
Is your program C++ or C - I have seen this with C++ in the past ?
There is some confusion (for me at least) about which files are usable
in both targets - those for the Windows OS (.h and lib*.a) ought to be
I guess the appropriate resolution of this is for the -mno-cygwin
specs to select a different set of paths and use -nostdinc (and the ld
equivalent) or similar to avoid picking up cygwin stuff from
well-known locations like /usr/include - or to be sure that you don't
put cygwin stuff in any of these places.
I tried renaming all the lib and include directories from Cygwin (just left
lib/gcc...) and adding the -I and -L settings to pick the Mingw32 stuff from
separated directories without luck. I used -H to be sure I was picking the right
Perhaps I still doing some thing wrong.
Now I'll explain what I want to do so perhaps somebody can give me an idea:
I'm currently maintinaing a port of Turbo Vision to gcc. I have the DOS and
Linux targets working very well (they have all the needed GNU tools). Now a user
contributed a Win32 part, it compiles with Mingw32 (you just need the Mumit Khan
big file installed with gcc/binutils/run-time). It also compiles with MSVC, but
I don't have much interest in this detail ;-). Now I want to integrate the Win32
target to the configuration process, it uses common GNU tools (rm, cp, mv,
install, uname, sh, etc.) and Perl. None of this goodies are in the Mingw32
distribution so I taked a look to Cygwin, it only lacks Perl (which is a huge
drawback from my point of view, download the huge ActivePerl separatle isn't
quite nice). So I tried to compile with Cygwin and quickly found it is POSIX and
lacks a lot of things used by the Mingw32 target, I can add a Cygwin version,
after all the code compiles for Linux, but I don't have the time. Then looking
in the directories and specs files I found the -mno-cygwin trick. So I tried it,
but even when all compiles and links fine the exe dies.
So currently I have a setup that works, but is quite messy, the user needs:
1) Mingw32 (Khan's package) for the compiler, libc, binutils, etc.
2) rm, cp, mv, sh, install, uname and cygwin1.dll from Cygwin. I need at least
uname from Cygwin and not djgpp (DOS) because I use uname to determine the OS.
3) Perl from djgpp.
It work very well, but it looks messy to me. Any ideas.
Salvador Eduardo Tropea (SET). (Electronics Engineer)
Visit my home page: http://welcome.to/SetSoft or
Alternative e-mail: firstname.lastname@example.org email@example.com
Address: Curapaligue 2124, Caseros, 3 de Febrero
Buenos Aires, (1678), ARGENTINA Phone: +(5411) 4759 0013
Want to unsubscribe from this list?
Send a message to firstname.lastname@example.org