Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2010-08-30 05:57:37 +0400
committerChristopher Faylor <me@cgf.cx>2010-08-30 05:57:37 +0400
commit92117cb21f54115367528220dbb85bed8d7b72b4 (patch)
tree33bc5aea3bb9bd4f638268ad272406a3401bf43e /winsup/cygwin/crt0.c
parent552bc28f4650ccd83757ebee28e24ca8237829e5 (diff)
* winlean.h: New file.
* automode.c: Use "winlean.h". * binmode.c: Ditto. * gmon.c: Ditto. * textmode.c: Ditto. * textreadmode.c: Ditto. * winsup.h: Ditto. * lib/cygwin_attach_dll.c: Ditto. * lib/dll_main.cc: Ditto. * profile.c: Ditto. * crt0.c: Ditto. Cleanup ancient cruft. Add dummy calls to cygwin_premain*. * include/sys/cygwin.h: Remove old stuff. Move premain declarations nearer to other cygwin-specific function declarations. * globals.cc: Add comment.
Diffstat (limited to 'winsup/cygwin/crt0.c')
-rw-r--r--winsup/cygwin/crt0.c23
1 files changed, 13 insertions, 10 deletions
diff --git a/winsup/cygwin/crt0.c b/winsup/cygwin/crt0.c
index 1421f6566..d716d9be5 100644
--- a/winsup/cygwin/crt0.c
+++ b/winsup/cygwin/crt0.c
@@ -1,6 +1,6 @@
-/* crt0.c.
+/* crt0.c
- Copyright 2001, 2005 Red Hat, Inc.
+ Copyright 2001, 2005, 2010 Red Hat, Inc.
This software is a copyrighted work licensed under the terms of the
Cygwin license. Please consult the file "CYGWIN_LICENSE" for
@@ -9,15 +9,14 @@ details. */
/* In the following ifdef'd i386 code, the FPU precision is set to 80 bits
and all FPU exceptions are masked. The former is needed to make long
doubles work correctly. The latter causes the FPU to generate NaNs and
- Infinities instead of signals for certain operations.
-*/
+ Infinities instead of signals for certain operations. */
+#include "winlean.h"
+#include <sys/cygwin.h>
#ifdef __i386__
#define FPU_RESERVED 0xF0C0
#define FPU_DEFAULT 0x033f
-/* For debugging on *#!$@ windbg. bp for breakpoint. */
-int __cygwin_crt0_bp = 0;
#endif
extern int main (int argc, char **argv);
@@ -30,9 +29,6 @@ mainCRTStartup ()
#ifdef __i386__
(void)__builtin_return_address(1);
asm volatile ("andl $-16,%%esp" ::: "%esp");
- if (__cygwin_crt0_bp)
- asm volatile ("int3");
-
{
volatile unsigned short cw;
@@ -49,7 +45,14 @@ mainCRTStartup ()
#endif
cygwin_crt0 (main);
+
+ /* These are never actually called. They are just here to force the inclusion
+ of things like -lbinmode. */
+
+ cygwin_premain0 (0, NULL, NULL);
+ cygwin_premain1 (0, NULL, NULL);
+ cygwin_premain2 (0, NULL, NULL);
+ cygwin_premain3 (0, NULL, NULL);
}
void WinMainCRTStartup(void) __attribute__ ((alias("mainCRTStartup")));
-