view m4/gl-openssl.m4 @ 37246:5cfb3a67238d

regex: avoid glibc deadlock during configure glibc has a known bug where certain corruptions of the heap can cause malloc to default to printing a debug message that includes a backtrace, but the act of getting the backtrace uses dlopen which in turn calls into malloc, causing a recursive lock ending in deadlock. Thus, when configure is probing for a known glibc heap corruption bug, the overall configure would hang. The solution suggested by glibc developers is to force malloc to quit printing debug messages, which avoids recursive malloc. * m4/regex.m4 (gl_REGEX): Avoid recursive malloc deadlock when glibc bug 15078 in turn triggers bug 16159. Reported by Michal Privoznik. Signed-off-by: Eric Blake <eblake@redhat.com>
author Eric Blake <eblake@redhat.com>
date Tue, 03 Dec 2013 10:34:13 -0700
parents 135e82dafbea
children efe50ad06bac
line wrap: on
line source

# gl-openssl.m4 serial 1
dnl Copyright (C) 2013 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.

AC_DEFUN([gl_CRYPTO_CHECK],
[
  AC_ARG_WITH([openssl],
    [AS_HELP_STRING([--with-openssl],
      [use libcrypto hash routines if available: default=no])],
    [],
    [with_openssl=no])

  if test "x$1" = xMD5; then
    ALG_header=md5.h
  else
    ALG_header=sha.h
  fi

  LIB_CRYPTO=
  AC_SUBST([LIB_CRYPTO])
  if test "x$with_openssl" != xno; then
    AC_CHECK_LIB([crypto], [$1],
      [AC_CHECK_HEADERS([openssl/$ALG_header],
        [LIB_CRYPTO='-lcrypto'
         AC_DEFINE([HAVE_OPENSSL_$1],[1],
           [Define to 1 if libcrypto is used for $1])])])
    if test "x$with_openssl" = xyes; then
      if test "x$LIB_CRYPTO" = x; then
        AC_MSG_WARN([openssl development library not found for $1])
      fi
    fi
  fi
])