aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/acinclude.m43
-rwxr-xr-xgdb/configure66
-rw-r--r--gdb/configure.ac1
-rw-r--r--gdbserver/acinclude.m43
-rwxr-xr-xgdbserver/configure66
-rw-r--r--gdbserver/configure.ac1
-rw-r--r--gdbsupport/Makefile.in4
-rw-r--r--gdbsupport/acinclude.m43
-rw-r--r--gdbsupport/compiler-type.m459
-rwxr-xr-xgdbsupport/configure66
-rw-r--r--gdbsupport/configure.ac1
-rw-r--r--gdbsupport/warning.m48
12 files changed, 275 insertions, 6 deletions
diff --git a/gdb/acinclude.m4 b/gdb/acinclude.m4
index 2bdc1ce..95ff2b6 100644
--- a/gdb/acinclude.m4
+++ b/gdb/acinclude.m4
@@ -15,6 +15,9 @@ m4_include(acx_configure_dir.m4)
# This gets GDB_AC_TRANSFORM.
m4_include(transform.m4)
+# This get AM_GDB_COMPILER_TYPE.
+m4_include(../gdbsupport/compiler-type.m4)
+
# This gets AM_GDB_WARNINGS.
m4_include(../gdbsupport/warning.m4)
diff --git a/gdb/configure b/gdb/configure
index 429eaeb..e751edc 100755
--- a/gdb/configure
+++ b/gdb/configure
@@ -17000,6 +17000,64 @@ _ACEOF
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking the compiler type" >&5
+$as_echo_n "checking the compiler type... " >&6; }
+if ${gdb_cv_compiler_type+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ gdb_cv_compiler_type=unknown
+ if test "$gdb_cv_compiler_type" = unknown; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ #if !defined __GNUC__ || defined __clang__
+ #error not gcc
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gdb_cv_compiler_type=gcc
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+
+ if test "$gdb_cv_compiler_type" = unknown; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ #ifndef __clang__
+ #error not clang
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gdb_cv_compiler_type=clang
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gdb_cv_compiler_type" >&5
+$as_echo "$gdb_cv_compiler_type" >&6; }
+
+ GDB_COMPILER_TYPE="$gdb_cv_compiler_type"
+
+
# Check whether --enable-werror was given.
if test "${enable_werror+set}" = set; then :
enableval=$enable_werror; case "${enableval}" in
@@ -17036,10 +17094,16 @@ build_warnings="-Wall -Wpointer-arith \
-Wdeprecated-copy-dtor \
-Wredundant-move \
-Wmissing-declarations \
--Wmissing-prototypes \
-Wstrict-null-sentinel \
"
+# The -Wmissing-prototypes flag will be accepted by GCC, but results
+# in a warning being printed about the flag not being valid for C++,
+# this is something to do with using ccache, and argument ordering.
+if test "$GDB_COMPILER_TYPE" != gcc; then
+ build_warnings="$build_warnings -Wmissing-prototypes"
+fi
+
case "${host}" in
*-*-mingw32*)
# Enable -Wno-format by default when using gcc on mingw since many
diff --git a/gdb/configure.ac b/gdb/configure.ac
index 13e880d..5a380ce 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -1833,6 +1833,7 @@ GDB_AC_WITH_DIR(SYSTEM_GDBINIT_DIR, system-gdbinit-dir,
[automatically load system-wide gdbinit files from this directory],
[])
+AM_GDB_COMPILER_TYPE
AM_GDB_WARNINGS
AM_GDB_UBSAN
diff --git a/gdbserver/acinclude.m4 b/gdbserver/acinclude.m4
index d68e318..32d5d14 100644
--- a/gdbserver/acinclude.m4
+++ b/gdbserver/acinclude.m4
@@ -7,6 +7,9 @@ dnl system search paths.
dnl gdb/gdbserver/configure.in uses BFD_HAVE_SYS_PROCFS_TYPE.
m4_include(../bfd/bfd.m4)
+# This get AM_GDB_COMPILER_TYPE.
+m4_include(../gdbsupport/compiler-type.m4)
+
dnl This gets AM_GDB_WARNINGS.
m4_include(../gdbsupport/warning.m4)
diff --git a/gdbserver/configure b/gdbserver/configure
index d90135b..bcb1594 100755
--- a/gdbserver/configure
+++ b/gdbserver/configure
@@ -9707,6 +9707,64 @@ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking the compiler type" >&5
+$as_echo_n "checking the compiler type... " >&6; }
+if ${gdb_cv_compiler_type+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ gdb_cv_compiler_type=unknown
+ if test "$gdb_cv_compiler_type" = unknown; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ #if !defined __GNUC__ || defined __clang__
+ #error not gcc
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gdb_cv_compiler_type=gcc
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+
+ if test "$gdb_cv_compiler_type" = unknown; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ #ifndef __clang__
+ #error not clang
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gdb_cv_compiler_type=clang
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gdb_cv_compiler_type" >&5
+$as_echo "$gdb_cv_compiler_type" >&6; }
+
+ GDB_COMPILER_TYPE="$gdb_cv_compiler_type"
+
+
# Check whether --enable-werror was given.
if test "${enable_werror+set}" = set; then :
enableval=$enable_werror; case "${enableval}" in
@@ -9743,10 +9801,16 @@ build_warnings="-Wall -Wpointer-arith \
-Wdeprecated-copy-dtor \
-Wredundant-move \
-Wmissing-declarations \
--Wmissing-prototypes \
-Wstrict-null-sentinel \
"
+# The -Wmissing-prototypes flag will be accepted by GCC, but results
+# in a warning being printed about the flag not being valid for C++,
+# this is something to do with using ccache, and argument ordering.
+if test "$GDB_COMPILER_TYPE" != gcc; then
+ build_warnings="$build_warnings -Wmissing-prototypes"
+fi
+
case "${host}" in
*-*-mingw32*)
# Enable -Wno-format by default when using gcc on mingw since many
diff --git a/gdbserver/configure.ac b/gdbserver/configure.ac
index 5576546..dc33f1a 100644
--- a/gdbserver/configure.ac
+++ b/gdbserver/configure.ac
@@ -146,6 +146,7 @@ fi
AC_SUBST(ustlibs)
AC_SUBST(ustinc)
+AM_GDB_COMPILER_TYPE
AM_GDB_WARNINGS
dnl dladdr is glibc-specific. It is used by thread-db.c but only for
diff --git a/gdbsupport/Makefile.in b/gdbsupport/Makefile.in
index 36c2e3d..c74e26a 100644
--- a/gdbsupport/Makefile.in
+++ b/gdbsupport/Makefile.in
@@ -123,8 +123,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../config/codeset.m4 \
$(top_srcdir)/../config/ax_pthread.m4 \
$(top_srcdir)/../gdb/ax_cxx_compile_stdcxx.m4 \
$(top_srcdir)/../gdb/libiberty.m4 $(top_srcdir)/selftest.m4 \
- $(top_srcdir)/ptrace.m4 $(top_srcdir)/warning.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/ptrace.m4 $(top_srcdir)/compiler-type.m4 \
+ $(top_srcdir)/warning.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
diff --git a/gdbsupport/acinclude.m4 b/gdbsupport/acinclude.m4
index cc9c2dc..c627614 100644
--- a/gdbsupport/acinclude.m4
+++ b/gdbsupport/acinclude.m4
@@ -6,5 +6,8 @@ m4_include([../gdb/libiberty.m4])
m4_include([selftest.m4])
m4_include([ptrace.m4])
+dnl This gets AM_GDB_COMPILER_TYPE.
+m4_include(compiler-type.m4)
+
dnl This gets AM_GDB_WARNINGS.
m4_include(warning.m4)
diff --git a/gdbsupport/compiler-type.m4 b/gdbsupport/compiler-type.m4
new file mode 100644
index 0000000..f943a98
--- /dev/null
+++ b/gdbsupport/compiler-type.m4
@@ -0,0 +1,59 @@
+dnl Autoconf configure script for GDB, the GNU debugger.
+dnl Copyright (C) 2022 Free Software Foundation, Inc.
+dnl
+dnl This file is part of GDB.
+dnl
+dnl This program is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; either version 3 of the License, or
+dnl (at your option) any later version.
+dnl
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+dnl GNU General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Sets up GDB_COMPILER_TYPE to either 'gcc', 'clang', or 'unknown'.
+# The autoconf compiler check will set GCC=yes for clang as well as
+# gcc, it's really more of a "is gcc like" check.
+#
+# By contrast, this will set the GDB_COMPILER_TYPE to 'gcc' only for
+# versions of gcc.
+#
+# There's no reason why this can't be extended to identify other
+# compiler types if needed in the future, users of this variable
+# should therefore avoid relying on the 'unknown' value, instead
+# checks should be written in terms of the known compiler types.
+AC_DEFUN([AM_GDB_COMPILER_TYPE],[
+
+ AC_CACHE_CHECK([the compiler type],
+ [gdb_cv_compiler_type],
+ [gdb_cv_compiler_type=unknown
+ if test "$gdb_cv_compiler_type" = unknown; then
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([],
+ [
+ #if !defined __GNUC__ || defined __clang__
+ #error not gcc
+ #endif
+ ])],
+ [gdb_cv_compiler_type=gcc], [])
+ fi
+
+ if test "$gdb_cv_compiler_type" = unknown; then
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([],
+ [
+ #ifndef __clang__
+ #error not clang
+ #endif
+ ])],
+ [gdb_cv_compiler_type=clang], [])
+ fi
+ ])
+
+ GDB_COMPILER_TYPE="$gdb_cv_compiler_type"
+])
diff --git a/gdbsupport/configure b/gdbsupport/configure
index 8b4cb7e..afaba88 100755
--- a/gdbsupport/configure
+++ b/gdbsupport/configure
@@ -10192,6 +10192,64 @@ fi
# Detect support warning flags.
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking the compiler type" >&5
+$as_echo_n "checking the compiler type... " >&6; }
+if ${gdb_cv_compiler_type+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ gdb_cv_compiler_type=unknown
+ if test "$gdb_cv_compiler_type" = unknown; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ #if !defined __GNUC__ || defined __clang__
+ #error not gcc
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gdb_cv_compiler_type=gcc
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+
+ if test "$gdb_cv_compiler_type" = unknown; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ #ifndef __clang__
+ #error not clang
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gdb_cv_compiler_type=clang
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gdb_cv_compiler_type" >&5
+$as_echo "$gdb_cv_compiler_type" >&6; }
+
+ GDB_COMPILER_TYPE="$gdb_cv_compiler_type"
+
+
# Check whether --enable-werror was given.
if test "${enable_werror+set}" = set; then :
enableval=$enable_werror; case "${enableval}" in
@@ -10228,10 +10286,16 @@ build_warnings="-Wall -Wpointer-arith \
-Wdeprecated-copy-dtor \
-Wredundant-move \
-Wmissing-declarations \
--Wmissing-prototypes \
-Wstrict-null-sentinel \
"
+# The -Wmissing-prototypes flag will be accepted by GCC, but results
+# in a warning being printed about the flag not being valid for C++,
+# this is something to do with using ccache, and argument ordering.
+if test "$GDB_COMPILER_TYPE" != gcc; then
+ build_warnings="$build_warnings -Wmissing-prototypes"
+fi
+
case "${host}" in
*-*-mingw32*)
# Enable -Wno-format by default when using gcc on mingw since many
diff --git a/gdbsupport/configure.ac b/gdbsupport/configure.ac
index 4222bb7..55477d5 100644
--- a/gdbsupport/configure.ac
+++ b/gdbsupport/configure.ac
@@ -57,6 +57,7 @@ AM_CONDITIONAL(SELFTEST, $enable_unittests)
GDB_AC_PTRACE
# Detect support warning flags.
+AM_GDB_COMPILER_TYPE
AM_GDB_WARNINGS
case ${host} in
diff --git a/gdbsupport/warning.m4 b/gdbsupport/warning.m4
index a6b06e8..e9025db 100644
--- a/gdbsupport/warning.m4
+++ b/gdbsupport/warning.m4
@@ -51,10 +51,16 @@ build_warnings="-Wall -Wpointer-arith \
-Wdeprecated-copy-dtor \
-Wredundant-move \
-Wmissing-declarations \
--Wmissing-prototypes \
-Wstrict-null-sentinel \
"
+# The -Wmissing-prototypes flag will be accepted by GCC, but results
+# in a warning being printed about the flag not being valid for C++,
+# this is something to do with using ccache, and argument ordering.
+if test "$GDB_COMPILER_TYPE" != gcc; then
+ build_warnings="$build_warnings -Wmissing-prototypes"
+fi
+
case "${host}" in
*-*-mingw32*)
# Enable -Wno-format by default when using gcc on mingw since many