]> git.eshelyaron.com Git - emacs.git/commitdiff
Go back to preferring -isystem to -I
authorPaul Eggert <eggert@cs.ucla.edu>
Wed, 17 Jul 2024 15:13:31 +0000 (08:13 -0700)
committerEshel Yaron <me@eshelyaron.com>
Wed, 17 Jul 2024 21:54:48 +0000 (23:54 +0200)
* configure.ac: Go back to preferring -isystem to -I,
as headers like <gobject/gparam.h> still need it.  This
reverts almost all of 2024-07-16T02:25:44!eggert@cs.ucla.edu,
except that the ‘nw="$nw -Wsystem-headers"’ line continues to
be removed as it is no longer needed due to recent Gnulib changes.
Problem reported by Eli Zaretskii in:
https://lists.gnu.org/r/emacs-devel/2024-07/msg00756.html

(cherry picked from commit 3a790abd869ddadc343710deb0c4368227ba6611)

configure.ac

index f4a98aefff65f3e58367a91c66a9a9c7fbffbfc4..07ab9d3ff22427667da081512d1ae3f905d95323 100644 (file)
@@ -1759,8 +1759,11 @@ if test "$enable_check_lisp_object_type" = yes; then
 fi
 
 WERROR_CFLAGS=
+# When compiling with GCC, prefer -isystem to -I when including system
+# include files, to avoid generating useless diagnostics for the files.
 AS_IF([test $gl_gcc_warnings = no],
  [
+  isystem='-I'
   AS_IF([test "$emacs_cv_clang" = yes],
    [
      # Turn off some warnings if supported.
@@ -1770,6 +1773,8 @@ AS_IF([test $gl_gcc_warnings = no],
      gl_WARN_ADD([-Wno-unknown-pragmas])
    ])
  ],[
+  isystem='-isystem '
+
   # This, $nw, is the list of warnings we disable.
   nw=
 
@@ -1909,6 +1914,9 @@ AC_SUBST([GNULIB_WARN_CFLAGS])
 
 edit_cflags="
   s,///*,/,g
+  s/^/ /
+  s/ -I/ $isystem/g
+  s/^ //
 "
 
 AC_ARG_ENABLE([link-time-optimization],
@@ -2816,7 +2824,7 @@ fi
 AC_SUBST([LD_SWITCH_X_SITE_RPATH])
 
 if test "${x_includes}" != NONE && test -n "${x_includes}"; then
-  C_SWITCH_X_SITE=-I`AS_ECHO(["$x_includes"]) | sed -e "s/:/ -I/g"`
+  C_SWITCH_X_SITE=$isystem`AS_ECHO(["$x_includes"]) | sed -e "s/:/ $isystem/g"`
 fi
 
 if test x"${x_includes}" = x; then
@@ -2882,8 +2890,8 @@ if test "${with_ns}" != no; then
        GNUSTEP_LOCAL_HEADERS="-I${GNUSTEP_LOCAL_HEADERS}"
      test "x${GNUSTEP_LOCAL_LIBRARIES}" != "x" && \
        GNUSTEP_LOCAL_LIBRARIES="-L${GNUSTEP_LOCAL_LIBRARIES}"
-     CPPFLAGS="$CPPFLAGS -I ${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}"
-     CFLAGS="$CFLAGS -I ${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}"
+     CPPFLAGS="$CPPFLAGS -isystem ${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}"
+     CFLAGS="$CFLAGS -isystem ${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}"
      LDFLAGS="$LDFLAGS -L${GNUSTEP_SYSTEM_LIBRARIES} ${GNUSTEP_LOCAL_LIBRARIES}"
      LIBS_GNUSTEP="-lgnustep-gui -lgnustep-base -lobjc -lpthread"
      dnl GNUstep defines BASE_NATIVE_OBJC_EXCEPTIONS to 0 or 1.
@@ -5820,13 +5828,13 @@ if test "${with_xml2}" != "no"; then
        xcsdkdir="" ;;
       esac
     fi
-    CPPFLAGS="$CPPFLAGS -I${xcsdkdir}/usr/include/libxml2"
+    CPPFLAGS="$CPPFLAGS -isystem${xcsdkdir}/usr/include/libxml2"
     AC_CHECK_HEADER([libxml/HTMLparser.h],
       [AC_CHECK_DECL([HTML_PARSE_RECOVER], [HAVE_LIBXML2=yes], [],
                     [#include <libxml/HTMLparser.h>])])
     CPPFLAGS="$SAVE_CPPFLAGS"
     if test "${HAVE_LIBXML2}" = "yes"; then
-      LIBXML2_CFLAGS="-I${xcsdkdir}/usr/include/libxml2"
+      LIBXML2_CFLAGS="-isystem${xcsdkdir}/usr/include/libxml2"
       LIBXML2_LIBS="-lxml2"
     fi
   fi