summaryrefslogtreecommitdiff
path: root/gdbsupport/compiler-type.m4
diff options
context:
space:
mode:
Diffstat (limited to 'gdbsupport/compiler-type.m4')
-rw-r--r--gdbsupport/compiler-type.m459
1 files changed, 59 insertions, 0 deletions
diff --git a/gdbsupport/compiler-type.m4 b/gdbsupport/compiler-type.m4
new file mode 100644
index 00000000000..f943a987210
--- /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"
+])