Re: [Qemu-devel] [patch] use socklen_t with getsockopt()

2007-04-10 Thread Jamie Lokier
Mike Frysinger wrote:
 On Thursday 05 April 2007, Jamie Lokier wrote:
  Sylvain Petreolle wrote:
   Was incorrect before too, since it was sizeof(int) in the first place ?
 
  The old type of val was int, so it made no different to the size.
  When val is of type socklen_t, it matters.
 
 val is still of type int which is fine ... socklen_t is for the variable 
 which 
 describes the length of val

Yes, thanks for pointing it out.

-- Jamie




Re: IRQ handling (was [Qemu-devel] qemu Makefile.target vl.h hw/acpi.c hw/adlib.c ...)

2007-04-10 Thread Jamie Lokier
J. Mayer wrote:
  No. Since MIPS{32,64}R2 the CP0 is standardized and a mandatory part of
  a MIPS compatible CPU.
 
 Yes, I know MIPS want always CP0 to be present. I should have put a
 smiley somewhere. I wanted just to point the fact that the CPU itself
 does not need the CP0 controller to run and that one could easily
 imagine designing a core without the CP0 controller.

I just want to say I have programmed a MIPS-ish core which did not
have a CP0 controller.  It was the Alteon AceNIC gigabit ethernet
controller, and it had two CPU cores implementing the MIPS integer
instruction set.  We used the standard mips-elf GCC to compile for it.

I'm under the impression that copying the basic MIPS instruction set
is not uncommon for the odd ASIC here and there, as it doesn't bump
into the licensing problems that copying ARM instructions does, and
it's quite simple.

-- Jamie




Re: QEMU Automated Testing (was [Qemu-devel] qemu Makefile.target vl.h hw/acpi.c hw/adlib.c ...)

