1: # intdiv0.m4 serial 6 (gettext-0.18.2)
2: dnl Copyright (C) 2002, 2007-2008, 2010-2019 Free Software Foundation, Inc.
3: dnl This file is free software; the Free Software Foundation
4: dnl gives unlimited permission to copy and/or distribute it,
5: dnl with or without modifications, as long as this notice is preserved.
6:
7: dnl From Bruno Haible.
8:
9: AC_DEFUN([gt_INTDIV0],
10: [
11: AC_REQUIRE([AC_PROG_CC])dnl
12: AC_REQUIRE([AC_CANONICAL_HOST])dnl
13:
14: AC_CACHE_CHECK([whether integer division by zero raises SIGFPE],
15: gt_cv_int_divbyzero_sigfpe,
16: [
17: gt_cv_int_divbyzero_sigfpe=
18: changequote(,)dnl
19: case "$host_os" in
20: macos* | darwin[6-9]* | darwin[1-9][0-9]*)
21: # On Mac OS X 10.2 or newer, just assume the same as when cross-
22: # compiling. If we were to perform the real test, 1 Crash Report
23: # dialog window would pop up.
24: case "$host_cpu" in
25: i[34567]86 | x86_64)
26: gt_cv_int_divbyzero_sigfpe="guessing yes" ;;
27: esac
28: ;;
29: esac
30: changequote([,])dnl
31: if test -z "$gt_cv_int_divbyzero_sigfpe"; then
32: AC_RUN_IFELSE(
33: [AC_LANG_SOURCE([[
34: #include <stdlib.h>
35: #include <signal.h>
36:
37: static void
38: sigfpe_handler (int sig)
39: {
40: /* Exit with code 0 if SIGFPE, with code 1 if any other signal. */
41: _exit (sig != SIGFPE);
42: }
43:
44: int x = 1;
45: int y = 0;
46: int z;
47: int nan;
48:
49: int main ()
50: {
51: signal (SIGFPE, sigfpe_handler);
52: /* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP. */
53: #if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP)
54: signal (SIGTRAP, sigfpe_handler);
55: #endif
56: /* Linux/SPARC yields signal SIGILL. */
57: #if defined (__sparc__) && defined (__linux__)
58: signal (SIGILL, sigfpe_handler);
59: #endif
60:
61: z = x / y;
62: nan = y / y;
63: exit (2);
64: }
65: ]])],
66: [gt_cv_int_divbyzero_sigfpe=yes],
67: [gt_cv_int_divbyzero_sigfpe=no],
68: [
69: # Guess based on the CPU.
70: changequote(,)dnl
71: case "$host_cpu" in
72: alpha* | i[34567]86 | x86_64 | m68k | s390*)
73: gt_cv_int_divbyzero_sigfpe="guessing yes";;
74: *)
75: gt_cv_int_divbyzero_sigfpe="guessing no";;
76: esac
77: changequote([,])dnl
78: ])
79: fi
80: ])
81: case "$gt_cv_int_divbyzero_sigfpe" in
82: *yes) value=1;;
83: *) value=0;;
84: esac
85: AC_DEFINE_UNQUOTED([INTDIV0_RAISES_SIGFPE], [$value],
86: [Define if integer division by zero raises signal SIGFPE.])
87: ])
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>