[gcc r16-5362] diagnostics: fix socket includes for MinGW host [PR122666]
David Malcolm
dmalcolm@gcc.gnu.org
Mon Nov 17 19:09:46 GMT 2025
https://gcc.gnu.org/g:5ce13174c0cf8271f37ca72d1bfc5560b35448dc
commit r16-5362-g5ce13174c0cf8271f37ca72d1bfc5560b35448dc
Author: Evgeny Karpov <evgeny@kmaps.co>
Date: Mon Nov 17 14:08:58 2025 -0500
diagnostics: fix socket includes for MinGW host [PR122666]
The commit "diagnostics: add experimental SARIF JSON-RPC notifications
for IDEs [PR115970]"
https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=8a155c170b443e332b3db4922f0f0d588a17604f
introduces a regression when building the toolchain for the
aarch64-w64-mingw32 host, at least. It is most likely the same for
*-*-mingw32 targets.
This patch resolves the issue when using sockets for SARIF JSON-RPC
notifications on MinGW host and adds the required socket library to the
host file for *-*-mingw.
Signed-off-by: Evgeny Karpov <evgeny@kmaps.co>
gcc/ChangeLog:
PR diagnostics/122666
* config/i386/x-mingw32 (LIBS): Add -lws2_32
* diagnostics/sarif-sink.cc: Move sockets includes to before
config.h and support __MINGW32__.
Signed-off-by: David Malcolm <dmalcolm@redhat.com>
Diff:
---
gcc/config/i386/x-mingw32 | 3 +++
gcc/diagnostics/sarif-sink.cc | 9 +++++++--
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/gcc/config/i386/x-mingw32 b/gcc/config/i386/x-mingw32
index 8900bfccb6cb..5ebe0882f4d8 100644
--- a/gcc/config/i386/x-mingw32
+++ b/gcc/config/i386/x-mingw32
@@ -21,6 +21,9 @@
#
local_includedir=$(libsubdir)/$(unlibsubdir)/..`echo $(exec_prefix) | sed -e 's|^$(prefix)||' -e 's|/[^/]*|/..|g'`/include
+# Add Windows socket library.
+LIBS += -lws2_32
+
# On MinGW, we use "%IA64d" to print 64-bit integers, and the format-checking
# code does not handle that, so we have to disable checking here.
WERROR_FLAGS += -Wno-format
diff --git a/gcc/diagnostics/sarif-sink.cc b/gcc/diagnostics/sarif-sink.cc
index 76aec2a886c5..1356919ff80d 100644
--- a/gcc/diagnostics/sarif-sink.cc
+++ b/gcc/diagnostics/sarif-sink.cc
@@ -18,6 +18,13 @@ You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
+#ifdef __MINGW32__
+#include <winsock2.h>
+#include <afunix.h>
+#else
+#include <sys/un.h>
+#include <sys/socket.h>
+#endif
#include "config.h"
#define INCLUDE_LIST
@@ -55,8 +62,6 @@ along with GCC; see the file COPYING3. If not see
#include "backtrace.h"
#include "xml.h"
#include "intl.h"
-#include <sys/un.h>
-#include <sys/socket.h>
namespace diagnostics {
More information about the Gcc-cvs
mailing list