diff options
Diffstat (limited to 'gdbsupport/compiler-type.m4')
-rw-r--r-- | gdbsupport/compiler-type.m4 | 59 |
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" +]) |