view modules/iconv_open @ 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 aec4f214179a
children 1f14c6dd175d
line wrap: on
line source

Description:
Character set conversion.

Files:
lib/iconv_open.c
lib/iconv_open-aix.gperf
lib/iconv_open-hpux.gperf
lib/iconv_open-irix.gperf
lib/iconv_open-osf.gperf
lib/iconv_open-solaris.gperf
lib/iconv.c
lib/iconv_close.c
m4/iconv_open.m4

Depends-on:
gperf
iconv-h
iconv
c-ctype           [test $REPLACE_ICONV_OPEN = 1]
c-strcase         [test $REPLACE_ICONV_OPEN = 1]
stdint            [test $REPLACE_ICONV_UTF = 1]
unistr/u8-mbtoucr [test $REPLACE_ICONV_UTF = 1]
unistr/u8-uctomb  [test $REPLACE_ICONV_UTF = 1]

configure.ac:
gl_FUNC_ICONV_OPEN
if test $REPLACE_ICONV_OPEN = 1; then
  AC_LIBOBJ([iconv_open])
fi
if test $REPLACE_ICONV = 1; then
  AC_LIBOBJ([iconv])
  AC_LIBOBJ([iconv_close])
fi

Makefile.am:
iconv_open-aix.h: iconv_open-aix.gperf
	$(GPERF) -m 10 $(srcdir)/iconv_open-aix.gperf > $(srcdir)/iconv_open-aix.h-t
	mv $(srcdir)/iconv_open-aix.h-t $(srcdir)/iconv_open-aix.h
iconv_open-hpux.h: iconv_open-hpux.gperf
	$(GPERF) -m 10 $(srcdir)/iconv_open-hpux.gperf > $(srcdir)/iconv_open-hpux.h-t
	mv $(srcdir)/iconv_open-hpux.h-t $(srcdir)/iconv_open-hpux.h
iconv_open-irix.h: iconv_open-irix.gperf
	$(GPERF) -m 10 $(srcdir)/iconv_open-irix.gperf > $(srcdir)/iconv_open-irix.h-t
	mv $(srcdir)/iconv_open-irix.h-t $(srcdir)/iconv_open-irix.h
iconv_open-osf.h: iconv_open-osf.gperf
	$(GPERF) -m 10 $(srcdir)/iconv_open-osf.gperf > $(srcdir)/iconv_open-osf.h-t
	mv $(srcdir)/iconv_open-osf.h-t $(srcdir)/iconv_open-osf.h
iconv_open-solaris.h: iconv_open-solaris.gperf
	$(GPERF) -m 10 $(srcdir)/iconv_open-solaris.gperf > $(srcdir)/iconv_open-solaris.h-t
	mv $(srcdir)/iconv_open-solaris.h-t $(srcdir)/iconv_open-solaris.h
BUILT_SOURCES        += iconv_open-aix.h iconv_open-hpux.h iconv_open-irix.h iconv_open-osf.h iconv_open-solaris.h
MOSTLYCLEANFILES     += iconv_open-aix.h-t iconv_open-hpux.h-t iconv_open-irix.h-t iconv_open-osf.h-t iconv_open-solaris.h-t
MAINTAINERCLEANFILES += iconv_open-aix.h iconv_open-hpux.h iconv_open-irix.h iconv_open-osf.h iconv_open-solaris.h
EXTRA_DIST           += iconv_open-aix.h iconv_open-hpux.h iconv_open-irix.h iconv_open-osf.h iconv_open-solaris.h

Include:
<iconv.h>

Link:
$(LTLIBICONV) when linking with libtool, $(LIBICONV) otherwise

License:
LGPLv2+

Maintainer:
Bruno Haible