--
afunix.h was first included in MinGW 10.0.0. For earlier
versions,
fall
back to internal definition.
gcc/ChangeLog:
* diagnostics/sarif-sink.cc: Conditionally include
afunix.h
if it's available, else fall back to internal
definition.
Signed-off-by: Torbjörn SVENSSON <[email protected]>
---
gcc/config.in | 6 ++++++
gcc/configure | 38
+++++++++++++++++++++++++++++++++--
gcc/configure.ac | 15 ++++++++++++++
gcc/diagnostics/sarif-sink.cc | 10 ++++++++-
4 files changed, 66 insertions(+), 3 deletions(-)
diff --git a/gcc/config.in b/gcc/config.in
index 72d2eb1dc80..2feb1d12b1b 100644
--- a/gcc/config.in
+++ b/gcc/config.in
@@ -355,6 +355,12 @@
#endif
+/* Define if you have a working <afunix.h> header file. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_AFUNIX_H
+#endif
+
+
/* Define if AF_INET6 supported. */
#ifndef USED_FOR_TARGET
#undef HAVE_AF_INET6
diff --git a/gcc/configure b/gcc/configure
index 40d40cb8daa..03f4d011ed6 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -10485,6 +10485,40 @@ $as_echo "#define HAVE_INTTYPES_H 1"
confdefs.h
fi
+# Use <afunix.h> only if it exists,
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for afunix.h"
&5
+$as_echo_n "checking for afunix.h... " >&6; }
+if ${gcc_cv_header_afunix_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <winsock2.h>
+#include <afunix.h>
+int
+main ()
+{
+SOCKADDR_UN addr;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ gcc_cv_header_afunix_h=yes
+else
+ gcc_cv_header_afunix_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result:
$gcc_cv_header_afunix_h" >&5
+$as_echo "$gcc_cv_header_afunix_h" >&6; }
+if test $gcc_cv_header_afunix_h = yes; then
+
+$as_echo "#define HAVE_AFUNIX_H 1" >>confdefs.h
+
+fi
+
# Look for the ZSTD package.
ZSTD_INCLUDE=
ZSTD_LIB=
@@ -21939,7 +21973,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 21942 "configure"
+#line 21976 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -22045,7 +22079,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 22048 "configure"
+#line 22082 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
diff --git a/gcc/configure.ac b/gcc/configure.ac
index 85272df5a24..15f18b01dd8 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -1484,6 +1484,21 @@ if test $gcc_cv_header_inttypes_h = yes;
then
[Define if you have a working <inttypes.h> header
file.])
fi
+# Use <afunix.h> only if it exists,
+AC_MSG_CHECKING(for afunix.h)
+AC_CACHE_VAL(gcc_cv_header_afunix_h,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
+[[#include <winsock2.h>
+#include <afunix.h>]],
+ [[SOCKADDR_UN addr;]])],
+ [gcc_cv_header_afunix_h=yes],
+ [gcc_cv_header_afunix_h=no])])
+AC_MSG_RESULT($gcc_cv_header_afunix_h)
+if test $gcc_cv_header_afunix_h = yes; then
+ AC_DEFINE(HAVE_AFUNIX_H, 1,
+ [Define if you have a working <afunix.h> header file.])
+fi
+
# Look for the ZSTD package.
ZSTD_INCLUDE=
ZSTD_LIB=
diff --git a/gcc/diagnostics/sarif-sink.cc
b/gcc/diagnostics/sarif-
sink.cc
index 78743df7f1d..8e8947aa026 100644
--- a/gcc/diagnostics/sarif-sink.cc
+++ b/gcc/diagnostics/sarif-sink.cc
@@ -18,15 +18,23 @@ 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/>. */
+#include "config.h"
+
#ifdef __MINGW32__
#include <winsock2.h>
+#ifdef HAVE_AFUNIX_H
#include <afunix.h>
#else
+struct sockaddr_un {
+ ADDRESS_FAMILY sun_family;
+ char sun_path[108];
+};
+#endif
+#else
#include <sys/un.h>
#include <sys/socket.h>
#endif
-#include "config.h"
#define INCLUDE_LIST
#define INCLUDE_MAP
#define INCLUDE_STRING