qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [Bug 1344320] Re: qemu-aarch64 cannot execute glibc


From: Riku Voipio
Subject: Re: [Qemu-devel] [Bug 1344320] Re: qemu-aarch64 cannot execute glibc
Date: Fri, 25 Jul 2014 11:54:49 +0300
User-agent: Mutt/1.5.21 (2010-09-15)

On Tue, Jul 22, 2014 at 10:22:15PM -0000, Peter Maydell wrote:
> On 22 July 2014 20:46, Richard Henderson <address@hidden> wrote:
> > On 07/21/2014 10:37 AM, Peter Maydell wrote:
> >>> It's trying to measure clock cycles required to perform the startup
> >>> relocations.
> >>
> >> That's a neat trick, given that the generic timers are not cycle
> >> counters! They're a fixed frequency counter which is generally
> >> unrelated and rather slower than the CPU frequency (and
> >> which doesn't scale up and down with CPU frequency either).
> >
> > Even better.
> 
> In any case the kernel guys say you can't guarantee they
> exist unless you get them to define an ELF hwcap for
> "timers exist and have a sane value in the 'what frequency
> are they' register". So this is a glibc bug and I'm
> not fixing QEMU...

It's used by openssl for rdtsc emulation as well:

http://git.openssl.org/gitweb/?p=openssl.git;a=blob;f=crypto/arm64cpuid.S#l17

Riku

> -- PMM
> 
> Title:
>   qemu-aarch64 cannot execute glibc
> 
> Status in QEMU:
>   New
> 
> Bug description:
>   $ aarch64-linux-user/qemu-aarch64 -version
>   qemu-aarch64 version 2.0.92, Copyright (c) 2003-2008 Fabrice Bellard
>   $ aarch64-linux-user/qemu-aarch64 -d in_asm 
> /daten/build/build-root/home/abuild/rpmbuild/BUILD/glibc-2.19.90/cc-base/elf/ld-linux-aarch64.so.1
>  
>   host mmap_min_addr=0x10000
>   guest_base  0x0
>   start            end              size             prot
>   0000004000000000-000000400001e000 000000000001e000 r-x
>   000000400001e000-000000400002e000 0000000000010000 ---
>   000000400002e000-0000004000031000 0000000000003000 rw-
>   0000004000031000-0000004000032000 0000000000001000 ---
>   0000004000032000-0000004000832000 0000000000800000 rw-
>   start_brk   0x0000000000000000
>   end_code    0x000000400001dbe0
>   start_code  0x0000004000000000
>   start_data  0x000000400002eba8
>   end_data    0x0000004000030008
>   start_stack 0x0000004000830a10
>   brk         0x0000004000030170
>   entry       0x00000040000012c0
>   ----------------
>   IN: 
>   0x00000040000012c0:  910003e0      mov x0, sp
>   0x00000040000012c4:  94000d4f      bl #+0x353c (addr 0x7fffb5bdad68)
> 
>   ----------------
>   IN: _dl_start
>   0x0000004000004800:  d11243ff      sub sp, sp, #0x490 (1168)
>   0x0000004000004804:  a9ba7bfd      stp x29, x30, [sp, #-96]!
>   0x0000004000004808:  910003fd      mov x29, sp
>   0x000000400000480c:  a9046bf9      stp x25, x26, [sp, #64]
>   0x0000004000004810:  a90153f3      stp x19, x20, [sp, #16]
>   0x0000004000004814:  a9025bf5      stp x21, x22, [sp, #32]
>   0x0000004000004818:  a90363f7      stp x23, x24, [sp, #48]
>   0x000000400000481c:  a90573fb      stp x27, x28, [sp, #80]
>   0x0000004000004820:  aa0003fa      mov x26, x0
>   0x0000004000004824:  d5033fdf      isb
>   0x0000004000004828:  d53be040      mrs x0, (unknown)
> 
>   qemu: uncaught target signal 4 (Illegal instruction) - core dumped
>   Illegal instruction
>   $ objdump -d 
> /daten/build/build-root/home/abuild/rpmbuild/BUILD/glibc-2.19.90/cc-base/elf/ld-linux-aarch64.so.1
>  | grep ' 4828:'
>       4828:       d53be040        mrs     x0, cntvct_el0
> 
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/qemu/+bug/1344320/+subscriptions



reply via email to

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