From: Artyom Tarasenko <atar4qemu@gmail.com>
To: Blue Swirl <blauwirbel@gmail.com>
Cc: qemu-devel <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] dynamically linked binaries under sparc-linux-user
Date: Sun, 29 May 2011 01:32:32 +0200 [thread overview]
Message-ID: <BANLkTi=2KzahSTVKN-p6qB1zVJ5hLnq1Hw@mail.gmail.com> (raw)
In-Reply-To: <BANLkTi=EHx=P2HFA22OAVy-QKEPcZuABAA@mail.gmail.com>
On Thu, May 26, 2011 at 8:45 PM, Blue Swirl <blauwirbel@gmail.com> wrote:
> On Tue, May 24, 2011 at 10:42 PM, Artyom Tarasenko <atar4qemu@gmail.com> wrote:
>> Should it be possible to use dynamically linked binaries under
>> sparc*-linux-user?
>> Under qemu-system-sparc the Debian 4.08r1 initrd works fine, but:
>>
>> master$ sparc-linux-user/qemu-sparc -strace -L
>> ../debian-4.08r1-initrd/ ../debian-4.08r1-initrd/bin/busybox
>> 14004 uname(0x409ffbae) = 0
>> 14004 brk(NULL) = 0x00063000
>> 14004 access("/etc/ld.so.nohwcap",F_OK) = -1 errno=2 (No such file or directory)
>> 14004 mmap(NULL,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANONYMOUS,-1,0)
>> = 0x40a2c000
>> 14004 access("/etc/ld.so.preload",R_OK) = -1 errno=2 (No such file or directory)
>> 14004 open("/etc/ld.so.cache",O_RDONLY) = 3
>> 14004 fstat64(3,0x409ff500) = 0
>> 14004 mmap(NULL,195479,PROT_READ,MAP_PRIVATE,3,0) = 0x40a2d000
>> 14004 close(3) = 0
>> Segmentation fault
>>
>> The strange thing here is that it loads ld.so.cache. The guest fs
>> doesn't have it, but the host does:
>>
>> master$ ll ../../debian-4.08r1-initrd/etc/ld.so.cache /etc/ld.so.cache
>> ls: cannot access ../../debian-4.08r1-initrd/etc/ld.so.cache: No such
>> file or directory
>> -rw-r--r--. 1 root root 195479 2011-03-17 13:48 /etc/ld.so.cache
>>
>> Isn't this wrong?
>
> I'm not sure.
Right. On a second thought, qemu is probably doing what is expected:
the syscalls are emulated, so the host libraries must be loaded.
Then the problem must be elsewhere. Here is the backtrace:
master$ gdb sparc-linux-user/qemu-sparc
GNU gdb (GDB) Fedora (7.0.1-50.fc12)
(gdb) run -L ../debian-4.08r1-initrd/ ../debian-4.08r1-initrd/bin/busybox
Starting program: sparc-linux-user/qemu-sparc -L
../debian-4.08r1-initrd/ ../debian-4.08r1-initrd/bin/busybox
[Thread debugging using libthread_db enabled]
Program received signal SIGSEGV, Segmentation fault.
0x00000000601c49c2 in static_code_gen_buffer ()
Missing separate debuginfos, use: debuginfo-install
glibc-2.11.2-3.x86_64 libattr-2.4.44-1.fc12.x86_64
nspr-4.8.6-1.fc12.x86_64 nss-3.12.8-2.fc12.x86_64
nss-util-3.12.8-1.fc12.x86_64 zlib-1.2.3-23.fc12.x86_64
(gdb) bt
#0 0x00000000601c49c2 in static_code_gen_buffer ()
#1 0x00007fffffffd684 in ?? ()
#2 0x00007ffff4bc8728 in ?? ()
#3 0x00000000ffffffff in ?? ()
#4 0x0000000060029083 in tb_alloc_page (tb=0x40a2bc00, phys_pc=<value
optimized out>, phys_page2=1084406920) at exec.c:1214
#5 tb_link_page (tb=0x40a2bc00, phys_pc=<value optimized out>,
phys_page2=1084406920) at exec.c:1278
#6 0x000000006002a037 in tb_gen_code (env=0x6223f390, pc=1084305880,
cs_base=<value optimized out>, flags=<value optimized out>,
cflags=<value optimized out>)
at exec.c:1004
#7 0x000000006002afe8 in cpu_sparc_exec (env1=<value optimized out>)
at cpu-exec.c:636
#8 0x0000000060005d50 in cpu_loop (env=0x6223f390) at linux-user/main.c:1008
#9 0x00000000600069d9 in main (argc=1646342192, argv=<value optimized
out>, envp=<value optimized out>) at linux-user/main.c:3533
(gdb)
Any ideas?
> It could be possible to construct a blacklist of host
> files that may not be accessible or visible to the guest but that
> wouldn't very robust either. Chrooting into a 100% guest architecture
> system should work better.
You mean some sort of mixed chrooting? At least some host libraries
must be visible to the guest as if they were native.
--
Regards,
Artyom Tarasenko
solaris/sparc under qemu blog: http://tyom.blogspot.com/
next prev parent reply other threads:[~2011-05-28 23:32 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-24 19:42 [Qemu-devel] dynamically linked binaries under sparc-linux-user Artyom Tarasenko
2011-05-26 18:45 ` Blue Swirl
2011-05-28 23:32 ` Artyom Tarasenko [this message]
2011-06-04 8:30 ` Blue Swirl
2011-06-05 20:28 ` Artyom Tarasenko
2011-06-12 21:08 ` Blue Swirl
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='BANLkTi=2KzahSTVKN-p6qB1zVJ5hLnq1Hw@mail.gmail.com' \
--to=atar4qemu@gmail.com \
--cc=blauwirbel@gmail.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).