Commit 9c5d1246c7b3da2e625a2257b9680c4d34fbc1fc

Authored by bellard
1 parent 8dd7cb06

use -mflat for helper-i386.c on sparc - use custom ld script on sparc to free ze…

…ro memory addresses for vm86 emulation - arm support


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@224 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 1 changed file with 21 additions and 4 deletions
Makefile
... ... @@ -4,6 +4,7 @@ CFLAGS=-Wall -O2 -g
4 4 LDFLAGS=-g
5 5 LIBS=
6 6 DEFINES=-DHAVE_BYTESWAP_H
  7 +HELPER_CFLAGS=$(CFLAGS)
7 8  
8 9 ifeq ($(ARCH),i386)
9 10 CFLAGS+=-fomit-frame-pointer
... ... @@ -37,6 +38,8 @@ ifeq ($(ARCH),sparc)
37 38 CFLAGS+=-m32 -ffixed-g1 -ffixed-g2 -ffixed-g3 -ffixed-g6
38 39 LDFLAGS+=-m32
39 40 OP_CFLAGS=$(CFLAGS) -fno-delayed-branch -ffixed-i0
  41 +HELPER_CFLAGS=$(CFLAGS) -ffixed-i0 -mflat
  42 +LDFLAGS+=-Wl,-T,sparc.ld
40 43 endif
41 44  
42 45 ifeq ($(ARCH),sparc64)
... ... @@ -58,6 +61,11 @@ ifeq ($(ARCH),ia64)
58 61 OP_CFLAGS=$(CFLAGS)
59 62 endif
60 63  
  64 +ifeq ($(ARCH),arm)
  65 +OP_CFLAGS=$(CFLAGS) -mno-sched-prolog
  66 +LDFLAGS+=-Wl,-T,arm.ld
  67 +endif
  68 +
61 69 ifeq ($(GCC_MAJOR),3)
62 70 # very important to generate a return at the end of every operation
63 71 OP_CFLAGS+=-fno-reorder-blocks -fno-optimize-sibling-calls
... ... @@ -81,13 +89,19 @@ OBJS+= libqemu.a
81 89 LIBOBJS+=thunk.o translate-i386.o op-i386.o helper-i386.o exec-i386.o exec.o
82 90  
83 91 # NOTE: the disassembler code is only needed for debugging
84   -LIBOBJS+=disas.o i386-dis.o dis-buf.o
  92 +LIBOBJS+=disas.o i386-dis.o
85 93 ifeq ($(ARCH),alpha)
86 94 LIBOBJS+=alpha-dis.o
87 95 endif
88 96 ifeq ($(ARCH),ppc)
89 97 LIBOBJS+=ppc-dis.o
90 98 endif
  99 +ifeq ($(ARCH),sparc)
  100 +LIBOBJS+=sparc-dis.o
  101 +endif
  102 +ifeq ($(ARCH),arm)
  103 +LIBOBJS+=arm-dis.o
  104 +endif
91 105  
92 106 ifeq ($(ARCH),ia64)
93 107 OBJS += ia64-syscall.o
... ... @@ -126,6 +140,9 @@ opc-i386.h: op-i386.o dyngen
126 140 op-i386.o: op-i386.c opreg_template.h ops_template.h
127 141 $(CC) $(OP_CFLAGS) $(DEFINES) -c -o $@ $<
128 142  
  143 +helper-i386.o: helper-i386.c
  144 + $(CC) $(HELPER_CFLAGS) $(DEFINES) -c -o $@ $<
  145 +
129 146 %.o: %.c
130 147 $(CC) $(CFLAGS) $(DEFINES) -c -o $@ $<
131 148  
... ... @@ -152,13 +169,13 @@ qemu-doc.html: qemu-doc.texi
152 169  
153 170 FILES= \
154 171 README README.distrib COPYING COPYING.LIB TODO Changelog VERSION \
155   -dyngen.c ioctls.h ops_template.h op_string.h syscall_types.h\
  172 +dyngen.c dyngen.h ioctls.h ops_template.h op_string.h syscall_types.h\
156 173 Makefile elf.h thunk.c\
157 174 elfload.c main.c signal.c thunk.h exec.h\
158 175 cpu-i386.h qemu.h op-i386.c helper-i386.c syscall-i386.h translate-i386.c\
159 176 syscall.c opreg_template.h syscall_defs.h vm86.c\
160   -dis-asm.h dis-buf.c disas.c disas.h alpha-dis.c ppc-dis.c i386-dis.c\
161   -ppc.ld alpha.ld s390.ld exec-i386.h exec-i386.c path.c exec.c mmap.c configure \
  177 +dis-asm.h disas.c disas.h alpha-dis.c ppc-dis.c i386-dis.c sparc-dis.c arm-dis.c\
  178 +ppc.ld alpha.ld s390.ld sparc.ld arm.ld exec-i386.h exec-i386.c path.c exec.c mmap.c configure \
162 179 tests/Makefile\
163 180 tests/test-i386.c tests/test-i386-shift.h tests/test-i386.h\
164 181 tests/test-i386-muldiv.h tests/test-i386-code16.S\
... ...