Summary: | valgrind not able to startup in arm 64board using 32bit tool chain | ||
---|---|---|---|
Product: | [Developer tools] valgrind | Reporter: | rama kanth <ramakanth.varala> |
Component: | memcheck | Assignee: | Julian Seward <jseward> |
Status: | REPORTED --- | ||
Severity: | normal | CC: | jreiser |
Priority: | NOR | ||
Version First Reported In: | 3.21.0 | ||
Target Milestone: | --- | ||
Platform: | RedHat Enterprise Linux | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: |
strace and readelf output
attachment-3982475-0.html |
This bug report itself could be improved by specifying the versions used on the "arm 64 board." Such version information typically helps a lot to reproduce the problem, which helps understand and fix it faster. In the header of this bug report, the Platform is identified as "RedHat Enterprise Linux". Please specify which release, which is contained in /etc/os-release on the arm64 board (not on the development environment). Another helpful information is given by running "/usr/bin/uname -a" Then, RedHat (and Fedora, and SuSE) uses the RPM package manager to track installed software. Please specify the package involved. This information can be found by running a query using /usr/bin/rpm on the arm64 board; something like: $ rpm -qf /lib64/ld-linux-aarch.so.3 # use the actual path for ld-linux on the arm64 board glibc-2.37-13.el9.aarch # example package name; please report the actual output from "rpm -qf /path/to/ld-linux". Created attachment 163339 [details] attachment-3982475-0.html "/usr/bin/uname -a" in my target board gives below information Linux dsldevice 4.19.275 #1 SMP PREEMPT Sun Nov 12 23:58:57 EST 2023 aarch6. Platform details should be changed here . Its not a RHEL which is running in my target board. It's customized linux os given by the board vendor. On Sat, Nov 4, 2023 at 9:34 PM John Reiser <bugzilla_noreply@kde.org> wrote: > https://bugs.kde.org/show_bug.cgi?id=476277 > > John Reiser <jreiser@bitwagon.com> changed: > > What |Removed |Added > > ---------------------------------------------------------------------------- > CC| |jreiser@bitwagon.com > > --- Comment #1 from John Reiser <jreiser@bitwagon.com> --- > This bug report itself could be improved by specifying the versions used > on the > "arm 64 board." Such version information typically helps a lot to > reproduce > the problem, which helps understand and fix it faster. > In the header of this bug report, the Platform is identified as "RedHat > Enterprise Linux". Please specify which release, which is contained in > /etc/os-release on the arm64 board (not on the development environment). > Another helpful information is given by running "/usr/bin/uname -a" > Then, RedHat (and Fedora, and SuSE) uses the RPM package manager to track > installed software. Please specify the package involved. This information > can > be found by running a query using /usr/bin/rpm on the arm64 board; > something > like: > $ rpm -qf /lib64/ld-linux-aarch.so.3 # use the actual path for > ld-linux > on the arm64 board > glibc-2.37-13.el9.aarch # example package name; please report the > actual > output from "rpm -qf /path/to/ld-linux". > > -- > You are receiving this mail because: > You reported the bug. |
Created attachment 162689 [details] strace and readelf output SUMMARY I got valgrind cross compiled using the arm toolchain of i386 ( vendor given) on a target board aarch64. We observe for two of the packages could able to run with valgrind . where as with others I get below error . valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: valgrind: valgrind: A must-be-redirected function valgrind: whose name matches the pattern: index valgrind: in an object with soname matching: ld-linux.so.3 valgrind: was not found whilst processing valgrind: symbols from the object with soname: ld-linux.so.3 valgrind: valgrind: Possible fixes: (1, short term): install glibc's debuginfo valgrind: package on this machine. (2, longer term): ask the packagers valgrind: for your Linux distribution to please in future ship a non- valgrind: stripped ld.so (or whatever the dynamic linker .so is called) valgrind: that exports the above-named function using the standard valgrind: calling conventions for this platform. The package you need valgrind: to install for fix (1) is called valgrind: valgrind: On Debian, Ubuntu: libc6-dbg valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo valgrind: valgrind: Note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package (e.g. libc6-dbg:i386). valgrind: valgrind: Cannot continue -- exiting now. Sorry. In above I see like when I do readelf -S ./lib/libc.so.6 [63] .debug_aranges PROGBITS 00000000 131558 000240 00 0 0 8 [64] .debug_info PROGBITS 00000000 131798 001571 00 0 0 1 [65] .debug_abbrev PROGBITS 00000000 132d09 0003dd 00 0 0 1 [66] .debug_line PROGBITS 00000000 1330e6 000e17 00 0 0 1 [67] .debug_frame PROGBITS 00000000 133f00 002608 00 0 0 4 [68] .debug_str PROGBITS 00000000 136508 0012f8 01 MS 0 0 1 [69] .debug_loc PROGBITS 00000000 137800 00039b 00 0 0 1 readelf -S /lib/ld-linux.so.3 , it shows [21] .debug_aranges PROGBITS 00000000 0218f0 0000a0 00 0 0 8 [22] .debug_info PROGBITS 00000000 021990 000a81 00 0 0 1 [23] .debug_abbrev PROGBITS 00000000 022411 0001b2 00 0 0 1 [24] .debug_line PROGBITS 00000000 0225c3 00037f 00 0 0 1 [25] .debug_frame PROGBITS 00000000 022944 000608 00 0 0 4 [26] .debug_str PROGBITS 00000000 022f4c 0011cf 01 MS 0 0 1 [27] .debug_loc PROGBITS 00000000 02411b 0002fb 00 0 0 1 STEPS TO REPRODUCE 1. valgrind invocatin with the cross compiled binary in the target board . OBSERVED RESULT valgrind: Fatal error at startup: a function redirection valgrind: which is mandatory for this platform-tool combination valgrind: cannot be set up. Details of the redirection are: EXPECTED RESULT To give the mem check report when valgrind is invoked with binaries in the target board. SOFTWARE/OS VERSIONS TARGET Board: arm aarch64 -- endian ? Host Machine: X86 Tool Chain: Vendor Given tool chain of 32 bit Target Board OS: Linux aarch64 Host Machine OS: Centos - 7.9 Valgrind Version: 3.21 GCC version : arm-buildroot-linux-gnueabi-gcc.br_real (Buildroot 2021.02.4) 10.3.0 GLIBC: crosstools-aarch64-gcc-5.3-linux-4.1-glibc-2.22-binutils-2.25 ADDITIONAL INFORMATION 1. straceoutput 2. readelf ld linux 3. readelf use dynamic symbols output Please go over the details, if any thing missed do let me know.