|
From: Patrick O. <Pat...@in...> - 2004-08-06 08:37:32
|
Hi all,
I am trying to get valgrind 2.1.2 to run on Red Hat AS2.1
(libc 2.2.4, kernel 2.4.9-e.34smp) together with a program
which uses librt. I am aware of FAQ 3.4. For me it fails like this:
../hello: relocation error: /lib/i686/librt.so.1: symbol
__pthread_clock_settime, version GLIBC_2.2.3 not defined in file
libpthread.so.0 with link time
Therefore I patched vg_libpthread.vs like this:
GLIBC_2.2.3 {
# Extensions.
pthread_getattr_np;
+ __pthread_clock_gettime;
+ __pthread_clock_settime;
} GLIBC_2.2;
and then I got past that error, but I ran into another one:
valgrind --tool=none ../hello
==21264== Nulgrind, a binary JIT-compiler for x86-linux.
==21264== Copyright (C) 2002-2004, and GNU GPL'd, by Nicholas
Nethercote.
==21264== Using valgrind-2.1.2, a program supervision framework for
x86-linux.
==21264== Copyright (C) 2000-2004, and GNU GPL'd, by Julian Seward et
al.
==21264== For more details, rerun with: -v
==21264==
==21264== Warning: client syscall mmap2 tried to modify addresses
0xBFFF0000-0xC0000000
valgrind: vg_syscalls.c:3952 (after_mmap2): Assertion
`valid_client_addr((tst->m_eax), (tst->m_ecx), tid, "mmap2")' failed.
==21264== at 0xB002E510: vgPlain_skin_assert_fail (vg_mylibc.c:1169)
==21264== by 0xB002E50F: assert_fail (vg_mylibc.c:1165)
==21264== by 0xB002E54D: vgPlain_core_assert_fail (vg_mylibc.c:1176)
==21264== by 0xB0044BC7: after_mmap2 (vg_syscalls.c:3952)
sched status:
Thread 1: status = Runnable, associated_mx = 0x0, associated_cv = 0x0
==21264== at 0x3ABE751E: (within /lib/libredhat-kernel.so.1.0.1)
hello.c is really just the normal 'printf( "hello world\n" )'
example. It was compiled with:
"icc hello.c -o hello -lrt"
icc is the Intel compiler, Version 8.0 Build 20040716Z.
Attached is the output of the same run, but with --trace-syscalls=yes.
To get valgrind running I just removed the assert at vg_syscalls.c:3952
and then it works.
Now my question is: what is the right way to solve this?
Is the assert() really just invalid, or am I ignoring a more
fundamental problem by removing it?
On EL3.0 I have neither the librt nor the assert problem,
but "hello" also doesn't seem to use /dev/vsys as it does on
AS2.1.
--
Best Regards
Patrick Ohly
Senior Software Engineer
Intel GmbH
Software & Solutions Group
Hermuelheimer Strasse 8a
50321 Bruehl
Germany
Tel: +49-2232-2090-30
Fax: +49-2232-2090-29
|