summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--winsup/cygwin/crt0.c14
-rw-r--r--winsup/cygwin/init.cc13
2 files changed, 6 insertions, 21 deletions
diff --git a/winsup/cygwin/crt0.c b/winsup/cygwin/crt0.c
index fee4b2e24..ec7959a0f 100644
--- a/winsup/cygwin/crt0.c
+++ b/winsup/cygwin/crt0.c
@@ -16,20 +16,12 @@ extern int main (int argc, char **argv);
void cygwin_crt0 (int (*main) (int, char **));
+#ifdef __i386__
+__attribute__ ((force_align_arg_pointer))
+#endif
void
mainCRTStartup ()
{
-#ifdef __i386__
-#if __GNUC_PREREQ(6,0)
-#pragma GCC diagnostic ignored "-Wframe-address"
-#endif
- (void)__builtin_return_address(1);
-#if __GNUC_PREREQ(6,0)
-#pragma GCC diagnostic pop
-#endif
- asm volatile ("andl $-16,%%esp" ::: "%esp");
-#endif
-
cygwin_crt0 (main);
/* These are never actually called. They are just here to force the inclusion
diff --git a/winsup/cygwin/init.cc b/winsup/cygwin/init.cc
index 851a7ffed..7787b164c 100644
--- a/winsup/cygwin/init.cc
+++ b/winsup/cygwin/init.cc
@@ -19,19 +19,12 @@ unsigned threadfunc_ix[8];
static bool dll_finished_loading;
#define OLDFUNC_OFFSET -1
+#ifdef __i386__
+__attribute__ ((force_align_arg_pointer))
+#endif
static void WINAPI
threadfunc_fe (VOID *arg)
{
-#ifdef __i386__
-#if __GNUC_PREREQ(6,0)
-#pragma GCC diagnostic ignored "-Wframe-address"
-#endif
- (void)__builtin_return_address(1);
-#if __GNUC_PREREQ(6,0)
-#pragma GCC diagnostic pop
-#endif
- asm volatile ("andl $-16,%%esp" ::: "%esp");
-#endif
_cygtls::call ((DWORD (*) (void *, void *)) TlsGetValue (_my_oldfunc), arg);
}