On 23-11-18 21:47, Tom de Vries wrote:
> [ was: [PATCH 1/2][libbacktrace] Handle realloc returning NULL if size == 0 ]
> 
> On Thu, Nov 22, 2018 at 01:35:43PM +0100, Tom de Vries wrote:
>> Hi,
>>
>> Build and tested on x86_64, with mmap.c replaced by alloc.c to ensure that
>> backtrace_vector_release in alloc.c is tested.
> 
> Hi,
> 
> I came up with a more structural solution.
> 
> OK for trunk?
> 

Hi Jeff,

to follow up on your question about relevance of the remaining patches:

If we would have had the test-cases in this patch already committed, we
would have immediately noticed that the patch for a libbacktrace memory
leak proposed here (
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88063#c12 ) exposed the
problem that calling backtrace_vector_release with vec->size == 0
generates superfluous error messages (which now has been fixed by
"[libbacktrace] Avoid realloc with size == 0 in backtrace_vector_release").

Instead, I posted the patch, then remembered at some point to double
check using the alloc.c allocator instead of the mmap.c allocator, which
I implemented by hand-editing mmap.c to include alloc.c.

Having this patch in trunk will replace this forgot-to-do-it-prone and
manual-thus-error-prone process with an automated one, which I'd hope
makes life easier for all of us.

Thanks,
- Tom

> [libbacktrace] Test check_PROGRAMS without mmap
> 
> When building libbacktrace, we typically use mmapio.c and mmap.c, and don't
> build read.c and alloc.c.
> 
> Add testcases that use read.c and alloc.c to ensure that we also build and
> test those on a typical development setup.
> 
> Bootstrapped and reg-tested on x86_64.
> 
> 2018-11-23  Tom de Vries  <tdevr...@suse.de>
> 
>       * configure.ac (HAVE_MMAP): New AM_CONDITIONAL.
>       * configure: Regenerate.
>       * Makefile.am : Add _with_alloc version for each test in
>       check_PROGRAMS.
>       * Makefile.in: Regenerate.
> 
> ---
>  libbacktrace/Makefile.am  |  45 ++++++++
>  libbacktrace/Makefile.in  | 284 
> +++++++++++++++++++++++++++++++++++++++++++---
>  libbacktrace/configure    |  18 ++-
>  libbacktrace/configure.ac |   1 +
>  4 files changed, 331 insertions(+), 17 deletions(-)
> 
> diff --git a/libbacktrace/Makefile.am b/libbacktrace/Makefile.am
> index 3c1bd49dd7b..ee47daee415 100644
> --- a/libbacktrace/Makefile.am
> +++ b/libbacktrace/Makefile.am
> @@ -95,11 +95,25 @@ btest_CFLAGS = $(AM_CFLAGS) -g -O
>  btest_LDADD = libbacktrace.la
>  
>  check_PROGRAMS += btest
> +if HAVE_MMAP
> +libbacktrace_with_alloc = $(libbacktrace_la_OBJECTS) \
> +     $(filter-out mmap.lo mmapio.lo,$(libbacktrace_la_LIBADD)) \
> +     alloc.lo read.lo
> +btest_with_alloc_SOURCES = $(btest_SOURCES)
> +btest_with_alloc_CFLAGS = $(btest_CFLAGS)
> +btest_with_alloc_LDADD = $(libbacktrace_with_alloc)
> +check_PROGRAMS += btest_with_alloc
> +endif
>  
>  stest_SOURCES = stest.c
>  stest_LDADD = libbacktrace.la
>  
>  check_PROGRAMS += stest
> +if HAVE_MMAP
> +stest_with_alloc_SOURCES = $(stest_SOURCES)
> +stest_with_alloc_LDADD = $(libbacktrace_with_alloc)
> +check_PROGRAMS += stest_with_alloc
> +endif
>  
>  ztest_SOURCES = ztest.c testlib.c
>  ztest_CFLAGS = -DSRCDIR=\"$(srcdir)\"
> @@ -111,11 +125,23 @@ endif
>  ztest_LDADD += $(CLOCK_GETTIME_LINK)
>  
>  check_PROGRAMS += ztest
> +if HAVE_MMAP
> +ztest_with_alloc_SOURCES = $(ztest_SOURCES)
> +ztest_with_alloc_CFLAGS = $(ztest_CFLAGS)
> +ztest_with_alloc_LDADD = $(libbacktrace_with_alloc) \
> +     $(filter-out libbacktrace.la, $(ztest_LDADD))
> +check_PROGRAMS += ztest_with_alloc
> +endif
>  
>  edtest_SOURCES = edtest.c edtest2_build.c testlib.c
>  edtest_LDADD = libbacktrace.la
>  
>  check_PROGRAMS += edtest
> +if HAVE_MMAP
> +edtest_with_alloc_SOURCES = $(edtest_SOURCES)
> +edtest_with_alloc_LDADD = $(libbacktrace_with_alloc)
> +check_PROGRAMS += edtest_with_alloc
> +endif
>  
>  edtest2_build.c: gen_edtest2_build; @true
>  gen_edtest2_build: $(srcdir)/edtest2.c
> @@ -126,6 +152,12 @@ gen_edtest2_build: $(srcdir)/edtest2.c
>  if HAVE_PTHREAD
>  
>  check_PROGRAMS += ttest
> +if HAVE_MMAP
> +ttest_with_alloc_SOURCES = $(ttest_SOURCES)
> +ttest_with_alloc_CFLAGS = $(ttest_CFLAGS)
> +ttest_with_alloc_LDADD = $(libbacktrace_with_alloc)
> +check_PROGRAMS += ttest_with_alloc
> +endif
>  
>  ttest_SOURCES = ttest.c testlib.c
>  ttest_CFLAGS = $(AM_CFLAGS) -pthread
> @@ -156,6 +188,19 @@ ctesta_LDFLAGS = -Wl,--compress-debug-sections=zlib-gabi
>  ctesta_LDADD = libbacktrace.la
>  
>  check_PROGRAMS += ctestg ctesta
> +if HAVE_MMAP
> +ctestg_with_alloc_SOURCES = $(ctestg_SOURCES)
> +ctestg_with_alloc_CFLAGS = $(ctestg_CFLAGS)
> +ctestg_with_alloc_LDFLAGS = $(ctestg_LDFLAGS)
> +ctestg_with_alloc_LDADD = $(libbacktrace_with_alloc)
> +
> +ctesta_with_alloc_SOURCES = $(ctesta_SOURCES)
> +ctesta_with_alloc_CFLAGS = $(ctesta_CFLAGS)
> +ctesta_with_alloc_LDFLAGS = $(ctesta_LDFLAGS)
> +ctesta_with_alloc_LDADD = $(libbacktrace_with_alloc)
> +
> +check_PROGRAMS += ctestg_with_alloc ctesta_with_alloc
> +endif
>  
>  endif
>  
> diff --git a/libbacktrace/Makefile.in b/libbacktrace/Makefile.in
> index 60a9d887dba..2b984bc127e 100644
> --- a/libbacktrace/Makefile.in
> +++ b/libbacktrace/Makefile.in
> @@ -120,12 +120,24 @@ POST_UNINSTALL = :
>  build_triplet = @build@
>  host_triplet = @host@
>  target_triplet = @target@
> -check_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3)
> -@NATIVE_TRUE@am__append_1 = btest stest ztest edtest
> -@HAVE_ZLIB_TRUE@@NATIVE_TRUE@am__append_2 = -lz
> -@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@am__append_3 = ttest
> -@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_4 = dtest
> -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am__append_5 = ctestg ctesta
> +check_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3) \
> +     $(am__EXEEXT_4) $(am__EXEEXT_5) $(am__EXEEXT_6) \
> +     $(am__EXEEXT_7) $(am__EXEEXT_8) $(am__EXEEXT_9) \
> +     $(am__EXEEXT_10) $(am__EXEEXT_11) $(am__EXEEXT_12)
> +@NATIVE_TRUE@am__append_1 = btest
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@am__append_2 = btest_with_alloc
> +@NATIVE_TRUE@am__append_3 = stest
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@am__append_4 = stest_with_alloc
> +@HAVE_ZLIB_TRUE@@NATIVE_TRUE@am__append_5 = -lz
> +@NATIVE_TRUE@am__append_6 = ztest
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@am__append_7 = ztest_with_alloc
> +@NATIVE_TRUE@am__append_8 = edtest
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@am__append_9 = edtest_with_alloc
> +@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@am__append_10 = ttest
> +@HAVE_MMAP_TRUE@@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@am__append_11 = 
> ttest_with_alloc
> +@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__append_12 = dtest
> +@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am__append_13 = ctestg ctesta
> +@HAVE_COMPRESSED_DEBUG_TRUE@@HAVE_MMAP_TRUE@@NATIVE_TRUE@am__append_14 = 
> ctestg_with_alloc ctesta_with_alloc
>  subdir = .
>  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
>  am__aclocal_m4_deps = $(top_srcdir)/../config/cet.m4 \
> @@ -158,12 +170,22 @@ AM_V_lt = $(am__v_lt_@AM_V@)
>  am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
>  am__v_lt_0 = --silent
>  am__v_lt_1 = 
> -@NATIVE_TRUE@am__EXEEXT_1 = btest$(EXEEXT) stest$(EXEEXT) \
> -@NATIVE_TRUE@        ztest$(EXEEXT) edtest$(EXEEXT)
> -@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@am__EXEEXT_2 = ttest$(EXEEXT)
> -@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am__EXEEXT_3 =  \
> +@NATIVE_TRUE@am__EXEEXT_1 = btest$(EXEEXT)
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@am__EXEEXT_2 = btest_with_alloc$(EXEEXT)
> +@NATIVE_TRUE@am__EXEEXT_3 = stest$(EXEEXT)
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@am__EXEEXT_4 = stest_with_alloc$(EXEEXT)
> +@NATIVE_TRUE@am__EXEEXT_5 = ztest$(EXEEXT)
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@am__EXEEXT_6 = ztest_with_alloc$(EXEEXT)
> +@NATIVE_TRUE@am__EXEEXT_7 = edtest$(EXEEXT)
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@am__EXEEXT_8 =  \
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@        edtest_with_alloc$(EXEEXT)
> +@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@am__EXEEXT_9 = ttest$(EXEEXT)
> +@HAVE_MMAP_TRUE@@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@am__EXEEXT_10 = 
> ttest_with_alloc$(EXEEXT)
> +@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am__EXEEXT_11 =  \
>  @HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@    ctestg$(EXEEXT) \
>  @HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@    ctesta$(EXEEXT)
> +@HAVE_COMPRESSED_DEBUG_TRUE@@HAVE_MMAP_TRUE@@NATIVE_TRUE@am__EXEEXT_12 = 
> ctestg_with_alloc$(EXEEXT) \
> +@HAVE_COMPRESSED_DEBUG_TRUE@@HAVE_MMAP_TRUE@@NATIVE_TRUE@    
> ctesta_with_alloc$(EXEEXT)
>  @NATIVE_TRUE@am_btest_OBJECTS = btest-btest.$(OBJEXT) \
>  @NATIVE_TRUE@        btest-testlib.$(OBJEXT)
>  btest_OBJECTS = $(am_btest_OBJECTS)
> @@ -171,6 +193,17 @@ btest_OBJECTS = $(am_btest_OBJECTS)
>  btest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
>       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(btest_CFLAGS) $(CFLAGS) \
>       $(AM_LDFLAGS) $(LDFLAGS) -o $@
> +@NATIVE_TRUE@am__objects_1 = btest_with_alloc-btest.$(OBJEXT) \
> +@NATIVE_TRUE@        btest_with_alloc-testlib.$(OBJEXT)
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@am_btest_with_alloc_OBJECTS =  \
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@        $(am__objects_1)
> +btest_with_alloc_OBJECTS = $(am_btest_with_alloc_OBJECTS)
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@btest_with_alloc_DEPENDENCIES =  \
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@        $(libbacktrace_with_alloc)
> +btest_with_alloc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
> +     $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
> +     $(btest_with_alloc_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
> +     -o $@
>  @HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am_ctesta_OBJECTS = 
> ctesta-btest.$(OBJEXT) \
>  @HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@    ctesta-testlib.$(OBJEXT)
>  ctesta_OBJECTS = $(am_ctesta_OBJECTS)
> @@ -179,6 +212,15 @@ ctesta_OBJECTS = $(am_ctesta_OBJECTS)
>  ctesta_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
>       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ctesta_CFLAGS) $(CFLAGS) \
>       $(ctesta_LDFLAGS) $(LDFLAGS) -o $@
> +@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am__objects_2 = 
> ctesta_with_alloc-btest.$(OBJEXT) \
> +@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@    
> ctesta_with_alloc-testlib.$(OBJEXT)
> +@HAVE_COMPRESSED_DEBUG_TRUE@@HAVE_MMAP_TRUE@@NATIVE_TRUE@am_ctesta_with_alloc_OBJECTS
>  = $(am__objects_2)
> +ctesta_with_alloc_OBJECTS = $(am_ctesta_with_alloc_OBJECTS)
> +@HAVE_COMPRESSED_DEBUG_TRUE@@HAVE_MMAP_TRUE@@NATIVE_TRUE@ctesta_with_alloc_DEPENDENCIES
>  = $(libbacktrace_with_alloc)
> +ctesta_with_alloc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
> +     $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
> +     $(ctesta_with_alloc_CFLAGS) $(CFLAGS) \
> +     $(ctesta_with_alloc_LDFLAGS) $(LDFLAGS) -o $@
>  @HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am_ctestg_OBJECTS = 
> ctestg-btest.$(OBJEXT) \
>  @HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@    ctestg-testlib.$(OBJEXT)
>  ctestg_OBJECTS = $(am_ctestg_OBJECTS)
> @@ -187,13 +229,35 @@ ctestg_OBJECTS = $(am_ctestg_OBJECTS)
>  ctestg_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
>       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ctestg_CFLAGS) $(CFLAGS) \
>       $(ctestg_LDFLAGS) $(LDFLAGS) -o $@
> +@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am__objects_3 = 
> ctestg_with_alloc-btest.$(OBJEXT) \
> +@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@    
> ctestg_with_alloc-testlib.$(OBJEXT)
> +@HAVE_COMPRESSED_DEBUG_TRUE@@HAVE_MMAP_TRUE@@NATIVE_TRUE@am_ctestg_with_alloc_OBJECTS
>  = $(am__objects_3)
> +ctestg_with_alloc_OBJECTS = $(am_ctestg_with_alloc_OBJECTS)
> +@HAVE_COMPRESSED_DEBUG_TRUE@@HAVE_MMAP_TRUE@@NATIVE_TRUE@ctestg_with_alloc_DEPENDENCIES
>  = $(libbacktrace_with_alloc)
> +ctestg_with_alloc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
> +     $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
> +     $(ctestg_with_alloc_CFLAGS) $(CFLAGS) \
> +     $(ctestg_with_alloc_LDFLAGS) $(LDFLAGS) -o $@
>  @NATIVE_TRUE@am_edtest_OBJECTS = edtest.$(OBJEXT) \
>  @NATIVE_TRUE@        edtest2_build.$(OBJEXT) testlib.$(OBJEXT)
>  edtest_OBJECTS = $(am_edtest_OBJECTS)
>  @NATIVE_TRUE@edtest_DEPENDENCIES = libbacktrace.la
> +@NATIVE_TRUE@am__objects_4 = edtest.$(OBJEXT) edtest2_build.$(OBJEXT) \
> +@NATIVE_TRUE@        testlib.$(OBJEXT)
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@am_edtest_with_alloc_OBJECTS =  \
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@        $(am__objects_4)
> +edtest_with_alloc_OBJECTS = $(am_edtest_with_alloc_OBJECTS)
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@edtest_with_alloc_DEPENDENCIES =  \
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@        $(libbacktrace_with_alloc)
>  @NATIVE_TRUE@am_stest_OBJECTS = stest.$(OBJEXT)
>  stest_OBJECTS = $(am_stest_OBJECTS)
>  @NATIVE_TRUE@stest_DEPENDENCIES = libbacktrace.la
> +@NATIVE_TRUE@am__objects_5 = stest.$(OBJEXT)
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@am_stest_with_alloc_OBJECTS =  \
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@        $(am__objects_5)
> +stest_with_alloc_OBJECTS = $(am_stest_with_alloc_OBJECTS)
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@stest_with_alloc_DEPENDENCIES =  \
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@        $(libbacktrace_with_alloc)
>  @HAVE_PTHREAD_TRUE@@NATIVE_TRUE@am_ttest_OBJECTS =  \
>  @HAVE_PTHREAD_TRUE@@NATIVE_TRUE@     ttest-ttest.$(OBJEXT) \
>  @HAVE_PTHREAD_TRUE@@NATIVE_TRUE@     ttest-testlib.$(OBJEXT)
> @@ -202,6 +266,15 @@ ttest_OBJECTS = $(am_ttest_OBJECTS)
>  ttest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
>       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ttest_CFLAGS) $(CFLAGS) \
>       $(AM_LDFLAGS) $(LDFLAGS) -o $@
> +@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@am__objects_6 = 
> ttest_with_alloc-ttest.$(OBJEXT) \
> +@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@     ttest_with_alloc-testlib.$(OBJEXT)
> +@HAVE_MMAP_TRUE@@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@am_ttest_with_alloc_OBJECTS 
> = $(am__objects_6)
> +ttest_with_alloc_OBJECTS = $(am_ttest_with_alloc_OBJECTS)
> +@HAVE_MMAP_TRUE@@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ttest_with_alloc_DEPENDENCIES
>  = $(libbacktrace_with_alloc)
> +ttest_with_alloc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
> +     $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
> +     $(ttest_with_alloc_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
> +     -o $@
>  @NATIVE_TRUE@am_ztest_OBJECTS = ztest-ztest.$(OBJEXT) \
>  @NATIVE_TRUE@        ztest-testlib.$(OBJEXT)
>  ztest_OBJECTS = $(am_ztest_OBJECTS)
> @@ -210,6 +283,19 @@ ztest_OBJECTS = $(am_ztest_OBJECTS)
>  ztest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
>       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ztest_CFLAGS) $(CFLAGS) \
>       $(AM_LDFLAGS) $(LDFLAGS) -o $@
> +@NATIVE_TRUE@am__objects_7 = ztest_with_alloc-ztest.$(OBJEXT) \
> +@NATIVE_TRUE@        ztest_with_alloc-testlib.$(OBJEXT)
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@am_ztest_with_alloc_OBJECTS =  \
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@        $(am__objects_7)
> +ztest_with_alloc_OBJECTS = $(am_ztest_with_alloc_OBJECTS)
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@ztest_with_alloc_DEPENDENCIES =  \
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@        $(libbacktrace_with_alloc) \
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@        $(filter-out libbacktrace.la, \
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@        $(ztest_LDADD))
> +ztest_with_alloc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
> +     $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
> +     $(ztest_with_alloc_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
> +     -o $@
>  AM_V_P = $(am__v_P_@AM_V@)
>  am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
>  am__v_P_0 = false
> @@ -244,9 +330,13 @@ am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
>  am__v_CCLD_0 = @echo "  CCLD    " $@;
>  am__v_CCLD_1 = 
>  SOURCES = $(libbacktrace_la_SOURCES) $(EXTRA_libbacktrace_la_SOURCES) \
> -     $(btest_SOURCES) $(ctesta_SOURCES) $(ctestg_SOURCES) \
> -     $(edtest_SOURCES) $(stest_SOURCES) $(ttest_SOURCES) \
> -     $(ztest_SOURCES)
> +     $(btest_SOURCES) $(btest_with_alloc_SOURCES) $(ctesta_SOURCES) \
> +     $(ctesta_with_alloc_SOURCES) $(ctestg_SOURCES) \
> +     $(ctestg_with_alloc_SOURCES) $(edtest_SOURCES) \
> +     $(edtest_with_alloc_SOURCES) $(stest_SOURCES) \
> +     $(stest_with_alloc_SOURCES) $(ttest_SOURCES) \
> +     $(ttest_with_alloc_SOURCES) $(ztest_SOURCES) \
> +     $(ztest_with_alloc_SOURCES)
>  am__can_run_installinfo = \
>    case $$AM_UPDATE_INFO_DIR in \
>      n|no|NO) false;; \
> @@ -654,18 +744,37 @@ libbacktrace_la_LIBADD = \
>       $(ALLOC_FILE)
>  
>  libbacktrace_la_DEPENDENCIES = $(libbacktrace_la_LIBADD)
> -TESTS = $(check_PROGRAMS) $(am__append_4)
> +TESTS = $(check_PROGRAMS) $(am__append_12)
>  @NATIVE_TRUE@btest_SOURCES = btest.c testlib.c
>  @NATIVE_TRUE@btest_CFLAGS = $(AM_CFLAGS) -g -O
>  @NATIVE_TRUE@btest_LDADD = libbacktrace.la
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@libbacktrace_with_alloc = 
> $(libbacktrace_la_OBJECTS) \
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@        $(filter-out mmap.lo 
> mmapio.lo,$(libbacktrace_la_LIBADD)) \
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@        alloc.lo read.lo
> +
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@btest_with_alloc_SOURCES = $(btest_SOURCES)
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@btest_with_alloc_CFLAGS = $(btest_CFLAGS)
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@btest_with_alloc_LDADD = 
> $(libbacktrace_with_alloc)
>  @NATIVE_TRUE@stest_SOURCES = stest.c
>  @NATIVE_TRUE@stest_LDADD = libbacktrace.la
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@stest_with_alloc_SOURCES = $(stest_SOURCES)
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@stest_with_alloc_LDADD = 
> $(libbacktrace_with_alloc)
>  @NATIVE_TRUE@ztest_SOURCES = ztest.c testlib.c
>  @NATIVE_TRUE@ztest_CFLAGS = -DSRCDIR=\"$(srcdir)\"
> -@NATIVE_TRUE@ztest_LDADD = libbacktrace.la $(am__append_2) \
> +@NATIVE_TRUE@ztest_LDADD = libbacktrace.la $(am__append_5) \
>  @NATIVE_TRUE@        $(CLOCK_GETTIME_LINK)
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@ztest_with_alloc_SOURCES = $(ztest_SOURCES)
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@ztest_with_alloc_CFLAGS = $(ztest_CFLAGS)
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@ztest_with_alloc_LDADD = 
> $(libbacktrace_with_alloc) \
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@        $(filter-out libbacktrace.la, 
> $(ztest_LDADD))
> +
>  @NATIVE_TRUE@edtest_SOURCES = edtest.c edtest2_build.c testlib.c
>  @NATIVE_TRUE@edtest_LDADD = libbacktrace.la
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@edtest_with_alloc_SOURCES = $(edtest_SOURCES)
> +@HAVE_MMAP_TRUE@@NATIVE_TRUE@edtest_with_alloc_LDADD = 
> $(libbacktrace_with_alloc)
> +@HAVE_MMAP_TRUE@@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ttest_with_alloc_SOURCES = 
> $(ttest_SOURCES)
> +@HAVE_MMAP_TRUE@@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ttest_with_alloc_CFLAGS = 
> $(ttest_CFLAGS)
> +@HAVE_MMAP_TRUE@@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ttest_with_alloc_LDADD = 
> $(libbacktrace_with_alloc)
>  @HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ttest_SOURCES = ttest.c testlib.c
>  @HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ttest_CFLAGS = $(AM_CFLAGS) -pthread
>  @HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ttest_LDADD = libbacktrace.la
> @@ -677,6 +786,14 @@ TESTS = $(check_PROGRAMS) $(am__append_4)
>  @HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctesta_CFLAGS = $(AM_CFLAGS) -g
>  @HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctesta_LDFLAGS = 
> -Wl,--compress-debug-sections=zlib-gabi
>  @HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@ctesta_LDADD = libbacktrace.la
> +@HAVE_COMPRESSED_DEBUG_TRUE@@HAVE_MMAP_TRUE@@NATIVE_TRUE@ctestg_with_alloc_SOURCES
>  = $(ctestg_SOURCES)
> +@HAVE_COMPRESSED_DEBUG_TRUE@@HAVE_MMAP_TRUE@@NATIVE_TRUE@ctestg_with_alloc_CFLAGS
>  = $(ctestg_CFLAGS)
> +@HAVE_COMPRESSED_DEBUG_TRUE@@HAVE_MMAP_TRUE@@NATIVE_TRUE@ctestg_with_alloc_LDFLAGS
>  = $(ctestg_LDFLAGS)
> +@HAVE_COMPRESSED_DEBUG_TRUE@@HAVE_MMAP_TRUE@@NATIVE_TRUE@ctestg_with_alloc_LDADD
>  = $(libbacktrace_with_alloc)
> +@HAVE_COMPRESSED_DEBUG_TRUE@@HAVE_MMAP_TRUE@@NATIVE_TRUE@ctesta_with_alloc_SOURCES
>  = $(ctesta_SOURCES)
> +@HAVE_COMPRESSED_DEBUG_TRUE@@HAVE_MMAP_TRUE@@NATIVE_TRUE@ctesta_with_alloc_CFLAGS
>  = $(ctesta_CFLAGS)
> +@HAVE_COMPRESSED_DEBUG_TRUE@@HAVE_MMAP_TRUE@@NATIVE_TRUE@ctesta_with_alloc_LDFLAGS
>  = $(ctesta_LDFLAGS)
> +@HAVE_COMPRESSED_DEBUG_TRUE@@HAVE_MMAP_TRUE@@NATIVE_TRUE@ctesta_with_alloc_LDADD
>  = $(libbacktrace_with_alloc)
>  
>  # We can't use automake's automatic dependency tracking, because it
>  # breaks when using bootstrap-lean.  Automatic dependency tracking
> @@ -780,30 +897,58 @@ btest$(EXEEXT): $(btest_OBJECTS) $(btest_DEPENDENCIES) 
> $(EXTRA_btest_DEPENDENCIE
>       @rm -f btest$(EXEEXT)
>       $(AM_V_CCLD)$(btest_LINK) $(btest_OBJECTS) $(btest_LDADD) $(LIBS)
>  
> +btest_with_alloc$(EXEEXT): $(btest_with_alloc_OBJECTS) 
> $(btest_with_alloc_DEPENDENCIES) $(EXTRA_btest_with_alloc_DEPENDENCIES) 
> +     @rm -f btest_with_alloc$(EXEEXT)
> +     $(AM_V_CCLD)$(btest_with_alloc_LINK) $(btest_with_alloc_OBJECTS) 
> $(btest_with_alloc_LDADD) $(LIBS)
> +
>  ctesta$(EXEEXT): $(ctesta_OBJECTS) $(ctesta_DEPENDENCIES) 
> $(EXTRA_ctesta_DEPENDENCIES) 
>       @rm -f ctesta$(EXEEXT)
>       $(AM_V_CCLD)$(ctesta_LINK) $(ctesta_OBJECTS) $(ctesta_LDADD) $(LIBS)
>  
> +ctesta_with_alloc$(EXEEXT): $(ctesta_with_alloc_OBJECTS) 
> $(ctesta_with_alloc_DEPENDENCIES) $(EXTRA_ctesta_with_alloc_DEPENDENCIES) 
> +     @rm -f ctesta_with_alloc$(EXEEXT)
> +     $(AM_V_CCLD)$(ctesta_with_alloc_LINK) $(ctesta_with_alloc_OBJECTS) 
> $(ctesta_with_alloc_LDADD) $(LIBS)
> +
>  ctestg$(EXEEXT): $(ctestg_OBJECTS) $(ctestg_DEPENDENCIES) 
> $(EXTRA_ctestg_DEPENDENCIES) 
>       @rm -f ctestg$(EXEEXT)
>       $(AM_V_CCLD)$(ctestg_LINK) $(ctestg_OBJECTS) $(ctestg_LDADD) $(LIBS)
>  
> +ctestg_with_alloc$(EXEEXT): $(ctestg_with_alloc_OBJECTS) 
> $(ctestg_with_alloc_DEPENDENCIES) $(EXTRA_ctestg_with_alloc_DEPENDENCIES) 
> +     @rm -f ctestg_with_alloc$(EXEEXT)
> +     $(AM_V_CCLD)$(ctestg_with_alloc_LINK) $(ctestg_with_alloc_OBJECTS) 
> $(ctestg_with_alloc_LDADD) $(LIBS)
> +
>  edtest$(EXEEXT): $(edtest_OBJECTS) $(edtest_DEPENDENCIES) 
> $(EXTRA_edtest_DEPENDENCIES) 
>       @rm -f edtest$(EXEEXT)
>       $(AM_V_CCLD)$(LINK) $(edtest_OBJECTS) $(edtest_LDADD) $(LIBS)
>  
> +edtest_with_alloc$(EXEEXT): $(edtest_with_alloc_OBJECTS) 
> $(edtest_with_alloc_DEPENDENCIES) $(EXTRA_edtest_with_alloc_DEPENDENCIES) 
> +     @rm -f edtest_with_alloc$(EXEEXT)
> +     $(AM_V_CCLD)$(LINK) $(edtest_with_alloc_OBJECTS) 
> $(edtest_with_alloc_LDADD) $(LIBS)
> +
>  stest$(EXEEXT): $(stest_OBJECTS) $(stest_DEPENDENCIES) 
> $(EXTRA_stest_DEPENDENCIES) 
>       @rm -f stest$(EXEEXT)
>       $(AM_V_CCLD)$(LINK) $(stest_OBJECTS) $(stest_LDADD) $(LIBS)
>  
> +stest_with_alloc$(EXEEXT): $(stest_with_alloc_OBJECTS) 
> $(stest_with_alloc_DEPENDENCIES) $(EXTRA_stest_with_alloc_DEPENDENCIES) 
> +     @rm -f stest_with_alloc$(EXEEXT)
> +     $(AM_V_CCLD)$(LINK) $(stest_with_alloc_OBJECTS) 
> $(stest_with_alloc_LDADD) $(LIBS)
> +
>  ttest$(EXEEXT): $(ttest_OBJECTS) $(ttest_DEPENDENCIES) 
> $(EXTRA_ttest_DEPENDENCIES) 
>       @rm -f ttest$(EXEEXT)
>       $(AM_V_CCLD)$(ttest_LINK) $(ttest_OBJECTS) $(ttest_LDADD) $(LIBS)
>  
> +ttest_with_alloc$(EXEEXT): $(ttest_with_alloc_OBJECTS) 
> $(ttest_with_alloc_DEPENDENCIES) $(EXTRA_ttest_with_alloc_DEPENDENCIES) 
> +     @rm -f ttest_with_alloc$(EXEEXT)
> +     $(AM_V_CCLD)$(ttest_with_alloc_LINK) $(ttest_with_alloc_OBJECTS) 
> $(ttest_with_alloc_LDADD) $(LIBS)
> +
>  ztest$(EXEEXT): $(ztest_OBJECTS) $(ztest_DEPENDENCIES) 
> $(EXTRA_ztest_DEPENDENCIES) 
>       @rm -f ztest$(EXEEXT)
>       $(AM_V_CCLD)$(ztest_LINK) $(ztest_OBJECTS) $(ztest_LDADD) $(LIBS)
>  
> +ztest_with_alloc$(EXEEXT): $(ztest_with_alloc_OBJECTS) 
> $(ztest_with_alloc_DEPENDENCIES) $(EXTRA_ztest_with_alloc_DEPENDENCIES) 
> +     @rm -f ztest_with_alloc$(EXEEXT)
> +     $(AM_V_CCLD)$(ztest_with_alloc_LINK) $(ztest_with_alloc_OBJECTS) 
> $(ztest_with_alloc_LDADD) $(LIBS)
> +
>  mostlyclean-compile:
>       -rm -f *.$(OBJEXT)
>  
> @@ -831,6 +976,18 @@ btest-testlib.o: testlib.c
>  btest-testlib.obj: testlib.c
>       $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) 
> $(CPPFLAGS) $(btest_CFLAGS) $(CFLAGS) -c -o btest-testlib.obj `if test -f 
> 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) 
> '$(srcdir)/testlib.c'; fi`
>  
> +btest_with_alloc-btest.o: btest.c
> +     $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) 
> $(CPPFLAGS) $(btest_with_alloc_CFLAGS) $(CFLAGS) -c -o 
> btest_with_alloc-btest.o `test -f 'btest.c' || echo '$(srcdir)/'`btest.c
> +
> +btest_with_alloc-btest.obj: btest.c
> +     $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) 
> $(CPPFLAGS) $(btest_with_alloc_CFLAGS) $(CFLAGS) -c -o 
> btest_with_alloc-btest.obj `if test -f 'btest.c'; then $(CYGPATH_W) 
> 'btest.c'; else $(CYGPATH_W) '$(srcdir)/btest.c'; fi`
> +
> +btest_with_alloc-testlib.o: testlib.c
> +     $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) 
> $(CPPFLAGS) $(btest_with_alloc_CFLAGS) $(CFLAGS) -c -o 
> btest_with_alloc-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c
> +
> +btest_with_alloc-testlib.obj: testlib.c
> +     $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) 
> $(CPPFLAGS) $(btest_with_alloc_CFLAGS) $(CFLAGS) -c -o 
> btest_with_alloc-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 
> 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
> +
>  ctesta-btest.o: btest.c
>       $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) 
> $(CPPFLAGS) $(ctesta_CFLAGS) $(CFLAGS) -c -o ctesta-btest.o `test -f 
> 'btest.c' || echo '$(srcdir)/'`btest.c
>  
> @@ -843,6 +1000,18 @@ ctesta-testlib.o: testlib.c
>  ctesta-testlib.obj: testlib.c
>       $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) 
> $(CPPFLAGS) $(ctesta_CFLAGS) $(CFLAGS) -c -o ctesta-testlib.obj `if test -f 
> 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) 
> '$(srcdir)/testlib.c'; fi`
>  
> +ctesta_with_alloc-btest.o: btest.c
> +     $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) 
> $(CPPFLAGS) $(ctesta_with_alloc_CFLAGS) $(CFLAGS) -c -o 
> ctesta_with_alloc-btest.o `test -f 'btest.c' || echo '$(srcdir)/'`btest.c
> +
> +ctesta_with_alloc-btest.obj: btest.c
> +     $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) 
> $(CPPFLAGS) $(ctesta_with_alloc_CFLAGS) $(CFLAGS) -c -o 
> ctesta_with_alloc-btest.obj `if test -f 'btest.c'; then $(CYGPATH_W) 
> 'btest.c'; else $(CYGPATH_W) '$(srcdir)/btest.c'; fi`
> +
> +ctesta_with_alloc-testlib.o: testlib.c
> +     $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) 
> $(CPPFLAGS) $(ctesta_with_alloc_CFLAGS) $(CFLAGS) -c -o 
> ctesta_with_alloc-testlib.o `test -f 'testlib.c' || echo 
> '$(srcdir)/'`testlib.c
> +
> +ctesta_with_alloc-testlib.obj: testlib.c
> +     $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) 
> $(CPPFLAGS) $(ctesta_with_alloc_CFLAGS) $(CFLAGS) -c -o 
> ctesta_with_alloc-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 
> 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
> +
>  ctestg-btest.o: btest.c
>       $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) 
> $(CPPFLAGS) $(ctestg_CFLAGS) $(CFLAGS) -c -o ctestg-btest.o `test -f 
> 'btest.c' || echo '$(srcdir)/'`btest.c
>  
> @@ -855,6 +1024,18 @@ ctestg-testlib.o: testlib.c
>  ctestg-testlib.obj: testlib.c
>       $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) 
> $(CPPFLAGS) $(ctestg_CFLAGS) $(CFLAGS) -c -o ctestg-testlib.obj `if test -f 
> 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) 
> '$(srcdir)/testlib.c'; fi`
>  
> +ctestg_with_alloc-btest.o: btest.c
> +     $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) 
> $(CPPFLAGS) $(ctestg_with_alloc_CFLAGS) $(CFLAGS) -c -o 
> ctestg_with_alloc-btest.o `test -f 'btest.c' || echo '$(srcdir)/'`btest.c
> +
> +ctestg_with_alloc-btest.obj: btest.c
> +     $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) 
> $(CPPFLAGS) $(ctestg_with_alloc_CFLAGS) $(CFLAGS) -c -o 
> ctestg_with_alloc-btest.obj `if test -f 'btest.c'; then $(CYGPATH_W) 
> 'btest.c'; else $(CYGPATH_W) '$(srcdir)/btest.c'; fi`
> +
> +ctestg_with_alloc-testlib.o: testlib.c
> +     $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) 
> $(CPPFLAGS) $(ctestg_with_alloc_CFLAGS) $(CFLAGS) -c -o 
> ctestg_with_alloc-testlib.o `test -f 'testlib.c' || echo 
> '$(srcdir)/'`testlib.c
> +
> +ctestg_with_alloc-testlib.obj: testlib.c
> +     $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) 
> $(CPPFLAGS) $(ctestg_with_alloc_CFLAGS) $(CFLAGS) -c -o 
> ctestg_with_alloc-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 
> 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
> +
>  ttest-ttest.o: ttest.c
>       $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) 
> $(CPPFLAGS) $(ttest_CFLAGS) $(CFLAGS) -c -o ttest-ttest.o `test -f 'ttest.c' 
> || echo '$(srcdir)/'`ttest.c
>  
> @@ -867,6 +1048,18 @@ ttest-testlib.o: testlib.c
>  ttest-testlib.obj: testlib.c
>       $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) 
> $(CPPFLAGS) $(ttest_CFLAGS) $(CFLAGS) -c -o ttest-testlib.obj `if test -f 
> 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) 
> '$(srcdir)/testlib.c'; fi`
>  
> +ttest_with_alloc-ttest.o: ttest.c
> +     $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) 
> $(CPPFLAGS) $(ttest_with_alloc_CFLAGS) $(CFLAGS) -c -o 
> ttest_with_alloc-ttest.o `test -f 'ttest.c' || echo '$(srcdir)/'`ttest.c
> +
> +ttest_with_alloc-ttest.obj: ttest.c
> +     $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) 
> $(CPPFLAGS) $(ttest_with_alloc_CFLAGS) $(CFLAGS) -c -o 
> ttest_with_alloc-ttest.obj `if test -f 'ttest.c'; then $(CYGPATH_W) 
> 'ttest.c'; else $(CYGPATH_W) '$(srcdir)/ttest.c'; fi`
> +
> +ttest_with_alloc-testlib.o: testlib.c
> +     $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) 
> $(CPPFLAGS) $(ttest_with_alloc_CFLAGS) $(CFLAGS) -c -o 
> ttest_with_alloc-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c
> +
> +ttest_with_alloc-testlib.obj: testlib.c
> +     $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) 
> $(CPPFLAGS) $(ttest_with_alloc_CFLAGS) $(CFLAGS) -c -o 
> ttest_with_alloc-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 
> 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
> +
>  ztest-ztest.o: ztest.c
>       $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) 
> $(CPPFLAGS) $(ztest_CFLAGS) $(CFLAGS) -c -o ztest-ztest.o `test -f 'ztest.c' 
> || echo '$(srcdir)/'`ztest.c
>  
> @@ -879,6 +1072,18 @@ ztest-testlib.o: testlib.c
>  ztest-testlib.obj: testlib.c
>       $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) 
> $(CPPFLAGS) $(ztest_CFLAGS) $(CFLAGS) -c -o ztest-testlib.obj `if test -f 
> 'testlib.c'; then $(CYGPATH_W) 'testlib.c'; else $(CYGPATH_W) 
> '$(srcdir)/testlib.c'; fi`
>  
> +ztest_with_alloc-ztest.o: ztest.c
> +     $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) 
> $(CPPFLAGS) $(ztest_with_alloc_CFLAGS) $(CFLAGS) -c -o 
> ztest_with_alloc-ztest.o `test -f 'ztest.c' || echo '$(srcdir)/'`ztest.c
> +
> +ztest_with_alloc-ztest.obj: ztest.c
> +     $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) 
> $(CPPFLAGS) $(ztest_with_alloc_CFLAGS) $(CFLAGS) -c -o 
> ztest_with_alloc-ztest.obj `if test -f 'ztest.c'; then $(CYGPATH_W) 
> 'ztest.c'; else $(CYGPATH_W) '$(srcdir)/ztest.c'; fi`
> +
> +ztest_with_alloc-testlib.o: testlib.c
> +     $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) 
> $(CPPFLAGS) $(ztest_with_alloc_CFLAGS) $(CFLAGS) -c -o 
> ztest_with_alloc-testlib.o `test -f 'testlib.c' || echo '$(srcdir)/'`testlib.c
> +
> +ztest_with_alloc-testlib.obj: testlib.c
> +     $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) 
> $(CPPFLAGS) $(ztest_with_alloc_CFLAGS) $(CFLAGS) -c -o 
> ztest_with_alloc-testlib.obj `if test -f 'testlib.c'; then $(CYGPATH_W) 
> 'testlib.c'; else $(CYGPATH_W) '$(srcdir)/testlib.c'; fi`
> +
>  mostlyclean-libtool:
>       -rm -f *.lo
>  
> @@ -1095,6 +1300,13 @@ btest.log: btest$(EXEEXT)
>       --log-file $$b.log --trs-file $$b.trs \
>       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) 
> -- $(LOG_COMPILE) \
>       "$$tst" $(AM_TESTS_FD_REDIRECT)
> +btest_with_alloc.log: btest_with_alloc$(EXEEXT)
> +     @p='btest_with_alloc$(EXEEXT)'; \
> +     b='btest_with_alloc'; \
> +     $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
> +     --log-file $$b.log --trs-file $$b.trs \
> +     $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) 
> -- $(LOG_COMPILE) \
> +     "$$tst" $(AM_TESTS_FD_REDIRECT)
>  stest.log: stest$(EXEEXT)
>       @p='stest$(EXEEXT)'; \
>       b='stest'; \
> @@ -1102,6 +1314,13 @@ stest.log: stest$(EXEEXT)
>       --log-file $$b.log --trs-file $$b.trs \
>       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) 
> -- $(LOG_COMPILE) \
>       "$$tst" $(AM_TESTS_FD_REDIRECT)
> +stest_with_alloc.log: stest_with_alloc$(EXEEXT)
> +     @p='stest_with_alloc$(EXEEXT)'; \
> +     b='stest_with_alloc'; \
> +     $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
> +     --log-file $$b.log --trs-file $$b.trs \
> +     $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) 
> -- $(LOG_COMPILE) \
> +     "$$tst" $(AM_TESTS_FD_REDIRECT)
>  ztest.log: ztest$(EXEEXT)
>       @p='ztest$(EXEEXT)'; \
>       b='ztest'; \
> @@ -1109,6 +1328,13 @@ ztest.log: ztest$(EXEEXT)
>       --log-file $$b.log --trs-file $$b.trs \
>       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) 
> -- $(LOG_COMPILE) \
>       "$$tst" $(AM_TESTS_FD_REDIRECT)
> +ztest_with_alloc.log: ztest_with_alloc$(EXEEXT)
> +     @p='ztest_with_alloc$(EXEEXT)'; \
> +     b='ztest_with_alloc'; \
> +     $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
> +     --log-file $$b.log --trs-file $$b.trs \
> +     $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) 
> -- $(LOG_COMPILE) \
> +     "$$tst" $(AM_TESTS_FD_REDIRECT)
>  edtest.log: edtest$(EXEEXT)
>       @p='edtest$(EXEEXT)'; \
>       b='edtest'; \
> @@ -1116,6 +1342,13 @@ edtest.log: edtest$(EXEEXT)
>       --log-file $$b.log --trs-file $$b.trs \
>       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) 
> -- $(LOG_COMPILE) \
>       "$$tst" $(AM_TESTS_FD_REDIRECT)
> +edtest_with_alloc.log: edtest_with_alloc$(EXEEXT)
> +     @p='edtest_with_alloc$(EXEEXT)'; \
> +     b='edtest_with_alloc'; \
> +     $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
> +     --log-file $$b.log --trs-file $$b.trs \
> +     $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) 
> -- $(LOG_COMPILE) \
> +     "$$tst" $(AM_TESTS_FD_REDIRECT)
>  ttest.log: ttest$(EXEEXT)
>       @p='ttest$(EXEEXT)'; \
>       b='ttest'; \
> @@ -1123,6 +1356,13 @@ ttest.log: ttest$(EXEEXT)
>       --log-file $$b.log --trs-file $$b.trs \
>       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) 
> -- $(LOG_COMPILE) \
>       "$$tst" $(AM_TESTS_FD_REDIRECT)
> +ttest_with_alloc.log: ttest_with_alloc$(EXEEXT)
> +     @p='ttest_with_alloc$(EXEEXT)'; \
> +     b='ttest_with_alloc'; \
> +     $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
> +     --log-file $$b.log --trs-file $$b.trs \
> +     $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) 
> -- $(LOG_COMPILE) \
> +     "$$tst" $(AM_TESTS_FD_REDIRECT)
>  ctestg.log: ctestg$(EXEEXT)
>       @p='ctestg$(EXEEXT)'; \
>       b='ctestg'; \
> @@ -1137,6 +1377,20 @@ ctesta.log: ctesta$(EXEEXT)
>       --log-file $$b.log --trs-file $$b.trs \
>       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) 
> -- $(LOG_COMPILE) \
>       "$$tst" $(AM_TESTS_FD_REDIRECT)
> +ctestg_with_alloc.log: ctestg_with_alloc$(EXEEXT)
> +     @p='ctestg_with_alloc$(EXEEXT)'; \
> +     b='ctestg_with_alloc'; \
> +     $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
> +     --log-file $$b.log --trs-file $$b.trs \
> +     $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) 
> -- $(LOG_COMPILE) \
> +     "$$tst" $(AM_TESTS_FD_REDIRECT)
> +ctesta_with_alloc.log: ctesta_with_alloc$(EXEEXT)
> +     @p='ctesta_with_alloc$(EXEEXT)'; \
> +     b='ctesta_with_alloc'; \
> +     $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
> +     --log-file $$b.log --trs-file $$b.trs \
> +     $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) 
> -- $(LOG_COMPILE) \
> +     "$$tst" $(AM_TESTS_FD_REDIRECT)
>  dtest.log: dtest
>       @p='dtest'; \
>       b='dtest'; \
> diff --git a/libbacktrace/configure b/libbacktrace/configure
> index c316dde1ad2..ad2e27cbc62 100755
> --- a/libbacktrace/configure
> +++ b/libbacktrace/configure
> @@ -646,6 +646,8 @@ HAVE_PTHREAD_FALSE
>  HAVE_PTHREAD_TRUE
>  PTHREAD_CFLAGS
>  CLOCK_GETTIME_LINK
> +HAVE_MMAP_FALSE
> +HAVE_MMAP_TRUE
>  BACKTRACE_USES_MALLOC
>  ALLOC_FILE
>  VIEW_FILE
> @@ -11440,7 +11442,7 @@ else
>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
>    lt_status=$lt_dlunknown
>    cat > conftest.$ac_ext <<_LT_EOF
> -#line 11443 "configure"
> +#line 11445 "configure"
>  #include "confdefs.h"
>  
>  #if HAVE_DLFCN_H
> @@ -11546,7 +11548,7 @@ else
>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
>    lt_status=$lt_dlunknown
>    cat > conftest.$ac_ext <<_LT_EOF
> -#line 11549 "configure"
> +#line 11551 "configure"
>  #include "confdefs.h"
>  
>  #if HAVE_DLFCN_H
> @@ -12956,6 +12958,14 @@ if test "$ALLOC_FILE" = "alloc.lo"; then
>    BACKTRACE_USES_MALLOC=1
>  fi
>  
> + if test "$have_mmap" == "yes"; then
> +  HAVE_MMAP_TRUE=
> +  HAVE_MMAP_FALSE='#'
> +else
> +  HAVE_MMAP_TRUE='#'
> +  HAVE_MMAP_FALSE=
> +fi
> +
>  
>  # Check for dl_iterate_phdr.
>  for ac_header in link.h
> @@ -13558,6 +13568,10 @@ if test -z "${MAINTAINER_MODE_TRUE}" && test -z 
> "${MAINTAINER_MODE_FALSE}"; then
>    as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
>  Usually this means the macro was only invoked conditionally." "$LINENO" 5
>  fi
> +if test -z "${HAVE_MMAP_TRUE}" && test -z "${HAVE_MMAP_FALSE}"; then
> +  as_fn_error $? "conditional \"HAVE_MMAP\" was never defined.
> +Usually this means the macro was only invoked conditionally." "$LINENO" 5
> +fi
>  if test -z "${HAVE_PTHREAD_TRUE}" && test -z "${HAVE_PTHREAD_FALSE}"; then
>    as_fn_error $? "conditional \"HAVE_PTHREAD\" was never defined.
>  Usually this means the macro was only invoked conditionally." "$LINENO" 5
> diff --git a/libbacktrace/configure.ac b/libbacktrace/configure.ac
> index c75fc9d7ebc..4eb9b06d781 100644
> --- a/libbacktrace/configure.ac
> +++ b/libbacktrace/configure.ac
> @@ -319,6 +319,7 @@ if test "$ALLOC_FILE" = "alloc.lo"; then
>    BACKTRACE_USES_MALLOC=1
>  fi
>  AC_SUBST(BACKTRACE_USES_MALLOC)
> +AM_CONDITIONAL(HAVE_MMAP, test "$have_mmap" == "yes")
>  
>  # Check for dl_iterate_phdr.
>  AC_CHECK_HEADERS(link.h)
> 

Reply via email to