From 5f23a08201ed01570b34f5cff99a95fc7b9e2fdb Mon Sep 17 00:00:00 2001 From: Christian Biesinger Date: Wed, 18 Dec 2019 12:06:43 -0600 Subject: [PATCH] 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 * gdbsupport/common-defs.h: Don't define _FORTIFY_SOURCE on MinGW. Change-Id: Ide6870ab57198219a2ef78bc675768a789ca2b1d --- gdb/ChangeLog | 4 ++++ gdb/gdbsupport/common-defs.h | 8 ++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index d22a5e12d6e..fc0656c03d3 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +2020-01-09 Christian Biesinger + + * gdbsupport/common-defs.h: Don't define _FORTIFY_SOURCE on MinGW. + 2020-01-08 Simon Marchi * thread.c (print_thread_info_1): Fix indentation. diff --git a/gdb/gdbsupport/common-defs.h b/gdb/gdbsupport/common-defs.h index 88b05ef723c..214bca1ee17 100644 --- a/gdb/gdbsupport/common-defs.h +++ b/gdb/gdbsupport/common-defs.h @@ -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 -- 2.30.2