2007-04-10 Thread Jamie Lokier
Natalia Portillo wrote:
 But that required some macro interface click at x,y, wait some seconds,
 press 'k' key, that is not currently under QEMU.
 
 The best solution I think is to get a way to send QEMU the screenshot to
 file command some times and stop the VM when both are equal, then send the
 last took screenshot to a mail address so breakability can be checked. (If
 it is the login window, great, it BOOTS!, if not, it doesn't)

If there was a way to get QEMU to stop when the screen matches a
particular stored screenshot, that would make it a lot more scriptable.

For example, you could record the steps to install a particular OS
from installation media as a series of screenshots showing dialog
boxes, and script commands like pressing keys or clicking at x, y when
those screens match.

Another useful event to stop on would be when the processor hits an
x86 HLT instruction or whatever is the equivalent on other
architectures, or particular recognised waiting loops - in conjunction
with there being no outstanding I/O.  Maybe that's an appropriate time
to check for matching screenshots.

That kind of script would be nice when you want to create a new fresh
installation of some OS, but with a few options changed.  The script
would not be too hard to stop at a certain point, and set different
option in the installation, then continue.  Currently I do this
manually and it's quite tedious.

Similarly for actually running applications in a VM.

-- Jamie




Re: QEMU Automated Testing (was [Qemu-devel] qemu Makefile.target vl.h hw/acpi.c hw/adlib.c ...)

2007-04-10 Thread Pierre d'Herbemont


On 8 avr. 07, at 22:43, Natalia Portillo wrote:

But that required some macro interface click at x,y, wait some  
seconds,

press 'k' key, that is not currently under QEMU.


There is cxtest (GPL) which has been created for that matter, it  
should be interesting to give it a try:

http://www.cxtest.org/

Cxtest is an open source project that provides visual regression  
testing facilities for X11 based systems. It can automate basic X  
Window functionality, including finding X windows by title or by  
graphic picture



Pierre.




[Qemu-devel] Patch: ptable calculation broken for 32bit code under x86_64

2007-04-10 Thread Bernhard Kauer
The calculation of pdpe and pde addresses is broken, when running 32bit
code under x86_64-qemu. The code assumes that the addr parameter is 32bit
wide. This assumption does not hold for x86_64 as target.

Bernhard Kauer

Index: target-i386/helper2.c
===
RCS file: /sources/qemu/qemu/target-i386/helper2.c,v
retrieving revision 1.46
diff -u -r1.46 helper2.c
--- target-i386/helper2.c	7 Apr 2007 11:21:28 -	1.46
+++ target-i386/helper2.c	10 Apr 2007 13:28:02 -
@@ -670,7 +670,7 @@
 #endif
 {
 /* XXX: load them when cr3 is loaded ? */
-pdpe_addr = ((env-cr[3]  ~0x1f) + ((addr  30)  3))  
+pdpe_addr = ((env-cr[3]  ~0x1f) + ((addr  27)  0x18))  
 env-a20_mask;
 pdpe = ldq_phys(pdpe_addr);
 if (!(pdpe  PG_PRESENT_MASK)) {
@@ -765,7 +765,7 @@
 uint32_t pde;
 
 /* page directory entry */
-pde_addr = ((env-cr[3]  ~0xfff) + ((addr  20)  ~3))  
+pde_addr = ((env-cr[3]  ~0xfff) + ((addr  20)  0xffc))  
 env-a20_mask;
 pde = ldl_phys(pde_addr);
 if (!(pde  PG_PRESENT_MASK)) {
@@ -910,7 +910,7 @@
 } else 
 #endif
 {
-pdpe_addr = ((env-cr[3]  ~0x1f) + ((addr  30)  3))  
+pdpe_addr = ((env-cr[3]  ~0x1f) + ((addr  27)  0x18))  
 env-a20_mask;
 pdpe = ldl_phys(pdpe_addr);
 if (!(pdpe  PG_PRESENT_MASK))
@@ -940,7 +940,7 @@
 page_size = 4096;
 } else {
 /* page directory entry */
-pde_addr = ((env-cr[3]  ~0xfff) + ((addr  20)  ~3))  env-a20_mask;
+pde_addr = ((env-cr[3]  ~0xfff) + ((addr  20)  0xffc))  env-a20_mask;
 pde = ldl_phys(pde_addr);
 if (!(pde  PG_PRESENT_MASK)) 
 return -1;


[Qemu-devel] (no subject)

2007-04-10 Thread Stuart Anderson


I'm trying to test my fixes to the linux-user emulation on some additonal
architectures now, but I'm running into problems. I can debug these some,
but any suggestions or guidence, especially from people more familiar
with the architecture core code, would be appreciated.

The environment is a Debian x86_64 server running Etch, with target
environments built using debootstrap.


MIPS:

Bash seems to start up ok, but when I run a command in it, it hangs
until I hit return a second time, and then bash exits w/ an uncaught
target signal.

projects:~/upstream/qemu# mips-linux-user/qemu-mips -L /mirror0/chroots/mips/ 
/mirror0/chroots/mips/bin/bash
projects:~/upstream/qemu# ps

  PID TTY  TIME CMD
  18786 pts/100:00:00 bash
  20057 pts/100:00:00 ps
  20058 pts/100:00:00 qemu-mips
qemu: uncaught target signal 25 (Continued) - exiting
projects:~/upstream/qemu#

PPC:

I am unable to get any executable to run.


projects:~/upstream/qemu# ./ppc-linux-user/qemu-ppc -L /mirror0/chroots/ppc/ 
/mirror0/chroots/ppc/bin/bash
init_ppc_proc: PVR 0008 mask  = 0008
Segmentation fault
projects:~/upstream/qemu#


Thanks,


Stuart

Stuart R. Anderson   [EMAIL PROTECTED]
Network  Software Engineering   http://www.netsweng.com/
1024D/37A79149:  0791 D3B8 9A4C 2CDC A31F
 BD03 0A62 E534 37A7 9149




[Qemu-devel] PATCH: qemu sparc host cleanup

2007-04-10 Thread Ben Taylor

This patch is a consolodation of patches and ideas from BlueSwirl, Martin
Bochnig and myself.

The patch is comprized of three parts:

1)  to more accurately set the compile flags on sparc hosts, with an eye
for sparc_v8plus and sparc_v8plusa, as well as sparc_v9, and leaving
the option for non-ultrasparc hosts to compile qemu.  Use of the 
ARCH_CFLAGS/ARCH_LDFLAGS at the top level guarantees that
specific host information is dissemnated throughout the build environment

If no default target is selected, sparc_v8plus is used for 32-bit, and sparc_v9
is used for 64-bit (sparc64)

2) cleanup of the Makefile.target for Sparc 32/64 and Linux/Solaris hosts,
reducing redundnancy of configuration parameters

3) enable sparc_v8plus and sparc_v8plusa to use the rtdc.  Prior to this
patch, sparc_v8plus and sparc_v8plusa targets were not able to use
the rtdc, and this makes the guests correctly pull the host clock.

This patch supercedes a previous patch I posted for Makefile.target cleanup.

Comments?

Bendiff -ruN qemu.ORIG/Makefile qemu/Makefile
--- qemu.ORIG/Makefile	2007-04-05 16:46:02.0 -0400
+++ qemu/Makefile	2007-04-10 12:14:14.18050 -0400
@@ -8,10 +8,9 @@
 BASE_CFLAGS=
 BASE_LDFLAGS=
 
-BASE_CFLAGS += $(OS_CFLAGS)
-ifeq ($(ARCH),sparc)
-BASE_CFLAGS += -mcpu=ultrasparc
-endif
+BASE_CFLAGS += $(OS_CFLAGS) $(ARCH_CFLAGS)
+BASE_LDFLAGS += $(OS_LDFLAGS) $(ARCH_LDFLAGS)
+
 CPPFLAGS += -I. -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
 LIBS=
 TOOLS=qemu-img$(EXESUF)
diff -ruN qemu.ORIG/Makefile.target qemu/Makefile.target
--- qemu.ORIG/Makefile.target	2007-04-07 14:14:41.0 -0400
+++ qemu/Makefile.target	2007-04-10 12:32:13.579045000 -0400
@@ -132,25 +132,28 @@
 endif
 
 ifeq ($(ARCH),sparc)
-ifeq ($(CONFIG_SOLARIS),yes)
-BASE_CFLAGS+=-mcpu=ultrasparc -m32 -ffixed-g2 -ffixed-g3
-BASE_LDFLAGS+=-m32
-OP_CFLAGS+=-fno-delayed-branch -fno-omit-frame-pointer -ffixed-i0
-else
-BASE_CFLAGS+=-mcpu=ultrasparc -m32 -ffixed-g1 -ffixed-g2 -ffixed-g3 -ffixed-g6
-BASE_LDFLAGS+=-m32
-OP_CFLAGS+=-fno-delayed-branch -ffixed-i0
-HELPER_CFLAGS=$(CFLAGS) -ffixed-i0 -mflat
-# -static is used to avoid g1/g3 usage by the dynamic linker
-BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -static
-endif
+  BASE_CFLAGS+=-mcpu=ultrasparc -m32 -ffixed-g2 -ffixed-g3
+  BASE_LDFLAGS+=-m32
+  OP_CFLAGS+=-fno-delayed-branch -ffixed-i0
+  ifeq ($(CONFIG_SOLARIS),yes)
+OP_CFLAGS+=-fno-omit-frame-pointer
+  else
+BASE_CFLAGS+=-ffixed-g1 -ffixed-g6
+HELPER_CFLAGS=$(CFLAGS) -ffixed-i0 -mflat
+# -static is used to avoid g1/g3 usage by the dynamic linker
+BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -static
+  endif
 endif
 
 ifeq ($(ARCH),sparc64)
-BASE_CFLAGS+=-mcpu=ultrasparc -m64 -ffixed-g1 -ffixed-g4 -ffixed-g5 -ffixed-g7
-BASE_LDFLAGS+=-m64
-BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
-OP_CFLAGS+=-mcpu=ultrasparc -m64 -ffixed-g1 -ffixed-g4 -ffixed-g5 -ffixed-g7 -fno-delayed-branch -ffixed-i0
+  BASE_CFLAGS+=-mcpu=ultrasparc -m64 -ffixed-g1 -ffixed-g4 -ffixed-g5 -ffixed-g7
+  DEFINES+=-D__sparc_v9__
+  BASE_LDFLAGS+=-m64
+  OP_CFLAGS+=-mcpu=ultrasparc -m64 -fno-delayed-branch -ffixed-i0
+  ifneq ($(CONFIG_SOLARIS),yes)
+BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
+OP_CFLAGS+=-ffixed-g1 -ffixed-g4 -ffixed-g5 -ffixed-g7
+  endif
 endif
 
 ifeq ($(ARCH),alpha)
@@ -202,8 +205,10 @@
 BASE_LDFLAGS+=-Wl,-segaddr,__STD_PROG_ZONE,0x1000 -image_base 0x0e00
 endif
 
-BASE_CFLAGS+=$(OS_CFLAGS)
-OP_CFLAGS+=$(OS_CFLAGS)
+BASE_CFLAGS+=$(OS_CFLAGS) $(ARCH_CFLAGS)
+BASE_LDFLAGS+=$(OS_LDFLAGS) $(ARCH_LDFLAGS)
+OP_CFLAGS+=$(OS_CFLAGS) $(ARCH_CFLAGS)
+OP_LDFLAGS+=$(OS_LDFLAGS) $(ARCH_LDFLAGS)
 
 #
 
@@ -499,8 +504,10 @@
 endif
 
 ifeq ($(ARCH),sparc64)
-VL_LDFLAGS+=-m64
-VL_LDFLAGS+=-Wl,-T,$(SRC_PATH)/sparc64.ld
+  VL_LDFLAGS+=-m64
+  ifneq ($(CONFIG_SOLARIS),yes)
+VL_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
+  endif
 endif
 
 ifdef CONFIG_WIN32
diff -ruN qemu.ORIG/configure qemu/configure
--- qemu.ORIG/configure	2007-04-05 16:46:02.0 -0400
+++ qemu/configure	2007-04-10 12:15:48.200123000 -0400
@@ -56,7 +56,7 @@
   s390)
 cpu=s390
   ;;
