summaryrefslogtreecommitdiff
path: root/gdbsupport/common.m4
diff options
context:
space:
mode:
authorTom Tromey <tromey@adacore.com>2021-09-29 12:51:15 -0600
committerTom Tromey <tromey@adacore.com>2021-10-19 13:14:48 -0600
commit5dfe4bfcb96945dc5cc1f8717be454f1f7f6bbec (patch)
treeaae9e022c794f4887ad3e9ac759bcb0de647e183 /gdbsupport/common.m4
parent05fb05a94729473cb04b1299fe5c36e06525c78f (diff)
Fix format_pieces selftest on Windows
The format_pieces selftest currently fails on Windows hosts. The selftest doesn't handle the "%ll" -> "%I64" rewrite that the formatter may perform, but also gdbsupport was missing a configure check for PRINTF_HAS_LONG_LONG. This patch fixes both issues.
Diffstat (limited to 'gdbsupport/common.m4')
-rw-r--r--gdbsupport/common.m421
1 files changed, 21 insertions, 0 deletions
diff --git a/gdbsupport/common.m4 b/gdbsupport/common.m4
index 901c454ea8c..07c7b2a9bec 100644
--- a/gdbsupport/common.m4
+++ b/gdbsupport/common.m4
@@ -163,6 +163,27 @@ AC_DEFUN([GDB_AC_COMMON], [
fi
fi
+ # Check if the compiler and runtime support printing long longs.
+
+ AC_CACHE_CHECK([for long long support in printf],
+ gdb_cv_printf_has_long_long,
+ [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
+ [[char buf[32];
+ long long l = 0;
+ l = (l << 16) + 0x0123;
+ l = (l << 16) + 0x4567;
+ l = (l << 16) + 0x89ab;
+ l = (l << 16) + 0xcdef;
+ sprintf (buf, "0x%016llx", l);
+ return (strcmp ("0x0123456789abcdef", buf));]])],
+ gdb_cv_printf_has_long_long=yes,
+ gdb_cv_printf_has_long_long=no,
+ gdb_cv_printf_has_long_long=no)])
+ if test "$gdb_cv_printf_has_long_long" = yes; then
+ AC_DEFINE(PRINTF_HAS_LONG_LONG, 1,
+ [Define to 1 if the "%ll" format works to print long longs.])
+ fi
+
BFD_SYS_PROCFS_H
if test "$ac_cv_header_sys_procfs_h" = yes; then
BFD_HAVE_SYS_PROCFS_TYPE(gregset_t)