暫定処分。ElectricFence-2.2.2-pmemalign.patchを入れる。正常なposix_memalignとは違うんだけど、誤検出で動かないよりはマシだろう。specファイルを書き替えてbuild。
Index: ElectricFence.spec =================================================================== RCS file: /cvs/dist/devel/ElectricFence/ElectricFence.spec,v retrieving revision 1.12 diff -u -p -b -B -w -r1.12 ElectricFence.spec --- ElectricFence.spec 5 Mar 2005 19:55:03 -0000 1.12 +++ ElectricFence.spec 4 Oct 2005 10:03:36 -0000 @@ -1,7 +1,7 @@ Summary: A debugger which detects memory allocation violations. Name: ElectricFence Version: 2.2.2 -Release: 20 +Release: 20w License: GPL Group: Development/Tools Source: ftp://ftp.perens.com/pub/ElectricFence/beta/%{name}-%{version}.tar.gz @@ -9,6 +9,7 @@ Patch1: ElectricFence-2.0.5-longjmp.patc Patch2: ElectricFence-2.1-vaarg.patch Patch3: ElectricFence-2.2.2-pthread.patch Patch4: ElectricFence-2.2.2-madvise.patch +Patch5: ElectricFence-2.2.2-pmemalign.patch BuildRoot: %{_tmppath}/%{name}-%{version}-root Requires: /sbin/ldconfig @@ -30,6 +31,7 @@ violations. %patch2 -p1 -b .vaarg %patch3 -p1 -b .pthread %patch4 -p1 -b .madvise +%patch5 -p1 -b .pmemalign %build make CFLAGS='${RPM_OPT_FLAGS} -DUSE_SEMAPHORE -fpic'
ついでに、~/.gdbinitに以下を入れる。
define ef set environment LD_PRELOAD /usr/lib/libefence.so.0 end
これでgdbから実行(R)前にefと打てば、どうにか使えるだろう。