aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2017-10-09 18:08:10 +0200
committerCorinna Vinschen <corinna@vinschen.de>2017-10-09 18:08:10 +0200
commit7346a162f2956c53f36a0cabf969e7b8186d81b0 (patch)
tree7d6508e056e2c29dbbf8695207e0021035df4d7f
parent15de9da0b962c4108ea300e5189d6810902bdd94 (diff)
downloadnewlib-7346a162f2956c53f36a0cabf969e7b8186d81b0.zip
newlib-7346a162f2956c53f36a0cabf969e7b8186d81b0.tar.gz
newlib-7346a162f2956c53f36a0cabf969e7b8186d81b0.tar.bz2
cygwin: disable -Wframe-address warning only on GCC 6 or later
This is required as long as we don't have a GCC 6.x cross compiler on Linux. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
-rw-r--r--winsup/cygwin/crt0.c4
-rw-r--r--winsup/cygwin/init.cc6
2 files changed, 9 insertions, 1 deletions
diff --git a/winsup/cygwin/crt0.c b/winsup/cygwin/crt0.c
index 271f5b9..fee4b2e 100644
--- a/winsup/cygwin/crt0.c
+++ b/winsup/cygwin/crt0.c
@@ -20,9 +20,13 @@ 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
diff --git a/winsup/cygwin/init.cc b/winsup/cygwin/init.cc
index 2d4299e..aeeeac7 100644
--- a/winsup/cygwin/init.cc
+++ b/winsup/cygwin/init.cc
@@ -22,10 +22,14 @@ static bool dll_finished_loading;
static void WINAPI
threadfunc_fe (VOID *arg)
{
-#ifndef __x86_64__
+#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);