Don't define _FORTIFY_SOURCE on MinGW
authorChristian Biesinger <cbiesinger@google.com>
Wed, 18 Dec 2019 18:06:43 +0000 (12:06 -0600)
committerChristian Biesinger <cbiesinger@google.com>
Thu, 9 Jan 2020 22:31:00 +0000 (16:31 -0600)
Recent MinGW versions require -lssp when using _FORTIFY_SOURCE, which
gdb does (in common-defs.h)
https://github.com/msys2/MINGW-packages/issues/5868#issuecomment-544107564

To avoid all the complications with checking for -lssp and making sure it's
linked statically, just don't define it.

gdb/ChangeLog:

2020-01-09  Christian Biesinger  <cbiesinger@google.com>

* gdbsupport/common-defs.h: Don't define _FORTIFY_SOURCE on MinGW.

Change-Id: Ide6870ab57198219a2ef78bc675768a789ca2b1d

gdb/ChangeLog
gdb/gdbsupport/common-defs.h

index d22a5e12d6e206ce682afe732717f5fc7b50bc31..fc0656c03d35ea433244e7bbf1f202d07e8507a1 100644 (file)
@@ -1,3 +1,7 @@
+2020-01-09  Christian Biesinger  <cbiesinger@google.com>
+
+       * gdbsupport/common-defs.h: Don't define _FORTIFY_SOURCE on MinGW.
+
 2020-01-08  Simon Marchi  <simon.marchi@efficios.com>
 
        * thread.c (print_thread_info_1): Fix indentation.
index 88b05ef723c6d609a1eeb964381687d73d6e355e..214bca1ee17e10d22b73143c641f0c03df10003e 100644 (file)
    plus this seems like a reasonable safety measure.  The check for
    optimization is required because _FORTIFY_SOURCE only works when
    optimization is enabled.  If _FORTIFY_SOURCE is already defined,
-   then we don't do anything.  */
+   then we don't do anything.  Also, on MinGW, fortify requires
+   linking to -lssp, and to avoid the hassle of checking for
+   that and linking to it statically, we just don't define
+   _FORTIFY_SOURCE there.  */
 
-#if !defined _FORTIFY_SOURCE && defined __OPTIMIZE__ && __OPTIMIZE__ > 0
+#if (!defined _FORTIFY_SOURCE && defined __OPTIMIZE__ && __OPTIMIZE__ > 0 \
+     && !defined(__MINGW32__))
 #define _FORTIFY_SOURCE 2
 #endif