Add ltrace (and libelf) utilities.
Marked as BROKEN for others to debug that if they need it.
1.1 --- a/TODO Fri Jul 13 12:15:53 2007 +0000
1.2 +++ b/TODO Fri Jul 13 12:22:34 2007 +0000
1.3 @@ -15,6 +15,6 @@
1.4 - Memcheck http://hald.dnsalias.net/projects/memcheck/
1.5 - MemCheck Deluxe http://prj.softpixel.com/mcd/
1.6 - Memwatch http://www.linkdata.se/sourcecode.html
1.7 - + ltrace ???
1.8 + ! ltrace ftp://ftp.debian.org/debian/pool/main/l/ltrace/
1.9 O strace http://sourceforge.net/projects/strace/
1.10 - Valgrind http://valgrind.org/
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2.2 +++ b/config/debug/ltrace.in Fri Jul 13 12:22:34 2007 +0000
2.3 @@ -0,0 +1,41 @@
2.4 +# ltrace
2.5 +
2.6 +menuconfig LTRACE
2.7 + bool
2.8 + prompt "ltrace"
2.9 + default n
2.10 + depends on BROKEN
2.11 + select LIBELF
2.12 + help
2.13 + ltrace is currently BROKEN! It depends on libelf, and I don't
2.14 + know how to configure/compile that so that ltrace can successfully
2.15 + use it. I you manage to build ltrace (and libelf!), please be so
2.16 + kind as to tell me! Thank you!
2.17 +
2.18 +if LTRACE
2.19 +
2.20 +choice
2.21 + bool
2.22 + prompt "ltrace version"
2.23 +
2.24 +config LTRACE_V_0_3_36
2.25 + bool
2.26 + prompt "0.3.36"
2.27 + depends on OBSOLETE
2.28 +
2.29 +config LTRACE_V_0_4
2.30 + bool
2.31 + prompt "0.4"
2.32 +
2.33 +# CT_INSERT_VERSION_ABOVE
2.34 +# Don't remove above line!
2.35 +endchoice
2.36 +
2.37 +config LTRACE_VERSION
2.38 + string
2.39 + default "0.3.36" if LTRACE_V_0_3_36
2.40 + default "0.4" if LTRACE_V_0_4
2.41 +# CT_INSERT_VERSION_STRING_ABOVE
2.42 +# # Don't remove above line!
2.43 +
2.44 +endif
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
3.2 +++ b/config/tools/libelf.in Fri Jul 13 12:22:34 2007 +0000
3.3 @@ -0,0 +1,84 @@
3.4 +# libelf config file
3.5 +
3.6 +menuconfig LIBELF
3.7 + bool
3.8 + prompt "libelf"
3.9 + default n
3.10 + depends on BROKEN
3.11 + help
3.12 + libelf lets you read, modify or create ELF files in an
3.13 + architecture-independent way.
3.14 +
3.15 + libelf is BROKEN! If you manage to make it actually _work_,
3.16 + please be so kind as to tell me. (By working, I mean it is
3.17 + useable at least by ltrace.) Thank you!
3.18 +
3.19 +if LIBELF
3.20 +
3.21 +choice
3.22 + bool
3.23 + prompt "libelf version"
3.24 +
3.25 +config LIBELF_V_0_8_0
3.26 + bool
3.27 + prompt "0.8.0"
3.28 + depends on OBSOLETE
3.29 +
3.30 +config LIBELF_V_0_8_2
3.31 + bool
3.32 + prompt "0.8.2"
3.33 + depends on OBSOLETE
3.34 +
3.35 +config LIBELF_V_0_8_3
3.36 + bool
3.37 + prompt "0.8.3"
3.38 + depends on OBSOLETE
3.39 +
3.40 +config LIBELF_V_0_8_4
3.41 + bool
3.42 + prompt "0.8.4"
3.43 + depends on OBSOLETE
3.44 +
3.45 +config LIBELF_V_0_8_5
3.46 + bool
3.47 + prompt "0.8.5"
3.48 + depends on OBSOLETE
3.49 +
3.50 +config LIBELF_V_0_8_6
3.51 + bool
3.52 + prompt "0.8.6"
3.53 + depends on OBSOLETE
3.54 +
3.55 +config LIBELF_V_0_8_7
3.56 + bool
3.57 + prompt "0.8.7"
3.58 + depends on OBSOLETE
3.59 +
3.60 +config LIBELF_V_0_8_8
3.61 + bool
3.62 + prompt "0.8.8"
3.63 + depends on OBSOLETE
3.64 +
3.65 +config LIBELF_V_0_8_9
3.66 + bool
3.67 + prompt "0.8.9"
3.68 +
3.69 +# CT_INSERT_VERSION_ABOVE
3.70 +# Don't remove above line!
3.71 +endchoice
3.72 +
3.73 +config LIBELF_VERSION
3.74 + string
3.75 + default "0.8.0" if LIBELF_V_0_8_0
3.76 + default "0.8.2" if LIBELF_V_0_8_2
3.77 + default "0.8.3" if LIBELF_V_0_8_3
3.78 + default "0.8.4" if LIBELF_V_0_8_4
3.79 + default "0.8.5" if LIBELF_V_0_8_5
3.80 + default "0.8.6" if LIBELF_V_0_8_6
3.81 + default "0.8.7" if LIBELF_V_0_8_7
3.82 + default "0.8.8" if LIBELF_V_0_8_8
3.83 + default "0.8.9" if LIBELF_V_0_8_9
3.84 +# CT_INSERT_VERSION_STRING_ABOVE
3.85 +# Don't remove above line!
3.86 +
3.87 +endif
4.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
4.2 +++ b/scripts/build/debug/ltrace.sh Fri Jul 13 12:22:34 2007 +0000
4.3 @@ -0,0 +1,44 @@
4.4 +# Build script for ltrace
4.5 +
4.6 +is_enabled="${CT_LTRACE}"
4.7 +
4.8 +do_print_filename() {
4.9 + [ "${CT_LTRACE}" = "y" ] || return 0
4.10 + echo "ltrace-${CT_LTRACE_VERSION}.orig"
4.11 +}
4.12 +
4.13 +do_debug_ltrace_get() {
4.14 + CT_GetFile "ltrace_${CT_LTRACE_VERSION}.orig" ftp://ftp.de.debian.org/debian/pool/main/l/ltrace/
4.15 + # Create a link so that the following steps are easier to do:
4.16 + cd "${CT_TARBALLS_DIR}"
4.17 + ltrace_ext=`CT_GetFileExtension "ltrace_${CT_LTRACE_VERSION}.orig"`
4.18 + ln -sf "ltrace_${CT_LTRACE_VERSION}.orig${ltrace_ext}" "ltrace-${CT_LTRACE_VERSION}${ltrace_ext}"
4.19 +}
4.20 +
4.21 +do_debug_ltrace_extract() {
4.22 + CT_ExtractAndPatch "ltrace-${CT_LTRACE_VERSION}"
4.23 +}
4.24 +
4.25 +do_debug_ltrace_build() {
4.26 + CT_DoStep INFO "Installing ltrace"
4.27 + mkdir -p "${CT_BUILD_DIR}/build-ltrace"
4.28 + CT_Pushd "${CT_BUILD_DIR}/build-ltrace"
4.29 +
4.30 + CT_DoLog EXTRA "Configuring ltrace"
4.31 +# CFLAGS="-I${CT_SYSROOT_DIR}/usr/include" \
4.32 +# LDFLAGS="-L${CT_SYSROOT_DIR}/usr/include" \
4.33 + "${CT_SRC_DIR}/ltrace-${CT_LTRACE_VERSION}/configure" \
4.34 + --build=${CT_BUILD} \
4.35 + --host=${CT_TARGET} \
4.36 + --prefix=/usr
4.37 +
4.38 + CT_DoLog EXTRA "Building ltrace"
4.39 + make
4.40 +
4.41 + CT_DoLog EXTRA "Installing ltrace"
4.42 + make DESTDIR="${CT_DEBUG_INSTALL_DIR}" install
4.43 +
4.44 + CT_Popd
4.45 + CT_EndStep
4.46 +}
4.47 +
5.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
5.2 +++ b/scripts/build/tools/libelf.sh Fri Jul 13 12:22:34 2007 +0000
5.3 @@ -0,0 +1,48 @@
5.4 +# Build script for libelf
5.5 +
5.6 +is_enabled="${CT_LIBELF}"
5.7 +
5.8 +do_print_filename() {
5.9 + [ "{CT_LIBELF}" = "y" ] || return 0
5.10 + echo "libelf-${CT_LIBELF_VERSION}"
5.11 +}
5.12 +
5.13 +do_tools_libelf_get() {
5.14 + # The server hosting libelf will return an "HTTP 300 : Multiple Choices"
5.15 + # error code if we try to download a file that does not exists there.
5.16 + # So we have to request the file with an explicit extension.
5.17 + CT_GetFile "libelf-${CT_LIBELF_VERSION}" .tar.gz http://www.mr511.de/software/
5.18 +}
5.19 +
5.20 +do_tools_libelf_extract() {
5.21 + CT_ExtractAndPatch "libelf-${CT_LIBELF_VERSION}"
5.22 +}
5.23 +
5.24 +do_tools_libelf_build() {
5.25 + CT_DoStep INFO "Installing libelf"
5.26 + mkdir -p "${CT_BUILD_DIR}/build-libelf"
5.27 + CT_Pushd "${CT_BUILD_DIR}/build-libelf"
5.28 +
5.29 + CT_DoLog EXTRA "Configuring libelf"
5.30 + CC="${CT_TARGET}-gcc" \
5.31 + "${CT_SRC_DIR}/libelf-${CT_LIBELF_VERSION}/configure" \
5.32 + --build=${CT_BUILD} \
5.33 + --host=${CT_TARGET} \
5.34 + --target=${CT_TARGET} \
5.35 + --prefix=/usr \
5.36 + --enable-compat \
5.37 + --enable-elf64 \
5.38 + --enable-shared \
5.39 + --enable-extended-format \
5.40 + --enable-static 2>&1 |CT_DoLog ALL
5.41 +
5.42 + CT_DoLog EXTRA "Building libelf"
5.43 + make 2>&1 |CT_DoLog ALL
5.44 +
5.45 + CT_DoLog EXTRA "Installing libelf"
5.46 + make instroot="${CT_SYSROOT_DIR}" install 2>&1 |CT_DoLog ALL
5.47 +
5.48 + CT_Popd
5.49 + CT_EndStep
5.50 +}
5.51 +
6.1 --- a/tools/addToolVersion.sh Fri Jul 13 12:15:53 2007 +0000
6.2 +++ b/tools/addToolVersion.sh Fri Jul 13 12:22:34 2007 +0000
6.3 @@ -8,7 +8,7 @@
6.4 Usage: ${myname} <tool> [option] <version>
6.5 'tool' in one of:
6.6 --gcc, --binutils, --glibc, --uClibc, --linux,
6.7 - --gdb, --dmalloc, --duma, --strace
6.8 + --gdb, --dmalloc, --duma, --strace, --ltrace, --libelf
6.9
6.10 Valid options for all tools:
6.11 --experimental, -x
6.12 @@ -57,6 +57,8 @@
6.13 --dmalloc) cat=DMALLOC; tool=dmalloc; tool_prefix=debug/ tool_suffix=;;
6.14 --duma) cat=DUMA; tool=duma; tool_prefix=debug/ tool_suffix=;;
6.15 --strace) cat=STRACE; tool=strace; tool_prefix=debug/ tool_suffix=;;
6.16 + --ltrace) cat=LTRACE; tool=ltrace; tool_prefix=debug/ tool_suffix=;;
6.17 + --libelf) cat=LIBELF; tool=libelf; tool_prefix=tools/ tool_suffix=;;
6.18 # Tools options:
6.19 -x|--experimental) EXP=1; OBS=;;
6.20 -o|--obsolete) OBS=1; EXP=;;