Re: [Qemu-devel] Sparc-linux-user problem

2007-04-28 Thread Paul Brook
On Saturday 28 April 2007, Blue Swirl wrote:
 Hi,

 I'm investigating why Sparc32 user emulator breaks when linked with
 -lrt. It seems that other libraries also cause the problem, for
 example -lm -ldl -lX11 -lbfd -lslang is okay, but  -lm -ldl -lX11
 -lbfd -lslang -lglib-2.0 segfaults just like -lm -lrt. If just address
 space conflict was the issue, I'd think 12 megs libbfd would trigger
 the problem instead of 64k librt.

 Any ideas?

I've never got this to work reliably on either x86 or amd64 hosts. I get 
mysterious segfaults in the depths of libc. My guess is that the tricks qemu 
uses to link itself as a shared library are confusing things (possibly the 
TLS initialisation).

Configuring with --enable-static usually works around the problem.

Paul




Re: [Qemu-devel] Sparc-linux-user problem

2007-04-28 Thread Kevin F. Quinn
On Sat, 28 Apr 2007 18:20:55 +0100
Paul Brook [EMAIL PROTECTED] wrote:

 On Saturday 28 April 2007, Blue Swirl wrote:
  Hi,
 
  I'm investigating why Sparc32 user emulator breaks when linked with
  -lrt. It seems that other libraries also cause the problem, for
  example -lm -ldl -lX11 -lbfd -lslang is okay, but  -lm -ldl -lX11
  -lbfd -lslang -lglib-2.0 segfaults just like -lm -lrt. If just
  address space conflict was the issue, I'd think 12 megs libbfd
  would trigger the problem instead of 64k librt.
 
  Any ideas?
 
 I've never got this to work reliably on either x86 or amd64 hosts. I
 get mysterious segfaults in the depths of libc. My guess is that the
 tricks qemu uses to link itself as a shared library are confusing
 things (possibly the TLS initialisation).

I don't suppose using gcc/binutils -fPIE/-pie would achieve qemu's
goals, thus avoiding the need to specify bespoke ld scripts?

-- 
Kevin F. Quinn


signature.asc
Description: PGP signature


Re: [Qemu-devel] Sparc-linux-user problem

2007-04-28 Thread Paul Brook
On Saturday 28 April 2007, Kevin F. Quinn wrote:
 On Sat, 28 Apr 2007 18:20:55 +0100

 Paul Brook [EMAIL PROTECTED] wrote:
  On Saturday 28 April 2007, Blue Swirl wrote:
   Hi,
  
   I'm investigating why Sparc32 user emulator breaks when linked with
   -lrt. It seems that other libraries also cause the problem, for
   example -lm -ldl -lX11 -lbfd -lslang is okay, but  -lm -ldl -lX11
   -lbfd -lslang -lglib-2.0 segfaults just like -lm -lrt. If just
   address space conflict was the issue, I'd think 12 megs libbfd
   would trigger the problem instead of 64k librt.
  
   Any ideas?
 
  I've never got this to work reliably on either x86 or amd64 hosts. I
  get mysterious segfaults in the depths of libc. My guess is that the
  tricks qemu uses to link itself as a shared library are confusing
  things (possibly the TLS initialisation).

 I don't suppose using gcc/binutils -fPIE/-pie would achieve qemu's
 goals, thus avoiding the need to specify bespoke ld scripts?

Sort-of, maybe.

Paul