hotfixes.m4 1.0 KB

123456789101112131415161718192021222324
  1. dnl This Source Code Form is subject to the terms of the Mozilla Public
  2. dnl dnl License, v. 2.0. If a copy of the MPL was not distributed with this
  3. dnl dnl file, You can obtain one at http://mozilla.org/MPL/2.0/.
  4. dnl Set of hotfixes to address issues in autoconf 2.13
  5. dnl Divert AC_CHECK_FUNC so that the #includes it uses can't interfere
  6. dnl with the function it tests.
  7. dnl So, when testing e.g. posix_memalign, any #include that AC_CHECK_FUNC
  8. dnl prints is replaced with:
  9. dnl #define posix_memalign innocuous_posix_memalign
  10. dnl #include "theinclude"
  11. dnl #undef posix_memalign
  12. dnl This avoids double declaration of that function when the header normally
  13. dnl declares it, while the test itself is just expecting the function not to be
  14. dnl declared at all, and declares it differently (which doesn't matter for the
  15. dnl test itself).
  16. dnl More recent versions of autoconf are essentially doing this.
  17. define([_AC_CHECK_FUNC],defn([AC_CHECK_FUNC]))dnl
  18. define([AC_CHECK_FUNC], [dnl
  19. patsubst(_AC_CHECK_FUNC($@), [#include.*$], [#define $1 innocuous_$1
  20. \&
  21. #undef $1])])dnl