On Fri, 2026-01-30 at 19:57 +0100, Torbjorn SVENSSON wrote: > > > On 2026-01-30 16:22, David Malcolm wrote: > > On Fri, 2026-01-30 at 15:06 +0100, Torbjörn SVENSSON wrote: > > > > Hi Torbjörn; sorry about the breakage. > > > > > Changes since v1: > > > > > > - Replaced check for MinGW 10.0.0 or above with a configure-magic > > > to > > > check if afunix.h is available or not. > > > > > > In https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122666#c2, it's > > > mentioned that > > > the block was placed above the include of config.h, but I see no > > > reason why it > > > have to be, as long as it's above the include of system.h. > > > > Sangamesh fixed the placement of config.h in that file yesterday in > > r16-7139-gbc10a49c37501e; please can you rebase and retry your > > patch? > > I've rebased my patch and it builds just fine.
Thanks... > However, the function maybe_open_sarif_sink_for_socket() does not > behave properly on Windows. > > No matter what I do, I always ends up with > cc1.exe: fatal error: unable to create socket: No error ...bother. > > I think this has due to that WSAStartup() might never called. > > My ambition with my patch was never to get the socket code to work, > it was simply to fix the build issue with older mingw versions, > regardless if the feature is used or not. > > Do you agree that we fix the build issue first, and then someone with > adequate Windows experience can perhaps fix the socket issue? Sounds like a good plan. The sarif socket support is an experimental feature [1], so fixing the build is much more important than having it work. Dave [1] https://gcc.gnu.org/pipermail/gcc-patches/2025-November/700258.html > > Kind regards, > Torbjörn > > > > > Thanks > > Dave > > > > > > > > Ok for trunk? > > > > > > > > > > -- > > > > > > 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 > > >
