[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
please set both MALLOC_PERTURB_ and MALLOC_CHECK_ envvars
From: |
Jim Meyering |
Subject: |
please set both MALLOC_PERTURB_ and MALLOC_CHECK_ envvars |
Date: |
Fri, 27 May 2011 23:50:08 +0200 |
Now, bootstrapping emacs on Fedora 15 x86_64
(with env settings as below) fails with a segfault.
If you develop emacs, or even if you just build from sources regularly,
on a glibc-based system, do us all a favor and build with these envvar
settings:
export MALLOC_PERTURB_=$((RANDOM % 255 + 1))
export MALLOC_CHECK_=3
Why? Because that helps you expose malloc-related problems far earlier.
I've found numerous bugs that way. The trouble is that you have to
be ready to debug, or at least ready to retry with
env MALLOC_PERTURB_=0 MALLOC_CHECK_=0 make ...
to see if things work better without protection.
Until recently, I've been building like this to work around
a problem that I traced back to a commit in emacs several years ago:
make bootstrap RUN_TEMACS='MALLOC_CHECK_=0 ./temacs'
However, today, even with that, make bootstrap is failing with a
segfault (in various places) that goes away when I turn off malloc
robustness checking via both variables for the whole process
and not just one of them when running temacs:
MALLOC_PERTURB_=0 MALLOC_CHECK_=0 make bootstrap
That suggests a very recent change (within the last 24 hrs)
makes emacs act to differently when MALLOC_PERTURB_=N causes glibc
to scribble nonzero (N) bytes into each just freed buffer.
Re: please set both MALLOC_PERTURB_ and MALLOC_CHECK_ envvars, Paul Eggert, 2011/05/29