Bug 476277 - valgrind not able to startup in arm 64board using 32bit tool chain
Summary: valgrind not able to startup in arm 64board using 32bit tool chain
Status: REPORTED
Alias: None
Product: valgrind
Classification: Developer tools
Component: memcheck (other bugs)
Version First Reported In: 3.21.0
Platform: RedHat Enterprise Linux Linux
: NOR normal
Target Milestone: ---
Assignee: Julian Seward
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-10-29 05:29 UTC by rama kanth
Modified: 2023-11-21 11:37 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
strace and readelf output (88.33 KB, text/plain)
2023-10-29 05:29 UTC, rama kanth
Details
attachment-3982475-0.html (5.28 KB, text/html)
2023-11-21 11:37 UTC, rama kanth
Details

Note You need to log in before you can comment on or make changes to this bug.
Description rama kanth 2023-10-29 05:29:38 UTC
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.
Comment 1 John Reiser 2023-11-04 16:04:26 UTC
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".
Comment 2 rama kanth 2023-11-21 11:37:04 UTC
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.