Rather than adjusting the way ldso allocates memory, for the
authorEric Andersen <andersen@codepoet.org>
Mon, 8 Aug 2005 11:48:35 +0000 (11:48 -0000)
committerEric Andersen <andersen@codepoet.org>
Mon, 8 Aug 2005 11:48:35 +0000 (11:48 -0000)
time being simply add a series of suppressions to make valgrind
ignore all memory mmaped by uClibc's ldso.

package/valgrind/uclibc.supp [new file with mode: 0644]
package/valgrind/valgrind.mk
package/valgrind/valgrind.sh [new file with mode: 0755]

diff --git a/package/valgrind/uclibc.supp b/package/valgrind/uclibc.supp
new file mode 100644 (file)
index 0000000..179d27b
--- /dev/null
@@ -0,0 +1,212 @@
+{
+   <insert a suppression name here>
+   Memcheck:Addr1
+   fun:_dl_strdup
+   obj:/lib/ld-uClibc*
+}
+{
+   <insert a suppression name here>
+   Memcheck:Addr1
+   fun:_dl_malloc
+   obj:/lib/ld-uClibc*
+}
+{
+   <insert a suppression name here>
+   Memcheck:Cond
+   fun:_dl_get_ready_to_run
+   obj:/lib/ld-uClibc*
+}
+{
+   <insert a suppression name here>
+   Memcheck:Addr1
+   fun:_dl_get_ready_to_run
+   obj:/lib/ld-uClibc*
+}
+{
+   <insert a suppression name here>
+   Memcheck:Addr2
+   fun:_dl_get_ready_to_run
+   obj:/lib/ld-uClibc*
+}
+{
+   <insert a suppression name here>
+   Memcheck:Addr4
+   fun:_dl_get_ready_to_run
+   obj:/lib/ld-uClibc*
+}
+{
+   <insert a suppression name here>
+   Memcheck:Addr1
+   fun:_dl_add_elf_hash_table
+   obj:/lib/ld-uClibc*
+}
+{
+   <insert a suppression name here>
+   Memcheck:Addr2
+   fun:_dl_add_elf_hash_table
+   obj:/lib/ld-uClibc*
+}
+{
+   <insert a suppression name here>
+   Memcheck:Addr4
+   fun:_dl_add_elf_hash_table
+   obj:/lib/ld-uClibc*
+}
+{
+   <insert a suppression name here>
+   Memcheck:Addr1
+   fun:_dl_check_if_named_library_is_loaded
+   obj:/lib/ld-uClibc*
+}
+{
+   <insert a suppression name here>
+   Memcheck:Addr4
+   fun:_dl_check_if_named_library_is_loaded
+   obj:/lib/ld-uClibc*
+}
+{
+   <insert a suppression name here>
+   Memcheck:Addr1
+   fun:_dl_check_hashed_files
+   obj:/lib/ld-uClibc*
+}
+{
+   <insert a suppression name here>
+   Memcheck:Addr4
+   fun:_dl_check_hashed_files
+   obj:/lib/ld-uClibc*
+}
+{
+   <insert a suppression name here>
+   Memcheck:Addr1
+   fun:_dl_load_elf_shared_library
+   obj:/lib/ld-uClibc*
+}
+{
+   <insert a suppression name here>
+   Memcheck:Addr2
+   fun:_dl_load_elf_shared_library
+   obj:/lib/ld-uClibc*
+}
+{
+   <insert a suppression name here>
+   Memcheck:Addr4
+   fun:_dl_load_elf_shared_library
+   obj:/lib/ld-uClibc*
+}
+{
+   <insert a suppression name here>
+   Memcheck:Addr2
+   fun:_dl_load_shared_library
+   obj:/lib/ld-uClibc*
+}
+{
+   <insert a suppression name here>
+   Memcheck:Addr1
+   fun:_dl_find_hash
+   obj:/lib/ld-uClibc*
+}
+{
+   <insert a suppression name here>
+   Memcheck:Addr4
+   fun:_dl_find_hash
+   obj:/lib/ld-uClibc*
+}
+{
+   <insert a suppression name here>
+   Memcheck:Addr4
+   fun:_dl_fixup
+   obj:/lib/ld-uClibc*
+}
+{
+   <insert a suppression name here>
+   Memcheck:Addr2
+   fun:_dl_fixup
+   obj:/lib/ld-uClibc*
+}
+{
+   <insert a suppression name here>
+   Memcheck:Addr4
+   fun:_dl_linux_resolve
+   obj:/lib/ld-uClibc*
+}
+{
+   <insert a suppression name here>
+   Memcheck:Addr4
+   fun:_dl_linux_resolver
+   obj:/lib/ld-uClibc*
+}
+{
+   <insert a suppression name here>
+   Memcheck:Addr2
+   fun:_dl_parse_lazy_relocation_information
+   obj:/lib/ld-uClibc*
+}
+{
+   <insert a suppression name here>
+   Memcheck:Addr2
+   obj:/lib/ld-uClibc*
+   fun:_dl_parse_lazy_relocation_information
+}
+{
+   <insert a suppression name here>
+   Memcheck:Addr4
+   fun:_dl_parse_lazy_relocation_information
+   obj:/lib/ld-uClibc*
+}
+{
+   <insert a suppression name here>
+   Memcheck:Addr4
+   obj:/lib/ld-uClibc*
+   obj:/lib/ld-uClibc*
+   fun:_dl_parse_lazy_relocation_information
+}
+{
+   <insert a suppression name here>
+   Memcheck:Addr4
+   obj:/lib/ld-uClibc*
+   fun:_dl_parse_lazy_relocation_information
+}
+{
+   <insert a suppression name here>
+   Memcheck:Addr2
+   obj:/lib/ld-uClibc*
+   fun:_dl_parse_relocation_information
+}
+{
+   <insert a suppression name here>
+   Memcheck:Addr2
+   fun:_dl_parse_relocation_information
+   obj:/lib/ld-uClibc*
+}
+{
+   <insert a suppression name here>
+   Memcheck:Addr4
+   fun:_dl_parse_relocation_information
+   obj:/lib/ld-uClibc*
+}
+{
+   <insert a suppression name here>
+   Memcheck:Addr4
+   obj:/lib/ld-uClibc*
+   fun:_dl_parse_relocation_information
+}
+{
+   <insert a suppression name here>
+   Memcheck:Addr4
+   obj:/lib/ld-uClibc*
+   obj:/lib/ld-uClibc*
+   fun:_dl_parse_relocation_information
+}
+{
+   <insert a suppression name here>
+   Memcheck:Addr2
+   obj:/lib/ld-uClibc-0.9.27.so
+   fun:*
+}
+{
+   <insert a suppression name here>
+   Memcheck:Addr4
+   obj:/lib/ld-uClibc-0.9.27.so
+   fun:*
+}
index ac529879c5643d9bf9e679ddf5a659ff5186df09..f029576117d7a7a166bd3876faf07d65592bb425 100644 (file)
@@ -65,6 +65,10 @@ $(TARGET_DIR)/usr/bin/valgrind: $(VALGRIND_DIR)/none/vgskin_none.so
            mandir=$(TARGET_DIR)/usr/man \
            includedir=$(TARGET_DIR)/usr/include \
            -C $(VALGRIND_DIR) install;
+       mv $(TARGET_DIR)/usr/bin/valgrind $(TARGET_DIR)/usr/bin/valgrind.bin
+       cp package/valgrind/uclibc.supp $(TARGET_DIR)/usr/lib/valgrind/
+       cp package/valgrind/valgrind.sh $(TARGET_DIR)/usr/bin/valgrind
+       chmod a+x $(TARGET_DIR)/usr/bin/valgrind
        rm -rf $(TARGET_DIR)/usr/share/doc/valgrind
        #mkdir -p $(TARGET_DIR)/etc/default
        #cp $(VALGRIND_DIR)/valgrind.default $(TARGET_DIR)/etc/default/valgrind
diff --git a/package/valgrind/valgrind.sh b/package/valgrind/valgrind.sh
new file mode 100755 (executable)
index 0000000..4b8eb2e
--- /dev/null
@@ -0,0 +1,10 @@
+#!/bin/sh -e
+#
+# Valgrind wrapper
+
+# Use special suppression file for uClibc
+export VALGRIND_OPTS="$VALGRIND_OPTS --suppressions=/usr/lib/valgrind/uclibc.supp"
+
+# Use 'exec' to avoid having another shell process hanging around.
+exec $0.bin "$@"
+