-  sparc|sun4[muv])
+  sparc|sun4[cdmuv])
 cpu=sparc
   ;;
   sparc64)
@@ -266,6 +266,18 @@
   ;;
   --enable-uname-release=*) uname_release=$optarg
   ;;
+  --sparc_cpu=*)
+  sparc_cpu=$optarg
+  case $sparc_cpu in
+v7|v8) SP_CFLAGS=-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__; SP_LDFLAGS=-m32
+ target_cpu=sparc; cpu=sparc ;;
+v8plus|v8plusa) SP_CFLAGS=-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__; SP_LDFLAGS=-m32
+ target_cpu=sparc; cpu=sparc ;;
+v9)SP_CFLAGS=-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__; SP_LDFLAGS=-m64
+ target_cpu=sparc64; cpu=sparc64 ;;
+*) echo undefined SPARC architecture. Exiting;exit 1;;
+  esac
+  ;;
   esac
 done
 
@@ -279,6 +291,29 @@
 CFLAGS=$CFLAGS -Wall -O2 -g 

Re: [Qemu-devel] linux-user target

2007-04-10 Thread Jocelyn Mayer
On Tue, 2007-04-10 at 09:34 -0400, Stuart Anderson wrote:
 I'm trying to test my fixes to the linux-user emulation on some additonal
 architectures now, but I'm running into problems. I can debug these some,
 but any suggestions or guidence, especially from people more familiar
 with the architecture core code, would be appreciated.

[...]

 PPC:
 
 I am unable to get any executable to run.
 
 
 projects:~/upstream/qemu# ./ppc-linux-user/qemu-ppc -L /mirror0/chroots/ppc/ 
 /mirror0/chroots/ppc/bin/bash
 init_ppc_proc: PVR 0008 mask  = 0008
 Segmentation fault
 projects:~/upstream/qemu#
 

Just checked, on an amd64 host with a random powerpc bash version I got
on my hard disk drive:

./ppc-linux-user/qemu-ppc
-L /mnt/local/hdc/part3/PPC/linux/archives 
/mnt/local/hdc/part3/PPC/linux/archives/bin/bash --version
init_ppc_proc: PVR 0008 mask  = 0008
GNU bash, version 2.05a.0(1)-release (powerpc-unknown-linux-gnu)
Copyright 2001 Free Software Foundation, Inc.

./ppc-linux-user/qemu-ppc
-L /mnt/local/hdc/part3/PPC/linux/archives 
/mnt/local/hdc/part3/PPC/linux/archives/bin/bash.static --version
init_ppc_proc: PVR 0008 mask  = 0008
GNU bash, version 2.05b.0(1)-release (powerpc-unknown-linux-gnu)
Copyright (C) 2002 Free Software Foundation, Inc.

I also tried to really launch the shell and use it and it worked.

[EMAIL PROTECTED]:qemu-merge\ ps ww
[...]
29026 pts/57   Ss+0:00 bash -rcfile .bashrc
29269 pts/33   S  0:00 ./ppc-linux-user/qemu-ppc
-L /mnt/local/hdc/part3/PPC/linux/archives 
/mnt/local/hdc/part3/PPC/linux/archives/bin/bash
29930 pts/33   R+ 0:00 ps ww
[EMAIL PROTECTED]:qemu-merge\ ps
  PID TTY  TIME CMD
28941 pts/33   00:00:00 bash
29269 pts/33   00:00:00 qemu-ppc
30017 pts/33   00:00:00 ps
[EMAIL PROTECTED]:qemu-merge\

... I have to admit there are some strange behaviors with some
features...

But I think recent builds using glibc with TLS/NPTL would not run.
Here are informations about the glibc used by this bash version:

./ppc-linux-user/qemu-ppc
-L /mnt/local/hdc/part3/PPC/linux/archives 
/mnt/local/hdc/part3/PPC/linux/archives/usr/bin/objdump -f 
/mnt/local/hdc/part3/PPC/linux/archives/lib/libc-2.2.5.so 
init_ppc_proc: PVR 0008 mask  = 0008

/mnt/local/hdc/part3/PPC/linux/archives/lib/libc-2.2.5.so: file
format elf32-powerpc
architecture: powerpc:common, flags 0x0150:
HAS_SYMS, DYNAMIC, D_PAGED
start address 0x00025db4

file /mnt/local/hdc/part3/PPC/linux/archives/bin/bash 
/mnt/local/hdc/part3/PPC/linux/archives/bin/bash: ELF 32-bit MSB
executable, PowerPC or cisco 4500, version 1 (SYSV), for GNU/Linux
2.2.0, dynamically linked (uses shared libs), stripped

If this can help.

-- 
Jocelyn Mayer [EMAIL PROTECTED]





Re: [Qemu-devel] linux-user target

2007-04-10 Thread Stuart Anderson
On Tue, 10 Apr 2007, Jocelyn Mayer wrote:

 Just checked, on an amd64 host with a random powerpc bash version I got
 on my hard disk drive:

 I also tried to really launch the shell and use it and it worked.

Interesting...

 But I think recent builds using glibc with TLS/NPTL would not run.

Ahh. that's probably it.  The executables I'm using are build with libc-2.3.6.

 If this can help.

Indeed, it has probably narrowed the search space considerably.

Thanks.


Stuart

Stuart R. Anderson   [EMAIL PROTECTED]
Network  Software Engineering   http://www.netsweng.com/
1024D/37A79149:  0791 D3B8 9A4C 2CDC A31F
 BD03 0A62 E534 37A7 9149




Re: [Qemu-devel] [Patch] eepro100 issues

2007-04-10 Thread Juergen Lock
In article [EMAIL PROTECTED] you write:
-=-=-=-=-=-

The crashs are caused by transmit descriptors with packet sizes
larger than the buffer which is defined in the driver. Using netperf
or rsync will always result in a buffer overflow and crash QEMU
with the current eepro100 driver.

Up to now I could not find the reason for these large packet sizes.

My patch now just ignores data which does not fit in a normal frame.
Netperf and rsync no longer crash when the patch is applied.

Thanx, that seems to fix my crashes.

Juergen




[Qemu-devel] Updated PATCH: qemu sparc host cleanup

2007-04-10 Thread Ben Taylor

An Update to the previous patch.  Some of the variables and
defines in Makefile.target were not removed as part of the
new sparc host configuration.

Ben

 Ben Taylor [EMAIL PROTECTED] wrote: 
 
 This patch is a consolodation of patches and ideas from BlueSwirl, Martin
 Bochnig and myself.
 
 The patch is comprized of three parts:
 
 1)  to more accurately set the compile flags on sparc hosts, with an eye
 for sparc_v8plus and sparc_v8plusa, as well as sparc_v9, and leaving
 the option for non-ultrasparc hosts to compile qemu.  Use of the 
 ARCH_CFLAGS/ARCH_LDFLAGS at the top level guarantees that
 specific host information is dissemnated throughout the build environment
 
 If no default target is selected, sparc_v8plus is used for 32-bit, and 
 sparc_v9
 is used for 64-bit (sparc64)
 
 2) cleanup of the Makefile.target for Sparc 32/64 and Linux/Solaris hosts,
 reducing redundnancy of configuration parameters
 
 3) enable sparc_v8plus and sparc_v8plusa to use the rtdc.  Prior to this
 patch, sparc_v8plus and sparc_v8plusa targets were not able to use
 the rtdc, and this makes the guests correctly pull the host clock.
 
 This patch supercedes a previous patch I posted for Makefile.target cleanup.
 
 Comments?
 
 Ben
diff -ruN qemu.ORIG/Makefile qemu/Makefile
--- qemu.ORIG/Makefile	2007-04-05 16:46:02.0 -0400
+++ qemu/Makefile	2007-04-10 12:14:14.18050 -0400
@@ -8,10 +8,9 @@
 BASE_CFLAGS=
 BASE_LDFLAGS=
 
-BASE_CFLAGS += $(OS_CFLAGS)
-ifeq ($(ARCH),sparc)
-BASE_CFLAGS += -mcpu=ultrasparc
-endif
+BASE_CFLAGS += $(OS_CFLAGS) $(ARCH_CFLAGS)
+BASE_LDFLAGS += $(OS_LDFLAGS) $(ARCH_LDFLAGS)
+
 CPPFLAGS += -I. -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
 LIBS=
 TOOLS=qemu-img$(EXESUF)
diff -ruN qemu.ORIG/Makefile.target qemu/Makefile.target
--- qemu.ORIG/Makefile.target	2007-04-07 14:14:41.0 -0400
+++ qemu/Makefile.target	2007-04-10 14:36:20.810045000 -0400
@@ -132,25 +132,25 @@
 endif
 
 ifeq ($(ARCH),sparc)
-ifeq ($(CONFIG_SOLARIS),yes)
-BASE_CFLAGS+=-mcpu=ultrasparc -m32 -ffixed-g2 -ffixed-g3
-BASE_LDFLAGS+=-m32
-OP_CFLAGS+=-fno-delayed-branch -fno-omit-frame-pointer -ffixed-i0
-else
-BASE_CFLAGS+=-mcpu=ultrasparc -m32 -ffixed-g1 -ffixed-g2 -ffixed-g3 -ffixed-g6
-BASE_LDFLAGS+=-m32
-OP_CFLAGS+=-fno-delayed-branch -ffixed-i0
-HELPER_CFLAGS=$(CFLAGS) -ffixed-i0 -mflat
-# -static is used to avoid g1/g3 usage by the dynamic linker
-BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -static
-endif
+  BASE_CFLAGS+=-ffixed-g2 -ffixed-g3
+  OP_CFLAGS+=-fno-delayed-branch -ffixed-i0
+  ifeq ($(CONFIG_SOLARIS),yes)
+OP_CFLAGS+=-fno-omit-frame-pointer
+  else
+BASE_CFLAGS+=-ffixed-g1 -ffixed-g6
+HELPER_CFLAGS=$(CFLAGS) -ffixed-i0 -mflat
+# -static is used to avoid g1/g3 usage by the dynamic linker
+BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -static
+  endif
 endif
 
 ifeq ($(ARCH),sparc64)
