mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2024-12-21 05:43:09 +00:00
Add D.U.M.A., the Electric Fence successor.
This commit is contained in:
parent
429be50c73
commit
21842b5910
44
config/debug/duma.in
Normal file
44
config/debug/duma.in
Normal file
@ -0,0 +1,44 @@
|
||||
# D.U.M.A. - Detect Unintended Memory Access - Memory checker
|
||||
|
||||
menuconfig DUMA
|
||||
bool
|
||||
prompt "D.U.M.A."
|
||||
default n
|
||||
depends on EXPERIMENTAL
|
||||
help
|
||||
D.U.M.A. - Detect Unintended Memory Access
|
||||
A memory bound checker, with additional features.
|
||||
Formerly known as Electric Fence.
|
||||
|
||||
if DUMA
|
||||
|
||||
config DUMA_A
|
||||
bool
|
||||
prompt "Build a static library"
|
||||
default y
|
||||
|
||||
config DUMA_SO
|
||||
bool
|
||||
prompt "Build a shared library"
|
||||
default y if SHARED_LIBS
|
||||
default n if ! SHARED_LIBS
|
||||
|
||||
choice
|
||||
bool
|
||||
prompt "D.U.M.A. version"
|
||||
|
||||
config DUMA_V_2_5_1
|
||||
bool
|
||||
prompt "2_5_1"
|
||||
|
||||
# CT_INSERT_VERSION_ABOVE
|
||||
# Don't remove above line!
|
||||
endchoice
|
||||
|
||||
config DUMA_VERSION
|
||||
string
|
||||
default "2_5_1" if DUMA_V_2_5_1
|
||||
# CT_INSERT_VERSION_STRING_ABOVE
|
||||
# Don't remove above line!
|
||||
|
||||
endif
|
110
patches/duma/2_5_1/100-cross-compile.patch
Normal file
110
patches/duma/2_5_1/100-cross-compile.patch
Normal file
@ -0,0 +1,110 @@
|
||||
diff -dur duma_2_5_1/Makefile duma_2_5_1.orig/Makefile
|
||||
--- duma_2_5_1/Makefile 2006-06-18 06:02:13.000000000 +0200
|
||||
+++ duma_2_5_1.orig/Makefile 2007-07-11 17:49:43.000000000 +0200
|
||||
@@ -98,10 +98,6 @@
|
||||
LIBS=-lpthread
|
||||
endif
|
||||
|
||||
-
|
||||
-CC=gcc
|
||||
-CXX=g++
|
||||
-AR=ar
|
||||
INSTALL=install
|
||||
|
||||
############################################################
|
||||
@@ -169,31 +165,31 @@
|
||||
|
||||
createconf: createconf.o
|
||||
- rm -f createconf
|
||||
- $(CC) $(CFLAGS) $(DUMA_OPTIONS) createconf.o -o createconf
|
||||
+ $(HOSTCC) $(CFLAGS) $(DUMA_OPTIONS) createconf.o -o createconf
|
||||
|
||||
tstheap: libduma.a tstheap.o
|
||||
- rm -f tstheap
|
||||
- $(CC) $(CFLAGS) tstheap.o libduma.a -o tstheap $(LIBS)
|
||||
+ $(HOSTCC) $(CFLAGS) tstheap.o libduma.a -o tstheap $(LIBS)
|
||||
|
||||
dumatest: libduma.a dumatest.o
|
||||
- rm -f dumatest
|
||||
- $(CC) $(CFLAGS) dumatest.o libduma.a -o dumatest $(LIBS)
|
||||
+ $(HOSTCC) $(CFLAGS) dumatest.o libduma.a -o dumatest $(LIBS)
|
||||
|
||||
dumatestpp: libduma.a dumatestpp.o dumapp.h
|
||||
- rm -f dumatestpp
|
||||
- $(CXX) $(CPPFLAGS) dumatestpp.o libduma.a -o dumatestpp $(LIBS)
|
||||
+ $(HOSTCXX) $(CPPFLAGS) dumatestpp.o libduma.a -o dumatestpp $(LIBS)
|
||||
|
||||
testoperators: libduma.a testoperators.o dumapp.h
|
||||
- rm -f testoperators
|
||||
- $(CXX) $(CPPFLAGS) testoperators.o libduma.a -o testoperators $(LIBS)
|
||||
+ $(HOSTCXX) $(CPPFLAGS) testoperators.o libduma.a -o testoperators $(LIBS)
|
||||
|
||||
tstheap_so: tstheap_so.o
|
||||
- rm -f tstheap_so
|
||||
- $(CC) $(CFLAGS) tstheap_so.o -o tstheap_so $(LIBS)
|
||||
+ $(HOSTCC) $(CFLAGS) tstheap_so.o -o tstheap_so $(LIBS)
|
||||
|
||||
dumatestpp_so: dumatestpp_so.o
|
||||
- rm -f dumatestpp_so
|
||||
- $(CXX) $(CPPFLAGS) dumatestpp_so.o -o dumatestpp_so $(LIBS)
|
||||
+ $(HOSTCXX) $(CPPFLAGS) dumatestpp_so.o -o dumatestpp_so $(LIBS)
|
||||
|
||||
|
||||
$(OBJECTS) tstheap.o dumatest.o dumatestpp.o: duma.h
|
||||
@@ -211,7 +207,7 @@
|
||||
# define rules how to build objects for createconf
|
||||
#
|
||||
createconf.o:
|
||||
- $(CC) $(CFLAGS) $(DUMA_OPTIONS) -c createconf.c -o $@
|
||||
+ $(HOSTCC) $(CFLAGS) $(DUMA_OPTIONS) -c createconf.c -o $@
|
||||
|
||||
|
||||
#
|
||||
@@ -230,13 +226,6 @@
|
||||
print_so.o: print.c print.h
|
||||
$(CC) $(CFLAGS) $(DUMA_SO_OPTIONS) -c print.c -o $@
|
||||
|
||||
-# DUMA_SO_OPTIONS needed cause duma.h is included explicitly
|
||||
-tstheap_so.o:
|
||||
- $(CC) $(CFLAGS) $(DUMA_SO_OPTIONS) -c tstheap.c -o $@
|
||||
-
|
||||
-dumatestpp_so.o:
|
||||
- $(CXX) $(CPPFLAGS) $(DUMA_SO_OPTIONS) -c dumatestpp.cpp -o $@
|
||||
-
|
||||
#
|
||||
# define rules how to build objects for static library
|
||||
#
|
||||
@@ -259,17 +248,23 @@
|
||||
#
|
||||
|
||||
dumatest.o: dumatest.c duma.h duma_config.h
|
||||
- $(CC) $(CFLAGS) -c dumatest.c -o $@
|
||||
+ $(HOSTCC) $(CFLAGS) -c dumatest.c -o $@
|
||||
|
||||
dumatestpp.o: dumatestpp.cpp duma.h dumapp.h duma_config.h
|
||||
- $(CXX) $(CPPFLAGS) -c dumatestpp.cpp -o $@
|
||||
+ $(HOSTCXX) $(CPPFLAGS) -c dumatestpp.cpp -o $@
|
||||
|
||||
tstheap.o: tstheap.c duma.h duma_config.h
|
||||
- $(CC) $(CFLAGS) -c tstheap.c -o $@
|
||||
+ $(HOSTCC) $(CFLAGS) -c tstheap.c -o $@
|
||||
|
||||
testoperators.o: testoperators.cpp duma.h dumapp.h duma_config.h
|
||||
- $(CXX) $(CPPFLAGS) -c testoperators.cpp -o $@
|
||||
+ $(HOSTCXX) $(CPPFLAGS) -c testoperators.cpp -o $@
|
||||
+
|
||||
+# DUMA_SO_OPTIONS needed cause duma.h is included explicitly
|
||||
+tstheap_so.o:
|
||||
+ $(HOSTCC) $(CFLAGS) $(DUMA_SO_OPTIONS) -c tstheap.c -o $@
|
||||
|
||||
+dumatestpp_so.o:
|
||||
+ $(HOSTCXX) $(CPPFLAGS) $(DUMA_SO_OPTIONS) -c dumatestpp.cpp -o $@
|
||||
|
||||
#
|
||||
# default rules
|
||||
@@ -280,5 +275,3 @@
|
||||
#.cpp.o:
|
||||
# $(CXX) $(CPPFLAGS) -c $< -o $@
|
||||
#
|
||||
-
|
||||
-
|
20
patches/duma/2_5_1/200-separate_cpp.patch
Normal file
20
patches/duma/2_5_1/200-separate_cpp.patch
Normal file
@ -0,0 +1,20 @@
|
||||
diff -dur duma_2_5_1.orig/Makefile duma_2_5_1/Makefile
|
||||
--- duma_2_5_1.orig/Makefile 2007-07-11 17:49:43.000000000 +0200
|
||||
+++ duma_2_5_1/Makefile 2007-07-11 17:50:46.000000000 +0200
|
||||
@@ -115,9 +115,14 @@
|
||||
dumatest.c tstheap.c dumatestpp.cpp testoperators.cpp \
|
||||
createconf.c
|
||||
|
||||
-OBJECTS = dumapp.o duma.o sem_inc.o print.o
|
||||
+OBJECTS = duma.o sem_inc.o print.o
|
||||
+SO_OBJECTS = duma_so.o sem_inc_so.o print_so.o
|
||||
+
|
||||
+ifeq ($(DUMA_CPP),1)
|
||||
+OBJECTS += dumapp.o
|
||||
+SO_OBJECTS += dumapp_so.o
|
||||
+endif
|
||||
|
||||
-SO_OBJECTS = dumapp_so.o duma_so.o sem_inc_so.o print_so.o
|
||||
|
||||
all: libduma.a $(DUMASO) tstheap dumatest dumatestpp testoperators tstheap_so dumatestpp_so
|
||||
@ echo "Testing DUMA."
|
64
scripts/build/debug/duma.sh
Normal file
64
scripts/build/debug/duma.sh
Normal file
@ -0,0 +1,64 @@
|
||||
# Biuld script for D.U.M.A.
|
||||
|
||||
is_enabled="${CT_DUMA}"
|
||||
|
||||
do_print_filename() {
|
||||
[ "${CT_DUMA}" = "y" ] || return 0
|
||||
echo "duma_${CT_DUMA_VERSION}"
|
||||
}
|
||||
|
||||
do_debug_duma_get() {
|
||||
CT_GetFile "duma_${CT_DUMA_VERSION}" http://mesh.dl.sourceforge.net/sourceforge/duma/
|
||||
# D.U.M.A. doesn't separate its name from its version with a dash,
|
||||
# but with an underscore. Create a link so that crosstool-NG can
|
||||
# work correctly:
|
||||
cd "${CT_TARBALLS_DIR}"
|
||||
duma_ext=`CT_GetFileExtension "duma_${CT_DUMA_VERSION}"`
|
||||
rm -f "duma-${CT_DUMA_VERSION}${duma_ext}"
|
||||
ln -sf "duma_${CT_DUMA_VERSION}${duma_ext}" "duma-${CT_DUMA_VERSION}${duma_ext}"
|
||||
}
|
||||
|
||||
do_debug_duma_extract() {
|
||||
CT_ExtractAndPatch "duma-${CT_DUMA_VERSION}"
|
||||
cd "${CT_SRC_DIR}"
|
||||
rm -f "duma-${CT_DUMA_VERSION}"
|
||||
ln -sf "duma_${CT_DUMA_VERSION}" "duma-${CT_DUMA_VERSION}"
|
||||
}
|
||||
|
||||
do_debug_duma_build() {
|
||||
CT_DoStep INFO "Installing D.U.M.A."
|
||||
CT_DoLog EXTRA "Copying sources"
|
||||
cp -a "${CT_SRC_DIR}/duma_${CT_DUMA_VERSION}" "${CT_BUILD_DIR}/build-duma"
|
||||
CT_Pushd "${CT_BUILD_DIR}/build-duma"
|
||||
|
||||
DUMA_CPP=
|
||||
[ "${CT_CC_LANG_CXX}" = "y" ] && DUMA_CPP=1
|
||||
|
||||
libs=
|
||||
[ "${CT_DUMA_A}" = "y" ] && libs="${libs} libduma.a"
|
||||
[ "${CT_DUMA_SO}" = "y" ] && libs="${libs} libduma.so.0.0"
|
||||
for lib in ${libs}; do
|
||||
CT_DoLog EXTRA "Building library \"${lib}\""
|
||||
make HOSTCC="${CT_CC_NATIVE}" \
|
||||
HOSTCXX="${CT_CC_NATIVE}" \
|
||||
CC="${CT_TARGET}-gcc" \
|
||||
CXX="${CT_TARGET}-gcc" \
|
||||
DUMA_CPP="${DUMA_CPP}" \
|
||||
${lib} 2>&1 |CT_DoLog ALL
|
||||
CT_DoLog EXTRA "Installing library \"${lib}\""
|
||||
install -m 644 "${lib}" "${CT_SYSROOT_DIR}/usr/lib" 2>&1 |CT_DoLog ALL
|
||||
done
|
||||
if [ "${CT_DUMA_SO}" = "y" ]; then
|
||||
CT_DoLog EXTRA "Installing shared library links"
|
||||
ln -vsf libduma.so.0.0 "${CT_SYSROOT_DIR}/usr/lib/libduma.so.0" 2>&1 |CT_DoLog ALL
|
||||
ln -vsf libduma.so.0.0 "${CT_SYSROOT_DIR}/usr/lib/libduma.so" 2>&1 |CT_DoLog ALL
|
||||
fi
|
||||
CT_DoLog EXTRA "Installing LD_PRELOAD wrapper script"
|
||||
mkdir -p "${CT_DEBUG_INSTALL_DIR}/usr/bin"
|
||||
cp -v duma.sh \
|
||||
"${CT_DEBUG_INSTALL_DIR}/usr/bin/duma" 2>&1 |CT_DoLog ALL
|
||||
|
||||
CT_EndStep
|
||||
CT_Popd
|
||||
}
|
||||
|
@ -8,7 +8,7 @@ doHelp() {
|
||||
Usage: ${myname} <tool> [option] <version>
|
||||
'tool' in one of:
|
||||
--gcc, --binutils, --glibc, --uClibc, --linux,
|
||||
--gdb, --dmalloc
|
||||
--gdb, --dmalloc, --duma
|
||||
|
||||
Valid options for all tools:
|
||||
--experimental, -x
|
||||
@ -55,6 +55,7 @@ while [ $i -le $# ]; do
|
||||
--linux) cat=KERNEL; tool=linux; tool_prefix=kernel_; tool_suffix=;;
|
||||
--gdb) cat=GDB; tool=gdb; tool_prefix=debug/ tool_suffix=;;
|
||||
--dmalloc) cat=DMALLOC; tool=dmalloc; tool_prefix=debug/ tool_suffix=;;
|
||||
--duma) cat=DUMA; tool=duma; tool_prefix=debug/ tool_suffix=;;
|
||||
# Tools options:
|
||||
-x|--experimental) EXP=1; OBS=;;
|
||||
-o|--obsolete) OBS=1; EXP=;;
|
||||
|
Loading…
Reference in New Issue
Block a user