Download M4 Source Macro History Category Index

ax_func_posix_memalign

Synopsis

AX_FUNC_POSIX_MEMALIGN

Description

Some versions of posix_memalign (notably glibc 2.2.5) incorrectly apply their power-of-two check to the size argument, not the alignment argument. AX_FUNC_POSIX_MEMALIGN defines HAVE_POSIX_MEMALIGN if the power-of-two check is correctly applied to the alignment argument.

Author

Scott Pakin <pakin@uiuc.edu>

Last Modified

2005-01-22

M4 Source Code

AC_DEFUN([AX_FUNC_POSIX_MEMALIGN],
[AC_CACHE_CHECK([for working posix_memalign],
  [ax_cv_func_posix_memalign_works],
  [AC_TRY_RUN([
#include <stdlib.h>

int
main ()
{
  void *buffer;

  /* Some versions of glibc incorrectly perform the alignment check on
   * the size word. */
  exit (posix_memalign (&buffer, sizeof(void *), 123) != 0);
}
    ],
    [ax_cv_func_posix_memalign_works=yes],
    [ax_cv_func_posix_memalign_works=no],
    [ax_cv_func_posix_memalign_works=no])])
if test "$ax_cv_func_posix_memalign_works" = "yes" ; then
  AC_DEFINE([HAVE_POSIX_MEMALIGN], [1],
    [Define to 1 if `posix_memalign' works.])
fi
])

License

Copyright © 2005 Scott Pakin <pakin@uiuc.edu>

Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved.