Don't define _FORTIFY_SOURCE on MinGW

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
This commit is contained in:
Christian Biesinger 2019-12-18 12:06:43 -06:00
parent 3061113bf3
commit 5f23a08201
2 changed files with 10 additions and 2 deletions

View 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.

View File

@ -66,9 +66,13 @@
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