fix perf_ return value
[oweals/gnunet.git] / m4 / align.m4
1 # align.m4
2 dnl Copyright (C) 2008 Christian Grothoff
3 dnl This file is free software, distributed under the terms of the GNU
4 dnl General Public License.  As a special exception to the GNU General
5 dnl Public License, this file may be distributed as part of a program
6 dnl that contains a configuration script generated by Autoconf, under
7 dnl the same distribution terms as the rest of that program.
8
9 # Define HAVE_UNALIGNED_64_ACCESS if reading a 64-bit value at a 32-bit aligned offset works
10 # Note that the program intentionally causes a SIGBUS (so you may
11 # see some message along those lines on the console).
12 AC_DEFUN([AC_UNALIGNED_64_ACCESS],
13 [AC_CACHE_CHECK([whether unaligned 64-bit access works],
14  ac_cv_unaligned_64_access,
15  [
16  AC_RUN_IFELSE([AC_LANG_PROGRAM([[struct S { int a,b,c;};]],
17                                [[struct S s = {0,0,0}; long long * p = (long long *) &s.b;
18                                  void *bp = malloc (50);
19                                  long long x = *p;
20                                  long long *be = (long long*) &bp[1];
21                                  long long y = *be;
22                                  return (int) x*y;]])],
23  ac_cv_unaligned_64_access=yes,
24  ac_cv_unaligned_64_access=no,
25  ac_cv_unaligned_64_access=no)
26  ])
27  case "$ac_cv_unaligned_64_access" in
28   *yes) value=1;;
29   *) value=0;;
30  esac
31  AC_DEFINE_UNQUOTED([HAVE_UNALIGNED_64_ACCESS], $value, [We can access-64 bit values that are only 32-bit aligned])
32 ])