mallocをdebug compileしたい

glibcをダウンロードし解凍します。 glibcのフォルダーないに入りbuildフォルダーをつくります。

cd glibc-2.21
mkdir build
cd build

glibcをインストールするフォルダーを指定してconfigureします。

../configure --prefix=/home/shingo/lib/glibc

そしてmakeです。 フラグはデバッグ用に -g3 -O0 をいれます。

make CFLAGS="-g3 -O0"

するとglibcはoptimizationなしではcompileできないとerrorがでます。

error: #error "glibc cannot be compiled without optimization" 

いろいろ調べてみると最低でも-O1でないとcompileできないようです。 しかしmallocを-O0でコンパイルできれば良いのでちょっとそこだけ変えてみましょう。 まずはこのcompileできないのerrorをコメントアウトしましょう。 バージョンによって場所が違いますがgrepして見つけましょう。 2.21の場合はbuild folder内のconfig.hにあります。

...
# error "glibc cannot be compiled without optimization"
...

そしてmallocのフォルダー内にあるMakefileを編集します。 ついでにDMALLOC_DEBUGもアクティブにしておきましょう。

malloc/Makefile

# Uncomment this for test releases.  For public releases it is too expensive.
CPPFLAGS-malloc.o += -DMALLOC_DEBUG=1
CPPFLAGS-malloc.o += -g3
CPPFLAGS-malloc.o += -O0

これでmakeするとmallocがstep実行できるlibc.aができあがります。