-BASE_CFLAGS+=-mcpu=ultrasparc -m64 -ffixed-g1 -ffixed-g4 -ffixed-g5 -ffixed-g7
-BASE_LDFLAGS+=-m64
-BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
-OP_CFLAGS+=-mcpu=ultrasparc -m64 -ffixed-g1 -ffixed-g4 -ffixed-g5 -ffixed-g7 -fno-delayed-branch -ffixed-i0
+  BASE_CFLAGS+=-ffixed-g1 -ffixed-g4 -ffixed-g5 -ffixed-g7
+  OP_CFLAGS+=-mcpu=ultrasparc -m64 -fno-delayed-branch -ffixed-i0
+  ifneq ($(CONFIG_SOLARIS),yes)
+BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
+OP_CFLAGS+=-ffixed-g1 -ffixed-g4 -ffixed-g5 -ffixed-g7
+  endif
 endif
 
 ifeq ($(ARCH),alpha)
@@ -202,8 +202,10 @@
 BASE_LDFLAGS+=-Wl,-segaddr,__STD_PROG_ZONE,0x1000 -image_base 0x0e00
 endif
 
-BASE_CFLAGS+=$(OS_CFLAGS)
-OP_CFLAGS+=$(OS_CFLAGS)
+BASE_CFLAGS+=$(OS_CFLAGS) $(ARCH_CFLAGS)
+BASE_LDFLAGS+=$(OS_LDFLAGS) $(ARCH_LDFLAGS)
+OP_CFLAGS+=$(OS_CFLAGS) $(ARCH_CFLAGS)
+OP_LDFLAGS+=$(OS_LDFLAGS) $(ARCH_LDFLAGS)
 
 #
 
@@ -499,8 +501,10 @@
 endif
 
 ifeq ($(ARCH),sparc64)
-VL_LDFLAGS+=-m64
-VL_LDFLAGS+=-Wl,-T,$(SRC_PATH)/sparc64.ld
+  VL_LDFLAGS+=-m64
+  ifneq ($(CONFIG_SOLARIS),yes)
+VL_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
+  endif
 endif
 
 ifdef CONFIG_WIN32
diff -ruN qemu.ORIG/configure qemu/configure
--- qemu.ORIG/configure	2007-04-05 16:46:02.0 -0400
+++ qemu/configure	2007-04-10 12:15:48.200123000 -0400
@@ -56,7 +56,7 @@
   s390)
 cpu=s390
   ;;
-  sparc|sun4[muv])
+  sparc|sun4[cdmuv])
 cpu=sparc
   ;;
   sparc64)
@@ -266,6 +266,18 @@
   ;;
   --enable-uname-release=*) uname_release=$optarg
   ;;
+  --sparc_cpu=*)
+  sparc_cpu=$optarg
+  case $sparc_cpu in
+v7|v8) SP_CFLAGS=-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__; SP_LDFLAGS=-m32
+ target_cpu=sparc; cpu=sparc ;;
+v8plus|v8plusa) SP_CFLAGS=-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__; SP_LDFLAGS=-m32
+ target_cpu=sparc; cpu=sparc ;;
+v9)SP_CFLAGS=-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__; SP_LDFLAGS=-m64
+ target_cpu=sparc64; cpu=sparc64 ;;
+*) echo undefined SPARC architecture. 

[Qemu-devel] qemu/target-mips op.c translate.c

2007-04-10 Thread Thiemo Seufer
CVSROOT:/sources/qemu
Module name:qemu
Changes by: Thiemo Seufer ths 07/04/11 02:13:00

Modified files:
target-mips: op.c translate.c 

Log message:
More Context/Xcontext fixes. Ifdef some 64bit-only ops, they may
end up empty for 32bit mips, which dyngen trips over.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/qemu/target-mips/op.c?cvsroot=qemur1=1.38r2=1.39
http://cvs.savannah.gnu.org/viewcvs/qemu/target-mips/translate.c?cvsroot=qemur1=1.57r2=1.58




[Qemu-devel] qemu/target-mips translate.c

2007-04-10 Thread Thiemo Seufer
CVSROOT:/sources/qemu
Module name:qemu
Changes by: Thiemo Seufer ths 07/04/11 02:15:08

Modified files:
target-mips: translate.c 

Log message:
Code formatting fix.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/qemu/target-mips/translate.c?cvsroot=qemur1=1.58r2=1.59