qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug 1853826] Re: ELF loader fails to load shared object on ThunderX


From: Alex Bennée
Subject: Re: [Bug 1853826] Re: ELF loader fails to load shared object on ThunderX2 running RHEL7
Date: Thu, 28 Nov 2019 17:47:53 +0000

Do binaries have to be page size aware? I thought it was a runtime thing. However if the aarch64-linux-user is hardwired to 4k it might explain it's confusion on a 64k machine.

On Thu, 28 Nov 2019, 16:33 Peter Maydell, <address@hidden> wrote:
If you objdump the binary and the offending library what do they seem to
have been built for ?

Certainly this:

0000004000000000-0000004000001000 0000000000001000 ---

looks like a 4K page when we're trying to load things, so either we got
the loading wrong or the binary is 4K.

--
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1853826

Title:
  ELF loader fails to load shared object on ThunderX2 running RHEL7

Status in QEMU:
  Incomplete

Bug description:
  Simple test:
  hello.c

  include <stdio.h>

  int main(int argc, char* argv[])
  {
    {
      printf("Hello World... \n");
    }
    return 0;
  }

  when compiled with :
  *Compiler
  https://developer.arm.com/tools-and-software/server-and-hpc/arm-architecture-tools/arm-allinea-studio/download
  Arm-Compiler-for-HPC_19.3_RHEL_7_aarch64.tar   

  *Running:
  1) with -armpl
       armclang -armpl hello.c
       ./qemu/build/aarch64-linux-user/qemu-aarch64 a.out
  2) without flag
      armclang hello.c
       ./qemu/build/aarch64-linux-user/qemu-aarch64 a.out

  •With Docker image:
         CentOS Linux release 7.7.1908 (AltArch)

  *Two different machines:
         AArch64, Taishan. tsv110, Kunpeng 920, ARMv8.2-A
         AArch64, Taishan 2280, Cortex-A72, ARMv8-A

  *QEMU 4.0
       qemu-aarch64 version 4.1.91 (v4.2.0-rc1)


  Results:


   ****Taishan 2280 Cortex-A72
        Running
  1)with -armpl flag with and without the docker
            WORKS-> Hello World...
                 -> ldd a.out
  ldd a.out
  linux-vdso.so.1 =>  (0x0000ffffbc6a2000)
  libamath_generic.so => /scratch/arm-linux-compiler-19.3_Generic-AArch64_RHEL-8_aarch64-linux/lib/clang/9.0.1/armpl_links/lib/libamath_generic.so (0x0000ffffbc544000)
  libm.so.6 => /lib64/libm.so.6 (0x0000ffffbc493000)
  libastring_generic.so => /scratch/arm-linux-compiler-19.3_Generic-AArch64_RHEL-8_aarch64-linux/lib/clang/9.0.1/armpl_links/lib/libastring_generic.so (0x0000ffffbc472000) libarmflang.so => /scratch/arm-linux-compiler-19.3_Generic-AArch64_RHEL-8_aarch64-linux/lib/libarmflang.so (0x0000ffffbbfd3000)
  libomp.so => /scratch/arm-linux-compiler-19.3_Generic-AArch64_RHEL-8_aarch64-linux/lib/libomp.so (0x0000ffffbbef5000)
  librt.so.1 => /lib64/librt.so.1 (0x0000ffffbbed4000)
  libpthread.so.0 => /lib64/libpthread.so.0 (0x0000ffffbbe9f000)
  libarmpl_lp64_generic.so => /scratch/arm-linux-compiler-19.3_Generic-AArch64_RHEL-8_aarch64-linux/lib/clang/9.0.1/armpl_links/lib/libarmpl_lp64_generic.so (0x0000ffffb3306000)
  libc.so.6 => /lib64/libc.so.6 (0x0000ffffb3180000)
  libstdc++.so.6 => /scratch/gcc-9.2.0_Generic-AArch64_RHEL-8_aarch64-linux/lib64/libstdc++.so.6 (0x0000ffffb2f30000)
  libgcc_s.so.1 => /scratch/gcc-9.2.0_Generic-AArch64_RHEL-8_aarch64-linux/lib64/libgcc_s.so.1 (0x0000ffffb2eff000)
  libdl.so.2 => /lib64/libdl.so.2 (0x0000ffffb2ede000)
  /lib/ld-linux-aarch64.so.1 (0x0000ffffbc674000)


  Running
  2) without -armpl flag with and without the docker
             WORKS -> Hello World...       
                   -> ldd a.out
  ldd a.out
   linux-vdso.so.1 =>  (0x0000ffffa6895000)
  libastring_generic.so => /scratch/arm-linux-compiler-19.3_Generic-AArch64_RHEL-8_aarch64-linux/lib/clang/9.0.1/armpl_links/lib/libastring_generic.so (0x0000ffffa6846000)
  libc.so.6 => /lib64/libc.so.6 (0x0000ffffa66c0000)
  /lib/ld-linux-aarch64.so.1 (0x0000ffffa6867000)


  ****Taishan - tsv110  Kunpeng 920
         For Running

  1)with -armpl flag with and without the docker
             DOES NOT WORK -> with and without Docker
                           -> It shows : qemu:handle_cpu_signal received signal outside vCPU
   context @ pc=0xffffaaa8844a
                           -> ldd a.out
  ldd a.out
  linux-vdso.so.1 =>  (0x0000ffffad4b0000)
  libamath_generic.so => /scratch/arm-linux-compiler-19.3_Generic-AArch64_RHEL-8_aarch64-linux/lib/clang/9.0.1/armpl_links/lib/libamath_generic.so (0x0000ffffad370000)
  libm.so.6 => /lib64/libm.so.6 (0x0000ffffad2a0000)
  libastring_generic.so => /scratch/arm-linux-compiler-19.3_Generic-AArch64_RHEL-8_aarch64-linux/lib/clang/9.0.1/armpl_links/lib/libastring_generic.so (0x0000ffffad270000) libarmflang.so => /scratch/arm-linux-compiler-19.3_Generic-AArch64_RHEL-8_aarch64-linux/lib/libarmflang.so (0x0000ffffacdd0000)
  libomp.so => /scratch/arm-linux-compiler-19.3_Generic-AArch64_RHEL-8_aarch64-linux/lib/libomp.so (0x0000ffffaccf0000)
  librt.so.1 => /lib64/librt.so.1 (0x0000ffffaccc0000)
  libpthread.so.0 => /lib64/libpthread.so.0 (0x0000ffffacc80000)
  libarmpl_lp64_generic.so => /scratch/arm-linux-compiler-19.3_Generic-AArch64_RHEL-8_aarch64-linux/lib/clang/9.0.1/armpl_links/lib/libarmpl_lp64_generic.so (0x0000ffffa40e0000)
  libc.so.6 => /lib64/libc.so.6 (0x0000ffffa3f50000)
  libstdc++.so.6 => /scratch/gcc-9.2.0_Generic-AArch64_RHEL-8_aarch64-linux/lib64/libstdc++.so.6 (0x0000ffffa3d00000)
  libgcc_s.so.1 => /scratch/gcc-9.2.0_Generic-AArch64_RHEL-8_aarch64-linux/lib64/libgcc_s.so.1 (0x0000ffffa3cc0000)
  libdl.so.2 => /lib64/libdl.so.2 (0x0000ffffa3c90000)
  /lib/ld-linux-aarch64.so.1 (0x0000ffffad4c0000)


  Running
  2) without -armpl flag with and without the docker
                 WORKS -> Hello World..
                       -> ldd a.out
  ldd a.out 
  linux-vdso.so.1 =>  (0x0000ffff880c0000)
  libastring_generic.so => /scratch/arm-linux-compiler-19.3_Generic-AArch64_RHEL-8_aarch64-linux/lib/clang/9.0.1/armpl_links/lib/libastring_generic.so (0x0000ffff88080000)
  libc.so.6 => /lib64/libc.so.6 (0x0000ffff87ee0000)
  /lib/ld-linux-aarch64.so.1 (0x0000ffff880d0000)

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1853826/+subscriptions


reply via email to

[Prev in Thread] Current Thread [Next in Thread]